diff --git a/DEPS b/DEPS index e496433..99d6745 100644 --- a/DEPS +++ b/DEPS
@@ -105,7 +105,7 @@ # 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': 'b42a897819dc751207f8e9e51d49108d422072e6', + 'skia_revision': 'e6146bd7be6f2c34b48830e2e64906b705dbb84d', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. @@ -129,7 +129,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': '9039169b64e117516cd274bfb85ca9d696d4ef5b', + 'pdfium_revision': '5c86fd4c5110a99606316721786f1ba9bf0d855a', # 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. @@ -165,7 +165,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': 'c80faf456d4ca70b4782073e999f90a47c0598c9', + 'catapult_revision': 'fc2514597ca6cf3c29b9687ee964736b29bc8c5e', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other. @@ -313,7 +313,7 @@ }, 'src/ios/third_party/material_components_ios/src': { - 'url': Var('chromium_git') + '/external/github.com/material-components/material-components-ios.git' + '@' + '531f9d8e97167feecdb12696991b50fbd1f8019a', + 'url': Var('chromium_git') + '/external/github.com/material-components/material-components-ios.git' + '@' + '827c67034ba293e6e4676689979571e471ec5486', 'condition': 'checkout_ios', }, @@ -599,7 +599,7 @@ # For Linux and Chromium OS. 'src/third_party/cros_system_api': { - 'url': Var('chromium_git') + '/chromiumos/platform/system_api.git' + '@' + '41fa3011067832b0b4341de834cd7cd341099738', + 'url': Var('chromium_git') + '/chromiumos/platform/system_api.git' + '@' + '326384d6d8eae04f7cc8971f708b53fc35c983ab', 'condition': 'checkout_linux', }, @@ -609,7 +609,7 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '56e273293a3c54a587a8e53852ef6e645470eca6', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'ddda0b5b8a961e4abb2a1699ffdfe07920046c44', 'src/third_party/devtools-node-modules': Var('chromium_git') + '/external/github.com/ChromeDevTools/devtools-node-modules' + '@' + Var('devtools_node_modules_revision'), @@ -793,7 +793,7 @@ }, 'src/third_party/leveldatabase/src': - Var('chromium_git') + '/external/leveldb.git' + '@' + 'f7b0e1d901da26ac5ce6ad7f0a9806ce1440197e', + Var('chromium_git') + '/external/leveldb.git' + '@' + '7b945f200339aa47c24788d3ee9910c09c513843', 'src/third_party/libFuzzer/src': Var('chromium_git') + '/chromium/llvm-project/compiler-rt/lib/fuzzer.git' + '@' + Var('libfuzzer_revision'), @@ -802,7 +802,7 @@ Var('chromium_git') + '/external/libaddressinput.git' + '@' + 'd7ed8e2f3f35ce9a3aafdfdc48745ceab66e7229', 'src/third_party/libaom/source/libaom': { - 'url': Var('aomedia_git') + '/aom.git' + '@' + '75b9859caeeb9004374ee0547c062a1ed4979652', + 'url': Var('aomedia_git') + '/aom.git' + '@' + '7d447f5b0021abd363dd64912c59196393e9b159', 'condition': 'checkout_libaom', }, @@ -842,7 +842,7 @@ }, 'src/third_party/libvpx/source/libvpx': - Var('chromium_git') + '/webm/libvpx.git' + '@' + '753fd86e86ac727dccac88376260b8f54502f2a3', + Var('chromium_git') + '/webm/libvpx.git' + '@' + '96e1c6b7ce910ed4b7c79069a9d55307bd6dd257', 'src/third_party/libwebm/source': Var('chromium_git') + '/webm/libwebm.git' + '@' + '01c1d1d76f139345c442bfc8e61b4e1cba809059', @@ -943,7 +943,7 @@ }, 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + '1f658fe0d6514586621ba035b65fc671f4d0c970', + Var('android_git') + '/platform/external/perfetto.git' + '@' + '56de9d6b2972b32ae68b4304b5968e1629a65d4a', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + 'ac0d98b5cee6c024b0cffeb4f8f45b6fc5ccdb78', @@ -999,7 +999,7 @@ }, 'src/third_party/re2/src': - Var('chromium_git') + '/external/github.com/google/re2.git' + '@' + '5185d85264d23cfae4b38e2703703e9a4c8e974c', + Var('chromium_git') + '/external/github.com/google/re2.git' + '@' + '4c916c947ab7f2ba2d280bb8c87540c365d30695', 'src/third_party/r8': { 'packages': [ @@ -1098,7 +1098,7 @@ Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '7ca87fb1d3da3b3d2060886e8c58e726d74c8219', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '3d50a31aad312ba196ed26824826cf8d79769557', + Var('webrtc_git') + '/src.git' + '@' + 'bfd412ef716c7865ad137ee0875ab8054b00166a', 'src/third_party/xdg-utils': { 'url': Var('chromium_git') + '/chromium/deps/xdg-utils.git' + '@' + 'd80274d5869b17b8c9067a1022e4416ee7ed5e0d',
diff --git a/android_webview/browser/browser_view_renderer.cc b/android_webview/browser/browser_view_renderer.cc index 1970ee6..06db5f0 100644 --- a/android_webview/browser/browser_view_renderer.cc +++ b/android_webview/browser/browser_view_renderer.cc
@@ -257,6 +257,12 @@ return viewport_rect_for_tile_priority; } +void BrowserViewRenderer::ReturnedResourceAvailable( + CompositorFrameConsumer* compositor_frame_consumer) { + DCHECK(compositor_frame_consumers_.count(compositor_frame_consumer)); + ReturnResourceFromParent(compositor_frame_consumer); +} + void BrowserViewRenderer::OnParentDrawConstraintsUpdated( CompositorFrameConsumer* compositor_frame_consumer) { DCHECK(compositor_frame_consumer);
diff --git a/android_webview/browser/browser_view_renderer.h b/android_webview/browser/browser_view_renderer.h index 06052ee2..ebd1893 100644 --- a/android_webview/browser/browser_view_renderer.h +++ b/android_webview/browser/browser_view_renderer.h
@@ -141,6 +141,8 @@ ui::TouchHandleDrawable* CreateDrawable() override; // CompositorFrameProducer overrides + void ReturnedResourceAvailable( + CompositorFrameConsumer* compositor_frame_consumer) override; void OnParentDrawConstraintsUpdated( CompositorFrameConsumer* compositor_frame_consumer) override; void RemoveCompositorFrameConsumer(
diff --git a/android_webview/browser/compositor_frame_producer.h b/android_webview/browser/compositor_frame_producer.h index 8defed5..1e33b91 100644 --- a/android_webview/browser/compositor_frame_producer.h +++ b/android_webview/browser/compositor_frame_producer.h
@@ -11,6 +11,8 @@ class CompositorFrameProducer { public: + virtual void ReturnedResourceAvailable( + CompositorFrameConsumer* compositor_frame_consumer) = 0; virtual void OnParentDrawConstraintsUpdated( CompositorFrameConsumer* compositor_frame_consumer) = 0; virtual void RemoveCompositorFrameConsumer(
diff --git a/android_webview/browser/render_thread_manager.cc b/android_webview/browser/render_thread_manager.cc index 5ccb82c2..65e54f81 100644 --- a/android_webview/browser/render_thread_manager.cc +++ b/android_webview/browser/render_thread_manager.cc
@@ -88,6 +88,9 @@ base::LazyInstance<internal::RequestInvokeGLTracker>::DestructorAtExit g_request_invoke_gl_tracker = LAZY_INSTANCE_INITIALIZER; + +constexpr base::TimeDelta kSlightlyMoreThanOneFrame = + base::TimeDelta::FromMilliseconds(17); } RenderThreadManager::RenderThreadManager( @@ -128,11 +131,11 @@ callback = request_draw_gl_closure_; } // 17ms is slightly longer than a frame, hoping that it will come - // after the next frame so that the idle work is taken care off by + // after the next frame so that the idle work is taken care of by // the next frame instead. ui_loop_->PostDelayedTask( FROM_HERE, std::move(callback), - for_idle ? base::TimeDelta::FromMilliseconds(17) : base::TimeDelta()); + for_idle ? kSlightlyMoreThanOneFrame : base::TimeDelta()); } } @@ -251,6 +254,9 @@ const std::vector<viz::ReturnedResource>& resources, const CompositorID& compositor_id, uint32_t layer_tree_frame_sink_id) { + if (resources.empty()) + return; + base::AutoLock lock(lock_); ReturnedResources& returned_resources = returned_resources_map_[compositor_id]; @@ -260,6 +266,28 @@ returned_resources.resources.insert(returned_resources.resources.end(), resources.begin(), resources.end()); returned_resources.layer_tree_frame_sink_id = layer_tree_frame_sink_id; + + if (!returned_resource_available_pending_) { + returned_resource_available_pending_ = true; + ui_loop_->PostDelayedTask( + FROM_HERE, + base::BindOnce(&RenderThreadManager::ReturnedResourceAvailableOnUI, + ui_thread_weak_ptr_), + kSlightlyMoreThanOneFrame * 2); + } +} + +void RenderThreadManager::ReturnedResourceAvailableOnUI() { + bool empty = false; + { + base::AutoLock lock(lock_); + DCHECK(returned_resource_available_pending_); + returned_resource_available_pending_ = false; + empty = returned_resources_map_.empty(); + } + if (!empty && compositor_frame_producer_) { + compositor_frame_producer_->ReturnedResourceAvailable(this); + } } void RenderThreadManager::SwapReturnedResourcesOnUI(
diff --git a/android_webview/browser/render_thread_manager.h b/android_webview/browser/render_thread_manager.h index c45379a..909e16f 100644 --- a/android_webview/browser/render_thread_manager.h +++ b/android_webview/browser/render_thread_manager.h
@@ -90,6 +90,7 @@ void ResetRequestInvokeGLCallback(); void ClientRequestInvokeGLOnUI(); void UpdateParentDrawConstraintsOnUI(); + void ReturnedResourceAvailableOnUI(); bool IsInsideHardwareRelease() const; void SetInsideHardwareRelease(bool inside); @@ -115,6 +116,7 @@ ChildFrameQueue child_frames_; bool inside_hardware_release_; ParentCompositorDrawConstraints parent_draw_constraints_; + bool returned_resource_available_pending_ = false; ReturnedResourcesMap returned_resources_map_; base::RepeatingClosure request_draw_gl_closure_;
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/GlueApiHelperForP.java b/android_webview/glue/java/src/com/android/webview/chromium/GlueApiHelperForP.java index 2da05a58f..fb8db26 100644 --- a/android_webview/glue/java/src/com/android/webview/chromium/GlueApiHelperForP.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/GlueApiHelperForP.java
@@ -6,6 +6,7 @@ import android.annotation.TargetApi; import android.os.Build; +import android.webkit.TracingController; import android.webkit.WebViewDelegate; import org.chromium.base.annotations.DoNotInline; @@ -25,9 +26,9 @@ /** * See {@link * TracingControllerAdapter#TracingControllerAdapter(WebViewChromiumFactoryProvider, - * AwTracingController)}, which was added in N. + * AwTracingController)}, which was added in P. */ - public static TracingControllerAdapter createTracingControllerAdapter( + public static TracingController createTracingControllerAdapter( WebViewChromiumFactoryProvider provider, WebViewChromiumAwInit awInit) { return new TracingControllerAdapter(provider, awInit.getAwTracingController()); }
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java index f31a909..57fab90 100644 --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumAwInit.java
@@ -5,6 +5,7 @@ package com.android.webview.chromium; import android.Manifest; +import android.annotation.TargetApi; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; @@ -39,6 +40,7 @@ import org.chromium.base.PathService; import org.chromium.base.ThreadUtils; import org.chromium.base.TraceEvent; +import org.chromium.base.annotations.DoNotInline; import org.chromium.base.library_loader.LibraryLoader; import org.chromium.base.library_loader.LibraryProcessType; import org.chromium.base.library_loader.ProcessInitException; @@ -56,13 +58,27 @@ private static final String HTTP_AUTH_DATABASE_FILE = "http_auth.db"; + /** + * This holds objects of classes that are defined in N and above to ensure that run-time class + * verification does not occur until it is actually used for N and above. + */ + @TargetApi(Build.VERSION_CODES.N) + @DoNotInline + private static class ObjectHolderForN { + public TokenBindingService mTokenBindingService; + } + // TODO(gsennton): store aw-objects instead of adapters here // Initialization guarded by mLock. private AwBrowserContext mBrowserContext; private SharedStatics mSharedStatics; private GeolocationPermissionsAdapter mGeolocationPermissions; private CookieManagerAdapter mCookieManager; - private Object mTokenBindingManager; + + @TargetApi(Build.VERSION_CODES.N) + private ObjectHolderForN mObjectHolderForN = + Build.VERSION.SDK_INT >= Build.VERSION_CODES.N ? new ObjectHolderForN() : null; + private WebIconDatabaseAdapter mWebIconDatabase; private WebStorageAdapter mWebStorage; private WebViewDatabaseAdapter mWebViewDatabase; @@ -371,13 +387,15 @@ return mServiceWorkerController; } + @TargetApi(Build.VERSION_CODES.N) public TokenBindingService getTokenBindingService() { synchronized (mLock) { - if (mTokenBindingManager == null) { - mTokenBindingManager = GlueApiHelperForN.createTokenBindingManagerAdapter(mFactory); + if (mObjectHolderForN.mTokenBindingService == null) { + mObjectHolderForN.mTokenBindingService = + GlueApiHelperForN.createTokenBindingManagerAdapter(mFactory); } } - return (TokenBindingService) mTokenBindingManager; + return mObjectHolderForN.mTokenBindingService; } public android.webkit.WebIconDatabase getWebIconDatabase() {
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java index d67c60d..4243e08 100644 --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
@@ -4,6 +4,7 @@ package com.android.webview.chromium; +import android.annotation.TargetApi; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; @@ -43,6 +44,7 @@ import org.chromium.base.PathUtils; import org.chromium.base.StrictModeContext; import org.chromium.base.ThreadUtils; +import org.chromium.base.annotations.DoNotInline; import org.chromium.base.library_loader.NativeLibraries; import org.chromium.base.metrics.CachedMetrics.TimesHistogramSample; import org.chromium.components.autofill.AutofillProvider; @@ -68,6 +70,26 @@ private static final String SUPPORT_LIB_GLUE_AND_BOUNDARY_INTERFACE_PREFIX = "org.chromium.support_lib_"; + /** + * This holds objects of classes that are defined in N and above to ensure that run-time class + * verification does not occur until it is actually used for N and above. + */ + @TargetApi(Build.VERSION_CODES.N) + @DoNotInline + private static class ObjectHolderForN { + public ServiceWorkerController mServiceWorkerController; + } + + /** + * This holds objects of classes that are defined in P and above to ensure that run-time class + * verification does not occur until it is actually used for P and above. + */ + @TargetApi(Build.VERSION_CODES.P) + @DoNotInline + private static class ObjectHolderForP { + public TracingController mTracingController; + } + private final static Object sSingletonLock = new Object(); private static WebViewChromiumFactoryProvider sSingleton; @@ -101,13 +123,19 @@ private SharedPreferences mWebViewPrefs; private WebViewDelegate mWebViewDelegate; - private TracingController mTracingController; - boolean mShouldDisableThreadChecking; + private boolean mShouldDisableThreadChecking; // Initialization guarded by mAwInit.getLock() private Statics mStaticsAdapter; - private Object mServiceWorkerControllerAdapter; + + @TargetApi(Build.VERSION_CODES.N) + private ObjectHolderForN mObjectHolderForN = + Build.VERSION.SDK_INT >= Build.VERSION_CODES.N ? new ObjectHolderForN() : null; + + @TargetApi(Build.VERSION_CODES.P) + private ObjectHolderForP mObjectHolderForP = + Build.VERSION.SDK_INT >= Build.VERSION_CODES.P ? new ObjectHolderForP() : null; /** * Thread-safe way to set the one and only WebViewChromiumFactoryProvider. @@ -470,12 +498,12 @@ @Override public ServiceWorkerController getServiceWorkerController() { synchronized (mAwInit.getLock()) { - if (mServiceWorkerControllerAdapter == null) { - mServiceWorkerControllerAdapter = + if (mObjectHolderForN.mServiceWorkerController == null) { + mObjectHolderForN.mServiceWorkerController = GlueApiHelperForN.createServiceWorkerControllerAdapter(mAwInit); } } - return (ServiceWorkerController) mServiceWorkerControllerAdapter; + return mObjectHolderForN.mServiceWorkerController; } @Override @@ -540,14 +568,14 @@ synchronized (mAwInit.getLock()) { mAwInit.ensureChromiumStartedLocked(true); // ensureChromiumStartedLocked() can release the lock on first call while - // waiting for startup. Hence check the mTracingControler here to ensure + // waiting for startup. Hence check the mTracingController here to ensure // the singleton property. - if (mTracingController == null) { - mTracingController = + if (mObjectHolderForP.mTracingController == null) { + mObjectHolderForP.mTracingController = GlueApiHelperForP.createTracingControllerAdapter(this, mAwInit); } } - return mTracingController; + return mObjectHolderForP.mTracingController; } private static class FilteredClassLoader extends ClassLoader {
diff --git a/ash/app_list/views/app_list_view.cc b/ash/app_list/views/app_list_view.cc index cadae4e2..76b9cde4 100644 --- a/ash/app_list/views/app_list_view.cc +++ b/ash/app_list/views/app_list_view.cc
@@ -1157,7 +1157,8 @@ -kAppListBackgroundRadius * 2); app_list_background_shield_->SetBoundsRect(app_list_background_shield_bounds); app_list_background_shield_->UpdateCornerRadius(kAppListBackgroundRadius); - if (is_background_blur_enabled_ && !IsHomeLauncherEnabledInTabletMode() && + if (is_background_blur_enabled_ && app_list_background_shield_mask_ && + !IsHomeLauncherEnabledInTabletMode() && app_list_background_shield_->layer()->size() != app_list_background_shield_mask_->layer()->size()) { // Update the blur mask for the |app_list_background_shield_| with same
diff --git a/ash/app_list/views/search_box_view_unittest.cc b/ash/app_list/views/search_box_view_unittest.cc index 6c55921..241b5f5 100644 --- a/ash/app_list/views/search_box_view_unittest.cc +++ b/ash/app_list/views/search_box_view_unittest.cc
@@ -20,6 +20,7 @@ #include "base/test/scoped_feature_list.h" #include "ui/chromeos/search_box/search_box_constants.h" #include "ui/chromeos/search_box/search_box_view_delegate.h" +#include "ui/events/base_event_utils.h" #include "ui/gfx/image/image_skia.h" #include "ui/gfx/image/image_unittest_util.h" #include "ui/gfx/paint_vector_icon.h" @@ -117,18 +118,6 @@ } } - void CreateSearchResult(ash::SearchResultDisplayType display_type, - double display_score, - const base::string16& title, - const base::string16& details) { - auto search_result = std::make_unique<SearchResult>(); - search_result->set_display_type(display_type); - search_result->set_display_score(display_score); - search_result->set_title(title); - search_result->set_details(details); - results()->Add(std::move(search_result)); - } - std::string GetLastQueryAndReset() { base::string16 query = last_query_; last_query_.clear(); @@ -301,6 +290,123 @@ SearchBoxViewTest::SetUp(); } + // Creates a SearchResult with the given parameters. + void CreateSearchResult(ash::SearchResultDisplayType display_type, + double display_score, + const base::string16& title, + const base::string16& details) { + auto search_result = std::make_unique<SearchResult>(); + search_result->set_display_type(display_type); + search_result->set_display_score(display_score); + search_result->set_title(title); + search_result->set_details(details); + results()->Add(std::move(search_result)); + } + + // Expect the entire autocomplete suggestion if |should_autocomplete| is true, + // expect only typed characters otherwise. + void ExpectAutocompleteSuggestion(bool should_autocomplete) { + if (should_autocomplete) { + // Search box autocomplete suggestion is accepted and reflected in Search + // Model. + EXPECT_EQ(view()->search_box()->text(), + view_delegate()->GetSearchModel()->search_box()->text()); + EXPECT_EQ(view()->search_box()->text(), + base::ASCIIToUTF16("hello world!")); + } else { + // Search box autocomplete suggestion is removed and is reflected in + // SearchModel. + EXPECT_EQ(view()->search_box()->text(), + view_delegate()->GetSearchModel()->search_box()->text()); + EXPECT_EQ(view()->search_box()->text(), base::ASCIIToUTF16("he")); + // ProcessAutocomplete should be a no-op. + view()->ProcessAutocomplete(); + // The autocomplete suggestion should still not be present. + EXPECT_EQ(view()->search_box()->text(), base::ASCIIToUTF16("he")); + } + } + + // Sets up the test by creating a SearchResult and displaying an autocomplete + // suggestion. + void SetupAutocompleteBehaviorTest() { + // Add a search result with a non-empty title field. + CreateSearchResult(ash::SearchResultDisplayType::kList, 1.0, + base::ASCIIToUTF16("hello world!"), base::string16()); + + // Send H, E to the SearchBoxView textfield, then trigger an autocomplete. + KeyPress(ui::VKEY_H); + KeyPress(ui::VKEY_E); + view()->ProcessAutocomplete(); + } + + // Clears all existing text from search_box() and all existing SearchResults + // from results(). + void ResetAutocompleteBehaviorTest() { + view()->search_box()->SetText(base::string16()); + results()->RemoveAll(); + } + + // Test a GestureEvent's autocomplete behavior according to + // |should_autocomplete|. Expect the entire autocomplete suggestion if + // |should_autocomplete| is true, expect only typed characters otherwise. + void TestGestureEvent(const ui::GestureEvent& gesture_event, + bool should_autocomplete) { + SetupAutocompleteBehaviorTest(); + // Forward |gesture_event| to HandleGestureEvent() directly because we + // cannot test GestureEvents properly due to not having ash dependencies. + // Static cast to TextfieldController because HandleGestureEvent() is + // private in SearchBoxView. TODO(crbug.com/878984): Derive + // SearchBoxViewTest from AshTestBase in order to test events using + // EventGenerator instead. + static_cast<views::TextfieldController*>(view())->HandleGestureEvent( + view()->search_box(), gesture_event); + ExpectAutocompleteSuggestion(should_autocomplete); + // Reset search box text and SearchResults for next test. + ResetAutocompleteBehaviorTest(); + } + + // Test a KeyEvent's autocomplete behavior according to |should_autocomplete|. + // Expect the entire autocomplete suggestion if |should_autocomplete| is true, + // expect only typed characters otherwise. + void TestKeyEvent(const ui::KeyEvent& key_event, bool should_autocomplete) { + SetupAutocompleteBehaviorTest(); + // TODO(crbug.com/878984): Change KeyPress() to use EventGenerator::PressKey + // instead. + if (key_event.key_code() == ui::VKEY_BACK) { + // Use KeyPress() to mimic backspace. HandleKeyEvent() will not delete the + // text. + KeyPress(key_event.key_code()); + } else { + // Forward |key_event| to HandleKeyEvent(). We use HandleKeyEvent() + // because KeyPress() will replace the existing highlighted text. Static + // cast to TextfieldController because HandleGestureEvent() is private in + // SearchBoxView. + static_cast<views::TextfieldController*>(view())->HandleKeyEvent( + view()->search_box(), key_event); + } + ExpectAutocompleteSuggestion(should_autocomplete); + // Reset search box text and SearchResults for next test. + ResetAutocompleteBehaviorTest(); + } + + // Test a MouseEvent's autocomplete behavior according to + // |should_autocomplete|. Expect the entire autocomplete suggestion if + // |should_autocomplete| is true, expect only typed characters otherwise. + void TestMouseEvent(const ui::MouseEvent& mouse_event, + bool should_autocomplete) { + SetupAutocompleteBehaviorTest(); + // Forward |mouse_event| to HandleMouseEvent() directly because we cannot + // test MouseEvents properly due to not having ash dependencies. Static cast + // to TextfieldController because HandleGestureEvent() is a private method + // in SearchBoxView. TODO(crbug.com/878984): Derive SearchBoxViewTest from + // AshTestBase in order to test events using EventGenerator instead. + static_cast<views::TextfieldController*>(view())->HandleMouseEvent( + view()->search_box(), mouse_event); + ExpectAutocompleteSuggestion(should_autocomplete); + // Reset search box text and SearchResults for next test. + ResetAutocompleteBehaviorTest(); + } + ui::KeyboardCode key_code() const { return GetParam(); } private: @@ -438,63 +544,27 @@ } // Tests that autocomplete suggestion is accepted and displayed in SearchModel -// after hitting certain control keys. -TEST_F(SearchBoxViewAutocompleteTest, SearchBoxAcceptsAutocompleteForTab) { - // Add a search result with a non-empty title field. - CreateSearchResult(ash::SearchResultDisplayType::kList, 1.0, - base::ASCIIToUTF16("hello world!"), base::string16()); - - // Send H, E to the SearchBoxView textfield, then trigger an autocomplete. - KeyPress(ui::VKEY_H); - KeyPress(ui::VKEY_E); - view()->ProcessAutocomplete(); - // Forward the tab key to HandleKeyEvent(). We use HandleKeyEvent() - // because KeyPress() will replace the existing highlighted text and add - // a repeat character. - ui::KeyEvent event(ui::ET_KEY_PRESSED, ui::VKEY_TAB, ui::EF_NONE); - static_cast<views::TextfieldController*>(view())->HandleKeyEvent( - view()->search_box(), event); - // Search box autocomplete suggestion is accepted and is reflected in - // SearchModel. - EXPECT_EQ(view()->search_box()->text(), - view_delegate()->GetSearchModel()->search_box()->text()); - EXPECT_EQ(view()->search_box()->text(), base::ASCIIToUTF16("hello world!")); +// after pressing the tab key, clicking on the search box, or gesture tapping on +// the search box. +TEST_F(SearchBoxViewAutocompleteTest, + SearchBoxAcceptsAutocompleteForTabClickTap) { + TestKeyEvent(ui::KeyEvent(ui::ET_KEY_PRESSED, ui::VKEY_TAB, ui::EF_NONE), + true); + TestMouseEvent(ui::MouseEvent(ui::ET_MOUSE_PRESSED, gfx::Point(), + gfx::Point(), ui::EventTimeForNow(), 0, 0), + true); + TestGestureEvent( + ui::GestureEvent(0, 0, 0, ui::EventTimeForNow(), + ui::GestureEventDetails(ui::ET_GESTURE_TAP)), + true); } -// Tests that only the autocomplete suggestion text is deleted after hitting up, -// down, left, right, or backspace. +// Tests that only the autocomplete suggestion text is deleted after pressing +// up, down, left, right, or backspace. TEST_P(SearchBoxViewAutocompleteTest, SearchBoxDeletesAutocompleteTextOnlyAfterUpDownLeftRightBackspace) { - // Add a search result with a non-empty title field. - CreateSearchResult(ash::SearchResultDisplayType::kList, 1.0, - base::ASCIIToUTF16("hello world!"), base::string16()); - - // Send H, E to the SearchBoxView textfield, then trigger an autocomplete. - KeyPress(ui::VKEY_H); - KeyPress(ui::VKEY_E); - view()->ProcessAutocomplete(); - // TODO(crbug.com/878984): Change KeyPress() to use EventGenerator::PressKey - // instead. - if (key_code() == ui::VKEY_BACK) { - // Use KeyPress() to mimic backspace. HandleKeyEvent() will not delete the - // text. - KeyPress(key_code()); - } else { - // Forward the next parameter to HandleKeyEvent(). We use HandleKeyEvent() - // because KeyPress() will replace the existing highlighted text. - ui::KeyEvent event(ui::ET_KEY_PRESSED, key_code(), ui::EF_NONE); - static_cast<views::TextfieldController*>(view())->HandleKeyEvent( - view()->search_box(), event); - } - // Search box autocomplete suggestion is removed and is reflected in - // SearchModel. - EXPECT_EQ(view()->search_box()->text(), - view_delegate()->GetSearchModel()->search_box()->text()); - EXPECT_EQ(view()->search_box()->text(), base::ASCIIToUTF16("he")); - // ProcessAutocomplete should be a no-op. - view()->ProcessAutocomplete(); - // The autocomplete suggestion should still not be present. - EXPECT_EQ(view()->search_box()->text(), base::ASCIIToUTF16("he")); + TestKeyEvent(ui::KeyEvent(ui::ET_KEY_PRESSED, key_code(), ui::EF_NONE), + false); } } // namespace test
diff --git a/ash/ash_strings.grd b/ash/ash_strings.grd index 3eeb138..a3fe7976 100644 --- a/ash/ash_strings.grd +++ b/ash/ash_strings.grd
@@ -238,8 +238,8 @@ <message name="IDS_ASH_STATUS_TRAY_EXIT_PUBLIC" desc="The label used for the button in the status tray to terminate a public account session. If the label is long, indicate where it may be broken into two lines by inserting \n instead of a whitespace."> Exit session </message> - <message name="IDS_ASH_STATUS_TRAY_PUBLIC_LABEL" desc="Text of the the ash system bubble's user card when the current session is a public account session."> - <ph name="DISPLAY_NAME">$1<ex>Internet kiosk</ex></ph> is a public session managed by <ph name="DOMAIN">$2<ex>yourdomain.com</ex></ph> + <message name="IDS_ASH_STATUS_TRAY_PUBLIC_LABEL" desc="Text of the the ash system bubble's user card when the current session is a managed session."> + <ph name="DISPLAY_NAME">$1<ex>Internet kiosk</ex></ph> is a managed session managed by <ph name="DOMAIN">$2<ex>yourdomain.com</ex></ph> </message> <message name="IDS_ASH_STATUS_TRAY_LOCK" desc="The label used for the button in the status tray to lock the screen."> Lock @@ -1495,7 +1495,7 @@ <message name="IDS_ASH_LOGIN_PUBLIC_ACCOUNT_SIGNOUT_REMINDER" desc="Text shown in the public account user pod, reminding the user to log out."> Your internet session will be cleared when you sign out. <ph name="LEARN_MORE">$1<ex>Learn more</ex></ph> </message> - <message name="IDS_ASH_LOGIN_PUBLIC_SESSION_LANGUAGE_AND_INPUT" desc="Link in public session pod that shows a section which allows the user to change the UI language and keyboard layout."> + <message name="IDS_ASH_LOGIN_PUBLIC_SESSION_LANGUAGE_AND_INPUT" desc="Link in managed session pod that shows a section which allows the user to change the UI language and keyboard layout."> Choose language and keyboard </message> <message name="IDS_ASH_LOGIN_LANGUAGE_SELECTION_SELECT" desc="Label for language selection dropdown">
diff --git a/ash/assistant/ui/main_stage/assistant_footer_view.cc b/ash/assistant/ui/main_stage/assistant_footer_view.cc index 38908ef..ce609bf 100644 --- a/ash/assistant/ui/main_stage/assistant_footer_view.cc +++ b/ash/assistant/ui/main_stage/assistant_footer_view.cc
@@ -82,8 +82,6 @@ const bool setup_completed = Shell::Get()->voice_interaction_controller()->setup_completed(); - LOG(ERROR) << "eyor: setup_completed: " << setup_completed; - // Suggestion container. suggestion_container_ = new SuggestionContainerView(assistant_controller_); suggestion_container_->set_can_process_events_within_subtree(setup_completed); @@ -115,8 +113,6 @@ using assistant::util::CreateOpacityElement; using assistant::util::StartLayerAnimationSequence; - LOG(ERROR) << "eyor: completed: " << completed; - // When the consent state changes, we need to hide/show the appropriate views. views::View* hide_view = completed ? static_cast<views::View*>(opt_in_view_) @@ -134,6 +130,7 @@ StartLayerAnimationSequence(hide_view->layer()->GetAnimator(), CreateLayerAnimationSequence(CreateOpacityElement( 0.f, kAnimationFadeOutDuration)), + // Observe the animation. animation_observer_.get()); // Show the view for the next consent state by fading to 100% opacity with
diff --git a/ash/assistant/ui/main_stage/assistant_main_stage.cc b/ash/assistant/ui/main_stage/assistant_main_stage.cc index 5c92d3aa..91fce95 100644 --- a/ash/assistant/ui/main_stage/assistant_main_stage.cc +++ b/ash/assistant/ui/main_stage/assistant_main_stage.cc
@@ -254,6 +254,13 @@ layout_manager->SetFlexForView(ui_element_container_, 1); // Footer. + // Note that the |footer_| is placed within its own view container so that as + // its visibility changes, its parent container will still reserve the same + // layout space. This prevents jank that would otherwise occur due to + // |ui_element_container_| claiming that empty space. + views::View* footer_container = new views::View(); + footer_container->SetLayoutManager(std::make_unique<views::FillLayout>()); + footer_ = new AssistantFooterView(assistant_controller_); footer_->AddObserver(this); @@ -261,7 +268,8 @@ footer_->SetPaintToLayer(); footer_->layer()->SetFillsBoundsOpaquely(false); - content_layout_container_->AddChildView(footer_); + footer_container->AddChildView(footer_); + content_layout_container_->AddChildView(footer_container); AddChildView(content_layout_container_); }
diff --git a/ash/assistant/ui/main_stage/ui_element_container_view.cc b/ash/assistant/ui/main_stage/ui_element_container_view.cc index 88885ea..9440c847 100644 --- a/ash/assistant/ui/main_stage/ui_element_container_view.cc +++ b/ash/assistant/ui/main_stage/ui_element_container_view.cc
@@ -4,6 +4,8 @@ #include "ash/assistant/ui/main_stage/ui_element_container_view.h" +#include <string> + #include "ash/assistant/assistant_controller.h" #include "ash/assistant/assistant_interaction_controller.h" #include "ash/assistant/model/assistant_response.h" @@ -363,6 +365,11 @@ kUiElementAnimationFadeInDelay), CreateOpacityElement(1.f, kUiElementAnimationFadeInDuration))); } + + // Let screen reader read the query result. + // NOTE: this won't read webview result, which will be triggered with HTML + // ARIA. + NotifyAccessibilityEvent(ax::mojom::Event::kAlert, true); } bool UiElementContainerView::OnAllUiElementsExitAnimationEnded(
diff --git a/ash/assistant/ui/main_stage/ui_element_container_view.h b/ash/assistant/ui/main_stage/ui_element_container_view.h index ff720c2b..89f41f46 100644 --- a/ash/assistant/ui/main_stage/ui_element_container_view.h +++ b/ash/assistant/ui/main_stage/ui_element_container_view.h
@@ -7,6 +7,7 @@ #include <deque> #include <memory> +#include <utility> #include <vector> #include "ash/assistant/model/assistant_interaction_model_observer.h"
diff --git a/ash/components/strings/ash_components_strings_pl.xtb b/ash/components/strings/ash_components_strings_pl.xtb index 1628bc63..afd21151 100644 --- a/ash/components/strings/ash_components_strings_pl.xtb +++ b/ash/components/strings/ash_components_strings_pl.xtb
@@ -11,7 +11,7 @@ <translation id="1299858300159559687">Wydrukuj bieżącą stronę</translation> <translation id="1383876407941801731">Szukaj</translation> <translation id="1454364489140280055"><ph name="CTRL" /><ph name="SEPARATOR1" /><ph name="SHIFT1" /><ph name="SEPARATOR2" /><ph name="G" /> lub <ph name="SHIFT2" /><ph name="SEPARATOR3" /><ph name="ENTER" /></translation> -<translation id="1510238584712386396">Program uruchamiający</translation> +<translation id="1510238584712386396">Menu z aplikacjami</translation> <translation id="152892567002884378">Zwiększ głośność</translation> <translation id="1560480564179555003"><ph name="SHIFT" /><ph name="SEPARATOR1" /><ph name="ALT" /><ph name="SEPARATOR2" /><ph name="L" />, a następnie <ph name="ESC" /></translation> <translation id="1652741121070700329">Przejdź na początek poprzedniego słowa</translation>
diff --git a/ash/components/strings/ash_components_strings_ta.xtb b/ash/components/strings/ash_components_strings_ta.xtb index 77cea00..93c29e13 100644 --- a/ash/components/strings/ash_components_strings_ta.xtb +++ b/ash/components/strings/ash_components_strings_ta.xtb
@@ -195,7 +195,7 @@ <translation id="9162942292291287644"><ph name="QUERY" />க்குத் தேடல் முடிவு எதுவுமில்லை</translation> <translation id="9179672198516322668">பிரபல ஷார்ட்கட்கள்</translation> <translation id="93603345341560814"><ph name="SHIFT" />ஐ அழுத்தி, இணைப்பைக் கிளிக் செய்யவும்</translation> -<translation id="945383118875625837">இணைப்பை இழுத்துச் சென்று புக்மார்க் பட்டியில் வைக்கவும்</translation> +<translation id="945383118875625837">இணைப்பை இழுத்துச் சென்று புக்மார்க் பட்டியில் வைக்கும்</translation> <translation id="969054500339500113">மெனு பட்டியில் ஃபோகஸ் செய்யும்</translation> <translation id="98120814841227350">ஆவணத்தின் இறுதிக்குச் செல்</translation> </translationbundle> \ No newline at end of file
diff --git a/ash/session/session_controller.cc b/ash/session/session_controller.cc index 795bc99..4a845775 100644 --- a/ash/session/session_controller.cc +++ b/ash/session/session_controller.cc
@@ -36,6 +36,7 @@ #include "services/preferences/public/cpp/pref_service_factory.h" #include "services/preferences/public/mojom/preferences.mojom.h" #include "services/service_manager/public/cpp/connector.h" +#include "ui/message_center/message_center.h" using session_manager::SessionState; @@ -497,6 +498,8 @@ is_demo_session_ = true; Shell::Get()->metrics()->StartDemoSessionMetricsRecording(); + // Notifications should be silenced during demo sessions. + message_center::MessageCenter::Get()->SetQuietMode(true); } void SessionController::SetSessionState(SessionState state) {
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb index 2b6f2e3..f4abece 100644 --- a/ash/strings/ash_strings_am.xtb +++ b/ash/strings/ash_strings_am.xtb
@@ -110,6 +110,7 @@ <translation id="2727977024730340865">አነስተኛ ኃይል ወዳለው ባትሪ መሙያ ተሰክቷል። የባትሪ መሙላት አስተማማኝ ላይሆን ይችላል።</translation> <translation id="2761704814324807722">የሁኔታ መሣቢያ፣ ሰዓት <ph name="TIME" />፣ <ph name="BATTERY" /></translation> <translation id="277257480934873581">ከ<ph name="NAME" /> ጋር ዳግም በማገናኘት ላይ</translation> +<translation id="2790844815106384441">ድር ጣቢያዎች የአካባቢ አገልግሎቶችን ወይም የመሣሪያውን ማይክሮፎን፣ ካሜራ ወይም ሌሎች ባህሪያት መጠቀም ይችሉ እንደሆነ ይምረጡ</translation> <translation id="2792498699870441125">Alt+Search</translation> <translation id="2805756323405976993">መተግበሪያዎች</translation> <translation id="2808012452536866044">አብሮ ሲሆን የተሻለ ወደ አዲስ ስልክ ተቀይሯል</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">ምናሌ ዘርጋ</translation> <translation id="3087734570205094154">ግርጌ</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (ብሉቱዝ)</translation> -<translation id="3124698051292518391">ሁሉጊዜ መደርደሪያን አሳይ</translation> <translation id="3126069444801937830">ለማዘመን ዳግም ያስጀምሩ</translation> <translation id="3147142846278915599">ማስጀመሪያ (መተግበሪያዎችን በማመሳሰል ላይ...)</translation> <translation id="315116470104423982">የተንቀሳቃሽ ስልክ ውሂብ</translation> @@ -194,6 +194,7 @@ <translation id="4200057768455216496">የተተከለውን የማጉያ አቋራጭ ተጭነዋል። ሊያበሩት ይፈልጋሉ?</translation> <translation id="4217571870635786043">በቃል ማስጻፍ</translation> <translation id="4261870227682513959">የማሳወቂያ ቅንብሮችን አሳይ። ማሳወቂያዎች ጠፍተዋል</translation> +<translation id="4269883910223712419">የዚህ መሣሪያ የሚከተሉትን የማድረግ ችሎታ አለው፦</translation> <translation id="4274921305979314545">የእርስዎን Chromebook ከእርስዎ ስልክ ጋር ያገናኙ</translation> <translation id="4279490309300973883">በማንጸባረቅ ላይ</translation> <translation id="4292681942966152062"><ph name="NETWORK_NAME" />ን በማግበር ላይ</translation> @@ -221,6 +222,7 @@ <translation id="4734965478015604180">አግድማዊ</translation> <translation id="476166673298332917">የዚህ መሣሪያ አስተዳዳሪ የይለፍ ቃላት እና የተግባቦት ጨምሮ የሁሉንም እንቅስቃሴ መዳረሻ አለው።</translation> <translation id="4776917500594043016">የ<ph name="USER_EMAIL_ADDRESS" /> ይለፍ ቃል</translation> +<translation id="4778095205580009397">የGoogle ረዳቱ በማሳያ ክፍለ-ጊዜ ውስጥ አይገኝም።</translation> <translation id="479989351350248267">ፈልግ</translation> <translation id="4804818685124855865">ግንኙነት አቋርጥ</translation> <translation id="4849058404725798627">ነገርየውን ከቁልፍ ሰሌዳ ትኩረት ጋር አድምቅ</translation> @@ -336,6 +338,7 @@ <translation id="6751826523481687655">የአፈጻጸም ክትትል በርቷል</translation> <translation id="6785414152754474415">ባትሪው <ph name="PERCENTAGE" />% ሙሉ ሆኖ በተጨማሪም ኃይል እየሞላ ነው።</translation> <translation id="6803622936009808957">ምንም የሚደገፉ ጥራቶች ስላልተገኙ ማሳያዎችን ማሳየት አልተቻለም። ይልቁንስ ወደ የተስፋፋ ዴስክቶፕ ሁነታ ተገብቷል።</translation> +<translation id="6814658242098378692">መተግበሪያዎችን፣ ቅጥያዎችን እና ገጽታዎችን ያቀናብሩ</translation> <translation id="6820676911989879663">እረፍት ይውሰዱ!</translation> <translation id="683971173229319003">Search+L</translation> <translation id="6857811139397017780"><ph name="NETWORKSERVICE" />ን አግብር</translation> @@ -359,6 +362,7 @@ <translation id="7168224885072002358">በ<ph name="TIMEOUT_SECONDS" /> ውስጥ ወደ ቀድሞው ጥራት በመመለስ ላይ</translation> <translation id="7256634071279256947">የኋላ ማይክሮፎን</translation> <translation id="726276584504105859">የተከፈለ ማያ ገጽን ለመጠቀም ወደዚህ ይጎትቱ</translation> +<translation id="7303365578352795231">በሌላ መሣሪያ ላይ ምላሽ በመስጠት ላይ።</translation> <translation id="7348093485538360975">የታይታ የቁልፍ ሰሌዳ</translation> <translation id="735745346212279324">የቪ ፒ ኤን ግንኙነት ተቋርጧል</translation> <translation id="7377169924702866686">Caps Lock በርቷል።</translation> @@ -391,6 +395,7 @@ <translation id="7842211907556571265">ከ<ph name="NETWORK_NAME" /> ጋር በመገናኘት ላይ...</translation> <translation id="7842569679327885685">ማስጠንቀቂያ፦ የሙከራ ባህሪ</translation> <translation id="7846634333498149051">የቁልፍ ሰሌዳ</translation> +<translation id="7886169021410746335">የግላዊነት ቅንብሮችን ያስተካክሉ</translation> <translation id="7886277072580235377">የእርስዎ የበይነመረብ ክፍለ-ጊዜ ዘግተው ሲወጡ ይጸዳል። <ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">ኢሜይል ላክ</translation> <translation id="7904094684485781019">የዚህ መለያ አስተዳዳሪ ባለብዙ መለያ መግባትን ከልክሏል።</translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb index 26df59af..4dd8cbe 100644 --- a/ash/strings/ash_strings_ar.xtb +++ b/ash/strings/ash_strings_ar.xtb
@@ -110,6 +110,7 @@ <translation id="2727977024730340865">تمّ توصيل شاحن منخفض الطاقة. لذا قد لا تكون عملية شحن البطارية جديرة بالثقة.</translation> <translation id="2761704814324807722">علبة الحالة، والوقت <ph name="TIME" />، و<ph name="BATTERY" /></translation> <translation id="277257480934873581">إعادة الاتصال بـ <ph name="NAME" /></translation> +<translation id="2790844815106384441">اختيار ما إذا كان يمكن لمواقع الويب استخدام خدمات الموقع الجغرافي أو ميكروفون الجهاز أو الكاميرا أو ميزات أخرى</translation> <translation id="2792498699870441125">Alt+مفتاح البحث</translation> <translation id="2805756323405976993">التطبيقات</translation> <translation id="2808012452536866044">تم ربط خدمة Better Together بهاتف جديد</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">توسيع القائمة</translation> <translation id="3087734570205094154">أسفل</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (بلوتوث)</translation> -<translation id="3124698051292518391">إظهار الرف دائمًا</translation> <translation id="3126069444801937830">إعادة التشغيل للتحديث</translation> <translation id="3147142846278915599">Launcher (مزامنة التطبيقات...)</translation> <translation id="315116470104423982">بيانات الجوال</translation> @@ -194,6 +194,7 @@ <translation id="4200057768455216496">لقد ضغطت على اختصار المُكبِّر الذي تم إرساؤه. هل ترغب في تفعيله؟</translation> <translation id="4217571870635786043">إملاء</translation> <translation id="4261870227682513959">عرض إعدادات الإشعارات. تم إيقاف الإشعارات</translation> +<translation id="4269883910223712419">يمتلك مشرف هذا الجهاز القدرة على ما يلي:</translation> <translation id="4274921305979314545">ربط جهاز Chromebook بهاتفك</translation> <translation id="4279490309300973883">النسخ المطابق</translation> <translation id="4292681942966152062">جارٍ تفعيل <ph name="NETWORK_NAME" /></translation> @@ -221,6 +222,7 @@ <translation id="4734965478015604180">أفقي</translation> <translation id="476166673298332917">يمكن لمشرف هذا الجهاز الوصول إلى جميع الأنشطة، بما في ذلك كلمات المرور والاتصالات.</translation> <translation id="4776917500594043016">كلمة مرور <ph name="USER_EMAIL_ADDRESS" /></translation> +<translation id="4778095205580009397">لا يتوفَّر "مساعد Google" في جلسة تجريبية.</translation> <translation id="479989351350248267">بحث</translation> <translation id="4804818685124855865">قطع الاتصال</translation> <translation id="4849058404725798627">تمييز الكائن باستخدام تركيز لوحة المفاتيح</translation> @@ -337,6 +339,7 @@ <translation id="6751826523481687655">تتبّع الأداء قيْد التفعيل</translation> <translation id="6785414152754474415">اكتمل شحن <ph name="PERCENTAGE" />% من البطارية ويجري شحنها.</translation> <translation id="6803622936009808957">تعذر إجراء النسخ المطابق للعروض نظرًا لعدم العثور على درجات دقة متوافقة. تم الدخول إلى سطح المكتب الممتد بدلاً من ذلك.</translation> +<translation id="6814658242098378692">إدارة التطبيقات والإضافات والمظاهر</translation> <translation id="6820676911989879663">حان وقت الاستراحة</translation> <translation id="683971173229319003">Search+L</translation> <translation id="6857811139397017780">تفعيل <ph name="NETWORKSERVICE" /></translation> @@ -360,6 +363,7 @@ <translation id="7168224885072002358">سيتم الرجوع إلى درجة الدقة القديمة في غضون <ph name="TIMEOUT_SECONDS" /></translation> <translation id="7256634071279256947">الميكروفون الخلفي</translation> <translation id="726276584504105859">السحب هنا لاستخدام وضع تقسيم الشاشة</translation> +<translation id="7303365578352795231">جارٍ الرد على جهاز آخر.</translation> <translation id="7348093485538360975">لوحة المفاتيح على الشاشة</translation> <translation id="735745346212279324">تم قطع اتصال الشبكة الافتراضية الخاصة</translation> <translation id="7377169924702866686">مفتاح Caps Lock في وضع التشغيل.</translation> @@ -392,6 +396,7 @@ <translation id="7842211907556571265">جارٍ الاتصال بشبكة <ph name="NETWORK_NAME" /></translation> <translation id="7842569679327885685">تحذير: ميزة تجريبية</translation> <translation id="7846634333498149051">لوحة المفاتيح</translation> +<translation id="7886169021410746335">ضبط إعدادات الخصوصية</translation> <translation id="7886277072580235377">سيتم محو جلسة الإنترنت عند تسجيل الخروج. <ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">إرسال رسالة إلكترونية</translation> <translation id="7904094684485781019">لقد حظر مشرف هذا الحساب إمكانية الدخول المتعدد.</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb index 83aae6f..1038a11 100644 --- a/ash/strings/ash_strings_bg.xtb +++ b/ash/strings/ash_strings_bg.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">Разгъване на менюто</translation> <translation id="3087734570205094154">Най-долу</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Лавицата да се показва винаги</translation> <translation id="3126069444801937830">Рестартирайте, за да актуализирате</translation> <translation id="3147142846278915599">Стартов панел (приложенията се синхронизират...)</translation> <translation id="315116470104423982">Мобилни данни</translation>
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb index 9140f59..4b7f526 100644 --- a/ash/strings/ash_strings_bn.xtb +++ b/ash/strings/ash_strings_bn.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">মেনুটি বড় করুন</translation> <translation id="3087734570205094154">নিচে</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (ব্লুটুথ)</translation> -<translation id="3124698051292518391">সবসময় শেল্ফ দেখান</translation> <translation id="3126069444801937830">আপডেট করার জন্য পুনরারম্ভ করুন</translation> <translation id="3147142846278915599">লঞ্চার (অ্যাপ সিঙ্ক করা হচ্ছে...)</translation> <translation id="315116470104423982">মোবাইল ডেটা</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb index c24ba96e..e689247 100644 --- a/ash/strings/ash_strings_ca.xtb +++ b/ash/strings/ash_strings_ca.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">Desplega el menú</translation> <translation id="3087734570205094154">Part inferior</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Mostra sempre el prestatge</translation> <translation id="3126069444801937830">Reinicia per actualitzar</translation> <translation id="3147142846278915599">Launcher (s'estan sincronitzant les aplicacions...)</translation> <translation id="315116470104423982">Dades mòbils</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb index 5594511..fe4edc1 100644 --- a/ash/strings/ash_strings_cs.xtb +++ b/ash/strings/ash_strings_cs.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">Rozbalit nabídku</translation> <translation id="3087734570205094154">Až dolů</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Vždy zobrazovat poličku</translation> <translation id="3126069444801937830">Restartovat a aktualizovat</translation> <translation id="3147142846278915599">Spouštěč (synchronizace aplikací...)</translation> <translation id="315116470104423982">Mobilní datové přenosy</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb index b4bbfd6..eb74920 100644 --- a/ash/strings/ash_strings_da.xtb +++ b/ash/strings/ash_strings_da.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">Udvid menu</translation> <translation id="3087734570205094154">Bund</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Vis altid hylde</translation> <translation id="3126069444801937830">Genstart for at opdatere</translation> <translation id="3147142846278915599">Starter (synkronisering af apps...)</translation> <translation id="315116470104423982">Mobildata</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb index 716d33a..b24a7c2 100644 --- a/ash/strings/ash_strings_de.xtb +++ b/ash/strings/ash_strings_de.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">Menü maximieren</translation> <translation id="3087734570205094154">Unten</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Ablage immer zeigen</translation> <translation id="3126069444801937830">Zum Aktualisieren neu starten</translation> <translation id="3147142846278915599">Launcher (Apps werden synchronisiert...)</translation> <translation id="315116470104423982">Mobilfunk</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb index 1f87ef86..52c73fa 100644 --- a/ash/strings/ash_strings_el.xtb +++ b/ash/strings/ash_strings_el.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">Ανάπτυξη μενού</translation> <translation id="3087734570205094154">Κάτω</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Να εμφανίζεται πάντα το ράφι</translation> <translation id="3126069444801937830">Επανεκκίνηση για ενημέρωση</translation> <translation id="3147142846278915599">Εφαρμογή εκκίνησης (συγχρονισμός εφαρμογών…)</translation> <translation id="315116470104423982">Δεδομένα κινητής τηλεφωνίας</translation>
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb index ddde45f4..e4aad70e 100644 --- a/ash/strings/ash_strings_en-GB.xtb +++ b/ash/strings/ash_strings_en-GB.xtb
@@ -138,7 +138,6 @@ <translation id="3081696990447829002">Expand menu</translation> <translation id="3087734570205094154">Bottom</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Always show shelf</translation> <translation id="3126069444801937830">Restart to update</translation> <translation id="3147142846278915599">Launcher (syncing apps...)</translation> <translation id="315116470104423982">Mobile data</translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb index ea372aa..206478e 100644 --- a/ash/strings/ash_strings_es-419.xtb +++ b/ash/strings/ash_strings_es-419.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">Expandir menú</translation> <translation id="3087734570205094154">Inferior</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Mostrar siempre la biblioteca</translation> <translation id="3126069444801937830">Reinicia para actualizar.</translation> <translation id="3147142846278915599">Selector (sincronizando aplicaciones…)</translation> <translation id="315116470104423982">Datos móviles</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb index a1a5f99b..dd7aa29f 100644 --- a/ash/strings/ash_strings_es.xtb +++ b/ash/strings/ash_strings_es.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">Mostrar menú</translation> <translation id="3087734570205094154">Inferior</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Mostrar siempre estantería</translation> <translation id="3126069444801937830">Reinicia el sistema para actualizarlo.</translation> <translation id="3147142846278915599">Menú de aplicaciones (sincronizando aplicaciones...)</translation> <translation id="315116470104423982">Redes móviles</translation>
diff --git a/ash/strings/ash_strings_et.xtb b/ash/strings/ash_strings_et.xtb index 8158d58..2e50d14f 100644 --- a/ash/strings/ash_strings_et.xtb +++ b/ash/strings/ash_strings_et.xtb
@@ -110,6 +110,7 @@ <translation id="2727977024730340865">Ühendatud väikese energiakuluga laadijaga. Aku laadimine võib olla ebastabiilne.</translation> <translation id="2761704814324807722">Olekusalv, kellaaeg <ph name="TIME" />, <ph name="BATTERY" /></translation> <translation id="277257480934873581">Võrguga <ph name="NAME" /> uuesti ühendamine</translation> +<translation id="2790844815106384441">Valige, kas veebisaidid tohivad kasutada asukohateenuseid ja seadme mikrofoni, kaamerat või muid funktsioone</translation> <translation id="2792498699870441125">Alt + otsinguklahv</translation> <translation id="2805756323405976993">Rakendused</translation> <translation id="2808012452536866044">Better Together lülitati uuele telefonile</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">Laienda menüü</translation> <translation id="3087734570205094154">Alaserv</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Kuva alati riiul</translation> <translation id="3126069444801937830">Taaskäivitage värskendamiseks</translation> <translation id="3147142846278915599">Käivitusprogramm (rakenduste sünkroonimine ...)</translation> <translation id="315116470104423982">Mobiilne andmeside</translation> @@ -195,6 +195,7 @@ <translation id="4200057768455216496">Vajutasite dokitud luubi otseteed. Kas soovite luubi sisse lülitada?</translation> <translation id="4217571870635786043">Dikteerimine</translation> <translation id="4261870227682513959">Kuvab märguandeseaded. Märguanded on välja lülitatud</translation> +<translation id="4269883910223712419">Selle seadme administraator saab teha järgmist.</translation> <translation id="4274921305979314545">Ühendage Chromebook oma telefoniga</translation> <translation id="4279490309300973883">Peegeldamine</translation> <translation id="4292681942966152062">Võrgu <ph name="NETWORK_NAME" /> aktiveerimine</translation> @@ -222,6 +223,7 @@ <translation id="4734965478015604180">Horisontaalne</translation> <translation id="476166673298332917">Seadme aministraatoril on juurdepääs kõigile tegevustele, sh paroolidele ja sidele.</translation> <translation id="4776917500594043016">Kasutaja <ph name="USER_EMAIL_ADDRESS" /> parool</translation> +<translation id="4778095205580009397">Google'i assistent ei ole demoseansi puhul saadaval.</translation> <translation id="479989351350248267">otsing</translation> <translation id="4804818685124855865">Katkesta ühendus</translation> <translation id="4849058404725798627">Klaviatuuri fookusega objekti esiletõstmine</translation> @@ -337,6 +339,7 @@ <translation id="6751826523481687655">Toimivuse jälgimine on sisse lülitatud</translation> <translation id="6785414152754474415">Aku on <ph name="PERCENTAGE" />% täis ja seda laetakse.</translation> <translation id="6803622936009808957">Ei saanud kuvasid peegeldada, kuna toetatud eraldusvõimeid ei leitud. Selle asemel siseneti laiendatud töölaua režiimi.</translation> +<translation id="6814658242098378692">Rakenduste, laienduste ja teemade haldamine</translation> <translation id="6820676911989879663">Tehke paus!</translation> <translation id="683971173229319003">Otsing + L</translation> <translation id="6857811139397017780">Aktiveeri <ph name="NETWORKSERVICE" /></translation> @@ -360,6 +363,7 @@ <translation id="7168224885072002358">Ekraan ennistatakse vanale eraldusvõimele <ph name="TIMEOUT_SECONDS" /> pärast</translation> <translation id="7256634071279256947">Tagumine mikrofon</translation> <translation id="726276584504105859">Jagatud ekraani kasutamiseks lohistage siia</translation> +<translation id="7303365578352795231">Vastamine muus seadmes.</translation> <translation id="7348093485538360975">Ekraanil kuvatav klaviatuur</translation> <translation id="735745346212279324">VPN-i ühendus on katkestatud</translation> <translation id="7377169924702866686">Suurtähelukk on sisse lülitatud.</translation> @@ -392,6 +396,7 @@ <translation id="7842211907556571265">Ühenduse loomine võrguga <ph name="NETWORK_NAME" /></translation> <translation id="7842569679327885685">Hoiatus: katseline funktsioon</translation> <translation id="7846634333498149051">Klaviatuur</translation> +<translation id="7886169021410746335">Privaatsusseadete kohandamine</translation> <translation id="7886277072580235377">Teie Interneti-seanss kustutatakse väljalogimisel. <ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">Saada meil</translation> <translation id="7904094684485781019">Selle konto administraator on mitmesse kontosse sisselogimise keelanud.</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb index 420bb256..cf4a1283 100644 --- a/ash/strings/ash_strings_fa.xtb +++ b/ash/strings/ash_strings_fa.xtb
@@ -110,6 +110,7 @@ <translation id="2727977024730340865">باتری به شارژر برق ضعیف متصل است. شارژ باتری ممکن است قابل اطمینان نباشد.</translation> <translation id="2761704814324807722">سینی وضعیت، زمان <ph name="TIME" />، <ph name="BATTERY" /></translation> <translation id="277257480934873581">اتصال مجدد به <ph name="NAME" /></translation> +<translation id="2790844815106384441">انتخاب کند وبسایتها امکان استفاده از خدمات مکان، میکروفون، دوربین یا سایر ویژگیهای دستگاه را داشته باشند یا نه</translation> <translation id="2792498699870441125">Alt+جستجو</translation> <translation id="2805756323405976993">برنامهها</translation> <translation id="2808012452536866044">Better Together به تلفن جدیدی منتقل شد</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">بزرگ کردن منو</translation> <translation id="3087734570205094154">پایین</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (بلوتوث)</translation> -<translation id="3124698051292518391">همیشه قفسه نشان داده شود</translation> <translation id="3126069444801937830">راهاندازی مجدد برای بهروزرسانی</translation> <translation id="3147142846278915599">راه انداز (همگامسازی برنامهها...)</translation> <translation id="315116470104423982">دادههای تلفن همراه</translation> @@ -194,6 +194,7 @@ <translation id="4200057768455216496">میانبر مربوط به ذرهبین متصل را فشار دادید. میخواهید آن را روشن کنید؟</translation> <translation id="4217571870635786043">املا</translation> <translation id="4261870227682513959">نمایش تنظیمات اعلان. اعلانها خاموش است</translation> +<translation id="4269883910223712419">سرپرست این دستگاه میتواند:</translation> <translation id="4274921305979314545">Chromebook را با تلفنتان مرتبط کنید</translation> <translation id="4279490309300973883">بازتاب میشود</translation> <translation id="4292681942966152062">درحال فعال کردن <ph name="NETWORK_NAME" /></translation> @@ -222,6 +223,7 @@ <translation id="4734965478015604180">افقی</translation> <translation id="476166673298332917">سرپرست این سیستم به همه فعالیتها، ازجمله گذرواژهها و ارتباطات دسترسی دارد.</translation> <translation id="4776917500594043016">گذرواژه <ph name="USER_EMAIL_ADDRESS" /></translation> +<translation id="4778095205580009397">«دستیار Google» در جلسه نمایشی در دسترس نیست.</translation> <translation id="479989351350248267">جستجو</translation> <translation id="4804818685124855865">قطع اتصال</translation> <translation id="4849058404725798627">برجسته کردن شیء با فوکوس صفحهکلید</translation> @@ -337,6 +339,7 @@ <translation id="6751826523481687655">ردیابی عملکرد روشن است</translation> <translation id="6785414152754474415">باتری <ph name="PERCENTAGE" /> درصد پر و درحال شارژ است.</translation> <translation id="6803622936009808957">نمایش یک تصویر واحد در چند صفحه نمایش ممکن نیست زیرا وضوح تصویر پشتیبانی شدهای وجود ندارد. بجای آن حالت نمایش دسکتاپ چند بخشی استفاده میشود.</translation> +<translation id="6814658242098378692">مدیریت برنامهها، برنامههای افزودنی و طرحهای زمینه</translation> <translation id="6820676911989879663">استراحت کنید!</translation> <translation id="683971173229319003">Search+L</translation> <translation id="6857811139397017780">فعال سازی <ph name="NETWORKSERVICE" /></translation> @@ -360,6 +363,7 @@ <translation id="7168224885072002358">برگرداندن به وضوح قدیمی در <ph name="TIMEOUT_SECONDS" /></translation> <translation id="7256634071279256947">میکروفون پشت</translation> <translation id="726276584504105859">برای استفاده از تقسیم صفحه، به اینجا بکشید</translation> +<translation id="7303365578352795231">درحال پاسخ دادن در دستگاه دیگر.</translation> <translation id="7348093485538360975">صفحهکلید روی صفحه</translation> <translation id="735745346212279324">VPN قطع است</translation> <translation id="7377169924702866686">Caps Lock روشن است.</translation> @@ -392,6 +396,7 @@ <translation id="7842211907556571265">درحال اتصال به <ph name="NETWORK_NAME" /></translation> <translation id="7842569679327885685">هشدار: ویژگی آزمایشی</translation> <translation id="7846634333498149051">صفحهکلید</translation> +<translation id="7886169021410746335">تنظیمات حریم خصوصی را تنظیم کند</translation> <translation id="7886277072580235377">وقتی از سیستم خارج شوید، جلسه اینترنت پاک خواهد شد. <ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">Send an email (ایمیل ارسال کن)</translation> <translation id="7904094684485781019">سرپرست این حساب اجازه ورود چندگانه به سیستم را نمیدهد.</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb index 9cd12d8..62b57ad4 100644 --- a/ash/strings/ash_strings_fi.xtb +++ b/ash/strings/ash_strings_fi.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">Laajenna valikko</translation> <translation id="3087734570205094154">Alaosa</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Näytä hylly aina</translation> <translation id="3126069444801937830">Päivitä käynnistämällä uudelleen</translation> <translation id="3147142846278915599">Käynnistysohjelma (synkronoidaan sovelluksia…)</translation> <translation id="315116470104423982">Mobiilitiedonsiirto</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb index d3bca4bb..16857c1 100644 --- a/ash/strings/ash_strings_fil.xtb +++ b/ash/strings/ash_strings_fil.xtb
@@ -110,6 +110,7 @@ <translation id="2727977024730340865">Naka-saksak sa isang low-power charger. Maaaring hindi maging tiyak ang pag-charge ng baterya.</translation> <translation id="2761704814324807722">Status tray, oras <ph name="TIME" />, <ph name="BATTERY" /></translation> <translation id="277257480934873581">Muling kumokonekta sa <ph name="NAME" /></translation> +<translation id="2790844815106384441">Piliin kung makakagamit ang mga website ng mga serbisyo ng lokasyon o mikropono, camera, o iba pang feature ng device</translation> <translation id="2792498699870441125">Alt+Search</translation> <translation id="2805756323405976993">Mga App</translation> <translation id="2808012452536866044">Nalipat ang Better Together sa isang bagong telepono</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">I-expand ang menu</translation> <translation id="3087734570205094154">Sa ilalim</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Palaging Ipakita ang Shelf</translation> <translation id="3126069444801937830">I-restart upang mag-update</translation> <translation id="3147142846278915599">Launcher (nagsi-sync ng mga app...)</translation> <translation id="315116470104423982">Data sa mobile</translation> @@ -194,6 +194,7 @@ <translation id="4200057768455216496">Napindot mo ang shortcut para sa naka-dock na magnifier. Gusto mo ba itong i-on?</translation> <translation id="4217571870635786043">Pagdidikta</translation> <translation id="4261870227682513959">Ipakita ang mga setting ng notification. Naka-off ang mga notification</translation> +<translation id="4269883910223712419">May kakayahan ang admin ng device na ito na:</translation> <translation id="4274921305979314545">Ikonekta ang iyong Chromebook sa telepono mo</translation> <translation id="4279490309300973883">Nagmi-mirror</translation> <translation id="4292681942966152062">Ina-activate ang <ph name="NETWORK_NAME" /></translation> @@ -221,6 +222,7 @@ <translation id="4734965478015604180">Horizontal</translation> <translation id="476166673298332917">May access ang administrator ng device na ito sa lahat ng aktibidad, kabilang ang mga password at komunikasyon.</translation> <translation id="4776917500594043016">Password para sa <ph name="USER_EMAIL_ADDRESS" /></translation> +<translation id="4778095205580009397">Hindi available ang Google Assistant sa demo session.</translation> <translation id="479989351350248267">search</translation> <translation id="4804818685124855865">I-disconnect</translation> <translation id="4849058404725798627">I-highlight ang bagay sa pamamagitan ng pag-focus ng keyboard</translation> @@ -336,6 +338,7 @@ <translation id="6751826523481687655">Naka-on ang pag-trace ng performance</translation> <translation id="6785414152754474415">Ang baterya ay <ph name="PERCENTAGE" />% na puno at nagcha-charge.</translation> <translation id="6803622936009808957">Hindi ma-mirror ang mga display dahil walang mga sinusuportahang resolusyon na nakita. Pumasok na lang sa pinalawak na desktop.</translation> +<translation id="6814658242098378692">Pamahalaan ang mga app, extension, at tema</translation> <translation id="6820676911989879663">Magpahinga!</translation> <translation id="683971173229319003">Search+L</translation> <translation id="6857811139397017780">I-activate <ph name="NETWORKSERVICE" /></translation> @@ -359,6 +362,7 @@ <translation id="7168224885072002358">Magre-revert sa lumang resolution sa loob ng <ph name="TIMEOUT_SECONDS" /></translation> <translation id="7256634071279256947">Mikropono sa likod</translation> <translation id="726276584504105859">I-drag dito upang magamit ang split screen</translation> +<translation id="7303365578352795231">Sinasagot sa ibang device.</translation> <translation id="7348093485538360975">Nasa screen na keyboard</translation> <translation id="735745346212279324">Nakadiskonekta ang VPN</translation> <translation id="7377169924702866686">Naka-on ang Caps Lock.</translation> @@ -391,6 +395,7 @@ <translation id="7842211907556571265">Kumokonekta sa <ph name="NETWORK_NAME" /></translation> <translation id="7842569679327885685">Babala: Pang-eskperimentong feature</translation> <translation id="7846634333498149051">Keyboard</translation> +<translation id="7886169021410746335">Isaayos ang mga setting ng privacy</translation> <translation id="7886277072580235377">Maki-clear ang iyong session sa internet kapag nag-sign out ka. <ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">Magpadala ng email</translation> <translation id="7904094684485781019">Hindi pinayagan ng administrator para sa account na ito ang multiple na pag-sign in.</translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb index 1e4c5aa..25576c5 100644 --- a/ash/strings/ash_strings_fr.xtb +++ b/ash/strings/ash_strings_fr.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">Développer le menu</translation> <translation id="3087734570205094154">Bas</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Toujours afficher l'étagère</translation> <translation id="3126069444801937830">Redémarrer pour mettre à jour</translation> <translation id="3147142846278915599">Lanceur d'applications (synchronisation des applications en cours…)</translation> <translation id="315116470104423982">Données mobiles</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb index 562e4427..4fd5000 100644 --- a/ash/strings/ash_strings_gu.xtb +++ b/ash/strings/ash_strings_gu.xtb
@@ -135,7 +135,6 @@ <translation id="3081696990447829002">મેનૂ વિસ્તૃત કરો</translation> <translation id="3087734570205094154">તળિયું</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">હંમેશાં શેલ્ફ બતાવો</translation> <translation id="3126069444801937830">અપડેટ કરવા માટે પુનઃપ્રારંભ કરો</translation> <translation id="3147142846278915599">લોન્ચર (એપ્લિકેશન્સને સમન્વયિત કરી રહ્યું છે..)</translation> <translation id="315116470104423982">મોબાઇલ ડેટા</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb index aa8e132..7d99c02 100644 --- a/ash/strings/ash_strings_hi.xtb +++ b/ash/strings/ash_strings_hi.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">मेन्यू बड़ा करें</translation> <translation id="3087734570205094154">नीचे</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (ब्लूटूथ)</translation> -<translation id="3124698051292518391">आइकॉन हमेशा दिखाएं</translation> <translation id="3126069444801937830">अपडेट करने के लिए पुनरारंभ करें</translation> <translation id="3147142846278915599">लॉन्चर (ऐप्स समन्वयित किए जा रहे हैं...)</translation> <translation id="315116470104423982">मोबाइल डेटा</translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb index 45534f04..c157f3bf 100644 --- a/ash/strings/ash_strings_hr.xtb +++ b/ash/strings/ash_strings_hr.xtb
@@ -110,6 +110,7 @@ <translation id="2727977024730340865">Uređaj je priključen na punjač male snage. Punjenje baterije možda nije pouzdano.</translation> <translation id="2761704814324807722">Traka statusa, vrijeme <ph name="TIME" />, <ph name="BATTERY" /></translation> <translation id="277257480934873581">Ponovno povezivanje s mrežom <ph name="NAME" /></translation> +<translation id="2790844815106384441">Odaberite mogu li web-lokacije upotrebljavati usluge lokacije odnosno mikrofon, fotoaparat ili druge značajke uređaja</translation> <translation id="2792498699870441125">Alt + Pretraživanje</translation> <translation id="2805756323405976993">Aplikacije</translation> <translation id="2808012452536866044">Better Together prebačen je na novi telefon</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">Proširi izbornik</translation> <translation id="3087734570205094154">Donji</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Uvijek prikaži policu</translation> <translation id="3126069444801937830">Ponovo pokrenite za ažuriranje</translation> <translation id="3147142846278915599">Pokretač (sinkronizacija aplikacija...)</translation> <translation id="315116470104423982">Mobilni podaci</translation> @@ -194,6 +194,7 @@ <translation id="4200057768455216496">Pritisnuli ste prečac za usidreno povećalo. Želite li ga uključiti?</translation> <translation id="4217571870635786043">Diktat</translation> <translation id="4261870227682513959">Prikaz postavki obavijesti. Obavijesti su isključene</translation> +<translation id="4269883910223712419">Administrator ovog uređaja ima sljedeće mogućnosti:</translation> <translation id="4274921305979314545">Povežite svoj Chromebook sa svojim telefonom</translation> <translation id="4279490309300973883">Zrcaljenje</translation> <translation id="4292681942966152062">Aktiviranje mreže <ph name="NETWORK_NAME" /></translation> @@ -221,6 +222,7 @@ <translation id="4734965478015604180">Vodoravno</translation> <translation id="476166673298332917">Administrator ovog uređaja pristupio je cjelokupnoj aktivnosti, uključujući zaporke i komunikacije.</translation> <translation id="4776917500594043016">Zaporka za adresu <ph name="USER_EMAIL_ADDRESS" /></translation> +<translation id="4778095205580009397">Google asistent nije dostupan u demosesiji.</translation> <translation id="479989351350248267">search</translation> <translation id="4804818685124855865">Prekini vezu</translation> <translation id="4849058404725798627">Istakni objekt fokusom na tipkovnici</translation> @@ -336,6 +338,7 @@ <translation id="6751826523481687655">Uključeno je praćenje izvedbe</translation> <translation id="6785414152754474415">Baterija je <ph name="PERCENTAGE" />% puna i puni se.</translation> <translation id="6803622936009808957">Nije bilo moguće zrcaliti zaslone jer nije pronađena nijedna podržana razlučivost. Umjesto toga proširena je radna površina.</translation> +<translation id="6814658242098378692">Upravljanje aplikacijama, proširenjima i temama</translation> <translation id="6820676911989879663">Odmorite se!</translation> <translation id="683971173229319003">Pretraživanje + L</translation> <translation id="6857811139397017780">Aktiviraj <ph name="NETWORKSERVICE" /></translation> @@ -359,6 +362,7 @@ <translation id="7168224885072002358">Vraćanje na staru razlučivost za <ph name="TIMEOUT_SECONDS" /></translation> <translation id="7256634071279256947">Stražnji mikrofon</translation> <translation id="726276584504105859">Povucite ovdje da biste upotrebljavali podijeljeni zaslon</translation> +<translation id="7303365578352795231">Odgovaranje na drugom uređaju.</translation> <translation id="7348093485538360975">Tipkovnica na zaslonu</translation> <translation id="735745346212279324">Veza s VPN-om prekinuta</translation> <translation id="7377169924702866686">Uključena je opcija Caps Lock.</translation> @@ -391,6 +395,7 @@ <translation id="7842211907556571265">Povezivanje s mrežom <ph name="NETWORK_NAME" /></translation> <translation id="7842569679327885685">Upozorenje: eksperimentalna značajka</translation> <translation id="7846634333498149051">Tipkovnica</translation> +<translation id="7886169021410746335">Prilagodba postavki privatnosti</translation> <translation id="7886277072580235377">Vaša će se internetska sesija izbrisati kada se odjavite. <ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">Pošalji e-poruku</translation> <translation id="7904094684485781019">Administrator ovog računa onemogućio je višestruku prijavu.</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb index 09649a9..7528bc50 100644 --- a/ash/strings/ash_strings_hu.xtb +++ b/ash/strings/ash_strings_hu.xtb
@@ -110,6 +110,7 @@ <translation id="2727977024730340865">Kis teljesítményű töltőt csatlakoztatott. Az akkumulátor töltése nem megbízható.</translation> <translation id="2761704814324807722">Állapotterület, idő: <ph name="TIME" />, <ph name="BATTERY" /></translation> <translation id="277257480934873581">Újracsatlakozás a következőhöz: <ph name="NAME" /></translation> +<translation id="2790844815106384441">Válassza ki, hogy a webhelyek használhatják-e a helyszolgáltatásokat vagy az eszköz mikrofonját, kameráját vagy más funkcióit</translation> <translation id="2792498699870441125">Alt + Keresés</translation> <translation id="2805756323405976993">Alkalmazások</translation> <translation id="2808012452536866044">Better Together – új telefonra váltott</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">Menü kibontása</translation> <translation id="3087734570205094154">Alja</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Mindig látsszon a polc</translation> <translation id="3126069444801937830">Indítsa újra a frissítéshez</translation> <translation id="3147142846278915599">Indító (alkalmazások szinkronizálása…)</translation> <translation id="315116470104423982">Mobiladatok</translation> @@ -195,6 +195,7 @@ <translation id="4200057768455216496">Lenyomta a dokkolt nagyító billentyűparancsát. Bekapcsolja a funkciót?</translation> <translation id="4217571870635786043">Diktálás</translation> <translation id="4261870227682513959">Az értesítési beállítások megjelenítése. Az értesítések ki vannak kapcsolva</translation> +<translation id="4269883910223712419">Az eszköz rendszergazdája a következőket végezheti el:</translation> <translation id="4274921305979314545">Csatlakozás a Chromebookhoz telefonjával</translation> <translation id="4279490309300973883">Tükrözés</translation> <translation id="4292681942966152062"><ph name="NETWORK_NAME" /> aktiválása</translation> @@ -222,6 +223,7 @@ <translation id="4734965478015604180">Vízszintes</translation> <translation id="476166673298332917">Az eszköz rendszergazdája hozzáfér az összes tevékenységhez, mindennemű kommunikációhoz és a jelszavakhoz.</translation> <translation id="4776917500594043016">A(z) <ph name="USER_EMAIL_ADDRESS" /> fiókhoz tartozó jelszó</translation> +<translation id="4778095205580009397">A Google Segéd nem áll rendelkezésre bemutató munkamenetben.</translation> <translation id="479989351350248267">search</translation> <translation id="4804818685124855865">Kapcsolat bontása</translation> <translation id="4849058404725798627">Objektum kiemelése billentyűzetfókusszal</translation> @@ -337,6 +339,7 @@ <translation id="6751826523481687655">A teljesítménykövetés be van kapcsolva</translation> <translation id="6785414152754474415">Az akkumulátor töltöttsége <ph name="PERCENTAGE" />%, és töltődik.</translation> <translation id="6803622936009808957">A kijelzők tükrözése sikertelen, mivel nem található támogatott felbontás. Ehelyett kiterjesztett asztal módba váltott a rendszer.</translation> +<translation id="6814658242098378692">Alkalmazások, bővítmények és témák kezelése</translation> <translation id="6820676911989879663">Tartson egy kis szünetet!</translation> <translation id="683971173229319003">Keresés+L</translation> <translation id="6857811139397017780"><ph name="NETWORKSERVICE" /> aktiválása</translation> @@ -360,6 +363,7 @@ <translation id="7168224885072002358">Visszaállítás a régi felbontásra <ph name="TIMEOUT_SECONDS" /> mp múlva</translation> <translation id="7256634071279256947">Hátulsó mikrofon</translation> <translation id="726276584504105859">Húzza ide az osztott képernyő használatához</translation> +<translation id="7303365578352795231">Válasz másik eszközön.</translation> <translation id="7348093485538360975">Képernyő-billentyűzet</translation> <translation id="735745346212279324">A VPN nincs csatlakoztatva</translation> <translation id="7377169924702866686">A Caps Lock be van kapcsolva.</translation> @@ -392,6 +396,7 @@ <translation id="7842211907556571265">Csatlakozás a(z) <ph name="NETWORK_NAME" /> hálózathoz</translation> <translation id="7842569679327885685">Figyelem! Kísérleti funkció</translation> <translation id="7846634333498149051">Billentyűzet</translation> +<translation id="7886169021410746335">Adatvédelmi beállítások módosítása</translation> <translation id="7886277072580235377">Kijelentkezés után az internetes munkamenet törlődik. <ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">E-mail küldése</translation> <translation id="7904094684485781019">A fiók rendszergazdája letiltotta a többfiókos bejelentkezést.</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb index a784d61c..cf7421a2 100644 --- a/ash/strings/ash_strings_id.xtb +++ b/ash/strings/ash_strings_id.xtb
@@ -110,6 +110,7 @@ <translation id="2727977024730340865">Dipasang ke pengisi daya rendah. Pengisian daya baterai mungkin tidak dapat diandalkan.</translation> <translation id="2761704814324807722">Baki status, waktu <ph name="TIME" />, <ph name="BATTERY" /></translation> <translation id="277257480934873581">Menyambungkan lagi ke <ph name="NAME" /></translation> +<translation id="2790844815106384441">Memilih apakah situs dapat menggunakan layanan lokasi atau mikrofon perangkat, kamera, atau fitur lainnya</translation> <translation id="2792498699870441125">Alt+Telusuri</translation> <translation id="2805756323405976993">Apl</translation> <translation id="2808012452536866044">Better Together dialihkan ke ponsel baru</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">Luaskan menu</translation> <translation id="3087734570205094154">Bawah</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Selalu Tampilkan Rak</translation> <translation id="3126069444801937830">Mulai ulang untuk memperbarui</translation> <translation id="3147142846278915599">Peluncur (menyinkronkan aplikasi...)</translation> <translation id="315116470104423982">Data seluler</translation> @@ -194,6 +194,7 @@ <translation id="4200057768455216496">Anda menekan pintasan untuk kaca pembesar yang terpasang di dok. Ingin mengaktifkannya?</translation> <translation id="4217571870635786043">Dikte</translation> <translation id="4261870227682513959">Tampilkan setelan notifikasi. Notifikasi nonaktif.</translation> +<translation id="4269883910223712419">Admin perangkat ini memiliki kemampuan untuk:</translation> <translation id="4274921305979314545">Hubungkan Chromebook dengan ponsel</translation> <translation id="4279490309300973883">Mencerminkan</translation> <translation id="4292681942966152062">Mengaktifkan <ph name="NETWORK_NAME" /></translation> @@ -221,6 +222,7 @@ <translation id="4734965478015604180">Horizontal</translation> <translation id="476166673298332917">Administrator perangkat ini memiliki akses ke semua aktivitas, termasuk sandi dan komunikasi.</translation> <translation id="4776917500594043016">Sandi untuk <ph name="USER_EMAIL_ADDRESS" /></translation> +<translation id="4778095205580009397">Asisten Google tidak tersedia dalam sesi demo.</translation> <translation id="479989351350248267">search</translation> <translation id="4804818685124855865">Putuskan</translation> <translation id="4849058404725798627">Sorot objek dengan fokus keyboard</translation> @@ -336,6 +338,7 @@ <translation id="6751826523481687655">Pelacakan performa diaktifkan</translation> <translation id="6785414152754474415">Baterai sudah terisi <ph name="PERCENTAGE" />% dan masih mengisi.</translation> <translation id="6803622936009808957">Tidak dapat menggandakan tampilan karena tidak ditemukan resolusi yang didukung. Memasuki desktop yang diperluas sebagai gantinya.</translation> +<translation id="6814658242098378692">Mengelola aplikasi, ekstensi, dan tema</translation> <translation id="6820676911989879663">Istirahatlah sebentar</translation> <translation id="683971173229319003">Search+L</translation> <translation id="6857811139397017780">Aktifkan <ph name="NETWORKSERVICE" /></translation> @@ -359,6 +362,7 @@ <translation id="7168224885072002358">Mengembalikan ke resolusi lama dalam <ph name="TIMEOUT_SECONDS" /></translation> <translation id="7256634071279256947">Mikrofon belakang</translation> <translation id="726276584504105859">Tarik ke sini untuk menggunakan layar terpisah</translation> +<translation id="7303365578352795231">Menjawab di perangkat lain.</translation> <translation id="7348093485538360975">Keyboard di layar</translation> <translation id="735745346212279324">VPN terputus</translation> <translation id="7377169924702866686">Caps Lock aktif.</translation> @@ -391,6 +395,7 @@ <translation id="7842211907556571265">Menyambungkan ke <ph name="NETWORK_NAME" /></translation> <translation id="7842569679327885685">Peringatan: Fitur eksperimental</translation> <translation id="7846634333498149051">Keyboard</translation> +<translation id="7886169021410746335">Menyesuaikan setelan privasi</translation> <translation id="7886277072580235377">Sesi internet Anda akan dihapus saat Anda logout. <ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">Kirim email</translation> <translation id="7904094684485781019">Administrator untuk akun ini menonaktifkan fitur masuk banyak akun.</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb index 25d97d2..a2c6406 100644 --- a/ash/strings/ash_strings_it.xtb +++ b/ash/strings/ash_strings_it.xtb
@@ -110,6 +110,7 @@ <translation id="2727977024730340865">Collegato a un caricabatterie a basso consumo. La carica della batteria potrebbe non essere affidabile.</translation> <translation id="2761704814324807722">Barra di stato, ora: <ph name="TIME" />, <ph name="BATTERY" /></translation> <translation id="277257480934873581">Riconnessione a <ph name="NAME" /> in corso</translation> +<translation id="2790844815106384441">Scegliere se consentire o meno ai siti web di usare i servizi di geolocalizzazione oppure il microfono, la fotocamera o altre funzionalità del dispositivo</translation> <translation id="2792498699870441125">Alt+tasto per la ricerca</translation> <translation id="2805756323405976993">App</translation> <translation id="2808012452536866044">Funzione Better Together passata su un nuovo telefono</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">Espandi il menu</translation> <translation id="3087734570205094154">In basso</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Mostra sempre shelf</translation> <translation id="3126069444801937830">Riavvia per aggiornare</translation> <translation id="3147142846278915599">Avvio applicazioni (sincronizzazione delle app...)</translation> <translation id="315116470104423982">Dati mobili</translation> @@ -195,6 +195,7 @@ <translation id="4200057768455216496">Hai premuto la scorciatoia per la lente d'ingrandimento ancorata. Vuoi attivarla?</translation> <translation id="4217571870635786043">Dettatura</translation> <translation id="4261870227682513959">Mostra impostazioni di notifica. Le notifiche sono disattivate</translation> +<translation id="4269883910223712419">L'amministratore di questo dispositivo ha la possibilità di:</translation> <translation id="4274921305979314545">Connetti il Chromebook al telefono</translation> <translation id="4279490309300973883">Mirroring</translation> <translation id="4292681942966152062">Attivazione della rete <ph name="NETWORK_NAME" /></translation> @@ -222,6 +223,7 @@ <translation id="4734965478015604180">Orizzontale</translation> <translation id="476166673298332917">L'amministratore di questo dispositivo ha accesso a tutte le attività, comprese password e comunicazioni.</translation> <translation id="4776917500594043016">Password per <ph name="USER_EMAIL_ADDRESS" /></translation> +<translation id="4778095205580009397">L'Assistente Google non è disponibile in una sessione demo.</translation> <translation id="479989351350248267">ricerca</translation> <translation id="4804818685124855865">Disconnetti</translation> <translation id="4849058404725798627">Evidenzia oggetto con stato attivo della tastiera</translation> @@ -337,6 +339,7 @@ <translation id="6751826523481687655">La traccia delle prestazioni è attiva</translation> <translation id="6785414152754474415">Percentuale di caricamento batteria: <ph name="PERCENTAGE" />%. La batteria è in carica.</translation> <translation id="6803622936009808957">Impossibile duplicare i display perché non sono state trovate risoluzioni supportate. È stato attivato il desktop esteso.</translation> +<translation id="6814658242098378692">Gestire app, estensioni e temi</translation> <translation id="6820676911989879663">Fai una pausa!</translation> <translation id="683971173229319003">Tasto di ricerca+L</translation> <translation id="6857811139397017780">Attiva <ph name="NETWORKSERVICE" /></translation> @@ -360,6 +363,7 @@ <translation id="7168224885072002358">Ripristino della risoluzione precedente tra <ph name="TIMEOUT_SECONDS" /></translation> <translation id="7256634071279256947">Microfono posteriore</translation> <translation id="726276584504105859">Trascina qui per utilizzare la modalità Schermo diviso</translation> +<translation id="7303365578352795231">Risposta su un altro dispositivo.</translation> <translation id="7348093485538360975">Tastiera sullo schermo</translation> <translation id="735745346212279324">VPN scollegata</translation> <translation id="7377169924702866686">La funzione Bloc maiusc è attiva.</translation> @@ -392,6 +396,7 @@ <translation id="7842211907556571265">Connessione alla rete <ph name="NETWORK_NAME" /></translation> <translation id="7842569679327885685">Avviso: funzione sperimentale</translation> <translation id="7846634333498149051">Tastiera</translation> +<translation id="7886169021410746335">Modificare le impostazioni sulla privacy</translation> <translation id="7886277072580235377">La sessione Internet verrà cancellata al momento dell'uscita dall'account. <ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">Invia un'email</translation> <translation id="7904094684485781019">L'amministratore di questo account ha bloccato l'accesso simultaneo.</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb index 16b76e5..1104d1448 100644 --- a/ash/strings/ash_strings_iw.xtb +++ b/ash/strings/ash_strings_iw.xtb
@@ -23,7 +23,7 @@ <translation id="1279938420744323401"><ph name="DISPLAY_NAME" /> (<ph name="ANNOTATION" />)</translation> <translation id="1290331692326790741">אות חלש</translation> <translation id="1293264513303784526">מכשיר עם יציאת USB-C (יציאה שמאלית)</translation> -<translation id="1294929383540927798">שינוי של הגדרות ההתראות במסך הנעילה</translation> +<translation id="1294929383540927798">שינוי ההגדרות של ההתראות במסך הנעילה</translation> <translation id="1302880136325416935">צפייה בהגדרות Bluetooth. <ph name="STATE_TEXT" /></translation> <translation id="1346748346194534595">ימינה</translation> <translation id="1351937230027495976">כיווץ התפריט</translation> @@ -41,7 +41,7 @@ <translation id="1570871743947603115">הפעלה או השבתה של Bluetooth. <ph name="STATE_TEXT" /></translation> <translation id="1608626060424371292">הסר את המשתמש הזה</translation> <translation id="1621499497873603021">הזמן שנותר עד להתרוקנות הסוללה, <ph name="TIME_LEFT" /></translation> -<translation id="1654477262762802994">הפעלה של שאלה קולית</translation> +<translation id="1654477262762802994">הפעלה של שאילתה קולית</translation> <translation id="1658406695958299976">מצטערים, עדיין אי אפשר לאמת את הסיסמה שלך. חשוב לדעת: אם שינית לאחרונה את הסיסמה, הסיסמה החדשה תיכנס לתוקף רק אחרי יציאה מהחשבון. צריך להשתמש כאן בסיסמה הישנה.</translation> <translation id="1677472565718498478">זמן נותר - <ph name="TIME" /></translation> <translation id="1698760176351776263">כתובת IPv6: <ph name="ADDRESS" /></translation> @@ -137,7 +137,6 @@ <translation id="3081696990447829002">הרחבת התפריט</translation> <translation id="3087734570205094154">תחתית</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">יש להציג תמיד את המדף</translation> <translation id="3126069444801937830">הפעל מחדש כדי לעדכן</translation> <translation id="3147142846278915599">מפעיל היישומים (מסנכרן יישומים...)</translation> <translation id="315116470104423982">נתוני נייד</translation> @@ -180,7 +179,7 @@ <translation id="385051799172605136">חזור</translation> <translation id="3891340733213178823">הקש פעמיים על Ctrl+Shift+Q כדי לצאת.</translation> <translation id="3893630138897523026">ChromeVox (משוב קולי)</translation> -<translation id="3897533311200664389">הפעלה של שאלת טקסט</translation> +<translation id="3897533311200664389">הפעלה של שאילתה בהקלדה</translation> <translation id="3899995891769452915">קלט קולי</translation> <translation id="3900355044994618856">הסשן יסתיים בעוד <ph name="SESSION_TIME_REMAINING" /></translation> <translation id="3901991538546252627">מתחבר אל: <ph name="NAME" /></translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb index 3fcca0c..5574282 100644 --- a/ash/strings/ash_strings_ja.xtb +++ b/ash/strings/ash_strings_ja.xtb
@@ -110,6 +110,7 @@ <translation id="2727977024730340865">低電力の充電器に接続しています。バッテリーが充電されない可能性があります。</translation> <translation id="2761704814324807722">ステータス トレイ、時刻 <ph name="TIME" />、<ph name="BATTERY" /></translation> <translation id="277257480934873581"><ph name="NAME" /> に再接続しています</translation> +<translation id="2790844815106384441">ウェブサイトで位置情報サービスまたは端末のマイクやカメラなどの機能を使用できるように指定する</translation> <translation id="2792498699870441125">Alt+ 検索</translation> <translation id="2805756323405976993">アプリ</translation> <translation id="2808012452536866044">Better Together でスマートフォンが新しいものに切り替えられました</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">メニューを展開</translation> <translation id="3087734570205094154">下</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" />(Bluetooth)</translation> -<translation id="3124698051292518391">シェルフを常に表示</translation> <translation id="3126069444801937830">再起動して更新</translation> <translation id="3147142846278915599">ランチャー(アプリを同期中...)</translation> <translation id="315116470104423982">モバイル データ</translation> @@ -194,6 +194,7 @@ <translation id="4200057768455216496">拡大鏡(ドッキング)のショートカットを押しました。この機能をオンにしますか?</translation> <translation id="4217571870635786043">音声入力</translation> <translation id="4261870227682513959">通知設定を表示します。通知はオフです</translation> +<translation id="4269883910223712419">この端末の管理者は以下を行うことができます。</translation> <translation id="4274921305979314545">Chromebook とスマートフォンを接続できます</translation> <translation id="4279490309300973883">ミラーリング</translation> <translation id="4292681942966152062"><ph name="NETWORK_NAME" /> を有効化しています</translation> @@ -221,6 +222,7 @@ <translation id="4734965478015604180">横</translation> <translation id="476166673298332917">この端末の管理者は、パスワードや通信内容を含むすべてのアクティビティにアクセスできます。</translation> <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> のパスワード</translation> +<translation id="4778095205580009397">Google アシスタントは、デモセッションではご利用いただけません。</translation> <translation id="479989351350248267">検索</translation> <translation id="4804818685124855865">切断</translation> <translation id="4849058404725798627">キーボードのフォーカスがある項目をハイライト表示する</translation> @@ -336,6 +338,7 @@ <translation id="6751826523481687655">パフォーマンス追跡機能が有効になっています</translation> <translation id="6785414152754474415">バッテリー残量: <ph name="PERCENTAGE" />%、充電しています。</translation> <translation id="6803622936009808957">サポートされている解像度が見つからなかったため、ディスプレイをミラーリングできませんでした。代わりに拡張デスクトップ モードに切り替えました。</translation> +<translation id="6814658242098378692">アプリケーション、拡張機能、テーマを管理する</translation> <translation id="6820676911989879663">休憩の時間です!</translation> <translation id="683971173229319003">Search+L</translation> <translation id="6857811139397017780"><ph name="NETWORKSERVICE" /> を有効にする</translation> @@ -359,6 +362,7 @@ <translation id="7168224885072002358"><ph name="TIMEOUT_SECONDS" /> 秒後に元の解像度に戻ります</translation> <translation id="7256634071279256947">後方のマイク</translation> <translation id="726276584504105859">分割画面を使用するにはここにドラッグします</translation> +<translation id="7303365578352795231">別の端末で応答しています。</translation> <translation id="7348093485538360975">画面キーボード</translation> <translation id="735745346212279324">VPN が切断されました</translation> <translation id="7377169924702866686">CapsLock @@ -392,6 +396,7 @@ <translation id="7842211907556571265"><ph name="NETWORK_NAME" /> に接続しています</translation> <translation id="7842569679327885685">警告: 試験運用版の機能</translation> <translation id="7846634333498149051">キーボード</translation> +<translation id="7886169021410746335">プライバシー設定を調整する</translation> <translation id="7886277072580235377">ログアウトするとインターネット セッションは終了します。<ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">メールを送って</translation> <translation id="7904094684485781019">このアカウントの管理者がマルチ ログインを許可していません。</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb index 89399cb..321607af 100644 --- a/ash/strings/ash_strings_kn.xtb +++ b/ash/strings/ash_strings_kn.xtb
@@ -137,8 +137,7 @@ <translation id="3081696990447829002">ಮೆನುವನ್ನು ವಿಸ್ತರಿಸಿ</translation> <translation id="3087734570205094154">ಕೆಳಗೆ</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (ಬ್ಲೂಟೂತ್)</translation> -<translation id="3124698051292518391">ಯಾವಾಗಲೂ ಶೆಲ್ಫ್ ಅನ್ನು ತೋರಿಸಿ</translation> -<translation id="3126069444801937830">ನವೀಕರಿಸಲು ಮರುಪ್ರಾರಂಭಿಸಿ</translation> +<translation id="3126069444801937830">ಅಪ್ಡೇಟ್ ಮಾಡಲು ಮರುಪ್ರಾರಂಭಿಸಿ</translation> <translation id="3147142846278915599">ಲಾಂಚರ್ (ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಸಿಂಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ...)</translation> <translation id="315116470104423982">ಮೊಬೈಲ್ ಡೇಟಾ</translation> <translation id="3151786313568798007">ಓರಿಯಂಟೇಶನ್</translation> @@ -225,7 +224,7 @@ <translation id="4804818685124855865">ಡಿಸ್ಕನೆಕ್ಟ್</translation> <translation id="4849058404725798627">ಕೀಬೋರ್ಡ್ ಫೋಕಸ್ ಮೂಲಕ ವಿಷಯವನ್ನು ಎದ್ದುಗಾಣಿಸಿ</translation> <translation id="4872237917498892622">Alt+ಹುಡುಕಾಟ ಅಥವಾ Shift</translation> -<translation id="4890187583552566966">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು Google ಸಹಾಯಕವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ.</translation> +<translation id="4890187583552566966">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು Google ಅಸಿಸ್ಟೆಂಟ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ.</translation> <translation id="4893522937062257019">ಲಾಕ್ ಪರದೆಯಲ್ಲಿ</translation> <translation id="4895488851634969361">ಬ್ಯಾಟರಿ ತುಂಬಿದೆ.</translation> <translation id="490375751687810070">ಲಂಬ</translation> @@ -294,7 +293,7 @@ <translation id="6047696787498798094">ನೀವು ಬೇರೊಬ್ಬ ಬಳಕೆದಾರರಿಗೆ ಬದಲಾಯಿಸಿದಾಗ ಸ್ಕ್ರೀನ್ ಹಂಚಿಕೆಯು ನಿಲ್ಲುತ್ತದೆ. ನೀವು ಮುಂದುವರಿಸಲು ಬಯಸುತ್ತೀರಾ?</translation> <translation id="6062360702481658777"><ph name="LOGOUT_TIME_LEFT" /> ನಲ್ಲಿ ನಿಮ್ಮನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸೈನ್ಔಟ್ ಮಾಡಲಾಗುತ್ತದೆ.</translation> <translation id="6064337552080329342">ಕ್ಷಮಿಸಿ, ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation> -<translation id="607652042414456612">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳ ಸಮೀಪದಲ್ಲಿ ಅನ್ವೇಷಿಸಬಹುದಾಗಿದೆ ಮತ್ತು <ph name="ADDRESS" /> ವಿಳಾಸದೊಂದಿಗೆ "<ph name="NAME" />" ರೂಪದಲ್ಲಿ ಗೋಚರಿಸುತ್ತದೆ</translation> +<translation id="607652042414456612">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಸಮೀಪದಲ್ಲಿರುವ ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳು ಅನ್ವೇಷಿಸಬಹುದಾಗಿದೆ ಮತ್ತು <ph name="ADDRESS" /> ವಿಳಾಸದೊಂದಿಗೆ "<ph name="NAME" />" ರೂಪದಲ್ಲಿ ಗೋಚರಿಸುತ್ತದೆ</translation> <translation id="6106745654298855237"><ph name="POWER_SOURCE" /> ಚಾರ್ಜ್ ಆಗುತ್ತಿದೆ</translation> <translation id="615957422585914272">ಆನ್-ಸ್ಕ್ರೀನ್ ಕೀಬೋರ್ಡ್ ತೋರಿಸು</translation> <translation id="6164005077879661055">ಈ ಮೇಲ್ವಿಚಾರಣೆ ಬಳಕೆದಾರರನ್ನು ಒಮ್ಮೆ ತೆಗೆದುಹಾಕಿದರೆ, ಮೇಲ್ವಿಚಾರಣೆ ಬಳಕೆದಾರರೊಂದಿಗೆ ಸಂಯೋಜಿತವಾಗಿರುವ ಎಲ್ಲ ಫೈಲ್ಗಳು ಮತ್ತು ಸ್ಥಳೀಯ ಡೇಟಾವನ್ನು ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಲಾಗುತ್ತದೆ. ಈ ಮೇಲ್ವಿಚಾರಣೆ ಬಳಕೆದಾರಿಗಾಗಿ ಭೇಟಿ ನೀಡಲಾದ ವೆಬ್ಸೈಟ್ಗಳು ಮತ್ತು ಸೆಟ್ಟಿಂಗ್ಗಳು <ph name="MANAGEMENT_URL" /> ನಲ್ಲಿ ನಿರ್ವಾಹಕರಿಗೆ ಈಗಲೂ ಗೋಚರಿಸಬಹುದು.</translation> @@ -324,12 +323,12 @@ <translation id="6542521951477560771"><ph name="RECEIVER_NAME" /> ಗೆ ಬಿತ್ತರಿಸಲಾಗುತ್ತಿದೆ</translation> <translation id="6585808820553845416">ಸೆಷನ್ <ph name="SESSION_TIME_REMAINING" /> ರಲ್ಲಿ ಕೊನೆಗೊಳ್ಳಲಿದೆ.</translation> <translation id="6627638273713273709">ಹುಡುಕಾಟ+Shift+K</translation> -<translation id="6650933572246256093">ಬ್ಲೂಟೂತ್ ಸಾಧನವು "<ph name="DEVICE_NAME" />" ಜೋಡಣೆಗಾಗಿ ಅನುಮತಿಯನ್ನು ಬಯಸುತ್ತದೆ. ಆ ಸಾಧನದಲ್ಲಿ ಈ ಪಾಸ್ಕೀಲಿಯನ್ನು ನಮೂದಿಸಿ: <ph name="PASSKEY" /></translation> +<translation id="6650933572246256093">ಬ್ಲೂಟೂತ್ ಸಾಧನವು "<ph name="DEVICE_NAME" />" ಜೋಡಣೆಗಾಗಿ ಅನುಮತಿಯನ್ನು ಬಯಸುತ್ತಿದೆ. ಆ ಸಾಧನದಲ್ಲಿ ಈ ಪಾಸ್ಕೀಲಿಯನ್ನು ನಮೂದಿಸಿ: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">ಪಾಸ್ವರ್ಡ್</translation> <translation id="6691659475504239918">ಹುಡುಕಾಟ+Shift+H</translation> <translation id="6696025732084565524">ನಿಮ್ಮ ಪ್ರತ್ಯೇಕಿಸಬಹುದಾದ ಕೀಬೋರ್ಡ್ಗೆ ವಿಷಮಸ್ಥಿತಿ ಅಪ್ಡೇಟ್ನ ಅಗತ್ಯವಿದೆ</translation> <translation id="6700713906295497288">IME ಮೆನು ಬಟನ್</translation> -<translation id="6713285437468012787">ಬ್ಲೂಟೂತ್ ಸಾಧನವನ್ನು "<ph name="DEVICE_NAME" />" ಜೋಡಿಸಲಾಗಿದೆ ಮತ್ತು ಇದೀಗ ಎಲ್ಲಾ ಬಳಕೆದಾರರಿಗೂ ಲಭ್ಯವಿದೆ. ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ಈ ಜೋಡಣೆಯನ್ನು ತೆಗೆದುಹಾಕಬಹುದು.</translation> +<translation id="6713285437468012787">ಬ್ಲೂಟೂತ್ ಸಾಧನವನ್ನು "<ph name="DEVICE_NAME" />" ಜೋಡಿಸಲಾಗಿದೆ ಮತ್ತು ಇದೀಗ ಎಲ್ಲಾ ಬಳಕೆದಾರರಿಗೂ ಲಭ್ಯವಿದೆ. ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ಈ ಜೋಡಣೆಯನ್ನು ತೆಗೆದುಹಾಕಬಹುದು.</translation> <translation id="6715542151869432661">ಯಾವುದೇ ಮೊಬೈಲ್ ಸಾಧನಗಳು ಕಂಡುಬಂದಿಲ್ಲ.</translation> <translation id="671928215901716392">ಪರದೆಯನ್ನು ಲಾಕ್ ಮಾಡಿ</translation> <translation id="6723839937902243910">ಪವರ್</translation> @@ -472,7 +471,7 @@ <translation id="9089416786594320554">ಇನ್ಪುಟ್ ವಿಧಾನಗಳು</translation> <translation id="9091626656156419976">ಪ್ರದರ್ಶನ <ph name="DISPLAY_NAME" /> ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ</translation> <translation id="9111102763498581341">ಅನ್ಲಾಕ್</translation> -<translation id="9151726767154816831">ನವೀಕರಿಸಲು ಮರುಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ಪವರ್ವಾಶ್ ಮಾಡಿ</translation> +<translation id="9151726767154816831">ಅಪ್ಡೇಟ್ ಮಾಡಲು ಮರುಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ಪವರ್ವಾಶ್ ಮಾಡಿ</translation> <translation id="9179259655489829027">ಸೈನ್-ಇನ್ ಮಾಡಿರುವ ಯಾವುದೇ ಬಳಕೆದಾರರನ್ನು, ಪಾಸ್ವರ್ಡ್ ಇಲ್ಲದೆಯೇ ಪ್ರವೇಶಿಸಲು ಈ ವೈಶಿಷ್ಟ್ಯವು ಅವಕಾಶ ನೀಡುತ್ತದೆ. ನಿಮಗೆ ವಿಶ್ವಾಸವಿರುವ ಖಾತೆಗಳೊಂದಿಗೆ ಮಾತ್ರ ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಿ.</translation> <translation id="9193626018745640770">"ಅಪರಿಚಿತ ಸ್ವೀಕರಿಸುವವರು" ನಲ್ಲಿ ಬಿತ್ತರಿಸಲಾಗುತ್ತಿದೆ</translation> <translation id="9194617393863864469">ಮತ್ತೊಂದು ಬಳಕೆದಾರರಾಗಿ ಸೈನ್ ಇನ್ ಮಾಡಿ...</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb index 0b399d3..d70407f 100644 --- a/ash/strings/ash_strings_ko.xtb +++ b/ash/strings/ash_strings_ko.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">메뉴 펼치기</translation> <translation id="3087734570205094154">맨 아래</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" />(블루투스)</translation> -<translation id="3124698051292518391">항상 실행기 표시</translation> <translation id="3126069444801937830">업데이트하려면 다시 시작</translation> <translation id="3147142846278915599">런처(앱 동기화 중...)</translation> <translation id="315116470104423982">모바일 데이터</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb index 70f91091..6d1b563 100644 --- a/ash/strings/ash_strings_lt.xtb +++ b/ash/strings/ash_strings_lt.xtb
@@ -110,6 +110,7 @@ <translation id="2727977024730340865">Prijungtas mažos galios įkroviklis. Akumuliatoriaus įkrovimas gali būti nepatikimas.</translation> <translation id="2761704814324807722">Būsenos dėklas, laikas <ph name="TIME" />, <ph name="BATTERY" /></translation> <translation id="277257480934873581">Iš naujo prisijungiama prie „<ph name="NAME" />“</translation> +<translation id="2790844815106384441">Pasirinkite, ar svetainėse galima naudoti Vietovės paslaugas arba įrenginio mikrofoną, fotoaparatą ir kitas funkcijas</translation> <translation id="2792498699870441125">„Alt“ + paieškos klavišas</translation> <translation id="2805756323405976993">Taikomosios programos</translation> <translation id="2808012452536866044">„Better Together“ perjungta į naują telefoną</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">Išskleisti meniu</translation> <translation id="3087734570205094154">Apačia</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> („Bluetooth“)</translation> -<translation id="3124698051292518391">Visada rodyti lentyną</translation> <translation id="3126069444801937830">Paleisti iš naujo, kad būtų atnaujinta</translation> <translation id="3147142846278915599">Paleidimo priemonė (sinchronizuojamos programos...)</translation> <translation id="315116470104423982">Duomenys mobiliesiems</translation> @@ -194,6 +194,7 @@ <translation id="4200057768455216496">Paspaudėte prie doko prijungto didintuvo spartųjį klavišą. Ar norite jį įjungti?</translation> <translation id="4217571870635786043">Diktavimas</translation> <translation id="4261870227682513959">Rodyti pranešimų nustatymus. Pranešimai išjungti</translation> +<translation id="4269883910223712419">Šio įrenginio administratorius gali atlikti nurodytus veiksmus.</translation> <translation id="4274921305979314545">Susiekite „Chromebook“ su telefonu</translation> <translation id="4279490309300973883">Dubliuojama</translation> <translation id="4292681942966152062">Suaktyvinamas „<ph name="NETWORK_NAME" />“</translation> @@ -222,6 +223,7 @@ <translation id="4734965478015604180">Horizontaliai</translation> <translation id="476166673298332917">Šio įrenginio administratorius gali pasiekti visą veiklą, įskaitant slaptažodžius ir pranešimus.</translation> <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> slaptažodis</translation> +<translation id="4778095205580009397">„Google“ padėjėjas nepasiekiamas demonstracinėje sesijoje.</translation> <translation id="479989351350248267">ieškoti</translation> <translation id="4804818685124855865">Atsijungti</translation> <translation id="4849058404725798627">Paryškinti objektą jį suaktyvinus klaviatūra</translation> @@ -337,6 +339,7 @@ <translation id="6751826523481687655">Našumo stebėjimas įjungtas</translation> <translation id="6785414152754474415">Likusi akumuliatoriaus įkrova: <ph name="PERCENTAGE" /> %. Jis įkraunamas.</translation> <translation id="6803622936009808957">Nepavyko dubliuoti vaizdų, nes nepavyko rasti palaikomų skyrų. Vietoje to įjungtas išplėstinio darbalaukio režimas.</translation> +<translation id="6814658242098378692">Valdykite programas, plėtinius ir temas</translation> <translation id="6820676911989879663">Padarykite pertrauką!</translation> <translation id="683971173229319003">Paieškos klavišas + L</translation> <translation id="6857811139397017780">Suaktyvinti „<ph name="NETWORKSERVICE" />“</translation> @@ -360,6 +363,7 @@ <translation id="7168224885072002358">Po <ph name="TIMEOUT_SECONDS" /> bus grąžinta sena skyra</translation> <translation id="7256634071279256947">Užpakalinis mikrofonas</translation> <translation id="726276584504105859">Vilkite čia, kad naudotumėte skaidytą ekraną</translation> +<translation id="7303365578352795231">Atsakoma kitame įrenginyje.</translation> <translation id="7348093485538360975">Ekraninė klaviatūra</translation> <translation id="735745346212279324">VPN atjungtas</translation> <translation id="7377169924702866686">Įjungtas didžiųjų raidžių klavišas.</translation> @@ -392,6 +396,7 @@ <translation id="7842211907556571265">Prisijungiama prie „<ph name="NETWORK_NAME" />“</translation> <translation id="7842569679327885685">Įspėjimas: eksperimentinė funkcija</translation> <translation id="7846634333498149051">Klaviatūra</translation> +<translation id="7886169021410746335">Koreguokite privatumo nustatymus</translation> <translation id="7886277072580235377">Interneto sesijos duomenys bus išvalyti, kai atsijungsite. <ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">„Send an email“ (Siųsk el. laišką)</translation> <translation id="7904094684485781019">Šios paskyros administratorius neleidžia naudoti kelių paskyrų.</translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb index 3bae547..b789e8f 100644 --- a/ash/strings/ash_strings_lv.xtb +++ b/ash/strings/ash_strings_lv.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">Izvērst izvēlni</translation> <translation id="3087734570205094154">Apakšā</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Vienmēr rādīt plauktu</translation> <translation id="3126069444801937830">Restartēt, lai atjauninātu</translation> <translation id="3147142846278915599">Palaišanas programma (notiek lietotņu sinhronizēšana...)</translation> <translation id="315116470104423982">Mobilie dati</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb index 5d26c02..22b881e 100644 --- a/ash/strings/ash_strings_ml.xtb +++ b/ash/strings/ash_strings_ml.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">മെനു വികസിപ്പിക്കുക</translation> <translation id="3087734570205094154">താഴെ</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">എപ്പോഴും ഷെൽഫ് കാണിക്കുക</translation> <translation id="3126069444801937830">അപ്ഡേറ്റുചെയ്യുന്നതിന് പുനരാരംഭിക്കുക</translation> <translation id="3147142846278915599">ലോഞ്ചർ (അപ്ലിക്കേഷൻ സമന്വയിപ്പിക്കുന്നു...)</translation> <translation id="315116470104423982">മൊബൈല് ഡാറ്റ</translation> @@ -160,7 +159,7 @@ <translation id="3477079411857374384">കൺട്രോൾ-ഷിഫ്റ്റ്-സ്പേസ്</translation> <translation id="3510164367642747937">മൗസ് കഴ്സർ ഹൈലൈറ്റുചെയ്യുക</translation> <translation id="3513798432020909783">അക്കൗണ്ട് മാനേജ് ചെയ്യുന്നത് <ph name="MANAGER_EMAIL" /> ആണ്</translation> -<translation id="3573179567135747900">"<ph name="FROM_LOCALE" />" എന്നതിലേക്ക് തിരികെ മാറുക (റീസ്റ്റാര്ട്ട് ആവശ്യമാണ്)</translation> +<translation id="3573179567135747900">"<ph name="FROM_LOCALE" />" ഭാഷയിലേയ്ക്ക് തിരികെ മാറ്റുക (പുനരാരംഭിക്കേണ്ടതുണ്ട്)</translation> <translation id="3595596368722241419">ബാറ്ററി നിറഞ്ഞു</translation> <translation id="3606978283550408104">ബ്രെയ്ലി ഡിസ്പ്ലേ കണക്റ്റുചെയ്തു.</translation> <translation id="3621202678540785336">ഇൻപുട്ട്</translation> @@ -186,7 +185,7 @@ <translation id="3901991538546252627"><ph name="NAME" /> എന്നതിലേക്ക് കണക്റ്റുചെയ്യുന്നു</translation> <translation id="394485226368336402">ഓഡിയോ ക്രമീകരണം</translation> <translation id="397105322502079400">കണക്കാക്കുന്നു...</translation> -<translation id="3995138139523574647">USB-C ഉപകരണം (വലതുവശത്ത് പിന്നിലെ പോർട്ട്)</translation> +<translation id="3995138139523574647">USB-C ഉപകരണം (വലതുവശത്തെ പിന്നിലെ പോർട്ട്)</translation> <translation id="4017989525502048489">ലേസർ പോയിന്റർ</translation> <translation id="4065525899979931964">{NUM_APPS,plural, =1{ഒരു ആപ്പിൽ നിന്നുള്ള അറിയിപ്പുകൾ ഓഫാണ്}other{# ആപ്പുകളിൽ നിന്നുള്ള അറിയിപ്പുകൾ ഓഫാണ്}}</translation> <translation id="4072264167173457037">ഇടത്തരം സിഗ്നൽ</translation> @@ -241,7 +240,7 @@ <translation id="5222676887888702881">പുറത്തുകടക്കുക</translation> <translation id="523505283826916779">ഉപയോഗസഹായി ക്രമീകരണങ്ങൾ</translation> <translation id="5313326810920013265">ബ്ലൂടൂത്ത് ക്രമീകരണങ്ങൾ</translation> -<translation id="5331975486040154427">USB-C ഉപകരണം (പുറകിൽ ഇടതുവശത്തെ പോർട്ട്)</translation> +<translation id="5331975486040154427">USB-C ഉപകരണം (ഇടതുവശത്തെ പിന്നിലെ പോർട്ട്)</translation> <translation id="5379115545237091094">നിരവധി ശ്രമങ്ങൾ</translation> <translation id="5397578532367286026">ഈ ഉപയോക്താവിന്റെ ഉപയോഗവും ചരിത്രവും chrome.com-ൽ മാനേജർക്ക് (<ph name="MANAGER_EMAIL" />) അവലോകനം ചെയ്യാനാകും.</translation> <translation id="5430931332414098647">തൽക്ഷണ ടെതറിംഗ്</translation> @@ -352,7 +351,7 @@ <translation id="7068360136237591149">ഫയലുകൾ തുറക്കുക</translation> <translation id="7076293881109082629">സൈൻ ഇൻ ചെയ്യുന്നു</translation> <translation id="7092922358121866860">നൈറ്റ് ലൈറ്റ് ക്രമീകരണം കാണിക്കുക</translation> -<translation id="7098389117866926363">USB-C ഉപകരണം (പുറകിൽ ഇടതുവശത്തെ പോർട്ട്)</translation> +<translation id="7098389117866926363">USB-C ഉപകരണം (ഇടതുവശത്തെ പോർട്ട് പുറകിൽ)</translation> <translation id="7131634465328662194">നിങ്ങൾ സ്വമേധയാ സൈൻ ഔട്ടാകും.</translation> <translation id="7143207342074048698">കണക്റ്റുചെയ്യുന്നു</translation> <translation id="7165278925115064263">Alt+Shift+K</translation> @@ -457,7 +456,7 @@ <translation id="8877788021141246043">ഒരു റിമൈൻഡർ സജ്ജീകരിക്കുക</translation> <translation id="8878886163241303700">സ്ക്രീൻ വിപുലീകരിക്കുന്നു</translation> <translation id="8921624153894383499">Google അസിസ്റ്റന്റ് ഈ ഭാഷ സംസാരിക്കില്ല.</translation> -<translation id="8938800817013097409">USB-C ഉപകരണം (പുറകിൽ വലതുവശത്തെ പോർട്ട്)</translation> +<translation id="8938800817013097409">USB-C ഉപകരണം (വലതുവശത്തെ പോർട്ട് പുറകിൽ)</translation> <translation id="8940956008527784070">ബാറ്ററി കുറവാണ് (<ph name="PERCENTAGE" />%)</translation> <translation id="8984179138335769204">ക്വിക്ക് ലോഞ്ച്</translation> <translation id="899350903320462459">അറിയിപ്പ് പ്രവർത്തനം നിർവഹിക്കാൻ, <ph name="LOGIN_ID" /> ആയി ഉപകരണം അൺലോക്ക് ചെയ്യുക</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb index 7132457..97d419eb 100644 --- a/ash/strings/ash_strings_mr.xtb +++ b/ash/strings/ash_strings_mr.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">मेनूचा विस्तार करा</translation> <translation id="3087734570205094154">तळाकडील</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (ब्लूटूथ)</translation> -<translation id="3124698051292518391">नेहमी शेल्फ दाखवा</translation> <translation id="3126069444801937830">अपडेट करण्यासाठी रीस्टार्ट करा</translation> <translation id="3147142846278915599">लाँचर (संकालन अॅप्स...)</translation> <translation id="315116470104423982">मोबाइल डेटा</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb index d4f252b..b8c66ee 100644 --- a/ash/strings/ash_strings_ms.xtb +++ b/ash/strings/ash_strings_ms.xtb
@@ -110,6 +110,7 @@ <translation id="2727977024730340865">Dipalamkan pada pengecas berkuasa rendah. Pengecasan bateri mungkin tidak boleh diharapkan.</translation> <translation id="2761704814324807722">Dulang status, masa <ph name="TIME" />, <ph name="BATTERY" /></translation> <translation id="277257480934873581">Menyambung semula ke <ph name="NAME" /></translation> +<translation id="2790844815106384441">Pilih sama ada tapak web boleh menggunakan perkhidmatan lokasi atau mikrofon, kamera atau ciri peranti yang lain</translation> <translation id="2792498699870441125">Alt+Search</translation> <translation id="2805756323405976993">Apl</translation> <translation id="2808012452536866044">Lebih Baik Bersama dialihkan ke telefon baharu</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">Kembangkan menu</translation> <translation id="3087734570205094154">Bawah</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Sentiasa Tunjukkan Rak</translation> <translation id="3126069444801937830">Mulakan semula untuk mengemas kini</translation> <translation id="3147142846278915599">Pelancar (menyegerakkan apl...)</translation> <translation id="315116470104423982">Data mudah alih</translation> @@ -195,6 +195,7 @@ <translation id="4200057768455216496">Anda menekan pintasan untuk penggadang yang didok. Adakah anda ingin menghidupkannya?</translation> <translation id="4217571870635786043">Pengimlakan</translation> <translation id="4261870227682513959">Tunjukkan tetapan pemberitahuan. Pemberitahuan dimatikan</translation> +<translation id="4269883910223712419">Pentadbir peranti ini berkeupayaan untuk:</translation> <translation id="4274921305979314545">Sambungkan Chromebook dengan telefon anda</translation> <translation id="4279490309300973883">Pencerminan</translation> <translation id="4292681942966152062">Mengaktifkan <ph name="NETWORK_NAME" /></translation> @@ -222,6 +223,7 @@ <translation id="4734965478015604180">Mendatar</translation> <translation id="476166673298332917">Pentadbir peranti ini mempunyai akses kepada semua aktiviti, termasuk kata laluan dan komunikasi.</translation> <translation id="4776917500594043016">Kata laluan untuk <ph name="USER_EMAIL_ADDRESS" /></translation> +<translation id="4778095205580009397">Google Assistant tidak tersedia dalam sesi tunjuk cara.</translation> <translation id="479989351350248267">search</translation> <translation id="4804818685124855865">Putuskan sambungan</translation> <translation id="4849058404725798627">Serlahkan objek dengan fokus papan kekunci</translation> @@ -337,6 +339,7 @@ <translation id="6751826523481687655">Pengesanan prestasi dihidupkan</translation> <translation id="6785414152754474415">Bateri <ph name="PERCENTAGE" />% penuh dan sedang dicas.</translation> <translation id="6803622936009808957">Tidak dapat membalikkan paparan memandangkan tiada peleraian disokong ditemui. Sebaliknya, memasuki mod desktop yang dilanjutkan.</translation> +<translation id="6814658242098378692">Urus apl, sambungan dan tema</translation> <translation id="6820676911989879663">Berehatlah!</translation> <translation id="683971173229319003">Carian+L</translation> <translation id="6857811139397017780">Aktifkan <ph name="NETWORKSERVICE" /></translation> @@ -360,6 +363,7 @@ <translation id="7168224885072002358">Kembali kepada peleraian lama dalam <ph name="TIMEOUT_SECONDS" /></translation> <translation id="7256634071279256947">Mikrofon belakang</translation> <translation id="726276584504105859">Seret ke sini untuk menggunakan skrin pisah</translation> +<translation id="7303365578352795231">Menjawab menggunakan peranti lain.</translation> <translation id="7348093485538360975">Papan kekunci pada skrin</translation> <translation id="735745346212279324">VPN diputuskan sambungan</translation> <translation id="7377169924702866686">Caps Lock dihidupkan.</translation> @@ -392,6 +396,7 @@ <translation id="7842211907556571265">Menyambung ke <ph name="NETWORK_NAME" /></translation> <translation id="7842569679327885685">Amaran: Ciri percubaan</translation> <translation id="7846634333498149051">Papan kekunci</translation> +<translation id="7886169021410746335">Laraskan tetapan privasi</translation> <translation id="7886277072580235377">Sesi Internet anda akan dipadam bersih apabila anda log keluar. <ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">Hantar e-mel</translation> <translation id="7904094684485781019">Pentadbir akaun ini tidak membenarkan berbilang log masuk.</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb index 3d6b34b..aea9139 100644 --- a/ash/strings/ash_strings_nl.xtb +++ b/ash/strings/ash_strings_nl.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">Menu uitvouwen</translation> <translation id="3087734570205094154">Onderaan</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Plank altijd weergeven</translation> <translation id="3126069444801937830">Opnieuw starten om updates uit te voeren</translation> <translation id="3147142846278915599">Launcher (apps synchroniseren...)</translation> <translation id="315116470104423982">Mobiele data</translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb index 6cb3792..e64f50e 100644 --- a/ash/strings/ash_strings_no.xtb +++ b/ash/strings/ash_strings_no.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">Vis menyen</translation> <translation id="3087734570205094154">Bunn</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Vis alltid hyllen</translation> <translation id="3126069444801937830">Start på nytt for å oppdatere</translation> <translation id="3147142846278915599">Appoversikt (synkroniserer apper ...)</translation> <translation id="315116470104423982">Mobildata</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb index dff616e..be2b1e5d 100644 --- a/ash/strings/ash_strings_pl.xtb +++ b/ash/strings/ash_strings_pl.xtb
@@ -31,7 +31,7 @@ <translation id="1419738280318246476">Odblokuj urządzenie, by zareagować na powiadomienie</translation> <translation id="1467432559032391204">W lewo</translation> <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation> -<translation id="1510238584712386396">Program uruchamiający</translation> +<translation id="1510238584712386396">Menu z aplikacjami</translation> <translation id="1520303207432623762">{NUM_APPS,plural, =1{Pokaż ustawienia powiadomień. Jedna aplikacja ma wyłączone powiadomienia.}few{Pokaż ustawienia powiadomień. # aplikacje mają wyłączone powiadomienia.}many{Pokaż ustawienia powiadomień. # aplikacji ma wyłączone powiadomienia.}other{Pokaż ustawienia powiadomień. # aplikacji ma wyłączone powiadomienia.}}</translation> <translation id="1525508553941733066">ZAMKNIJ</translation> <translation id="1537254971476575106">Lupa pełnego ekranu</translation> @@ -110,6 +110,7 @@ <translation id="2727977024730340865">Podłączono ładowarkę o małej mocy. Ładowanie baterii może być nieprawidłowe.</translation> <translation id="2761704814324807722">Pasek stanu, godzina <ph name="TIME" />, <ph name="BATTERY" /></translation> <translation id="277257480934873581">Ponownie łączę z: <ph name="NAME" /></translation> +<translation id="2790844815106384441">Wybierz, czy strony mogą korzystać z usług lokalizacyjnych oraz z mikrofonu, aparatu fotograficznego i innych funkcji urządzenia</translation> <translation id="2792498699870441125">Alt+Szukaj</translation> <translation id="2805756323405976993">Aplikacje</translation> <translation id="2808012452536866044">Telefon w Razem lepiej został zastąpiony</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">Rozwiń menu</translation> <translation id="3087734570205094154">Na dół</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Zawsze pokazuj półkę</translation> <translation id="3126069444801937830">Uruchom ponownie i zaktualizuj</translation> <translation id="3147142846278915599">Menu z aplikacjami (synchronizuję aplikacje...)</translation> <translation id="315116470104423982">Komórkowa transmisja danych</translation> @@ -194,6 +194,7 @@ <translation id="4200057768455216496">Naciśnięto skrót lupy zadokowanej. Czy chcesz ją włączyć?</translation> <translation id="4217571870635786043">Dyktowanie</translation> <translation id="4261870227682513959">Pokaż ustawienia powiadomień. Powiadomienia są wyłączone.</translation> +<translation id="4269883910223712419">Administrator tego urządzenia może:</translation> <translation id="4274921305979314545">Połącz Chromebooka z telefonem</translation> <translation id="4279490309300973883">Odbicie lustrzane</translation> <translation id="4292681942966152062">Włączam: <ph name="NETWORK_NAME" /></translation> @@ -222,6 +223,7 @@ <translation id="4734965478015604180">Orientacja pozioma</translation> <translation id="476166673298332917">Administrator tego urządzenia ma dostęp do wszystkiego, co robisz, w tym do haseł i komunikacji.</translation> <translation id="4776917500594043016">Hasło dla <ph name="USER_EMAIL_ADDRESS" /></translation> +<translation id="4778095205580009397">Asystent Google jest niedostępny w sesji demonstracyjnej.</translation> <translation id="479989351350248267">search</translation> <translation id="4804818685124855865">Rozłącz</translation> <translation id="4849058404725798627">Podświetlaj obiekt wybrany za pomocą klawiatury</translation> @@ -337,6 +339,7 @@ <translation id="6751826523481687655">Śledzenie wydajności jest włączone</translation> <translation id="6785414152754474415">Naładowanie baterii: <ph name="PERCENTAGE" />%. Trwa ładowanie.</translation> <translation id="6803622936009808957">Nie można wyświetlić odbicia lustrzanego, ponieważ nie znaleziono obsługiwanych rozdzielczości. Zamiast tego został włączony pulpit rozszerzony.</translation> +<translation id="6814658242098378692">Zarządzaj aplikacjami, rozszerzeniami i motywami</translation> <translation id="6820676911989879663">Zrób sobie przerwę</translation> <translation id="683971173229319003">Szukaj+L</translation> <translation id="6857811139397017780">Aktywuj sieć <ph name="NETWORKSERVICE" /></translation> @@ -360,6 +363,7 @@ <translation id="7168224885072002358">Powrót do wcześniejszej rozdzielczości za <ph name="TIMEOUT_SECONDS" /></translation> <translation id="7256634071279256947">Tylny mikrofon</translation> <translation id="726276584504105859">Przeciągnij tutaj, by podzielić ekran</translation> +<translation id="7303365578352795231">Odpowiem na innym urządzeniu.</translation> <translation id="7348093485538360975">Klawiatura ekranowa</translation> <translation id="735745346212279324">VPN odłączona</translation> <translation id="7377169924702866686">Caps Lock jest włączony.</translation> @@ -392,6 +396,7 @@ <translation id="7842211907556571265">Łączę z siecią <ph name="NETWORK_NAME" /></translation> <translation id="7842569679327885685">Ostrzeżenie: funkcja eksperymentalna</translation> <translation id="7846634333498149051">Klawiatura</translation> +<translation id="7886169021410746335">Dostosuj ustawienia prywatności</translation> <translation id="7886277072580235377">Twoja sesja internetowa zostanie wyczyszczona, gdy się wylogujesz. <ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">Wyślij e-maila</translation> <translation id="7904094684485781019">Administrator tego konta zablokował możliwość wielokrotnego logowania.</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb index bf722e1..016a589 100644 --- a/ash/strings/ash_strings_pt-BR.xtb +++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -110,6 +110,7 @@ <translation id="2727977024730340865">Conectado a um carregador de baixa potência. O carregamento da bateria pode não ser confiável.</translation> <translation id="2761704814324807722">Bandeja de status, tempo <ph name="TIME" />, <ph name="BATTERY" /></translation> <translation id="277257480934873581">Reconectando-se a <ph name="NAME" /></translation> +<translation id="2790844815106384441">definir se os sites podem usar os serviços de localização, o microfone, a câmera ou outros recursos do dispositivo;</translation> <translation id="2792498699870441125">Alt + Pesquisar</translation> <translation id="2805756323405976993">Apps</translation> <translation id="2808012452536866044">"Better Together" foi alterado para um novo smartphone</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">Expandir menu</translation> <translation id="3087734570205094154">Parte inferior</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Sempre mostrar estante</translation> <translation id="3126069444801937830">Reiniciar para atualizar</translation> <translation id="3147142846278915599">Tela de início (sincronizando aplicativos...)</translation> <translation id="315116470104423982">Dados do celular</translation> @@ -194,6 +194,7 @@ <translation id="4200057768455216496">Você pressionou o atalho para a lupa ancorada. Gostaria de ativá-la?</translation> <translation id="4217571870635786043">Ditado</translation> <translation id="4261870227682513959">Mostrar configurações de notificação. As notificações estão desativadas</translation> +<translation id="4269883910223712419">O administrador deste dispositivo pode:</translation> <translation id="4274921305979314545">Conecte o Chromebook ao seu smartphone</translation> <translation id="4279490309300973883">Espelhamento</translation> <translation id="4292681942966152062">Ativando <ph name="NETWORK_NAME" /></translation> @@ -222,6 +223,7 @@ <translation id="4734965478015604180">Horizontal</translation> <translation id="476166673298332917">O administrador deste dispositivo tem acesso a todas as atividades, inclusive às senhas e comunicações.</translation> <translation id="4776917500594043016">Senha para <ph name="USER_EMAIL_ADDRESS" /></translation> +<translation id="4778095205580009397">O Google Assistente não está disponível para uma sessão de demonstração.</translation> <translation id="479989351350248267">pesquisar</translation> <translation id="4804818685124855865">Desconectar</translation> <translation id="4849058404725798627">Destacar objeto com o foco de teclado</translation> @@ -338,6 +340,7 @@ <translation id="6751826523481687655">O acompanhamento de desempenho está ativado</translation> <translation id="6785414152754474415">A bateria está <ph name="PERCENTAGE" />% cheia e carregando.</translation> <translation id="6803622936009808957">Não foi possível espelhar os displays porque não foram encontradas resoluções suportadas. Em vez disso, foi ativada a área de trabalho estendida.</translation> +<translation id="6814658242098378692">gerenciar apps, extensões e temas;</translation> <translation id="6820676911989879663">Faça uma pausa</translation> <translation id="683971173229319003">Pesquisa+L</translation> <translation id="6857811139397017780">Ativar <ph name="NETWORKSERVICE" /></translation> @@ -361,6 +364,7 @@ <translation id="7168224885072002358">Revertendo para resolução anterior em <ph name="TIMEOUT_SECONDS" /></translation> <translation id="7256634071279256947">Microfone traseiro</translation> <translation id="726276584504105859">Arraste aqui para usar a tela dividida</translation> +<translation id="7303365578352795231">Respondendo em outro dispositivo.</translation> <translation id="7348093485538360975">Teclado virtual</translation> <translation id="735745346212279324">VPN desconectada</translation> <translation id="7377169924702866686">O Caps Lock está ativado.</translation> @@ -393,6 +397,7 @@ <translation id="7842211907556571265">Conectando-se a <ph name="NETWORK_NAME" /></translation> <translation id="7842569679327885685">Aviso: recurso experimental</translation> <translation id="7846634333498149051">Teclado</translation> +<translation id="7886169021410746335">ajustar configurações de privacidade.</translation> <translation id="7886277072580235377">Sua sessão de Internet será limpa quando você sair. <ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">Enviar um e-mail</translation> <translation id="7904094684485781019">O administrador desta conta bloqueou o login múltiplo.</translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb index e7dfd9c..fd436b73 100644 --- a/ash/strings/ash_strings_pt-PT.xtb +++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -23,7 +23,7 @@ <translation id="1279938420744323401"><ph name="DISPLAY_NAME" /> (<ph name="ANNOTATION" />)</translation> <translation id="1290331692326790741">Sinal fraco</translation> <translation id="1293264513303784526">Dispositivo USB-C (porta esquerda)</translation> -<translation id="1294929383540927798">Alterar as definições de bloqueio do ecrã de bloqueio</translation> +<translation id="1294929383540927798">Alterar as definições de notificação do ecrã de bloqueio</translation> <translation id="1302880136325416935">Mostrar definições de Bluetooth. <ph name="STATE_TEXT" /></translation> <translation id="1346748346194534595">Direita</translation> <translation id="1351937230027495976">Reduzir menu</translation> @@ -137,7 +137,6 @@ <translation id="3081696990447829002">Expandir menu</translation> <translation id="3087734570205094154">Parte inferior</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Mostrar sempre a prateleira</translation> <translation id="3126069444801937830">Reiniciar para atualizar</translation> <translation id="3147142846278915599">Launcher (a sincronizar aplicações...)</translation> <translation id="315116470104423982">Dados móveis</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb index 98c7df6..c678e1b 100644 --- a/ash/strings/ash_strings_ro.xtb +++ b/ash/strings/ash_strings_ro.xtb
@@ -23,7 +23,7 @@ <translation id="1279938420744323401"><ph name="DISPLAY_NAME" /> (<ph name="ANNOTATION" />)</translation> <translation id="1290331692326790741">Semnal slab</translation> <translation id="1293264513303784526">Dispozitiv USB-C (portul din stânga)</translation> -<translation id="1294929383540927798">Modifică setările de notificare de pe ecranul de blocare</translation> +<translation id="1294929383540927798">Modifică setările pentru notificările de pe ecranul de blocare</translation> <translation id="1302880136325416935">Afișează setările Bluetooth. <ph name="STATE_TEXT" /></translation> <translation id="1346748346194534595">Dreapta</translation> <translation id="1351937230027495976">Restrânge meniul</translation> @@ -137,7 +137,6 @@ <translation id="3081696990447829002">Extinde meniul</translation> <translation id="3087734570205094154">Jos</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Afișează întotdeauna raftul</translation> <translation id="3126069444801937830">Reporniți pentru a actualiza</translation> <translation id="3147142846278915599">Lansator (se sincronizează aplicațiile...)</translation> <translation id="315116470104423982">Date mobile</translation> @@ -464,7 +463,7 @@ <translation id="8995603266996330174">Gestionat de <ph name="DOMAIN" /></translation> <translation id="9029474291399787231">Este disponibilă o actualizare Adobe Flash Player</translation> <translation id="9056839673611986238">SO de pe dispozitiv va fi adus la o versiune anterioară</translation> -<translation id="9070640332319875144">Setări Asistent</translation> +<translation id="9070640332319875144">Setări pentru Asistent</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">Wi-Fi: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">Microfonul este în uz.</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb index 21a8a96..af8d83a 100644 --- a/ash/strings/ash_strings_ru.xtb +++ b/ash/strings/ash_strings_ru.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">Развернуть меню</translation> <translation id="3087734570205094154">Снизу</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Всегда показывать Временное хранилище</translation> <translation id="3126069444801937830">Перезагрузите, чтобы обновить</translation> <translation id="3147142846278915599">Панель запуска (синхронизация приложений...)</translation> <translation id="315116470104423982">Мобильное подключение</translation>
diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb index ee58072..a4535dc 100644 --- a/ash/strings/ash_strings_sk.xtb +++ b/ash/strings/ash_strings_sk.xtb
@@ -110,6 +110,7 @@ <translation id="2727977024730340865">Batéria je zapojená do nabíjačky s nízkym výkonom. Nabíjanie batérie nemusí byť spoľahlivé.</translation> <translation id="2761704814324807722">Stavový panel, čas <ph name="TIME" />, <ph name="BATTERY" /></translation> <translation id="277257480934873581">Prebieha opätovné pripájanie k sieti <ph name="NAME" /></translation> +<translation id="2790844815106384441">Vyberte, či môžu weby používať služby určovania polohy alebo mikrofón, fotoaparát či ďalšie funkcie príslušného zariadenia</translation> <translation id="2792498699870441125">Alt + Hľadať</translation> <translation id="2805756323405976993">Aplikácie</translation> <translation id="2808012452536866044">Funkcia Spoločne ešte lepšie prešla na nový telefón</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">Rozbaliť ponuku</translation> <translation id="3087734570205094154">Spodok</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Vždy zobrazovať poličku</translation> <translation id="3126069444801937830">Reštartovaním vykonáte aktualizáciu</translation> <translation id="3147142846278915599">Spúšťač (synchronizujú sa aplikácie...)</translation> <translation id="315116470104423982">Mobilné dátové prenosy</translation> @@ -194,6 +194,7 @@ <translation id="4200057768455216496">Stlačili ste skratku ukotvenej lupy. Chcete ju zapnúť?</translation> <translation id="4217571870635786043">Diktovanie</translation> <translation id="4261870227682513959">Zobraziť nastavenia upozornení. Upozornenia sú vypnuté</translation> +<translation id="4269883910223712419">Správca tohto zariadenia môže:</translation> <translation id="4274921305979314545">Pripojte si Chromebook k telefónu</translation> <translation id="4279490309300973883">Zrkadlenie</translation> <translation id="4292681942966152062">Aktivuje sa sieť <ph name="NETWORK_NAME" /></translation> @@ -221,6 +222,7 @@ <translation id="4734965478015604180">Na šírku</translation> <translation id="476166673298332917">Správca tohto zariadenia má prístup k všetkým aktivitám vrátane hesiel a komunikácií.</translation> <translation id="4776917500594043016">Heslo pre účet <ph name="USER_EMAIL_ADDRESS" /></translation> +<translation id="4778095205580009397">Asistent Google nie je k dispozícii v relácii ukážky.</translation> <translation id="479989351350248267">search</translation> <translation id="4804818685124855865">Odpojiť</translation> <translation id="4849058404725798627">Zvýrazniť objekt so zameraním klávesnice</translation> @@ -336,6 +338,7 @@ <translation id="6751826523481687655">Trasovanie výkonnosti je zapnuté</translation> <translation id="6785414152754474415">Batéria je nabitá na <ph name="PERCENTAGE" /> % a nabíja sa.</translation> <translation id="6803622936009808957">Obraz na monitoroch sa nedá zrkadliť, pretože sa nenašli podporované rozlíšenia. Namiesto toho sa spustil režim rozšírenej pracovnej plochy.</translation> +<translation id="6814658242098378692">Správa aplikácií, rozšírení a motívov</translation> <translation id="6820676911989879663">Urobte si prestávku.</translation> <translation id="683971173229319003">Hľadať+L</translation> <translation id="6857811139397017780">Aktivovať zariadenie <ph name="NETWORKSERVICE" /></translation> @@ -359,6 +362,7 @@ <translation id="7168224885072002358">Vrátenie starého rozlíšenia prebehne o <ph name="TIMEOUT_SECONDS" /></translation> <translation id="7256634071279256947">Zadný mikrofóm</translation> <translation id="726276584504105859">Presuňte okno sem a použite tak rozdelenú obrazovku</translation> +<translation id="7303365578352795231">Odpoveď dostanete v inom zariadení.</translation> <translation id="7348093485538360975">Klávesnica na obrazovke</translation> <translation id="735745346212279324">Sieť VPN je odpojená</translation> <translation id="7377169924702866686">Kláves Caps Lock je zapnutý.</translation> @@ -391,6 +395,7 @@ <translation id="7842211907556571265">Prebieha pripájanie k sieti <ph name="NETWORK_NAME" /></translation> <translation id="7842569679327885685">Upozornenie: Experimentálna funkcia</translation> <translation id="7846634333498149051">Klávesnica</translation> +<translation id="7886169021410746335">Upravte nastavenia ochrany súkromia</translation> <translation id="7886277072580235377">Vaša internetová relácia sa vymaže, keď sa odhlásite. <ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">Odoslať správu</translation> <translation id="7904094684485781019">Správca tohto účtu zakázal viacnásobné prihlásenie.</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb index 27a089a..0b5e0ab 100644 --- a/ash/strings/ash_strings_sl.xtb +++ b/ash/strings/ash_strings_sl.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">Razširi meni</translation> <translation id="3087734570205094154">Na dno</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Vedno pokaži polico</translation> <translation id="3126069444801937830">Znova zaženite za posodobitev</translation> <translation id="3147142846278915599">Zaganjalnik (sinhronizacija aplikacij ...)</translation> <translation id="315116470104423982">Prenos podatkov v mobilnih omrežjih</translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb index ecc23a3..c62aaf2 100644 --- a/ash/strings/ash_strings_sr.xtb +++ b/ash/strings/ash_strings_sr.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">Прошири мени</translation> <translation id="3087734570205094154">Дно</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Увек приказуј полицу</translation> <translation id="3126069444801937830">Покрените поново да бисте ажурирали</translation> <translation id="3147142846278915599">Покретач (апликације се синхронизују...)</translation> <translation id="315116470104423982">Мобилни подаци</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb index 4e210260..c75d4a714a 100644 --- a/ash/strings/ash_strings_sv.xtb +++ b/ash/strings/ash_strings_sv.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">Utöka menyn</translation> <translation id="3087734570205094154">Nederst</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Visa alltid hyllan</translation> <translation id="3126069444801937830">Starta om för att uppdatera</translation> <translation id="3147142846278915599">Översikt (appar synkroniseras …)</translation> <translation id="315116470104423982">Mobildata</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb index db35977..1cd8966 100644 --- a/ash/strings/ash_strings_sw.xtb +++ b/ash/strings/ash_strings_sw.xtb
@@ -110,6 +110,7 @@ <translation id="2727977024730340865">Imechomekwa katika chaja ya kawi ya chini. Huenda kuchaji kwa betri hakutakuwa kuzuri.</translation> <translation id="2761704814324807722">Treya ya hali, saa <ph name="TIME" />, <ph name="BATTERY" /></translation> <translation id="277257480934873581">Inaunganisha upya kwenye <ph name="NAME" /></translation> +<translation id="2790844815106384441">Chagua ikiwa tovuti zinaweza kutumia huduma za mahali au maikrofoni, kamera au vipengele vingine vya kifaa</translation> <translation id="2792498699870441125">Alt + Utafutaji</translation> <translation id="2805756323405976993">Programu</translation> <translation id="2808012452536866044">Better Together imehamishiwa kwenye simu mpya</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">Panua menyu</translation> <translation id="3087734570205094154">Chini</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Onyesha Rafu Kila Wakati</translation> <translation id="3126069444801937830">Anzisha upya ili kusasisha</translation> <translation id="3147142846278915599">Kifungua programu (inasawazisha programu...)</translation> <translation id="315116470104423982">Data ya mtandao wa simu</translation> @@ -194,6 +194,7 @@ <translation id="4200057768455216496">Umebofya njia ya mkato ya kikuzaji kilichoambatishwa. Ungependa kukiwasha?</translation> <translation id="4217571870635786043">Kuandika kwa kutamka</translation> <translation id="4261870227682513959">Onyesha mipangilio ya arifa. Umezima arifa</translation> +<translation id="4269883910223712419">Msimamizi wa kifaa hiki ana uwezo wa:</translation> <translation id="4274921305979314545">Unganisha Chromebook na simu yako</translation> <translation id="4279490309300973883">Kuakisi</translation> <translation id="4292681942966152062">Inawasha <ph name="NETWORK_NAME" /></translation> @@ -221,6 +222,7 @@ <translation id="4734965478015604180">Kimlalo</translation> <translation id="476166673298332917">Msimamizi wa kifaa hiki ana idhini ya kufikia shughuli zote, ikiwemo manenosiri na mawasiliano.</translation> <translation id="4776917500594043016">Nenosiri la <ph name="USER_EMAIL_ADDRESS" /></translation> +<translation id="4778095205580009397">Programu ya Mratibu wa Google haipatikani katika kipindi cha onyesho.</translation> <translation id="479989351350248267">tafuta</translation> <translation id="4804818685124855865">Tenganisha</translation> <translation id="4849058404725798627">Angazia kipengee kilicholengwa kwa kibodi</translation> @@ -336,6 +338,7 @@ <translation id="6751826523481687655">Kipengele cha ufuatiliaji wa utendaji kimewashwa</translation> <translation id="6785414152754474415">Betri imejaa <ph name="PERCENTAGE" />% na inachaji.</translation> <translation id="6803622936009808957">Haikuweza kuakisi maonyesho kwa kuwa hakuna misongo inayoweza kutumiwa iliyopatikana. Badala yake imeingia eneo-kazi lililopanuliwa.</translation> +<translation id="6814658242098378692">Dhibiti programu, viendelezi na mandhari</translation> <translation id="6820676911989879663">Pumzika kidogo!</translation> <translation id="683971173229319003">Search+L</translation> <translation id="6857811139397017780">Amilisha <ph name="NETWORKSERVICE" /></translation> @@ -359,6 +362,7 @@ <translation id="7168224885072002358">Inarejesha katika ubora wa zamani baada ya <ph name="TIMEOUT_SECONDS" /></translation> <translation id="7256634071279256947">Maikrofoni ya nyuma</translation> <translation id="726276584504105859">Buruta hapa ili utumie skrini iliyogawanywa</translation> +<translation id="7303365578352795231">Hoja inajibiwa kwa kutumia kifaa kingine.</translation> <translation id="7348093485538360975">Kibodi ya skrini</translation> <translation id="735745346212279324">VPN imekatwa muunganisho</translation> <translation id="7377169924702866686">Caps Lock imewashwa.</translation> @@ -392,6 +396,7 @@ <translation id="7842211907556571265">Inaunganisha kwenye <ph name="NETWORK_NAME" /></translation> <translation id="7842569679327885685">Ilani: Kipengele cha majaribio</translation> <translation id="7846634333498149051">Kibodi</translation> +<translation id="7886169021410746335">Rekebisha mipangilio ya faragha</translation> <translation id="7886277072580235377">Kipindi chako cha intaneti kitafutwa ukiondoka kwenye akaunti. <ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">Tuma barua pepe</translation> <translation id="7904094684485781019">Msimamizi wa akaunti hii ameondoa uwezo wa kuingia katika akaunti nyingi kwa wakati mmoja</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb index ed5fb500..a8ea25b0 100644 --- a/ash/strings/ash_strings_ta.xtb +++ b/ash/strings/ash_strings_ta.xtb
@@ -110,6 +110,7 @@ <translation id="2727977024730340865">குறைந்த சக்தியிலான சார்ஜர் செருகப்பட்டுள்ளது. பேட்டரி சார்ஜிங் நம்பகமானதாக இல்லாமல் இருக்கலாம்.</translation> <translation id="2761704814324807722">நிலைத் தட்டு, நேரம் <ph name="TIME" />, <ph name="BATTERY" /></translation> <translation id="277257480934873581"><ph name="NAME" /> உடன் மீண்டும் இணைக்கிறது</translation> +<translation id="2790844815106384441">இருப்பிடச் சேவைகள் அல்லது சாதனத்தின் மைக்ரோஃபோன், கேமரா அல்லது பிற அம்சங்களை இணையதளங்கள் பயன்படுத்தலாமா என்பதைத் தேர்வுசெய்யலாம்</translation> <translation id="2792498699870441125">Alt+Search</translation> <translation id="2805756323405976993">ஆப்ஸ்</translation> <translation id="2808012452536866044">உங்கள் சாதனத்துடன் இணைக்கப்பட்ட ஃபோன் மாற்றப்பட்டுள்ளது</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">மெனுவை விரி</translation> <translation id="3087734570205094154">கீழே</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (புளூடூத்)</translation> -<translation id="3124698051292518391">ஷெல்ஃபை எப்போதும் காட்டு</translation> <translation id="3126069444801937830">புதுப்பிக்க மீண்டும் தொடங்குக</translation> <translation id="3147142846278915599">துவக்கி (பயன்பாடுகளை ஒத்திசைக்கிறது...)</translation> <translation id="315116470104423982">மொபைல் டேட்டா</translation> @@ -194,6 +194,7 @@ <translation id="4200057768455216496">டாக் செய்யப்பட்ட பெரிதாக்கியின் ஷார்ட்கட்டை அழுத்தியுள்ளீர்கள். அதை இயக்க விரும்புகிறீர்களா?</translation> <translation id="4217571870635786043">சொல்வதை எழுதுவது</translation> <translation id="4261870227682513959">அறிவிப்பு அமைப்புகளைக் காண்பிக்கும். அறிவிப்புகள் முடக்கப்பட்டுள்ளன</translation> +<translation id="4269883910223712419">இந்தச் சாதனத்தின் நிர்வாகி இவற்றைச் செய்ய முடியும்:</translation> <translation id="4274921305979314545">உங்கள் Chromebookகை ஃபோனுடன் இணைக்கவும்</translation> <translation id="4279490309300973883">பிரதிபலிக்கிறது</translation> <translation id="4292681942966152062"><ph name="NETWORK_NAME" />ஐச் செயல்படுத்துகிறது</translation> @@ -221,6 +222,7 @@ <translation id="4734965478015604180">கிடைமட்டம்</translation> <translation id="476166673298332917">இந்தச் சாதனத்தின் நிர்வாகிக்கு கடவுச்சொற்கள், தகவல்தொடர்புகள் உட்பட அனைத்துச் செயல்பாடுகளுக்குமான அணுகல் உள்ளது.</translation> <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> க்கான கடவுச்சொல்</translation> +<translation id="4778095205580009397">டெமோ அமர்வில் Google அசிஸ்டண்ட்டைப் பயன்படுத்த முடியாது.</translation> <translation id="479989351350248267">Search</translation> <translation id="4804818685124855865">தொடர்பைத் துண்டி</translation> <translation id="4849058404725798627">விசைப்பலகை ஃபோகஸ் மூலம் ஆப்ஜெக்ட்டைத் தனிப்படுத்து</translation> @@ -233,10 +235,10 @@ <translation id="4917385247580444890">வலிமையானது</translation> <translation id="4918086044614829423">ஏற்கிறேன்</translation> <translation id="4924411785043111640">மீண்டும் தொடங்கி, மீட்டமை</translation> -<translation id="4961318399572185831">அனுப்புதல் திரை</translation> +<translation id="4961318399572185831">திரையை அலைபரப்பு</translation> <translation id="5083553833479578423">மேலும் பல அசிஸ்டண்ட் அம்சங்களைப் பெறுக.</translation> <translation id="5136175204352732067">வேறொரு விசைப்பலகை இணைக்கப்பட்டது</translation> -<translation id="5168181903108465623">அனுப்பும் சாதனங்கள் உள்ளன</translation> +<translation id="5168181903108465623">Cast சாதனங்கள் உள்ளன</translation> <translation id="5207949376430453814">உரைச் சுட்டியைத் தனிப்படுத்து</translation> <translation id="5222676887888702881">வெளியேறு</translation> <translation id="523505283826916779">அணுகல்தன்மை அமைப்புகள்</translation> @@ -251,7 +253,7 @@ <translation id="54609108002486618">நிர்வகிக்கப்பட்டது</translation> <translation id="5496819745535887422">உங்கள் நிர்வாகி உங்கள் சாதனத்தை மீட்டமைக்கிறார். சாதனம் மீண்டும் தொடங்கும்போது அனைத்துத் தரவும் நீக்கப்படும்.</translation> <translation id="553675580533261935">அமர்விலிருந்து வெளியேறுதல்</translation> -<translation id="5537725057119320332">அனுப்பு</translation> +<translation id="5537725057119320332">அலைபரப்பு</translation> <translation id="5548285847212963613">"<ph name="EXTENSION_NAME" />" என்ற நீட்டிப்பு இந்த நெட்வொர்க்குடன் இணைய உதவும்.</translation> <translation id="554893713779400387">சொல்வதை எழுதுவதை நிலைமாற்று</translation> <translation id="5571066253365925590">புளூடூத் இயக்கப்பட்டது</translation> @@ -304,7 +306,7 @@ <translation id="6284232397434400372">தெளிவு மாற்றப்பட்டது</translation> <translation id="6297287540776456956">பகுதியைத் தேர்ந்தெடுக்க, ஸ்டைஸைப் பயன்படுத்தவும்</translation> <translation id="6310121235600822547"><ph name="DISPLAY_NAME" /> <ph name="ROTATION" /> ஆகச் சுழற்றப்பட்டது</translation> -<translation id="632744581670418035">விசைப்பலகை மேல்தோற்றம்</translation> +<translation id="632744581670418035">கீபோர்டு மேல் அடுக்கு</translation> <translation id="6376931439017688372">புளூடூத் இயக்கப்பட்டுள்ளது</translation> <translation id="639644700271529076">CAPS LOCK முடக்கப்பட்டுள்ளது</translation> <translation id="6406704438230478924">altgr</translation> @@ -336,6 +338,7 @@ <translation id="6751826523481687655">செயல்திறன் டிரேஸிங் இயக்கத்தில் உள்ளது</translation> <translation id="6785414152754474415">பேட்டரி <ph name="PERCENTAGE" />% நிரம்பியது, மேலும் சார்ஜ் ஆகிறது.</translation> <translation id="6803622936009808957">ஆதரிக்கும் தெளிவுகள் கிடைக்காததால் காட்சிகளைப் பிரதிபலிக்க முடியவில்லை. பதிலாக நீட்டிக்கப்பட்ட டெஸ்க்டாப்பிற்குச் சென்றது.</translation> +<translation id="6814658242098378692">ஆப்ஸ், நீட்டிப்புகள் மற்றும் தீம்களை நிர்வகிக்கலாம்</translation> <translation id="6820676911989879663">சிறிது நேரம் இடைவேளை எடுத்துக்கொள்ளவும்!</translation> <translation id="683971173229319003">Search+L</translation> <translation id="6857811139397017780"><ph name="NETWORKSERVICE" /> ஐ செயல்படுத்து</translation> @@ -359,6 +362,7 @@ <translation id="7168224885072002358"><ph name="TIMEOUT_SECONDS" /> வினாடிகளில் பழைய தெளிவுதிறனுக்கு மாற்றியமைக்கப்படும்</translation> <translation id="7256634071279256947">பின்பக்க மைக்ரோஃபோன்</translation> <translation id="726276584504105859">திரைப் பிரிப்பைப் பயன்படுத்த, இங்கே இழுக்கவும்</translation> +<translation id="7303365578352795231">மற்றொரு சாதனத்தில் பதிலளிக்கப்படுகிறது.</translation> <translation id="7348093485538360975">ஆன்-ஸ்கிரீன் விசைப்பலகை</translation> <translation id="735745346212279324">VPN துண்டிக்கப்பட்டது</translation> <translation id="7377169924702866686">Caps Lock இயக்கத்தில் உள்ளது.</translation> @@ -391,6 +395,7 @@ <translation id="7842211907556571265"><ph name="NETWORK_NAME" /> உடன் இணைக்கிறது</translation> <translation id="7842569679327885685">எச்சரிக்கை: சோதனை அம்சம்</translation> <translation id="7846634333498149051">விசைப்பலகை</translation> +<translation id="7886169021410746335">தனியுரிமை அமைப்புகளைச் சரிசெய்யலாம்</translation> <translation id="7886277072580235377">வெளியேறும்போது உங்கள் இணைய அமர்வு அழிக்கப்படும். <ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">மின்னஞ்சல் அனுப்பு</translation> <translation id="7904094684485781019">இந்தக் கணக்கிற்கான நிர்வாகி பல உள்நுழைவுகளை அனுமதிக்கவில்லை.</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb index 7d21adcd..7db9c4b 100644 --- a/ash/strings/ash_strings_te.xtb +++ b/ash/strings/ash_strings_te.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">మెనూని విస్తరించు</translation> <translation id="3087734570205094154">దిగువ</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (బ్లూటూత్)</translation> -<translation id="3124698051292518391">ఎల్లప్పుడూ అరను చూపు</translation> <translation id="3126069444801937830">నవీకరించడానికి పునఃప్రారంభించండి</translation> <translation id="3147142846278915599">లాంచర్ (అనువర్తనాలను సమకాలీకరిస్తోంది...)</translation> <translation id="315116470104423982">మొబైల్ డేటా</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb index e428843..0f4f2d8 100644 --- a/ash/strings/ash_strings_th.xtb +++ b/ash/strings/ash_strings_th.xtb
@@ -41,7 +41,7 @@ <translation id="1570871743947603115">เปิด/ปิดบลูทูธ <ph name="STATE_TEXT" /></translation> <translation id="1608626060424371292">ลบผู้ใช้รายนี้</translation> <translation id="1621499497873603021">เวลาที่เหลือกว่าแบตเตอรี่จะหมด, <ph name="TIME_LEFT" /></translation> -<translation id="1654477262762802994">เริ่มฟังคำค้นหาด้วยเสียง</translation> +<translation id="1654477262762802994">เริ่มการค้นหาด้วยเสียง</translation> <translation id="1658406695958299976">ขออภัย ยังคงยืนยันรหัสผ่านไม่ได้ หมายเหตุ: หากคุณเปลี่ยนแปลงรหัสผ่านไปเมื่อเร็วๆ นี้ รหัสผ่านใหม่จะมีผลเมื่อคุณออกจากระบบ โปรดใช้รหัสผ่านเดิมที่นี่</translation> <translation id="1677472565718498478">ใช้ได้อีก <ph name="TIME" /></translation> <translation id="1698760176351776263">ที่อยู่ IPv6: <ph name="ADDRESS" /></translation> @@ -110,6 +110,7 @@ <translation id="2727977024730340865">เสียบอยู่กับที่ชาร์จพลังงานต่ำ การชาร์จแบตเตอรี่อาจไม่น่าเชื่อถือ</translation> <translation id="2761704814324807722">ถาดสถานะ เวลา <ph name="TIME" />, <ph name="BATTERY" /></translation> <translation id="277257480934873581">กำลังเชื่อมต่อ <ph name="NAME" /> อีกครั้ง</translation> +<translation id="2790844815106384441">เลือกว่าเว็บไซต์จะใช้บริการตำแหน่งหรือไมโครโฟน กล้อง หรือฟีเจอร์อื่นๆ ของอุปกรณ์ได้หรือไม่</translation> <translation id="2792498699870441125">Alt+ค้นหา</translation> <translation id="2805756323405976993">แอป</translation> <translation id="2808012452536866044">Better Together เปลี่ยนไปเชื่อมต่อกับโทรศัพท์เครื่องใหม่แล้ว</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">ขยายเมนู</translation> <translation id="3087734570205094154">ด้านล่าง</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (บลูทูธ)</translation> -<translation id="3124698051292518391">แสดงชั้นวางเสมอ</translation> <translation id="3126069444801937830">รีสตาร์ทเพื่ออัปเดต</translation> <translation id="3147142846278915599">Launcher (กำลังซิงค์แอป...)</translation> <translation id="315116470104423982">เน็ตมือถือ</translation> @@ -180,7 +180,7 @@ <translation id="385051799172605136">กลับ</translation> <translation id="3891340733213178823">กด Ctrl+Shift+Q 2 ครั้งเพื่อออกจากระบบ</translation> <translation id="3893630138897523026">ChromeVox (การตอบสนองด้วยเสียง)</translation> -<translation id="3897533311200664389">เริ่มพิมพ์คำค้นหา</translation> +<translation id="3897533311200664389">เริ่มการค้นหาด้วยข้อความ</translation> <translation id="3899995891769452915">ป้อนข้อมูลด้วยเสียง</translation> <translation id="3900355044994618856">เซสชันจะสิ้นสุดใน <ph name="SESSION_TIME_REMAINING" /></translation> <translation id="3901991538546252627">กำลังเชื่อมต่อกับ <ph name="NAME" /></translation> @@ -194,6 +194,7 @@ <translation id="4200057768455216496">คุณกดแป้นพิมพ์ลัดสำหรับแว่นขยายหน้าจอบางส่วน จะเปิดแว่นขยายไหม</translation> <translation id="4217571870635786043">การพิมพ์ตามคำบอก</translation> <translation id="4261870227682513959">แสดงการตั้งค่าการแจ้งเตือน การแจ้งเตือนปิดอยู่</translation> +<translation id="4269883910223712419">ผู้ดูแลระบบของอุปกรณ์เครื่องนี้ทำสิ่งต่อไปนี้ได้</translation> <translation id="4274921305979314545">เชื่อมต่อ Chromebook กับโทรศัพท์</translation> <translation id="4279490309300973883">กำลังแสดงผล</translation> <translation id="4292681942966152062">กำลังเปิดใช้งาน<ph name="NETWORK_NAME" /></translation> @@ -222,6 +223,7 @@ <translation id="4734965478015604180">แนวนอน</translation> <translation id="476166673298332917">ผู้ดูแลระบบของอุปกรณ์นี้มีสิทธิ์เข้าถึงกิจกรรมทั้งหมด ซึ่งรวมถึงรหัสผ่านและการสื่อสารต่างๆ</translation> <translation id="4776917500594043016">รหัสผ่านของ <ph name="USER_EMAIL_ADDRESS" /></translation> +<translation id="4778095205580009397">Google Assistant ไม่พร้อมใช้งานในเซสชันสาธิต</translation> <translation id="479989351350248267">ค้นหา</translation> <translation id="4804818685124855865">ตัดการเชื่อมต่อ</translation> <translation id="4849058404725798627">ไฮไลต์วัตถุที่มีโฟกัสแป้นพิมพ์</translation> @@ -337,6 +339,7 @@ <translation id="6751826523481687655">การติดตามประสิทธิภาพเปิดอยู่</translation> <translation id="6785414152754474415">มีแบตเตอรี่ <ph name="PERCENTAGE" />% และกำลังชาร์จ</translation> <translation id="6803622936009808957">ไม่สามารถแสดงผลคู่ขนานได้เนื่องจากไม่พบความละเอียดที่สนับสนุน เข้าสู่เดสก์ท็อปแบบขยายแทน</translation> +<translation id="6814658242098378692">จัดการแอป ส่วนขยาย และธีม</translation> <translation id="6820676911989879663">พักสายตาหน่อย</translation> <translation id="683971173229319003">Search+L</translation> <translation id="6857811139397017780">เปิดใช้งาน <ph name="NETWORKSERVICE" /></translation> @@ -360,6 +363,7 @@ <translation id="7168224885072002358">เปลี่ยนกลับไปเป็นความละเอียดเดิมภายใน <ph name="TIMEOUT_SECONDS" /></translation> <translation id="7256634071279256947">ไมโครโฟนด้านหลัง</translation> <translation id="726276584504105859">ลากมาที่นี่เพื่อใช้การแยกหน้าจอ</translation> +<translation id="7303365578352795231">กำลังรับสายในอุปกรณ์อื่น</translation> <translation id="7348093485538360975">แป้นพิมพ์บนหน้าจอ</translation> <translation id="735745346212279324">ยกเลิกการเชื่อมต่อ VPN แล้ว</translation> <translation id="7377169924702866686">Caps Lock เปิดอยู่</translation> @@ -392,6 +396,7 @@ <translation id="7842211907556571265">กำลังเชื่อมต่อ <ph name="NETWORK_NAME" /></translation> <translation id="7842569679327885685">คำเตือน: ฟีเจอร์ทดลอง</translation> <translation id="7846634333498149051">แป้นพิมพ์</translation> +<translation id="7886169021410746335">ปรับการตั้งค่าความเป็นส่วนตัว</translation> <translation id="7886277072580235377">ระบบจะล้างเซสชันอินเทอร์เน็ตของคุณเมื่อออกจากระบบ <ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">ส่งอีเมล</translation> <translation id="7904094684485781019">ผู้ดูแลระบบของบัญชีนี้ไม่อนุญาตการลงชื่อเข้าสู่ระบบพร้อมกันหลายบัญชี</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb index a020c4f..15bb222 100644 --- a/ash/strings/ash_strings_tr.xtb +++ b/ash/strings/ash_strings_tr.xtb
@@ -23,7 +23,7 @@ <translation id="1279938420744323401"><ph name="DISPLAY_NAME" /> (<ph name="ANNOTATION" />)</translation> <translation id="1290331692326790741">Zayıf sinyal</translation> <translation id="1293264513303784526">USB-C cihaz (sol bağlantı noktası)</translation> -<translation id="1294929383540927798">Kilit ekranı bildirim ayarlarını değiştirin</translation> +<translation id="1294929383540927798">Kilit ekranı bildirim ayarlarını değiştir</translation> <translation id="1302880136325416935">Bluetooth ayarlarını göster. <ph name="STATE_TEXT" /></translation> <translation id="1346748346194534595">Sağa</translation> <translation id="1351937230027495976">Menüyü daralt</translation> @@ -137,7 +137,6 @@ <translation id="3081696990447829002">Menüyü genişlet</translation> <translation id="3087734570205094154">Alt</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Her Zaman Rafı Göster</translation> <translation id="3126069444801937830">Güncellemek için yeniden başlat</translation> <translation id="3147142846278915599">Launcher (uygulamalar senkronize ediliyor...)</translation> <translation id="315116470104423982">Mobil veriler</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb index 69c13cc..597acd81 100644 --- a/ash/strings/ash_strings_uk.xtb +++ b/ash/strings/ash_strings_uk.xtb
@@ -41,7 +41,7 @@ <translation id="1570871743947603115">Увімкнути/вимкнути Bluetooth. <ph name="STATE_TEXT" /></translation> <translation id="1608626060424371292">Вилучити цього користувача</translation> <translation id="1621499497873603021">До розрядження акумулятора залишилося <ph name="TIME_LEFT" /></translation> -<translation id="1654477262762802994">Почати вводити голосовий запит</translation> +<translation id="1654477262762802994">Ввести голосовий запит</translation> <translation id="1658406695958299976">На жаль, поки не вдалося підтвердити ваш пароль. Зверніть увагу: якщо ви нещодавно змінили пароль, новий пароль буде застосовано, щойно ви вийдете з облікового запису. Скористайтеся старим паролем тут.</translation> <translation id="1677472565718498478">Залишилося <ph name="TIME" /></translation> <translation id="1698760176351776263">Адреса IPv6: <ph name="ADDRESS" /></translation> @@ -110,6 +110,7 @@ <translation id="2727977024730340865">Підключено до зарядного пристрою низької потужності. Акумулятор може заряджатися неналежним чином.</translation> <translation id="2761704814324807722">Панель статусу, час: <ph name="TIME" />, <ph name="BATTERY" /></translation> <translation id="277257480934873581">Під’єднання до мережі <ph name="NAME" /></translation> +<translation id="2790844815106384441">визначати, чи дозволено веб-сайтам використовувати служби локації або мікрофон, камеру чи інші функції пристрою;</translation> <translation id="2792498699870441125">Alt+клавіша пошуку</translation> <translation id="2805756323405976993">Додатки</translation> <translation id="2808012452536866044">Функція Better Together тепер є на новому телефоні</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">Розгорнути меню</translation> <translation id="3087734570205094154">Низ</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Завжди показувати полицю</translation> <translation id="3126069444801937830">Перезапустіть, щоб оновити</translation> <translation id="3147142846278915599">Панель запуску (синхронізація додатків…)</translation> <translation id="315116470104423982">Мобільне передавання даних</translation> @@ -180,7 +180,7 @@ <translation id="385051799172605136">Назад</translation> <translation id="3891340733213178823">Щоб вийти, двічі натисніть Ctrl+Shift+Q.</translation> <translation id="3893630138897523026">ChromeVox (голосові підказки)</translation> -<translation id="3897533311200664389">Почати вводити текстовий запит</translation> +<translation id="3897533311200664389">Ввести текстовий запит</translation> <translation id="3899995891769452915">Голосовий ввід</translation> <translation id="3900355044994618856">Сеанс закінчиться через <ph name="SESSION_TIME_REMAINING" /></translation> <translation id="3901991538546252627">Під’єднання до <ph name="NAME" /></translation> @@ -194,6 +194,7 @@ <translation id="4200057768455216496">Ви натиснули комбінацію клавіш для закріпленої лупи. Увімкнути?</translation> <translation id="4217571870635786043">Диктування</translation> <translation id="4261870227682513959">Показати налаштування сповіщень. Сповіщення вимкнено</translation> +<translation id="4269883910223712419">Адміністратор цього пристрою може:</translation> <translation id="4274921305979314545">Підключіть Chromebook до телефона</translation> <translation id="4279490309300973883">Дзеркальне відображення</translation> <translation id="4292681942966152062">Активується мережа: <ph name="NETWORK_NAME" /></translation> @@ -221,6 +222,7 @@ <translation id="4734965478015604180">Горизонтально</translation> <translation id="476166673298332917">Адміністратор цього пристрою має доступ до всієї активності, зокрема паролів і взаємодій.</translation> <translation id="4776917500594043016">Пароль користувача <ph name="USER_EMAIL_ADDRESS" /></translation> +<translation id="4778095205580009397">Google Асистент недоступний у демонстраційному сеансі.</translation> <translation id="479989351350248267">пошук</translation> <translation id="4804818685124855865">Від'єднатися</translation> <translation id="4849058404725798627">Підсвічувати об’єкт, вибраний на клавіатурі</translation> @@ -336,6 +338,7 @@ <translation id="6751826523481687655">Відстеження ефективності ввімкнено</translation> <translation id="6785414152754474415">Акумулятор заряджений на <ph name="PERCENTAGE" />% і заряджається.</translation> <translation id="6803622936009808957">Не вдалося дублювати зображення екранів, оскільки не знайдено підтримувані значення роздільної здатності. Натомість запущено режим розширеного робочого столу.</translation> +<translation id="6814658242098378692">керувати додатками, розширеннями й темами;</translation> <translation id="6820676911989879663">Зробіть перерву!</translation> <translation id="683971173229319003">Search (Пошук)+L</translation> <translation id="6857811139397017780">Активувати <ph name="NETWORKSERVICE" /></translation> @@ -359,6 +362,7 @@ <translation id="7168224885072002358">Попередня роздільна здатність повернеться через <ph name="TIMEOUT_SECONDS" /></translation> <translation id="7256634071279256947">Мікрофон на задній панелі</translation> <translation id="726276584504105859">Перетягніть сюди, щоб розділити екран</translation> +<translation id="7303365578352795231">Відповідь на іншому пристрої.</translation> <translation id="7348093485538360975">Екранна клавіатура</translation> <translation id="735745346212279324">VPN від’єднано</translation> <translation id="7377169924702866686">Клавішу Caps Lock увімкнено.</translation> @@ -391,6 +395,7 @@ <translation id="7842211907556571265">Під’єднання до мережі: <ph name="NETWORK_NAME" /></translation> <translation id="7842569679327885685">Попередження. Експериментальна функція</translation> <translation id="7846634333498149051">Клавіатура</translation> +<translation id="7886169021410746335">змінювати налаштування конфіденційності.</translation> <translation id="7886277072580235377">Коли ви вийдете з облікового запису, дані інтернет-сеансу буде стерто. <ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">Надішли електронний лист</translation> <translation id="7904094684485781019">Адміністратор цього облікового запису заборонив паралельний вхід.</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb index 4437ba74..2a53b8e6 100644 --- a/ash/strings/ash_strings_vi.xtb +++ b/ash/strings/ash_strings_vi.xtb
@@ -23,7 +23,7 @@ <translation id="1279938420744323401"><ph name="DISPLAY_NAME" /> (<ph name="ANNOTATION" />)</translation> <translation id="1290331692326790741">Tín hiệu yếu</translation> <translation id="1293264513303784526">Thiết bị USB-C (cổng bên trái)</translation> -<translation id="1294929383540927798">Thay đổi mục cài đặt thông báo trên màn hình khóa</translation> +<translation id="1294929383540927798">Thay đổi các mục cài đặt thông báo trên màn hình khóa</translation> <translation id="1302880136325416935">Hiển thị các tùy chọn cài đặt Bluetooth. <ph name="STATE_TEXT" /></translation> <translation id="1346748346194534595">Phải</translation> <translation id="1351937230027495976">Thu gọn menu</translation> @@ -41,7 +41,7 @@ <translation id="1570871743947603115">Bật/tắt Bluetooth. <ph name="STATE_TEXT" /></translation> <translation id="1608626060424371292">Xóa người dùng này</translation> <translation id="1621499497873603021">Thời gian còn lại cho đến khi pin hết, <ph name="TIME_LEFT" /></translation> -<translation id="1654477262762802994">Bắt đầu truy vấn bằng giọng nói</translation> +<translation id="1654477262762802994">Bắt đầu đặt câu hỏi bằng giọng nói</translation> <translation id="1658406695958299976">Rất tiếc, chúng tôi vẫn không thể xác minh được mật khẩu của bạn. Lưu ý: nếu gần đây bạn đã đổi mật khẩu thì mật khẩu mới của bạn sẽ được áp dụng sau khi bạn đăng xuất. Vui lòng sử dụng mật khẩu cũ của bạn tại đây.</translation> <translation id="1677472565718498478">Còn <ph name="TIME" /></translation> <translation id="1698760176351776263">Địa chỉ IPv6: <ph name="ADDRESS" /></translation> @@ -137,7 +137,6 @@ <translation id="3081696990447829002">Mở rộng menu</translation> <translation id="3087734570205094154">Bên dưới</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (Bluetooth)</translation> -<translation id="3124698051292518391">Luôn hiển thị giá</translation> <translation id="3126069444801937830">Khởi động lại để cập nhật</translation> <translation id="3147142846278915599">Trình khởi chạy (đang đồng bộ hóa ứng dụng...)</translation> <translation id="315116470104423982">Dữ liệu di động</translation> @@ -180,7 +179,7 @@ <translation id="385051799172605136">Quay lại</translation> <translation id="3891340733213178823">Nhấn Ctrl+Shift+Q hai lần để đăng xuất.</translation> <translation id="3893630138897523026">ChromeVox (phản hồi bằng giọng nói)</translation> -<translation id="3897533311200664389">Bắt đầu truy vấn bằng văn bản</translation> +<translation id="3897533311200664389">Bắt đầu đặt câu hỏi bằng văn bản</translation> <translation id="3899995891769452915">Nhập bằng giọng nói</translation> <translation id="3900355044994618856">Phiên hoạt động của bạn sẽ kết thúc sau <ph name="SESSION_TIME_REMAINING" /></translation> <translation id="3901991538546252627">Đang kết nối với <ph name="NAME" /></translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb index 0a9103e..5e461862 100644 --- a/ash/strings/ash_strings_zh-CN.xtb +++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -137,7 +137,6 @@ <translation id="3081696990447829002">展开菜单</translation> <translation id="3087734570205094154">底部</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" />(蓝牙)</translation> -<translation id="3124698051292518391">一律显示任务栏</translation> <translation id="3126069444801937830">重新启动以进行更新</translation> <translation id="3147142846278915599">启动器(正在同步应用…)</translation> <translation id="315116470104423982">移动数据</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb index e2abaf5..cfe003c 100644 --- a/ash/strings/ash_strings_zh-TW.xtb +++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -110,6 +110,7 @@ <translation id="2727977024730340865">使用低功率充電器,可能導致充電狀態不穩定。</translation> <translation id="2761704814324807722">狀態匣:時間 <ph name="TIME" />,<ph name="BATTERY" /></translation> <translation id="277257480934873581">正在重新連線至 <ph name="NAME" /></translation> +<translation id="2790844815106384441">選擇網站是否可使用定位服務,或是裝置的麥克風、相機或其他功能</translation> <translation id="2792498699870441125">Alt + 搜尋鍵</translation> <translation id="2805756323405976993">應用程式</translation> <translation id="2808012452536866044">Better Together 已改與新手機連結</translation> @@ -137,7 +138,6 @@ <translation id="3081696990447829002">展開選單</translation> <translation id="3087734570205094154">置底</translation> <translation id="3105990244222795498"><ph name="DEVICE_NAME" /> (藍牙)</translation> -<translation id="3124698051292518391">一律顯示檔案櫃</translation> <translation id="3126069444801937830">重新啟動即可更新</translation> <translation id="3147142846278915599">啟動器 (正在同步處理應用程式...)</translation> <translation id="315116470104423982">行動數據</translation> @@ -194,6 +194,7 @@ <translation id="4200057768455216496">你按下了停駐放大鏡的快速鍵。確定要啟用這項功能嗎?</translation> <translation id="4217571870635786043">語音輸入</translation> <translation id="4261870227682513959">顯示通知設定。已關閉所有通知</translation> +<translation id="4269883910223712419">這部裝置的管理員擁有下列權限:</translation> <translation id="4274921305979314545">為你的 Chromebook 和手機建立連結</translation> <translation id="4279490309300973883">鏡像</translation> <translation id="4292681942966152062">正在啟動<ph name="NETWORK_NAME" /></translation> @@ -221,6 +222,7 @@ <translation id="4734965478015604180">橫向</translation> <translation id="476166673298332917">這個裝置的管理員擁有所有活動的存取權限,包含存取密碼和通訊記錄的相關權限。</translation> <translation id="4776917500594043016"><ph name="USER_EMAIL_ADDRESS" /> 的密碼</translation> +<translation id="4778095205580009397">Google 助理不適用於示範工作階段。</translation> <translation id="479989351350248267">search</translation> <translation id="4804818685124855865">中斷連線</translation> <translation id="4849058404725798627">醒目顯示鍵盤焦點所在物件</translation> @@ -336,6 +338,7 @@ <translation id="6751826523481687655">效能追蹤已啟用</translation> <translation id="6785414152754474415">電池電量為 <ph name="PERCENTAGE" />% (充電中)。</translation> <translation id="6803622936009808957">找不到系統支援的解析度,因此無法顯示鏡像。已改為進入延伸桌面。</translation> +<translation id="6814658242098378692">管理應用程式、擴充功能和主題</translation> <translation id="6820676911989879663">目前禁止使用裝置!</translation> <translation id="683971173229319003">搜尋鍵 + L 鍵</translation> <translation id="6857811139397017780">啟用 <ph name="NETWORKSERVICE" /></translation> @@ -359,6 +362,7 @@ <translation id="7168224885072002358">系統將在 <ph name="TIMEOUT_SECONDS" /> 秒後還原成原來的解析度</translation> <translation id="7256634071279256947">後置麥克風</translation> <translation id="726276584504105859">拖曳到這裡即可使用分割畫面</translation> +<translation id="7303365578352795231">正在透過其他裝置回答問題。</translation> <translation id="7348093485538360975">螢幕小鍵盤</translation> <translation id="735745346212279324">已中斷 VPN 連線</translation> <translation id="7377169924702866686">大寫鍵已啟用。</translation> @@ -391,6 +395,7 @@ <translation id="7842211907556571265">正在連線至<ph name="NETWORK_NAME" /></translation> <translation id="7842569679327885685">警告:實驗功能</translation> <translation id="7846634333498149051">鍵盤</translation> +<translation id="7886169021410746335">調整隱私權設定</translation> <translation id="7886277072580235377">登出帳戶後,系統將清除你的網際網路工作階段。<ph name="LEARN_MORE" /></translation> <translation id="788781083998633524">傳送電子郵件</translation> <translation id="7904094684485781019">這個帳戶的管理員已禁止多重登入。</translation>
diff --git a/ash/system/network/network_state_list_detailed_view.cc b/ash/system/network/network_state_list_detailed_view.cc index e3c8cf6..ab5a2eac1 100644 --- a/ash/system/network/network_state_list_detailed_view.cc +++ b/ash/system/network/network_state_list_detailed_view.cc
@@ -384,7 +384,7 @@ void NetworkStateListDetailedView::CallRequestScan() { VLOG(1) << "Requesting Network Scan."; NetworkHandler::Get()->network_state_handler()->RequestScan( - NetworkTypePattern::WiFi()); + NetworkTypePattern::WiFi() | NetworkTypePattern::Tether()); // Periodically request a scan while this UI is open. base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( FROM_HERE,
diff --git a/ash/system/tray_accessibility.cc b/ash/system/tray_accessibility.cc index 2d61945..e0d4a2f1 100644 --- a/ash/system/tray_accessibility.cc +++ b/ash/system/tray_accessibility.cc
@@ -23,6 +23,7 @@ #include "ash/system/tray/tray_detailed_view.h" #include "ash/system/tray/tray_item_more.h" #include "ash/system/tray/tray_popup_utils.h" +#include "ash/system/tray/tray_utils.h" #include "ash/system/tray/tri_view.h" #include "base/command_line.h" #include "base/metrics/user_metrics.h" @@ -476,6 +477,9 @@ void TrayAccessibility::SetTrayIconVisible(bool visible) { if (tray_view()) tray_view()->SetVisible(visible); + + SetIconColor(TrayIconColor( + ash::Shell::Get()->session_controller()->GetSessionState())); tray_icon_visible_ = visible; } @@ -543,4 +547,9 @@ detailed_menu_->OnAccessibilityStatusChanged(); } +void TrayAccessibility::OnSessionStateChanged( + session_manager::SessionState state) { + SetTrayIconVisible(GetInitialVisibility()); +} + } // namespace ash
diff --git a/ash/system/tray_accessibility.h b/ash/system/tray_accessibility.h index ddb5ee8..7522b4b 100644 --- a/ash/system/tray_accessibility.h +++ b/ash/system/tray_accessibility.h
@@ -9,6 +9,7 @@ #include "ash/accessibility/accessibility_delegate.h" #include "ash/accessibility/accessibility_observer.h" +#include "ash/session/session_observer.h" #include "ash/system/tray/tray_detailed_view.h" #include "ash/system/tray/tray_image_item.h" #include "base/macros.h" @@ -102,7 +103,9 @@ } // namespace tray -class TrayAccessibility : public TrayImageItem, public AccessibilityObserver { +class TrayAccessibility : public TrayImageItem, + public AccessibilityObserver, + public SessionObserver { public: explicit TrayAccessibility(SystemTray* system_tray); ~TrayAccessibility() override; @@ -126,6 +129,9 @@ // Overridden from AccessibilityObserver. void OnAccessibilityStatusChanged() override; + // Overridden from SessionObserver: + void OnSessionStateChanged(session_manager::SessionState state) override; + views::View* default_; tray::AccessibilityDetailedView* detailed_menu_; @@ -135,6 +141,8 @@ // A11y feature status on just entering the lock screen. bool show_a11y_menu_on_lock_screen_; + ScopedSessionObserver session_observer_{this}; + const std::unique_ptr<DetailedViewDelegate> detailed_view_delegate_; DISALLOW_COPY_AND_ASSIGN(TrayAccessibility);
diff --git a/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.cc b/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.cc index 0064bba..fee68f8f 100644 --- a/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.cc +++ b/ash/wm/tablet_mode/tablet_mode_window_drag_delegate.cc
@@ -72,7 +72,9 @@ split_view_drag_indicators_(std::make_unique<SplitViewDragIndicators>()), weak_ptr_factory_(this) {} -TabletModeWindowDragDelegate::~TabletModeWindowDragDelegate() = default; +TabletModeWindowDragDelegate::~TabletModeWindowDragDelegate() { + Shell::Get()->UpdateShelfVisibility(); +} void TabletModeWindowDragDelegate::StartWindowDrag( aura::Window* dragged_window, @@ -82,7 +84,7 @@ PrepareForDraggedWindow(location_in_screen); - // Update the shelf's visibility. + // Update the shelf's visibility to keep shelf visible during drag. RootWindowController::ForWindow(dragged_window_) ->GetShelfLayoutManager() ->UpdateVisibilityState();
diff --git a/base/OWNERS b/base/OWNERS index 77641a8..5b6a6b5 100644 --- a/base/OWNERS +++ b/base/OWNERS
@@ -20,6 +20,7 @@ ajwong@chromium.org danakj@chromium.org dcheng@chromium.org +fdoray@chromium.org gab@chromium.org kylechar@chromium.org mark@chromium.org
diff --git a/base/allocator/allocator_shim_unittest.cc b/base/allocator/allocator_shim_unittest.cc index 3be8f2ca..20a2dace 100644 --- a/base/allocator/allocator_shim_unittest.cc +++ b/base/allocator/allocator_shim_unittest.cc
@@ -107,9 +107,8 @@ if (!instance_->did_fail_realloc_0xfeed_once->Get()) { instance_->did_fail_realloc_0xfeed_once->Set(true); return nullptr; - } else { - return address; } + return address; } if (size < kMaxSizeTracked)
diff --git a/base/allocator/partition_allocator/partition_alloc.cc b/base/allocator/partition_allocator/partition_alloc.cc index 223fe29..de14a81 100644 --- a/base/allocator/partition_allocator/partition_alloc.cc +++ b/base/allocator/partition_allocator/partition_alloc.cc
@@ -276,8 +276,7 @@ if (new_size > kGenericMaxDirectMapped) { if (flags & PartitionAllocReturnNull) return nullptr; - else - internal::PartitionExcessiveAllocationSize(); + internal::PartitionExcessiveAllocationSize(); } internal::PartitionPage* page = internal::PartitionPage::FromPointer( @@ -320,8 +319,7 @@ if (!ret) { if (flags & PartitionAllocReturnNull) return nullptr; - else - internal::PartitionExcessiveAllocationSize(); + internal::PartitionExcessiveAllocationSize(); } size_t copy_size = actual_old_size;
diff --git a/base/allocator/tcmalloc_unittest.cc b/base/allocator/tcmalloc_unittest.cc index 78c4f84..0b3fc99 100644 --- a/base/allocator/tcmalloc_unittest.cc +++ b/base/allocator/tcmalloc_unittest.cc
@@ -68,9 +68,8 @@ CHECK_EQ(size, power); return power + 1; - } else { - return -1; } + return -1; } static void TestCalloc(size_t n, size_t s, bool ok) {
diff --git a/base/android/java/src/org/chromium/base/compat/ApiHelperForM.java b/base/android/java/src/org/chromium/base/compat/ApiHelperForM.java index f8098953..2474004 100644 --- a/base/android/java/src/org/chromium/base/compat/ApiHelperForM.java +++ b/base/android/java/src/org/chromium/base/compat/ApiHelperForM.java
@@ -5,6 +5,9 @@ package org.chromium.base.compat; import android.annotation.TargetApi; +import android.net.ConnectivityManager; +import android.net.Network; +import android.net.NetworkInfo; import android.os.Build; import android.os.Process; import android.webkit.WebView; @@ -36,4 +39,25 @@ public static boolean isProcess64Bit() { return Process.is64Bit(); } + + /** See {@link ConnectivityManager#getBoundNetworkForProcess() } */ + public static Network getBoundNetworkForProcess(ConnectivityManager connectivityManager) { + return connectivityManager.getBoundNetworkForProcess(); + } + + /** See {@link Network#getNetworkHandle() } */ + public static long getNetworkHandle(Network network) { + return network.getNetworkHandle(); + } + + /** See @{link ConnectivityManager#getActiveNetwork() } */ + public static Network getActiveNetwork(ConnectivityManager connectivityManager) { + return connectivityManager.getActiveNetwork(); + } + + /** See @{link ConnectivityManager#getNetworkInfo(Network) } */ + public static NetworkInfo getNetworkInfo( + ConnectivityManager connectivityManager, Network network) { + return connectivityManager.getNetworkInfo(network); + } }
diff --git a/base/i18n/rtl.cc b/base/i18n/rtl.cc index 5a8db8a..8951b328 100644 --- a/base/i18n/rtl.cc +++ b/base/i18n/rtl.cc
@@ -71,15 +71,16 @@ // Now that we have the character, we use ICU in order to query for the // appropriate Unicode BiDi character type. int32_t property = u_getIntPropertyValue(character, UCHAR_BIDI_CLASS); - if ((property == U_RIGHT_TO_LEFT) || - (property == U_RIGHT_TO_LEFT_ARABIC) || - (property == U_RIGHT_TO_LEFT_EMBEDDING) || - (property == U_RIGHT_TO_LEFT_OVERRIDE)) { - return base::i18n::RIGHT_TO_LEFT; - } else if ((property == U_LEFT_TO_RIGHT) || - (property == U_LEFT_TO_RIGHT_EMBEDDING) || - (property == U_LEFT_TO_RIGHT_OVERRIDE)) { - return base::i18n::LEFT_TO_RIGHT; + switch (property) { + case U_RIGHT_TO_LEFT: + case U_RIGHT_TO_LEFT_ARABIC: + case U_RIGHT_TO_LEFT_EMBEDDING: + case U_RIGHT_TO_LEFT_OVERRIDE: + return base::i18n::RIGHT_TO_LEFT; + case U_LEFT_TO_RIGHT: + case U_LEFT_TO_RIGHT_EMBEDDING: + case U_LEFT_TO_RIGHT_OVERRIDE: + return base::i18n::LEFT_TO_RIGHT; } return base::i18n::UNKNOWN_DIRECTION; }
diff --git a/base/i18n/string_search.cc b/base/i18n/string_search.cc index 2f6fee4f..9cf70ac 100644 --- a/base/i18n/string_search.cc +++ b/base/i18n/string_search.cc
@@ -48,15 +48,13 @@ // substring search will give the correct return value. if (!U_SUCCESS(status)) { size_t index = in_this.find(find_this_); - if (index == string16::npos) { + if (index == string16::npos) return false; - } else { - if (match_index) - *match_index = index; - if (match_length) - *match_length = find_this_.size(); - return true; - } + if (match_index) + *match_index = index; + if (match_length) + *match_length = find_this_.size(); + return true; } int32_t index = usearch_first(search_, &status);
diff --git a/base/i18n/time_formatting.cc b/base/i18n/time_formatting.cc index 3a5394a..d301ba4 100644 --- a/base/i18n/time_formatting.cc +++ b/base/i18n/time_formatting.cc
@@ -123,9 +123,8 @@ if (ampm == kKeepAmPm) { return TimeFormat(&formatter, time); - } else { - return TimeFormatWithoutAmPm(&formatter, time); } + return TimeFormatWithoutAmPm(&formatter, time); } string16 TimeFormatShortDate(const Time& time) { @@ -291,11 +290,7 @@ // // See http://userguide.icu-project.org/formatparse/datetime for details // about the date/time format syntax. - if (pattern_unicode.indexOf('a') == -1) { - return k24HourClock; - } else { - return k12HourClock; - } + return pattern_unicode.indexOf('a') == -1 ? k24HourClock : k12HourClock; } } // namespace base
diff --git a/base/json/json_file_value_serializer.cc b/base/json/json_file_value_serializer.cc index a7c68c5..6ec275c 100644 --- a/base/json/json_file_value_serializer.cc +++ b/base/json/json_file_value_serializer.cc
@@ -69,10 +69,8 @@ return JSON_ACCESS_DENIED; } #endif - if (!base::PathExists(json_file_path_)) - return JSON_NO_SUCH_FILE; - else - return JSON_CANNOT_READ_FILE; + return base::PathExists(json_file_path_) ? JSON_CANNOT_READ_FILE + : JSON_NO_SUCH_FILE; } last_read_size_ = json_string->size();
diff --git a/base/json/json_parser.cc b/base/json/json_parser.cc index dfe246c4..057f769 100644 --- a/base/json/json_parser.cc +++ b/base/json/json_parser.cc
@@ -471,7 +471,8 @@ ConsumeChar(); *out = std::move(string); return true; - } else if (next_char != '\\') { + } + if (next_char != '\\') { // If this character is not an escape sequence... ConsumeChar(); string.Append(next_char); @@ -714,16 +715,14 @@ } Optional<Value> JSONParser::ConsumeLiteral() { - if (ConsumeIfMatch("true")) { + if (ConsumeIfMatch("true")) return Value(true); - } else if (ConsumeIfMatch("false")) { + if (ConsumeIfMatch("false")) return Value(false); - } else if (ConsumeIfMatch("null")) { + if (ConsumeIfMatch("null")) return Value(Value::Type::NONE); - } else { - ReportError(JSONReader::JSON_SYNTAX_ERROR, 1); - return nullopt; - } + ReportError(JSONReader::JSON_SYNTAX_ERROR, 1); + return nullopt; } bool JSONParser::ConsumeIfMatch(StringPiece match) {
diff --git a/base/json/json_value_converter_unittest.cc b/base/json/json_value_converter_unittest.cc index 322f5f0..0946820 100644 --- a/base/json/json_value_converter_unittest.cc +++ b/base/json/json_value_converter_unittest.cc
@@ -34,7 +34,8 @@ if (value == "foo") { *field = FOO; return true; - } else if (value == "bar") { + } + if (value == "bar") { *field = BAR; return true; }
diff --git a/base/memory/fake_memory_pressure_monitor.cc b/base/memory/fake_memory_pressure_monitor.cc new file mode 100644 index 0000000..713b161 --- /dev/null +++ b/base/memory/fake_memory_pressure_monitor.cc
@@ -0,0 +1,33 @@ +// 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 "base/memory/fake_memory_pressure_monitor.h" + +namespace base { +namespace test { + +FakeMemoryPressureMonitor::FakeMemoryPressureMonitor() + : MemoryPressureMonitor(), + memory_pressure_level_(MemoryPressureLevel::MEMORY_PRESSURE_LEVEL_NONE) {} + +FakeMemoryPressureMonitor::~FakeMemoryPressureMonitor() {} + +void FakeMemoryPressureMonitor::SetAndNotifyMemoryPressure( + MemoryPressureLevel level) { + memory_pressure_level_ = level; + base::MemoryPressureListener::SimulatePressureNotification(level); +} + +base::MemoryPressureMonitor::MemoryPressureLevel +FakeMemoryPressureMonitor::GetCurrentPressureLevel() { + return memory_pressure_level_; +} + +void FakeMemoryPressureMonitor::SetDispatchCallback( + const DispatchCallback& callback) { + LOG(ERROR) << "FakeMemoryPressureMonitor::SetDispatchCallback"; +} + +} // namespace test +} // namespace base
diff --git a/base/memory/fake_memory_pressure_monitor.h b/base/memory/fake_memory_pressure_monitor.h new file mode 100644 index 0000000..2194b5f8 --- /dev/null +++ b/base/memory/fake_memory_pressure_monitor.h
@@ -0,0 +1,34 @@ +// 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 BASE_MEMORY_FAKE_MEMORY_PRESSURE_MONITOR_H_ +#define BASE_MEMORY_FAKE_MEMORY_PRESSURE_MONITOR_H_ + +#include "base/macros.h" +#include "base/memory/memory_pressure_monitor.h" + +namespace base { +namespace test { + +class FakeMemoryPressureMonitor : public base::MemoryPressureMonitor { + public: + FakeMemoryPressureMonitor(); + ~FakeMemoryPressureMonitor() override; + + void SetAndNotifyMemoryPressure(MemoryPressureLevel level); + + // base::MemoryPressureMonitor overrides: + MemoryPressureLevel GetCurrentPressureLevel() override; + void SetDispatchCallback(const DispatchCallback& callback) override; + + private: + MemoryPressureLevel memory_pressure_level_; + + DISALLOW_COPY_AND_ASSIGN(FakeMemoryPressureMonitor); +}; + +} // namespace test +} // namespace base + +#endif // BASE_MEMORY_FAKE_MEMORY_PRESSURE_MONITOR_H_
diff --git a/base/memory/memory_pressure_monitor_chromeos.cc b/base/memory/memory_pressure_monitor_chromeos.cc index b4e4b94..10516ac 100644 --- a/base/memory/memory_pressure_monitor_chromeos.cc +++ b/base/memory/memory_pressure_monitor_chromeos.cc
@@ -20,6 +20,9 @@ namespace { +// Type-safe version of |g_monitor| from base/memory/memory_pressure_monitor.cc. +MemoryPressureMonitor* g_monitor = nullptr; + // The time between memory pressure checks. While under critical pressure, this // is also the timer to repeat cleanup attempts. const int kMemoryPressureIntervalMs = 1000; @@ -117,6 +120,9 @@ dispatch_callback_( base::Bind(&MemoryPressureListener::NotifyMemoryPressure)), weak_ptr_factory_(this) { + DCHECK(!g_monitor); + g_monitor = this; + StartObserving(); LOG_IF(ERROR, base::SysInfo::IsRunningOnChromeOS() && !low_mem_file_.is_valid()) @@ -124,6 +130,9 @@ } MemoryPressureMonitor::~MemoryPressureMonitor() { + DCHECK(g_monitor); + g_monitor = nullptr; + StopObserving(); } @@ -140,8 +149,7 @@ // static MemoryPressureMonitor* MemoryPressureMonitor::Get() { - return static_cast<MemoryPressureMonitor*>( - base::MemoryPressureMonitor::Get()); + return g_monitor; } void MemoryPressureMonitor::StartObserving() {
diff --git a/base/message_loop/message_loop_unittest.cc b/base/message_loop/message_loop_unittest.cc index 0dacae91..75735f9 100644 --- a/base/message_loop/message_loop_unittest.cc +++ b/base/message_loop/message_loop_unittest.cc
@@ -169,8 +169,7 @@ std::ostream& operator <<(std::ostream& os, const TaskItem& item) { if (item.start) return os << item.type << " " << item.cookie << " starts"; - else - return os << item.type << " " << item.cookie << " ends"; + return os << item.type << " " << item.cookie << " ends"; } class TaskList {
diff --git a/base/metrics/persistent_memory_allocator.cc b/base/metrics/persistent_memory_allocator.cc index 9b18a000..92052667 100644 --- a/base/metrics/persistent_memory_allocator.cc +++ b/base/metrics/persistent_memory_allocator.cc
@@ -817,17 +817,15 @@ std::memory_order_release, std::memory_order_relaxed); return; - } else { - // In the unlikely case that a thread crashed or was killed between the - // update of "next" and the update of "tailptr", it is necessary to - // perform the operation that would have been done. There's no explicit - // check for crash/kill which means that this operation may also happen - // even when the other thread is in perfect working order which is what - // necessitates the CompareAndSwap above. - shared_meta()->tailptr.compare_exchange_strong(tail, next, - std::memory_order_acq_rel, - std::memory_order_acquire); } + // In the unlikely case that a thread crashed or was killed between the + // update of "next" and the update of "tailptr", it is necessary to + // perform the operation that would have been done. There's no explicit + // check for crash/kill which means that this operation may also happen + // even when the other thread is in perfect working order which is what + // necessitates the CompareAndSwap above. + shared_meta()->tailptr.compare_exchange_strong( + tail, next, std::memory_order_acq_rel, std::memory_order_acquire); } }
diff --git a/base/numerics/README.md b/base/numerics/README.md index 896b124..9d00d77 100644 --- a/base/numerics/README.md +++ b/base/numerics/README.md
@@ -11,8 +11,8 @@ functions for performing arithmetic and conversion operations that detect errors and boundary conditions (e.g. overflow, truncation, etc.). * `clamped_math.h` contains the `ClampedNumeric` template class and - helper functions for performing fast, clamped (i.e. non-sticky saturating) - arithmetic operations and conversions. + helper functions for performing fast, clamped (i.e. [non-sticky](#notsticky) + saturating) arithmetic operations and conversions. * `safe_conversions.h` contains the `StrictNumeric` template class and a collection of custom casting templates and helper functions for safely converting between a range of numeric types. @@ -34,7 +34,7 @@ The following covers the preferred style for the most common uses of this library. Please don't cargo-cult from anywhere else. 😉 -### Performing checked arithmetic conversions +### Performing checked arithmetic type conversions The `checked_cast` template converts between arbitrary arithmetic types, and is used for cases where a conversion failure should result in program termination: @@ -44,7 +44,7 @@ size_t buff_size = checked_cast<size_t>(signed_value); ``` -### Performing saturated (clamped) arithmetic conversions +### Performing saturated (clamped) arithmetic type conversions The `saturated_cast` template converts between arbitrary arithmetic types, and is used in cases where an out-of-bounds source value should be saturated to the @@ -55,12 +55,11 @@ int int_value = saturated_cast<int>(floating_point_value); ``` -### Enforcing arithmetic conversions at compile-time +### Enforcing arithmetic type conversions at compile-time -The `strict_cast` enforces type restrictions at compile-time and results in -emitted code that is identical to a normal `static_cast`. However, a -`strict_cast` assignment will fail to compile if the destination type cannot -represent the full range of the source type: +The `strict_cast` emits code that is identical to `static_cast`. However, +provides static checks that will cause a compilation failure if the +destination type cannot represent the full range of the source type: ```cpp // Throw a compiler error if byte_value is changed to an out-of-range-type. @@ -139,6 +138,7 @@ ``` *** note +<a name="notsticky"></a> The `ClampedNumeric` type is not "sticky", which means the saturation is not retained across individual operations. As such, one arithmetic operation may result in a saturated value, while the next operation may then "desaturate"
diff --git a/base/process/kill_posix.cc b/base/process/kill_posix.cc index 8905f78d..af1f16f 100644 --- a/base/process/kill_posix.cc +++ b/base/process/kill_posix.cc
@@ -36,7 +36,8 @@ DPLOG(ERROR) << "waitpid(" << handle << ")"; *exit_code = 0; return TERMINATION_STATUS_NORMAL_TERMINATION; - } else if (result == 0) { + } + if (result == 0) { // the child hasn't exited yet. *exit_code = 0; return TERMINATION_STATUS_STILL_RUNNING;
diff --git a/base/process/launch_posix.cc b/base/process/launch_posix.cc index ec584883..586133b8 100644 --- a/base/process/launch_posix.cc +++ b/base/process/launch_posix.cc
@@ -376,7 +376,8 @@ if (pid < 0) { DPLOG(ERROR) << "fork"; return Process(); - } else if (pid == 0) { + } + if (pid == 0) { // Child process // DANGER: no calls to malloc or locks are allowed from now on:
diff --git a/base/profiler/native_stack_sampler_win.cc b/base/profiler/native_stack_sampler_win.cc index 3a3fbcfd..142b28a6 100644 --- a/base/profiler/native_stack_sampler_win.cc +++ b/base/profiler/native_stack_sampler_win.cc
@@ -23,6 +23,7 @@ #include "base/sampling_heap_profiler/module_cache.h" #include "base/stl_util.h" #include "base/time/time.h" +#include "base/trace_event/trace_event.h" namespace base { @@ -309,40 +310,49 @@ uintptr_t bottom = 0u; { - ScopedSuspendThread suspend_thread(thread_handle); + TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cpu_profiler"), "SuspendThread"); + { + ScopedSuspendThread suspend_thread(thread_handle); - if (!suspend_thread.was_successful()) - return; + if (!suspend_thread.was_successful()) + return; - if (!::GetThreadContext(thread_handle, &thread_context)) - return; + if (!::GetThreadContext(thread_handle, &thread_context)) + return; + #if defined(_WIN64) - bottom = thread_context.Rsp; + bottom = thread_context.Rsp; #else - bottom = thread_context.Esp; + bottom = thread_context.Esp; #endif - if ((top - bottom) > stack_copy_buffer_size) - return; + if ((top - bottom) > stack_copy_buffer_size) + return; - // Dereferencing a pointer in the guard page in a thread that doesn't own - // the stack results in a STATUS_GUARD_PAGE_VIOLATION exception and a crash. - // This occurs very rarely, but reliably over the population. - if (PointsToGuardPage(bottom)) - return; + // Dereferencing a pointer in the guard page in a thread that doesn't own + // the stack results in a STATUS_GUARD_PAGE_VIOLATION exception and a + // crash. This occurs very rarely, but reliably over the population. + if (PointsToGuardPage(bottom)) + return; - profile_builder->RecordAnnotations(); + profile_builder->RecordAnnotations(); - CopyMemoryFromStack(stack_copy_buffer, - reinterpret_cast<const void*>(bottom), top - bottom); + CopyMemoryFromStack(stack_copy_buffer, + reinterpret_cast<const void*>(bottom), top - bottom); + } } if (test_delegate) test_delegate->OnPreStackWalk(); - RewritePointersToStackMemory(top, bottom, &thread_context, stack_copy_buffer); + { + TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cpu_profiler"), "RecordStack"); - RecordStack(&thread_context, stack); + RewritePointersToStackMemory(top, bottom, &thread_context, + stack_copy_buffer); + + RecordStack(&thread_context, stack); + } } } // namespace @@ -395,6 +405,8 @@ std::vector<Frame> NativeStackSamplerWin::RecordStackFrames( StackBuffer* stack_buffer, ProfileBuilder* profile_builder) { + TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cpu_profiler"), + "NativeStackSamplerWin::RecordStackFrames"); DCHECK(stack_buffer); std::vector<RecordedFrame> stack; @@ -407,6 +419,9 @@ std::vector<Frame> NativeStackSamplerWin::CreateFrames( const std::vector<RecordedFrame>& stack) { + TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cpu_profiler"), + "NativeStackSamplerWin::CreateFrames"); + std::vector<Frame> frames; frames.reserve(stack.size());
diff --git a/base/profiler/stack_sampling_profiler.cc b/base/profiler/stack_sampling_profiler.cc index 4f1ad1d9..b0d4262 100644 --- a/base/profiler/stack_sampling_profiler.cc +++ b/base/profiler/stack_sampling_profiler.cc
@@ -612,6 +612,8 @@ SamplingThread::TestAPI::ShutdownAssumingIdle(simulate_intervening_start); } +void StackSamplingProfiler::ProfileBuilder::RecordAnnotations() {} + StackSamplingProfiler::StackSamplingProfiler( const SamplingParams& params, std::unique_ptr<ProfileBuilder> profile_builder,
diff --git a/base/profiler/stack_sampling_profiler.h b/base/profiler/stack_sampling_profiler.h index 4020be8..0c289eb 100644 --- a/base/profiler/stack_sampling_profiler.h +++ b/base/profiler/stack_sampling_profiler.h
@@ -124,7 +124,7 @@ // a mutex, including allocating memory (which includes LOG messages) // because that mutex could be held by a stopped thread, thus resulting in // deadlock. - virtual void RecordAnnotations() = 0; + virtual void RecordAnnotations(); // Records a new set of frames. Invoked when sampling a sample completes. virtual void OnSampleCompleted(std::vector<Frame> frames) = 0;
diff --git a/base/sha1.cc b/base/sha1.cc index a710001..940da288 100644 --- a/base/sha1.cc +++ b/base/sha1.cc
@@ -66,15 +66,13 @@ }; static inline uint32_t f(uint32_t t, uint32_t B, uint32_t C, uint32_t D) { - if (t < 20) { + if (t < 20) return (B & C) | ((~B) & D); - } else if (t < 40) { + if (t < 40) return B ^ C ^ D; - } else if (t < 60) { + if (t < 60) return (B & C) | (B & D) | (C & D); - } else { - return B ^ C ^ D; - } + return B ^ C ^ D; } static inline uint32_t S(uint32_t n, uint32_t X) { @@ -82,15 +80,13 @@ } static inline uint32_t K(uint32_t t) { - if (t < 20) { + if (t < 20) return 0x5a827999; - } else if (t < 40) { + if (t < 40) return 0x6ed9eba1; - } else if (t < 60) { + if (t < 60) return 0x8f1bbcdc; - } else { - return 0xca62c1d6; - } + return 0xca62c1d6; } const int SecureHashAlgorithm::kDigestSizeBytes = 20;
diff --git a/base/strings/safe_sprintf.cc b/base/strings/safe_sprintf.cc index 4d695cf..89049ab 100644 --- a/base/strings/safe_sprintf.cc +++ b/base/strings/safe_sprintf.cc
@@ -7,6 +7,7 @@ #include <errno.h> #include <string.h> +#include <algorithm> #include <limits> #include "base/macros.h" @@ -236,10 +237,9 @@ if (count_ > kSSizeMax - 1 - inc) { count_ = kSSizeMax - 1; return false; - } else { - count_ += inc; - return true; } + count_ += inc; + return true; } // Convenience method for the common case of incrementing |count_| by one. @@ -433,11 +433,9 @@ // never overflows kSSizeMax. Not only does that use up most or all of the // address space, it also would result in a return code that cannot be // represented. - if (static_cast<ssize_t>(sz) < 1) { + if (static_cast<ssize_t>(sz) < 1) return -1; - } else if (sz > kSSizeMax) { - sz = kSSizeMax; - } + sz = std::min(sz, kSSizeMax); // Iterate over format string and interpret '%' arguments as they are // encountered. @@ -659,11 +657,9 @@ // never overflows kSSizeMax. Not only does that use up most or all of the // address space, it also would result in a return code that cannot be // represented. - if (static_cast<ssize_t>(sz) < 1) { + if (static_cast<ssize_t>(sz) < 1) return -1; - } else if (sz > kSSizeMax) { - sz = kSSizeMax; - } + sz = std::min(sz, kSSizeMax); Buffer buffer(buf, sz);
diff --git a/base/test/BUILD.gn b/base/test/BUILD.gn index 6959376..83914f2 100644 --- a/base/test/BUILD.gn +++ b/base/test/BUILD.gn
@@ -26,6 +26,8 @@ static_library("test_support") { testonly = true sources = [ + "../memory/fake_memory_pressure_monitor.cc", + "../memory/fake_memory_pressure_monitor.h", "../task/sequence_manager/test/fake_task.cc", "../task/sequence_manager/test/fake_task.h", "../task/sequence_manager/test/lazy_thread_controller_for_test.cc",
diff --git a/base/test/launcher/test_launcher.cc b/base/test/launcher/test_launcher.cc index 5a8343f..e6636f24 100644 --- a/base/test/launcher/test_launcher.cc +++ b/base/test/launcher/test_launcher.cc
@@ -948,11 +948,17 @@ std::vector<std::string> positive_gtest_filter; if (command_line->HasSwitch(switches::kTestLauncherFilterFile)) { - base::FilePath filter_file_path = base::MakeAbsoluteFilePath( - command_line->GetSwitchValuePath(switches::kTestLauncherFilterFile)); - if (!LoadFilterFile(filter_file_path, &positive_file_filter, - &negative_test_filter_)) - return false; + auto filter = + command_line->GetSwitchValueNative(switches::kTestLauncherFilterFile); + for (auto filter_file : + SplitString(filter, FILE_PATH_LITERAL(";"), base::TRIM_WHITESPACE, + base::SPLIT_WANT_ALL)) { + base::FilePath filter_file_path = + base::MakeAbsoluteFilePath(FilePath(filter_file)); + if (!LoadFilterFile(filter_file_path, &positive_file_filter, + &negative_test_filter_)) + return false; + } } // Split --gtest_filter at '-', if there is one, to separate into
diff --git a/base/test/launcher/unit_test_launcher.cc b/base/test/launcher/unit_test_launcher.cc index b04fdda..059f19f 100644 --- a/base/test/launcher/unit_test_launcher.cc +++ b/base/test/launcher/unit_test_launcher.cc
@@ -76,6 +76,7 @@ " Other flags:\n" " --test-launcher-filter-file=PATH\n" " Like --gtest_filter, but read the test filter from PATH.\n" + " Supports multiple filter paths separated by ';'.\n" " One pattern per line; lines starting with '-' are exclusions.\n" " See also //testing/buildbot/filters/README.md file.\n" "\n"
diff --git a/base/test/test_switches.cc b/base/test/test_switches.cc index a35bdd86b..5e4f9cf 100644 --- a/base/test/test_switches.cc +++ b/base/test/test_switches.cc
@@ -23,7 +23,8 @@ const char switches::kTestLauncherForceRunBrokenTests[] = "test-launcher-force-run-broken-tests"; -// Path to file containing test filter (one pattern per line). +// List of paths to files (separated by ';') containing test filters (one +// pattern per line). const char switches::kTestLauncherFilterFile[] = "test-launcher-filter-file"; // Whether the test launcher should launch in "interactive mode", which disables
diff --git a/base/test/trace_event_analyzer.cc b/base/test/trace_event_analyzer.cc index cab2899..4eafa0d2 100644 --- a/base/test/trace_event_analyzer.cc +++ b/base/test/trace_event_analyzer.cc
@@ -467,13 +467,11 @@ const TraceEvent* Query::SelectTargetEvent(const TraceEvent* event, TraceEventMember member) { - if (member >= OTHER_FIRST_MEMBER && member <= OTHER_LAST_MEMBER) { + if (member >= OTHER_FIRST_MEMBER && member <= OTHER_LAST_MEMBER) return event->other_event; - } else if (member >= PREV_FIRST_MEMBER && member <= PREV_LAST_MEMBER) { + if (member >= PREV_FIRST_MEMBER && member <= PREV_LAST_MEMBER) return event->prev_event; - } else { - return event; - } + return event; } bool Query::GetMemberValueAsDouble(const TraceEvent& event,
diff --git a/base/time/time.h b/base/time/time.h index 7d4f308..970e2b6a 100644 --- a/base/time/time.h +++ b/base/time/time.h
@@ -320,20 +320,20 @@ template<class TimeClass> class TimeBase { public: - static const int64_t kHoursPerDay = 24; - static const int64_t kMillisecondsPerSecond = 1000; - static const int64_t kMillisecondsPerDay = + static constexpr int64_t kHoursPerDay = 24; + static constexpr int64_t kMillisecondsPerSecond = 1000; + static constexpr int64_t kMillisecondsPerDay = kMillisecondsPerSecond * 60 * 60 * kHoursPerDay; - static const int64_t kMicrosecondsPerMillisecond = 1000; - static const int64_t kMicrosecondsPerSecond = + static constexpr int64_t kMicrosecondsPerMillisecond = 1000; + static constexpr int64_t kMicrosecondsPerSecond = kMicrosecondsPerMillisecond * kMillisecondsPerSecond; - static const int64_t kMicrosecondsPerMinute = kMicrosecondsPerSecond * 60; - static const int64_t kMicrosecondsPerHour = kMicrosecondsPerMinute * 60; - static const int64_t kMicrosecondsPerDay = + static constexpr int64_t kMicrosecondsPerMinute = kMicrosecondsPerSecond * 60; + static constexpr int64_t kMicrosecondsPerHour = kMicrosecondsPerMinute * 60; + static constexpr int64_t kMicrosecondsPerDay = kMicrosecondsPerHour * kHoursPerDay; - static const int64_t kMicrosecondsPerWeek = kMicrosecondsPerDay * 7; - static const int64_t kNanosecondsPerMicrosecond = 1000; - static const int64_t kNanosecondsPerSecond = + static constexpr int64_t kMicrosecondsPerWeek = kMicrosecondsPerDay * 7; + static constexpr int64_t kNanosecondsPerMicrosecond = 1000; + static constexpr int64_t kNanosecondsPerSecond = kNanosecondsPerMicrosecond * kMicrosecondsPerSecond; // Returns true if this object has not been initialized. @@ -341,13 +341,15 @@ // Warning: Be careful when writing code that performs math on time values, // since it's possible to produce a valid "zero" result that should not be // interpreted as a "null" value. - bool is_null() const { - return us_ == 0; - } + constexpr bool is_null() const { return us_ == 0; } // Returns true if this object represents the maximum/minimum time. - bool is_max() const { return us_ == std::numeric_limits<int64_t>::max(); } - bool is_min() const { return us_ == std::numeric_limits<int64_t>::min(); } + constexpr bool is_max() const { + return us_ == std::numeric_limits<int64_t>::max(); + } + constexpr bool is_min() const { + return us_ == std::numeric_limits<int64_t>::min(); + } // Returns the maximum/minimum times, which should be greater/less than than // any reasonable time with which we might compare it. @@ -373,7 +375,9 @@ // // Warning: While the Time subclass has a fixed origin point, the origin for // the other subclasses can vary each time the application is restarted. - TimeDelta since_origin() const { return TimeDelta::FromMicroseconds(us_); } + constexpr TimeDelta since_origin() const { + return TimeDelta::FromMicroseconds(us_); + } TimeClass& operator=(TimeClass other) { us_ = other.us_;
diff --git a/base/time/time_exploded_posix.cc b/base/time/time_exploded_posix.cc index 627c6b4f8..a80d4cb 100644 --- a/base/time/time_exploded_posix.cc +++ b/base/time/time_exploded_posix.cc
@@ -106,10 +106,7 @@ SysTime SysTimeFromTimeStruct(struct tm* timestruct, bool is_local) { base::AutoLock locked(*GetSysTimeToTimeStructLock()); - if (is_local) - return mktime(timestruct); - else - return timegm(timestruct); + return is_local ? mktime(timestruct) : timegm(timestruct); } void SysTimeToTimeStruct(SysTime t, struct tm* timestruct, bool is_local) {
diff --git a/base/time/time_now_posix.cc b/base/time/time_now_posix.cc index 54278368..4ce93c0 100644 --- a/base/time/time_now_posix.cc +++ b/base/time/time_now_posix.cc
@@ -33,12 +33,11 @@ result *= base::Time::kMicrosecondsPerSecond; result += (ts.tv_nsec / base::Time::kNanosecondsPerMicrosecond); return result; - } else { - base::CheckedNumeric<int64_t> result(ts.tv_sec); - result *= base::Time::kMicrosecondsPerSecond; - result += (ts.tv_nsec / base::Time::kNanosecondsPerMicrosecond); - return result.ValueOrDie(); } + base::CheckedNumeric<int64_t> result(ts.tv_sec); + result *= base::Time::kMicrosecondsPerSecond; + result += (ts.tv_nsec / base::Time::kNanosecondsPerMicrosecond); + return result.ValueOrDie(); } // Helper function to get results from clock_gettime() and convert to a
diff --git a/base/values.cc b/base/values.cc index b2892e4..3349f74 100644 --- a/base/values.cc +++ b/base/values.cc
@@ -486,7 +486,8 @@ if (out_value && is_double()) { *out_value = double_value_; return true; - } else if (out_value && is_int()) { + } + if (out_value && is_int()) { // Allow promotion from int to double. *out_value = int_value_; return true;
diff --git a/base/win/windows_types.h b/base/win/windows_types.h index 8060f03..9fb5e30 100644 --- a/base/win/windows_types.h +++ b/base/win/windows_types.h
@@ -248,5 +248,6 @@ #define SendMessageCallback SendMessageCallbackW #define SetCurrentDirectory SetCurrentDirectoryW #define StartService StartServiceW +#define UpdateResource UpdateResourceW #endif // BASE_WIN_WINDOWS_TYPES_H
diff --git a/build/chromeos/run_vm_test.py b/build/chromeos/run_vm_test.py index 12e5a26..8db778b 100755 --- a/build/chromeos/run_vm_test.py +++ b/build/chromeos/run_vm_test.py
@@ -209,8 +209,10 @@ vm_test_script_contents += [ # We run tests as chronos, but need to be root to rm the files. So pass # in the public plaintext root password to sudo via stdin. - 'echo "test0000" | sudo -S find /var/spool/crash/ -type f -delete', - 'echo "test0000" | sudo -S find /var/log/chrome/ -type f -delete', + 'echo "test0000" | ' + 'sudo -S find /var/spool/crash/ -type f -print -delete', + 'echo "test0000" | ' + 'sudo -S find /var/log/chrome/ -type f -print -delete', # Make sure the exit code is that of the test, and not the post-test # cleanup. 'exit $test_retcode',
diff --git a/build/config/fuchsia/BUILD.gn b/build/config/fuchsia/BUILD.gn index bb26045..c7fbf25 100644 --- a/build/config/fuchsia/BUILD.gn +++ b/build/config/fuchsia/BUILD.gn
@@ -30,16 +30,6 @@ asmflags = cflags ldflags += [ - # TODO(thakis): Once Fuchsia's libclang_rt.builtin no longer has upstream - # patches, we might want to make tools/clang/scripts/update.py build it - # and bundle it with the clang package instead of using the library from - # the SDK, https://crbug.com/724204 - # Note: Intentionally 8.0.0 instead of $clang_version because the clang - # version of the toolchain_libs directory in the Fuchsia SDK can be - # different from the version of Chromium's clang. - "-resource-dir", - rebase_path(fuchsia_sdk, root_build_dir) + "/toolchain_libs/clang/8.0.0", - # The stack defaults to 256k on Fuchsia (see # https://fuchsia.googlesource.com/zircon/+/master/system/private/zircon/stack.h#9), # but on other platforms it's much higher, so a variety of code assumes more
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1 index 35669ea..cad6d2d 100644 --- a/build/fuchsia/linux.sdk.sha1 +++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@ -f577c79c955a95ffac4b057c7da2580eee03ea15 \ No newline at end of file +fa86d058a583e9a7b1624a0e0d6600a12e9afb08 \ No newline at end of file
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1 index e5425d29..efbac4c 100644 --- a/build/fuchsia/mac.sdk.sha1 +++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@ -b795df8e81a4af6c84f6ee2fe463986728feb5b1 \ No newline at end of file +421c247a973e2dfafc4ffc709517788522abc144 \ No newline at end of file
diff --git a/build/fuchsia/update_sdk.py b/build/fuchsia/update_sdk.py index 9dfd7df..8305064c 100755 --- a/build/fuchsia/update_sdk.py +++ b/build/fuchsia/update_sdk.py
@@ -66,6 +66,12 @@ print >>sys.stderr, 'usage: %s' % sys.argv[0] return 1 + # Quietly exit if there's no SDK support for this platform. + try: + GetHostOsFromPlatform() + except: + return 0 + # Previously SDK was unpacked in //third_party/fuchsia-sdk instead of # //third_party/fuchsia-sdk/sdk . Remove the old files if they are still # there.
diff --git a/cc/mojo_embedder/async_layer_tree_frame_sink.cc b/cc/mojo_embedder/async_layer_tree_frame_sink.cc index 11ed7c1..212bdc9 100644 --- a/cc/mojo_embedder/async_layer_tree_frame_sink.cc +++ b/cc/mojo_embedder/async_layer_tree_frame_sink.cc
@@ -20,6 +20,30 @@ namespace cc { namespace mojo_embedder { +AsyncLayerTreeFrameSink::PipelineReporting::PipelineReporting( + const viz::BeginFrameArgs args, + base::TimeTicks now) + : trace_id_(args.trace_id), frame_time_(now) {} + +AsyncLayerTreeFrameSink::PipelineReporting::~PipelineReporting() = default; + +void AsyncLayerTreeFrameSink::PipelineReporting::Report() { + TRACE_EVENT_WITH_FLOW1("viz,benchmark", "Graphics.Pipeline", + TRACE_ID_GLOBAL(trace_id_), + TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT, + "step", "SubmitCompositorFrame"); + + // Note that client_name is constant during the lifetime of the process and + // it's either "Browser" or "Renderer". + UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES( + base::StringPrintf( + "GraphicsPipeline.%s.SubmitCompositorFrameAfterBeginFrame", + GetClientNameForMetrics()), + base::TimeTicks::Now() - frame_time_, + base::TimeDelta::FromMicroseconds(1), + base::TimeDelta::FromMilliseconds(200), 50); +} + AsyncLayerTreeFrameSink::InitParams::InitParams() = default; AsyncLayerTreeFrameSink::InitParams::~InitParams() = default; @@ -124,11 +148,15 @@ frame.metadata.begin_frame_ack.sequence_number); TRACE_EVENT0("cc,benchmark", "AsyncLayerTreeFrameSink::SubmitCompositorFrame"); - TRACE_EVENT_WITH_FLOW1( - "viz,benchmark", "Graphics.Pipeline", - TRACE_ID_GLOBAL(frame.metadata.begin_frame_ack.trace_id), - TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT, "step", - "SubmitCompositorFrame"); + + // It's possible to request an immediate composite from cc which will bypass + // BeginFrame. In that case, we cannot collect full graphics pipeline data. + auto it = pipeline_reporting_frame_times_.find( + frame.metadata.begin_frame_ack.trace_id); + if (it != pipeline_reporting_frame_times_.end()) { + it->second.Report(); + pipeline_reporting_frame_times_.erase(it); + } if (!enable_surface_synchronization_) { local_surface_id_ = @@ -180,7 +208,14 @@ DCHECK(compositor_frame_sink_ptr_); DCHECK(!ack.has_damage); DCHECK_LE(viz::BeginFrameArgs::kStartingFrameNumber, ack.sequence_number); - compositor_frame_sink_ptr_->DidNotProduceFrame(ack); + + // TODO(yiyix): Remove duplicated calls of DidNotProduceFrame from the same + // BeginFrames. https://crbug.com/881949 + auto it = pipeline_reporting_frame_times_.find(ack.trace_id); + if (it != pipeline_reporting_frame_times_.end()) { + compositor_frame_sink_ptr_->DidNotProduceFrame(ack); + pipeline_reporting_frame_times_.erase(it); + } } void AsyncLayerTreeFrameSink::DidAllocateSharedBitmap( @@ -211,16 +246,22 @@ } void AsyncLayerTreeFrameSink::OnBeginFrame(const viz::BeginFrameArgs& args) { + DCHECK_LE(pipeline_reporting_frame_times_.size(), 25u); // Note that client_name is constant during the lifetime of the process and // it's either "Browser" or "Renderer". - if (const char* client_name = GetClientNameForMetrics()) { - base::TimeDelta frame_difference = base::TimeTicks::Now() - args.frame_time; + const char* client_name = GetClientNameForMetrics(); + if (client_name && args.trace_id != -1) { + base::TimeTicks current_time = base::TimeTicks::Now(); + base::TimeDelta frame_difference = current_time - args.frame_time; + PipelineReporting report(args, current_time); + pipeline_reporting_frame_times_.emplace(args.trace_id, report); UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES( base::StringPrintf("GraphicsPipeline.%s.ReceivedBeginFrame", client_name), frame_difference, base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromMilliseconds(100), 50); } + if (!needs_begin_frames_) { TRACE_EVENT_WITH_FLOW1("viz,benchmark", "Graphics.Pipeline", TRACE_ID_GLOBAL(args.trace_id), @@ -229,12 +270,13 @@ // We had a race with SetNeedsBeginFrame(false) and still need to let the // sink know that we didn't use this BeginFrame. DidNotProduceFrame(viz::BeginFrameAck(args, false)); - } else { - TRACE_EVENT_WITH_FLOW1("viz,benchmark", "Graphics.Pipeline", - TRACE_ID_GLOBAL(args.trace_id), - TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT, - "step", "ReceiveBeginFrame"); + return; } + TRACE_EVENT_WITH_FLOW1("viz,benchmark", "Graphics.Pipeline", + TRACE_ID_GLOBAL(args.trace_id), + TRACE_EVENT_FLAG_FLOW_IN | TRACE_EVENT_FLAG_FLOW_OUT, + "step", "ReceiveBeginFrame"); + if (begin_frame_source_) begin_frame_source_->OnBeginFrame(args); }
diff --git a/cc/mojo_embedder/async_layer_tree_frame_sink.h b/cc/mojo_embedder/async_layer_tree_frame_sink.h index 28bbfdf..cba574b 100644 --- a/cc/mojo_embedder/async_layer_tree_frame_sink.h +++ b/cc/mojo_embedder/async_layer_tree_frame_sink.h
@@ -37,6 +37,26 @@ public viz::mojom::CompositorFrameSinkClient, public viz::ExternalBeginFrameSourceClient { public: + // This class is used to handle the graphics pipeline related metrics + // reporting. + class PipelineReporting { + public: + PipelineReporting(viz::BeginFrameArgs args, base::TimeTicks now); + ~PipelineReporting(); + + void Report(); + + int64_t trace_id() const { return trace_id_; } + + private: + // The trace id of a BeginFrame which is used to track its progress on the + // client side. + int64_t trace_id_; + + // The time stamp for the begin frame to arrive on client side. + base::TimeTicks frame_time_; + }; + struct CC_MOJO_EMBEDDER_EXPORT UnboundMessagePipes { UnboundMessagePipes(); ~UnboundMessagePipes(); @@ -137,7 +157,8 @@ viz::LocalSurfaceId last_submitted_local_surface_id_; float last_submitted_device_scale_factor_ = 1.f; gfx::Size last_submitted_size_in_pixels_; - + // Use this map to record the time when client received the BeginFrameArgs. + base::flat_map<int64_t, PipelineReporting> pipeline_reporting_frame_times_; base::WeakPtrFactory<AsyncLayerTreeFrameSink> weak_factory_; DISALLOW_COPY_AND_ASSIGN(AsyncLayerTreeFrameSink);
diff --git a/cc/trees/layer_tree_host_common.cc b/cc/trees/layer_tree_host_common.cc index 571a623..f3631c4 100644 --- a/cc/trees/layer_tree_host_common.cc +++ b/cc/trees/layer_tree_host_common.cc
@@ -576,7 +576,7 @@ << inputs->root_layer->layer_tree_impl() ->settings() .is_layer_tree_for_subframe; - CHECK(false); + NOTREACHED(); } draw_property_utils::UpdatePageScaleFactor(
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc index 6413b3bd..77b82a4 100644 --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc
@@ -2505,6 +2505,14 @@ outer_clip_node->clip.set_height( OuterViewportScrollNode()->container_bounds.height() + outer_bounds_delta.y()); + + // Expand all clips between the outer viewport and the inner viewport. + auto* outer_ancestor = property_trees->clip_tree.parent(outer_clip_node); + while (outer_ancestor && outer_ancestor != inner_clip_node) { + outer_ancestor->clip.Union(outer_clip_node->clip); + outer_ancestor = property_trees->clip_tree.parent(outer_ancestor); + } + anchor.ResetViewportToAnchoredPosition(); }
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn index 1eecdc8c..b95bb22 100644 --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn
@@ -1430,6 +1430,7 @@ "//chrome/browser", "//chrome/common", "//components/sync", + "//components/tracing", ] if (enable_plugins) { public_deps += [ "//ppapi/host" ] @@ -1471,6 +1472,7 @@ "//chrome/utility", "//components/services/heap_profiling", "//components/sync", + "//components/tracing", "//content/public/child", "//pdf", "//third_party/blink/public:blink_devtools_frontend_resources", @@ -1793,6 +1795,7 @@ "//components/minidump_uploader", "//components/safe_browsing/android:safe_browsing_mobile", "//components/services/heap_profiling", + "//components/tracing", "//content/public/app:both", "//content/public/common:service_names", "//services/service_manager/embedder",
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java index cc5bccd2..12f66691 100644 --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java
@@ -15,11 +15,13 @@ import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; +import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.ScrollView; import com.google.android.libraries.feed.api.scope.FeedProcessScope; import com.google.android.libraries.feed.api.scope.FeedStreamScope; +import com.google.android.libraries.feed.api.stream.Header; import com.google.android.libraries.feed.api.stream.NonDismissibleHeader; import com.google.android.libraries.feed.api.stream.Stream; import com.google.android.libraries.feed.host.action.ActionApi; @@ -41,6 +43,7 @@ import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.search_engines.TemplateUrlService; +import org.chromium.chrome.browser.signin.PersonalizedSigninPromoView; import org.chromium.chrome.browser.snackbar.Snackbar; import org.chromium.chrome.browser.snackbar.SnackbarManager; import org.chromium.chrome.browser.tabmodel.TabModelSelector; @@ -57,6 +60,8 @@ */ public class FeedNewTabPage extends NewTabPage { private final FeedNewTabPageMediator mMediator; + private final int mDefaultMargin; + private final int mWideMargin; private UiConfig mUiConfig; private FrameLayout mRootView; @@ -67,6 +72,7 @@ private @Nullable FeedImageLoader mImageLoader; private @Nullable StreamLifecycleManager mStreamLifecycleManager; private @Nullable SectionHeaderView mSectionHeaderView; + private @Nullable PersonalizedSigninPromoView mSigninPromoView; // Used when Feed is disabled by policy. private @Nullable ScrollView mScrollViewForPolicy; @@ -158,6 +164,23 @@ } } + private class SignInPromoHeader implements Header { + @Override + public View getView() { + return getSigninPromoView(); + } + + @Override + public boolean isDismissible() { + return true; + } + + @Override + public void onDismissed() { + mMediator.onSignInPromoDismissed(); + } + } + /** * Provides the additional capabilities needed for the {@link FeedNewTabPage} container view. */ @@ -190,6 +213,11 @@ TabModelSelector tabModelSelector) { super(activity, nativePageHost, tabModelSelector); + Resources resources = activity.getResources(); + mDefaultMargin = + resources.getDimensionPixelSize(R.dimen.content_suggestions_card_modern_margin); + mWideMargin = resources.getDimensionPixelSize(R.dimen.ntp_wide_card_lateral_margins); + LayoutInflater inflater = LayoutInflater.from(activity); mNewTabPageLayout = (NewTabPageLayout) inflater.inflate(R.layout.new_tab_page_layout, null); @@ -242,11 +270,6 @@ } @Override - protected void scrollToSuggestions() { - // TODO(twellington): implement this method. - } - - @Override public boolean shouldCaptureThumbnail() { return mNewTabPageLayout.shouldCaptureThumbnail() || mMediator.shouldCaptureThumbnail(); } @@ -298,14 +321,7 @@ LayoutInflater inflater = LayoutInflater.from(activity); mSectionHeaderView = (SectionHeaderView) inflater.inflate( R.layout.new_tab_page_snippets_expandable_header, null); - - // TODO(huayinz): Add MarginResizer for sign-in promo under issue 860051 or 860043, - // depending on which one lands first. - Resources resources = mSectionHeaderView.getResources(); - int defaultMargin = - resources.getDimensionPixelSize(R.dimen.content_suggestions_card_modern_margin); - int wideMargin = resources.getDimensionPixelSize(R.dimen.ntp_wide_card_lateral_margins); - MarginResizer.createAndAttach(mSectionHeaderView, mUiConfig, defaultMargin, wideMargin); + MarginResizer.createAndAttach(mSectionHeaderView, mUiConfig, mDefaultMargin, mWideMargin); View view = mStream.getView(); view.setBackgroundColor(Color.WHITE); @@ -313,6 +329,7 @@ UiUtils.removeViewFromParent(mNewTabPageLayout); UiUtils.removeViewFromParent(mSectionHeaderView); + if (mSigninPromoView != null) UiUtils.removeViewFromParent(mSigninPromoView); mStream.setHeaderViews(Arrays.asList(new NonDismissibleHeader(mNewTabPageLayout), new NonDismissibleHeader(mSectionHeaderView))); // Explicitly request focus on the scroll container to avoid UrlBar being focused after @@ -360,6 +377,32 @@ return mSectionHeaderView; } + /** @return The {@link PersonalizedSigninPromoView} for this class. */ + PersonalizedSigninPromoView getSigninPromoView() { + if (mSigninPromoView == null) { + LayoutInflater inflater = LayoutInflater.from(mRootView.getContext()); + mSigninPromoView = (PersonalizedSigninPromoView) inflater.inflate( + R.layout.personalized_signin_promo_view_modern_content_suggestions, null); + + ViewGroup.MarginLayoutParams lp = new ViewGroup.MarginLayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); + lp.bottomMargin = mDefaultMargin; + mSigninPromoView.setLayoutParams(lp); + MarginResizer.createAndAttach(mSigninPromoView, mUiConfig, mDefaultMargin, mWideMargin); + } + return mSigninPromoView; + } + + /** Update header views in the Stream. */ + void updateHeaderViews(boolean isPromoVisible) { + mStream.setHeaderViews(isPromoVisible + ? Arrays.asList(new NonDismissibleHeader(mNewTabPageLayout), + new SignInPromoHeader(), + new NonDismissibleHeader(mSectionHeaderView)) + : Arrays.asList(new NonDismissibleHeader(mNewTabPageLayout), + new NonDismissibleHeader(mSectionHeaderView))); + } + /** * Configures the {@link FeedNewTabPage} for testing. * @param inTestMode Whether test mode is enabled. If true, test implementations of Feed
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPageMediator.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPageMediator.java index 620926e..972669ca 100644 --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPageMediator.java +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPageMediator.java
@@ -6,6 +6,8 @@ import android.content.res.Resources; import android.graphics.Rect; +import android.support.annotation.Nullable; +import android.view.View; import android.widget.ScrollView; import com.google.android.libraries.feed.api.stream.ContentChangedListener; @@ -18,10 +20,13 @@ import org.chromium.chrome.browser.ntp.ContextMenuManager; import org.chromium.chrome.browser.ntp.NewTabPageLayout; import org.chromium.chrome.browser.ntp.SnapScrollHelper; +import org.chromium.chrome.browser.ntp.cards.SignInPromo; import org.chromium.chrome.browser.ntp.snippets.SectionHeader; import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.preferences.PrefChangeRegistrar; import org.chromium.chrome.browser.preferences.PrefServiceBridge; +import org.chromium.chrome.browser.signin.PersonalizedSigninPromoView; +import org.chromium.chrome.browser.signin.SigninPromoUtil; /** * A mediator for the {@link FeedNewTabPage} responsible for interacting with the @@ -37,6 +42,7 @@ private ContentChangedListener mStreamContentChangedListener; private SectionHeader mSectionHeader; private MemoryPressureCallback mMemoryPressureCallback; + private @Nullable SignInPromo mSignInPromo; private boolean mFeedEnabled; private boolean mTouchEnabled = true; @@ -116,16 +122,23 @@ mStreamContentChangedListener = () -> mStreamContentChanged = true; stream.addOnContentChangedListener(mStreamContentChangedListener); + boolean suggestionsVisible = + PrefServiceBridge.getInstance().getBoolean(Pref.NTP_ARTICLES_LIST_VISIBLE); Resources res = mCoordinator.getSectionHeaderView().getResources(); mSectionHeader = new SectionHeader(res.getString(R.string.ntp_article_suggestions_section_header), - PrefServiceBridge.getInstance().getBoolean(Pref.NTP_ARTICLES_LIST_VISIBLE), - this::onSectionHeaderToggled); - mPrefChangeRegistrar.addObserver( - Pref.NTP_ARTICLES_LIST_VISIBLE, this::updateSectionHeader); + suggestionsVisible, this::onSectionHeaderToggled); + mPrefChangeRegistrar.addObserver(Pref.NTP_ARTICLES_LIST_VISIBLE, this::updateSectionHeader); mCoordinator.getSectionHeaderView().setHeader(mSectionHeader); stream.setStreamContentVisibility(mSectionHeader.isExpanded()); + if (SignInPromo.shouldCreatePromo()) { + mSignInPromo = new FeedSignInPromo(); + mSignInPromo.setCanShowPersonalizedSuggestions(suggestionsVisible); + } + + mCoordinator.updateHeaderViews(mSignInPromo != null && mSignInPromo.isVisible()); + mMemoryPressureCallback = pressure -> mCoordinator.getStream().trim(); MemoryPressureListener.addCallback(mMemoryPressureCallback); } @@ -138,10 +151,12 @@ stream.removeScrollListener(mStreamScrollListener); stream.removeOnContentChangedListener(mStreamContentChangedListener); MemoryPressureListener.removeCallback(mMemoryPressureCallback); + if (mSignInPromo != null) mSignInPromo.destroy(); mPrefChangeRegistrar.removeObserver(Pref.NTP_ARTICLES_LIST_VISIBLE); mStreamScrollListener = null; mStreamContentChangedListener = null; mMemoryPressureCallback = null; + mSignInPromo = null; } /** @@ -154,9 +169,11 @@ /** Update whether the section header should be expanded. */ private void updateSectionHeader() { - if (mSectionHeader.isExpanded() - != PrefServiceBridge.getInstance().getBoolean(Pref.NTP_ARTICLES_LIST_VISIBLE)) { - mSectionHeader.toggleHeader(); + boolean suggestionsVisible = + PrefServiceBridge.getInstance().getBoolean(Pref.NTP_ARTICLES_LIST_VISIBLE); + if (mSectionHeader.isExpanded() != suggestionsVisible) mSectionHeader.toggleHeader(); + if (mSignInPromo != null) { + mSignInPromo.setCanShowPersonalizedSuggestions(suggestionsVisible); } } @@ -172,6 +189,16 @@ mCoordinator.getSectionHeaderView().updateVisuals(); } + /** + * Callback on sign-in promo is dismissed. + */ + void onSignInPromoDismissed() { + View view = mCoordinator.getSigninPromoView(); + mSignInPromo.dismiss(removedItemTitle + -> view.announceForAccessibility(view.getResources().getString( + R.string.ntp_accessibility_item_removed, removedItemTitle))); + } + /** Whether a new thumbnail should be captured. */ boolean shouldCaptureThumbnail() { return mStreamContentChanged || mCoordinator.getView().getWidth() != mThumbnailWidth @@ -260,4 +287,33 @@ mCoordinator.getScrollViewForPolicy().smoothScrollBy(0, scrollTo - initialScroll); } } + + /** + * The {@link SignInPromo} for the Feed. + * TODO(huayinz): Update content and visibility through a ModelChangeProcessor. + */ + private class FeedSignInPromo extends SignInPromo { + FeedSignInPromo() { + updateSignInPromo(); + } + + @Override + protected void setVisibilityInternal(boolean visible) { + if (isVisible() == visible) return; + + super.setVisibilityInternal(visible); + mCoordinator.updateHeaderViews(visible); + } + + @Override + protected void notifyDataChanged() { + updateSignInPromo(); + } + + /** Update the content displayed in {@link PersonalizedSigninPromoView}. */ + private void updateSignInPromo() { + SigninPromoUtil.setupPromoViewFromCache(mSigninPromoController, mProfileDataCache, + mCoordinator.getSigninPromoView(), null); + } + } }
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 2ed881c1..68f59bc 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
@@ -229,7 +229,6 @@ public static final String INTEREST_FEED_CONTENT_SUGGESTIONS = "InterestFeedContentSuggestions"; public static final String LANGUAGES_PREFERENCE = "LanguagesPreference"; public static final String LONG_PRESS_BACK_FOR_HISTORY = "LongPressBackForHistory"; - public static final String LONG_PRESS_BACK_NEW_DESIGN = "LongPressBackNewDesign"; public static final String SEARCH_ENGINE_PROMO_EXISTING_DEVICE = "SearchEnginePromo.ExistingDevice"; public static final String SEARCH_ENGINE_PROMO_NEW_DEVICE = "SearchEnginePromo.NewDevice";
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java index 9f7db51f..e92de58 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
@@ -2071,7 +2071,8 @@ if (tab == null || tab.getWebContents() == null || !tab.isUserInteractable()) return; mNavigationPopup = new NavigationPopup(tab.getProfile(), this, - tab.getWebContents().getNavigationController(), false, true); + tab.getWebContents().getNavigationController(), + NavigationPopup.Type.ANDROID_SYSTEM_BACK); mNavigationPopup.setWidth( getResources().getDimensionPixelSize(R.dimen.navigation_popup_width)); mNavigationPopup.setAnchorView(findViewById(R.id.navigation_popup_anchor_stub));
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java index c97632e..3b022c69 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/IntentHandler.java
@@ -950,21 +950,6 @@ return false; } - /** - * @param intent An Intent to be checked. - * @param packageName The app where the intent is expected to originate from - * @return Whether the intent originates from the first-party app with the given package name. - */ - public static boolean isIntentFromTrustedApp(Intent intent, String packageName) { - if (intent == null) return false; - - PendingIntent token = fetchAuthenticationTokenFromIntent(intent); - if (token == null) return false; - - return isIntentChromeOrFirstParty(intent) - && ApiCompatibilityUtils.getCreatorPackage(token).equals(packageName); - } - @VisibleForTesting boolean isIntentUserVisible() { // Only process Intents if the screen is on and the device is unlocked;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/NavigationPopup.java b/chrome/android/java/src/org/chromium/chrome/browser/NavigationPopup.java index 3d4a8f7..e687f920 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/NavigationPopup.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/NavigationPopup.java
@@ -6,12 +6,8 @@ import android.content.Context; import android.graphics.Bitmap; -import android.graphics.Color; -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.ColorDrawable; -import android.graphics.drawable.Drawable; +import android.support.annotation.IntDef; import android.text.TextUtils; -import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnAttachStateChangeListener; @@ -26,6 +22,7 @@ import org.chromium.base.ApiCompatibilityUtils; import org.chromium.base.ThreadUtils; +import org.chromium.base.metrics.RecordUserAction; import org.chromium.chrome.R; import org.chromium.chrome.browser.favicon.FaviconHelper; import org.chromium.chrome.browser.favicon.FaviconHelper.DefaultFaviconHelper; @@ -35,8 +32,9 @@ import org.chromium.content_public.browser.NavigationController; import org.chromium.content_public.browser.NavigationEntry; import org.chromium.content_public.browser.NavigationHistory; -import org.chromium.ui.base.LocalizationUtils; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.util.HashSet; import java.util.Set; @@ -48,12 +46,21 @@ private static final int MAXIMUM_HISTORY_ITEMS = 8; private static final int FULL_HISTORY_ENTRY_INDEX = -1; + /** Specifies the type of navigation popup being shown */ + @IntDef({Type.ANDROID_SYSTEM_BACK, Type.TABLET_BACK, Type.TABLET_FORWARD}) + @Retention(RetentionPolicy.SOURCE) + public @interface Type { + int ANDROID_SYSTEM_BACK = 0; + int TABLET_BACK = 1; + int TABLET_FORWARD = 2; + } + private final Profile mProfile; private final Context mContext; private final NavigationController mNavigationController; private NavigationHistory mHistory; private final NavigationAdapter mAdapter; - private final ListItemFactory mListItemFactory; + private final @Type int mType; private final int mFaviconSize; @@ -72,15 +79,18 @@ * @param profile The profile used for fetching favicons. * @param context The context used for building the popup. * @param navigationController The controller which takes care of page navigations. - * @param isForward Whether to request forward navigation entries. - * @param anchorToBottom Whether the popup is anchored to the bottom of the screen. + * @param type The type of navigation popup being triggered. */ public NavigationPopup(Profile profile, Context context, - NavigationController navigationController, boolean isForward, boolean anchorToBottom) { + NavigationController navigationController, @Type int type) { super(context, null, android.R.attr.popupMenuStyle); mProfile = profile; mContext = context; mNavigationController = navigationController; + mType = type; + + boolean isForward = type == Type.TABLET_FORWARD; + boolean anchorToBottom = type == Type.ANDROID_SYSTEM_BACK; mHistory = mNavigationController.getDirectedNavigationHistory( isForward, MAXIMUM_HISTORY_ITEMS); @@ -96,12 +106,7 @@ // prevent that. if (anchorToBottom) setVerticalOffset(0); - if (ChromeFeatureList.isInitialized() - && ChromeFeatureList.isEnabled(ChromeFeatureList.LONG_PRESS_BACK_NEW_DESIGN)) { - mAdapter = new NewNavigationAdapter(); - } else { - mAdapter = new NavigationAdapter(); - } + mAdapter = new NavigationAdapter(); if (anchorToBottom) mAdapter.reverseOrder(); setModal(true); @@ -111,12 +116,16 @@ setAdapter(mAdapter); mFaviconSize = mContext.getResources().getDimensionPixelSize(R.dimen.default_favicon_size); - mListItemFactory = new ListItemFactory(context); + } + + private String buildComputedAction(String action) { + return (mType == Type.TABLET_FORWARD ? "ForwardMenu_" : "BackMenu_") + action; } @Override public void show() { if (!mInitialized) initialize(); + if (!isShowing()) RecordUserAction.record(buildComputedAction("Popup")); super.show(); if (mAdapter.mInReverseOrder) scrollToBottom(); } @@ -185,78 +194,23 @@ public void onItemClick(AdapterView<?> parent, View view, int position, long id) { NavigationEntry entry = (NavigationEntry) parent.getItemAtPosition(position); if (entry.getIndex() == FULL_HISTORY_ENTRY_INDEX) { + RecordUserAction.record(buildComputedAction("ShowFullHistory")); assert mContext instanceof ChromeActivity; ChromeActivity activity = (ChromeActivity) mContext; HistoryManagerUtils.showHistoryManager(activity, activity.getActivityTab()); } else { + int originalPosition = + mAdapter.mInReverseOrder ? mAdapter.getCount() - position - 1 : position; + // 1-based index to keep in line with Desktop implementation. + RecordUserAction.record(buildComputedAction("HistoryClick" + (originalPosition + 1))); mNavigationController.goToNavigationIndex(entry.getIndex()); } dismiss(); } - private void updateBitmapForTextView(TextView view, Bitmap bitmap) { - Drawable faviconDrawable = null; - if (bitmap != null) { - faviconDrawable = new BitmapDrawable(mContext.getResources(), bitmap); - ((BitmapDrawable) faviconDrawable).setGravity(Gravity.FILL); - } else { - faviconDrawable = new ColorDrawable(Color.TRANSPARENT); - } - faviconDrawable.setBounds(0, 0, mFaviconSize, mFaviconSize); - view.setCompoundDrawables(faviconDrawable, null, null, null); - } - - private static class ListItemFactory { - private static final int LIST_ITEM_HEIGHT_DP = 48; - private static final int PADDING_DP = 8; - private static final int TEXT_SIZE_SP = 18; - private static final float FADE_LENGTH_DP = 25.0f; - private static final float FADE_STOP = 0.75f; - - int mFadeEdgeLength; - int mFadePadding; - int mListItemHeight; - int mPadding; - boolean mIsLayoutDirectionRTL; - Context mContext; - - public ListItemFactory(Context context) { - mContext = context; - computeFadeDimensions(); - } - - private void computeFadeDimensions() { - // Fade with linear gradient starting 25dp from right margin. - // Reaches 0% opacity at 75% length. (Simulated with extra padding) - float density = mContext.getResources().getDisplayMetrics().density; - float fadeLength = (FADE_LENGTH_DP * density); - mFadeEdgeLength = (int) (fadeLength * FADE_STOP); - mFadePadding = (int) (fadeLength * (1 - FADE_STOP)); - mListItemHeight = (int) (density * LIST_ITEM_HEIGHT_DP); - mPadding = (int) (density * PADDING_DP); - mIsLayoutDirectionRTL = LocalizationUtils.isLayoutRtl(); - } - - public TextView createListItem() { - TextView view = new TextView(mContext); - view.setFadingEdgeLength(mFadeEdgeLength); - view.setHorizontalFadingEdgeEnabled(true); - view.setSingleLine(); - view.setTextSize(TEXT_SIZE_SP); - view.setMinimumHeight(mListItemHeight); - view.setGravity(Gravity.CENTER_VERTICAL); - view.setCompoundDrawablePadding(mPadding); - if (!mIsLayoutDirectionRTL) { - view.setPadding(mPadding, 0, mPadding + mFadePadding , 0); - } else { - view.setPadding(mPadding + mFadePadding, 0, mPadding, 0); - } - return view; - } - } - private class NavigationAdapter extends BaseAdapter { + private Integer mTopPadding; boolean mInReverseOrder; public void reverseOrder() { @@ -281,25 +235,6 @@ @Override public View getView(int position, View convertView, ViewGroup parent) { - TextView view; - if (convertView instanceof TextView) { - view = (TextView) convertView; - } else { - view = mListItemFactory.createListItem(); - } - NavigationEntry entry = (NavigationEntry) getItem(position); - setViewText(entry, view); - updateBitmapForTextView(view, entry.getFavicon()); - - return view; - } - } - - private class NewNavigationAdapter extends NavigationAdapter { - private Integer mTopPadding; - - @Override - public View getView(int position, View convertView, ViewGroup parent) { EntryViewHolder viewHolder; if (convertView == null) { LayoutInflater inflater = LayoutInflater.from(parent.getContext()); @@ -330,6 +265,14 @@ return convertView; } + + private void setViewText(NavigationEntry entry, TextView view) { + String entryText = entry.getTitle(); + if (TextUtils.isEmpty(entryText)) entryText = entry.getVirtualUrl(); + if (TextUtils.isEmpty(entryText)) entryText = entry.getUrl(); + + view.setText(entryText); + } } private static class EntryViewHolder { @@ -338,11 +281,5 @@ TextView mTextView; } - private static void setViewText(NavigationEntry entry, TextView view) { - String entryText = entry.getTitle(); - if (TextUtils.isEmpty(entryText)) entryText = entry.getVirtualUrl(); - if (TextUtils.isEmpty(entryText)) entryText = entry.getUrl(); - view.setText(entryText); - } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/UrlConstants.java b/chrome/android/java/src/org/chromium/chrome/browser/UrlConstants.java index 24ee73e..e9b3243 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/UrlConstants.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/UrlConstants.java
@@ -76,8 +76,6 @@ public static final String CHROME_MEMEX_URL = "https://chrome-memex.appspot.com/"; public static final String CHROME_MEMEX_DEV_URL = "https://chrome-memex-dev.appspot.com/"; - public static final String CONTENT_SUGGESTIONS_SUFFIX = "#suggestions"; - public static final String EXPLORE_HOST = "explore"; public static final String EXPLORE_URL = "chrome-native://explore"; }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java index eafed30..67a5037 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/PersonalDataManager.java
@@ -909,15 +909,6 @@ } /** - * TODO(crbug.com/879420): Remove this once Clank downstream uses isAutofillProfileEnabled and - * isAutofillCreditCardEnabled. - * @return Whether the Autofill feature is enabled. - */ - public static boolean isAutofillEnabled() { - return isAutofillProfileEnabled() && isAutofillCreditCardEnabled(); - } - - /** * @return Whether the Autofill feature for Profiles (addresses) is enabled. */ public static boolean isAutofillProfileEnabled() { @@ -932,17 +923,6 @@ } /** - * Enables or disables the Autofill feature. - * TODO(crbug.com/879420): Remove this once Clank downstream uses setAutofillProfileEnabled and - * setAutofillCreditCardEnabled. - * @param enable True to disable Autofill, false otherwise. - */ - public static void setAutofillEnabled(boolean enable) { - setAutofillProfileEnabled(enable); - setAutofillCreditCardEnabled(enable); - } - - /** * Enables or disables the Autofill feature for Profiles. * @param enable True to disable profile Autofill, false otherwise. */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetViewBinder.java index 5a1c35d9..d3794777 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetViewBinder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/AccessorySheetViewBinder.java
@@ -10,9 +10,11 @@ import static org.chromium.chrome.browser.autofill.keyboard_accessory.AccessorySheetProperties.TABS; import static org.chromium.chrome.browser.autofill.keyboard_accessory.AccessorySheetProperties.VISIBLE; +import android.os.Build; import android.support.v4.view.ViewPager; import android.view.View; import android.view.ViewGroup; +import android.view.ViewParent; import org.chromium.chrome.browser.modelutil.PropertyKey; import org.chromium.chrome.browser.modelutil.PropertyModel; @@ -43,6 +45,15 @@ } else { assert false : "Every possible property update needs to be handled!"; } + // Layout requests happen automatically since Kitkat and redundant requests cause warnings. + if (viewPager != null && Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { + viewPager.post(() -> { + ViewParent parent = viewPager.getParent(); + if (parent != null) { + parent.requestLayout(); + } + }); + } } static void announceOpenedTab(View announcer, KeyboardAccessoryData.Tab tab) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryViewBinder.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryViewBinder.java index 545076e7..c7edb1b 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryViewBinder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryViewBinder.java
@@ -11,11 +11,13 @@ import static org.chromium.chrome.browser.autofill.keyboard_accessory.KeyboardAccessoryProperties.TAB_SELECTION_CALLBACKS; import static org.chromium.chrome.browser.autofill.keyboard_accessory.KeyboardAccessoryProperties.VISIBLE; +import android.os.Build; import android.support.design.widget.TabLayout; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.view.ViewParent; import android.widget.TextView; import org.chromium.chrome.R; @@ -123,6 +125,15 @@ } else { assert false : "Every possible property update needs to be handled!"; } + // Layout requests happen automatically since Kitkat and redundant requests cause warnings. + if (view != null && Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { + view.post(() -> { + ViewParent parent = view.getParent(); + if (parent != null) { + parent.requestLayout(); + } + }); + } } private static void setActiveTabHint(PropertyModel model, KeyboardAccessoryView view) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingMediator.java index de4c384b..df6212d1 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingMediator.java
@@ -26,7 +26,6 @@ import org.chromium.chrome.browser.tabmodel.TabModelObserver; import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabModelObserver; import org.chromium.ui.DropdownPopupWindow; -import org.chromium.ui.UiUtils; import org.chromium.ui.base.WindowAndroid; import java.util.HashMap; @@ -179,6 +178,7 @@ // TODO(fhorschig): Look for stronger signals than |keyboardVisibilityChanged|. // This variable remembers the last state of |keyboardVisibilityChanged| which might not be // sufficient for edge cases like hardware keyboards, floating keyboards, etc. + @VisibleForTesting void onKeyboardVisibilityChanged(boolean isShowing) { if (!mKeyboardAccessory.hasContents()) return; // Exit early to not affect the layout. if (isShowing) { @@ -235,7 +235,9 @@ if (!isInitialized()) return; pause(); ViewGroup contentView = getContentView(); - if (contentView != null) UiUtils.hideKeyboard(contentView); + if (contentView != null) { + mWindowAndroid.getKeyboardDelegate().hideKeyboard(getContentView()); + } } void notifyPopupOpened(DropdownPopupWindow popup) { @@ -264,14 +266,14 @@ View rootView = contentView.getRootView(); if (rootView == null) return; mAccessorySheet.setHeight(calculateAccessorySheetHeight(rootView)); - UiUtils.hideKeyboard(contentView); + mWindowAndroid.getKeyboardDelegate().hideKeyboard(contentView); } @Override public void onCloseAccessorySheet() { ViewGroup contentView = getContentView(); if (contentView == null || mActivity == null) return; // The tab was cleaned up already. - if (UiUtils.isKeyboardShowing(mActivity, contentView)) { + if (mWindowAndroid.getKeyboardDelegate().isKeyboardShowing(mActivity, contentView)) { return; // If the keyboard is showing or is starting to show, the sheet closes gently. } mActivity.getFullscreenManager().setBottomControlsHeight(mPreviousControlHeight); @@ -292,7 +294,9 @@ public void onOpenKeyboard() { assert mActivity != null : "ManualFillingMediator needs initialization."; mActivity.getFullscreenManager().setBottomControlsHeight(calculateAccessoryBarHeight()); - if (mActivity.getCurrentFocus() != null) UiUtils.showKeyboard(mActivity.getCurrentFocus()); + if (mActivity.getCurrentFocus() != null) { + mWindowAndroid.getKeyboardDelegate().showKeyboard(mActivity.getCurrentFocus()); + } } @Override @@ -366,7 +370,7 @@ org.chromium.chrome.R.dimen.keyboard_accessory_suggestion_height); // Ensure that the minimum height is always sufficient to display a suggestion. return Math.max(accessorySheetSuggestionHeight, - UiUtils.calculateKeyboardHeight(mActivity, rootView)); + mWindowAndroid.getKeyboardDelegate().calculateKeyboardHeight(mActivity, rootView)); } private @Px int calculateAccessoryBarHeight() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantUiController.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantUiController.java index 58c03e8..c65d028 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantUiController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantUiController.java
@@ -14,6 +14,9 @@ import org.chromium.chrome.browser.tabmodel.TabModel.TabSelectionType; import org.chromium.content_public.browser.WebContents; +import java.util.ArrayList; +import java.util.List; + /** * Bridge to native side autofill_assistant::UiControllerAndroid. It allows native side to control * Autofill Assistant related UIs and forward UI events to native side. @@ -82,10 +85,13 @@ } @CalledByNative - private void onUpdateScripts(String[] scripts) { - // TODO(crbug.com/806868): Pass a Script handle instead of a string so that we can report - // back what script got selected. - mBottomBarController.updateScripts(scripts); + private void onUpdateScripts(String[] scriptNames, String[] scriptPaths) { + List<BottomBarController.ScriptHandle> scriptHandles = new ArrayList<>(); + // Note that scriptNames and scriptPaths are one-on-one matched by index. + for (int i = 0; i < scriptNames.length; i++) { + scriptHandles.add(new BottomBarController.ScriptHandle(scriptNames[i], scriptPaths[i])); + } + mBottomBarController.updateScripts(scriptHandles); } // native methods.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/BottomBarController.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/BottomBarController.java index 9bb4cf1b1..58652ce 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/BottomBarController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill_assistant/BottomBarController.java
@@ -16,6 +16,8 @@ import org.chromium.chrome.R; +import java.util.List; + import javax.annotation.Nullable; /** Controller to interact with the bottom bar. */ @@ -43,6 +45,32 @@ } /** + * Java side equivalent of autofill_assistant::ScriptHandle. + */ + protected static class ScriptHandle { + /** The display name of this script. */ + private final String mName; + /** The script path. */ + private final String mPath; + + /** Constructor. */ + public ScriptHandle(String name, String path) { + mName = name; + mPath = path; + } + + /** Returns the display name. */ + public String getName() { + return mName; + } + + /** Returns the script path. */ + public String getPath() { + return mPath; + } + } + + /** * Constructs a bottom bar. * * @param activity The Activity @@ -76,14 +104,15 @@ * * @param scripts List of scripts to show. */ - public void updateScripts(String[] scripts) { + public void updateScripts(List<ScriptHandle> scriptHandles) { mScriptsViewContainer.removeAllViews(); - if (scripts.length == 0) { + if (scriptHandles.isEmpty()) { return; } - for (String script : scripts) { - TextView scriptView = createScriptView(script); - scriptView.setOnClickListener((unusedView) -> { mClient.onScriptSelected(script); }); + for (ScriptHandle scriptHandle : scriptHandles) { + TextView scriptView = createScriptView(scriptHandle.getName()); + scriptView.setOnClickListener( + (unusedView) -> { mClient.onScriptSelected(scriptHandle.getPath()); }); mScriptsViewContainer.addView(scriptView); } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java index d1ebccf28..7e4c394 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkPromoHeader.java
@@ -4,7 +4,6 @@ package org.chromium.chrome.browser.bookmarks; -import android.accounts.Account; import android.content.Context; import android.content.SharedPreferences; import android.support.annotation.IntDef; @@ -18,13 +17,13 @@ import org.chromium.base.ContextUtils; import org.chromium.base.VisibleForTesting; import org.chromium.chrome.R; -import org.chromium.chrome.browser.signin.DisplayableProfileData; import org.chromium.chrome.browser.signin.PersonalizedSigninPromoView; import org.chromium.chrome.browser.signin.ProfileDataCache; import org.chromium.chrome.browser.signin.SigninAccessPoint; import org.chromium.chrome.browser.signin.SigninManager; import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver; import org.chromium.chrome.browser.signin.SigninPromoController; +import org.chromium.chrome.browser.signin.SigninPromoUtil; import org.chromium.chrome.browser.signin.SyncPromoView; import org.chromium.components.signin.AccountManagerFacade; import org.chromium.components.signin.AccountsChangeObserver; @@ -34,7 +33,6 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; -import java.util.Collections; /** * Class that manages all the logic and UI behind the signin promo header in the bookmark @@ -160,15 +158,8 @@ * @param view The view to be configured. */ void setupPersonalizedSigninPromo(PersonalizedSigninPromoView view) { - DisplayableProfileData profileData = null; - Account[] accounts = AccountManagerFacade.get().tryGetGoogleAccounts(); - if (accounts.length > 0) { - String defaultAccountName = accounts[0].name; - mProfileDataCache.update(Collections.singletonList(defaultAccountName)); - profileData = mProfileDataCache.getProfileDataOrDefault(defaultAccountName); - } - SigninPromoController.OnDismissListener listener = this::setPersonalizedSigninPromoDeclined; - mSigninPromoController.setupPromoView(mContext, view, profileData, listener); + SigninPromoUtil.setupPromoViewFromCache(mSigninPromoController, mProfileDataCache, view, + this::setPersonalizedSigninPromoDeclined); } /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java index e516eec..b9d83ad 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/CompositorViewHolder.java
@@ -53,6 +53,7 @@ import org.chromium.chrome.browser.util.ColorUtils; import org.chromium.chrome.browser.widget.ControlContainer; import org.chromium.content_public.browser.WebContents; +import org.chromium.ui.KeyboardVisibilityDelegate; import org.chromium.ui.UiUtils; import org.chromium.ui.base.EventForwarder; import org.chromium.ui.base.SPenSupport; @@ -257,7 +258,8 @@ // contents. // // [1] - https://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_FULLSCREEN - if (mShowingFullscreen && UiUtils.isKeyboardShowing(getContext(), this)) { + if (mShowingFullscreen + && KeyboardVisibilityDelegate.getInstance().isKeyboardShowing(getContext(), this)) { getWindowVisibleDisplayFrame(mCacheRect); // On certain devices, getWindowVisibleDisplayFrame is larger than the screen size, so @@ -798,7 +800,8 @@ @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); - mIsKeyboardShowing = UiUtils.isKeyboardShowing(getContext(), this); + mIsKeyboardShowing = + KeyboardVisibilityDelegate.getInstance().isKeyboardShowing(getContext(), this); } @Override @@ -906,7 +909,7 @@ if (mUrlBar != null) mUrlBar.clearFocus(); boolean wasVisible = false; if (hasFocus()) { - wasVisible = UiUtils.hideKeyboard(this); + wasVisible = KeyboardVisibilityDelegate.getInstance().hideKeyboard(this); } if (wasVisible) { mPostHideKeyboardTask = postHideTask;
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 e4b62a7..a1a0b1f7 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
@@ -852,16 +852,7 @@ } } - // LayoutTabs may be running their own animations; make sure they are done. This should - // not block the completion state of the layout animations in general. Particularly, a tab - // could be driving theme changes (and therefore fade animations) that are not critical to - // the browser's UI. https://crbug.com/627066 - boolean layoutTabsFinished = true; - for (int i = 0; mLayoutTabs != null && i < mLayoutTabs.length; i++) { - layoutTabsFinished &= mLayoutTabs[i].onUpdateAnimation(time); - } - - if (!finished || !layoutTabsFinished) requestUpdate(); + if (!finished) requestUpdate(); return finished; }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/components/LayoutTab.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/components/LayoutTab.java index 556da592..699404f 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/components/LayoutTab.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/components/LayoutTab.java
@@ -125,11 +125,6 @@ */ private boolean mInitFromHostCalled; - /** The animation set specific to this LayoutTab. */ - private ChromeAnimation<ChromeAnimation.Animatable> mCurrentAnimations; - private int mInitialThemeColor; - private int mFinalThemeColor; - // All the members bellow are initialized from the delayed initialization. // // Begin section -------------- @@ -242,15 +237,6 @@ } /** - * Update any animation controlled by this object. - * @param time The current app time in ms. - * @return Whether the animations controlled by this LayoutTab are finished. - */ - public boolean onUpdateAnimation(long time) { - return mCurrentAnimations == null ? true : mCurrentAnimations.update(time); - } - - /** * @return Whether {@link #initFromHost} needs to be called on this {@link LayoutTab}. */ public boolean isInitFromHostNeeded() { @@ -796,7 +782,6 @@ * @param visible True if the {@link LayoutTab} is visible and need to be drawn. */ public void setVisible(boolean visible) { - if (!visible && mCurrentAnimations != null) mCurrentAnimations.updateAndFinish(); mVisible = visible; } @@ -995,9 +980,6 @@ @Override public void onPropertyAnimationFinished(@Property int prop) { - if (mCurrentAnimations != null && mCurrentAnimations.finished()) { - mCurrentAnimations = null; - } } public static final FloatProperty<LayoutTab> ALPHA = new FloatProperty<LayoutTab>("ALPHA") {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchPreferenceHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchPreferenceHelper.java index 8122ce2..d2abb73 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchPreferenceHelper.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchPreferenceHelper.java
@@ -60,10 +60,12 @@ * previously undecided. */ public boolean canThrottle() { - return ChromeFeatureList.getFieldTrialParamByFeatureAsBoolean( - ChromeFeatureList.CONTEXTUAL_SEARCH_UNITY_INTEGRATION, - ContextualSearchPreferenceHelper.THROTTLE, false) + boolean isRequestThrottled = ChromeFeatureList.getFieldTrialParamByFeatureAsBoolean( + ChromeFeatureList.CONTEXTUAL_SEARCH_UNITY_INTEGRATION, + ContextualSearchPreferenceHelper.THROTTLE, false) && wasUndecided(); + ContextualSearchUma.logUnifiedConsentThrottledRequests(isRequestThrottled); + return isRequestThrottled; } /** Updates our preference metadata storage based on what our native member knows. */ @@ -88,9 +90,11 @@ /** @return Whether the user was "undecided" before Unified Consent changed their setting. */ private boolean wasUndecided() { - return ContextualSearchPreviousPreferenceMetadata.WAS_UNDECIDED + boolean isThrottleEligible = ContextualSearchPreviousPreferenceMetadata.WAS_UNDECIDED == ChromePreferenceManager.getInstance().readInt( ChromePreferenceManager.CONTEXTUAL_SEARCH_PRE_UNIFIED_CONSENT_PREF); + ContextualSearchUma.logUnifiedConsentThrottleEligible(isThrottleEligible); + return isThrottleEligible; } /** @return Whether we know if Unified Consent changed their setting. */ @@ -106,6 +110,8 @@ assert setting != ContextualSearchPreviousPreferenceMetadata.UNKNOWN; ChromePreferenceManager.getInstance().writeInt( ChromePreferenceManager.CONTEXTUAL_SEARCH_PRE_UNIFIED_CONSENT_PREF, setting); + ContextualSearchUma.logUnifiedConsentPreviousEnabledState( + setting == ContextualSearchPreviousPreferenceMetadata.WAS_UNDECIDED); } /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchUma.java b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchUma.java index a83677a..129ff08f 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchUma.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchUma.java
@@ -1489,6 +1489,37 @@ } /** + * Logs the previous enabled-state of this user before the feature was turned full-on for + * Unified Consent (when integration is enabled). + * @param wasPreviouslyUndecided Whether the user was previously undecided. + */ + static void logUnifiedConsentPreviousEnabledState(boolean wasPreviouslyUndecided) { + RecordHistogram.recordBooleanHistogram( + "Search.ContextualSearch.UnifiedConsent.PreviouslyUndecided", + wasPreviouslyUndecided); + } + + /** + * Logs whether a request will be throttled for Unified Consent integration, for all requests + * regardless of whether the integration feature is enabled. Logged multiple times per request. + * @param isRequestThrottled Whether the current request is being throttled. + */ + static void logUnifiedConsentThrottledRequests(boolean isRequestThrottled) { + RecordHistogram.recordBooleanHistogram( + "Search.ContextualSearch.UnifiedConsent.ThrottledRequests", isRequestThrottled); + } + + /** + * Logs whether this user was eligible for throttling of requests when Unified Consent + * integration is enabled and throttling is in effect. + * @param isThrottleEligible Whether this user is eligible to be throttled. + */ + static void logUnifiedConsentThrottleEligible(boolean isThrottleEligible) { + RecordHistogram.recordBooleanHistogram( + "Search.ContextualSearch.UnifiedConsent.ThrottleEligible", isThrottleEligible); + } + + /** * Gets the state-change code for the given parameters by doing a lookup in the given map. * @param state The panel state. * @param reason The reason the state changed.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ActivityHostImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ActivityHostImpl.java index 0aec1d92..8a4a617 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ActivityHostImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ActivityHostImpl.java
@@ -12,7 +12,7 @@ /** * The implementation of {@link IActivityHost}. */ -public class ActivityHostImpl extends IActivityHost.Stub { +public class ActivityHostImpl extends BaseActivityHost { private final CustomTabActivity mActivity; public ActivityHostImpl(CustomTabActivity activity) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleHostImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleHostImpl.java index 29eab10..c67f6ffb 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleHostImpl.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/dynamicmodule/ModuleHostImpl.java
@@ -9,7 +9,7 @@ /** * The implementation of {@link IModuleHost}. */ -public class ModuleHostImpl extends IModuleHost.Stub { +public class ModuleHostImpl extends BaseModuleHost { private static final int VERSION = 3; private static final int MINIMUM_MODULE_VERSION = 1;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java index 63ad3bab..dd012a6 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/dom_distiller/ReaderModeManager.java
@@ -34,7 +34,7 @@ import org.chromium.content_public.browser.NavigationEntry; import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.WebContentsObserver; -import org.chromium.ui.UiUtils; +import org.chromium.ui.KeyboardVisibilityDelegate; import java.util.HashMap; import java.util.Map; @@ -290,11 +290,12 @@ /** * @return True if the keyboard might be showing. This is not 100% accurate; see - * UiUtils.isKeyboardShowing(...). + * {@link KeyboardVisibilityDelegate#isKeyboardShowing}. */ protected boolean isKeyboardShowing() { - return mChromeActivity != null && UiUtils.isKeyboardShowing(mChromeActivity, - mChromeActivity.findViewById(android.R.id.content)); + return mChromeActivity != null && mChromeActivity.getWindowAndroid() != null + && mChromeActivity.getWindowAndroid().getKeyboardDelegate().isKeyboardShowing( + mChromeActivity, mChromeActivity.findViewById(android.R.id.content)); } protected WebContentsObserver createWebContentsObserver(final WebContents webContents) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainer.java b/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainer.java index ceb63d9..27a088a 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/infobar/InfoBarContainer.java
@@ -31,7 +31,7 @@ import org.chromium.chrome.browser.widget.bottomsheet.BottomSheetObserver; import org.chromium.chrome.browser.widget.bottomsheet.EmptyBottomSheetObserver; import org.chromium.content_public.browser.WebContents; -import org.chromium.ui.UiUtils; +import org.chromium.ui.KeyboardVisibilityDelegate; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.display.DisplayAndroid; import org.chromium.ui.display.DisplayUtil; @@ -515,7 +515,8 @@ protected void onLayout(boolean changed, int l, int t, int r, int b) { // Hide the View when the keyboard is showing. boolean isShowing = (getVisibility() == View.VISIBLE); - if (UiUtils.isKeyboardShowing(getContext(), InfoBarContainer.this)) { + if (KeyboardVisibilityDelegate.getInstance().isKeyboardShowing( + getContext(), InfoBarContainer.this)) { if (isShowing) { // Set to invisible (instead of gone) so that onLayout() will be called when the // keyboard is dismissed.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java index 75eb771..7e0f2d1 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/init/ProcessInitializationHandler.java
@@ -82,6 +82,7 @@ import org.chromium.printing.PrintDocumentAdapterWrapper; import org.chromium.printing.PrintingControllerImpl; import org.chromium.ui.ContactsPickerListener; +import org.chromium.ui.KeyboardVisibilityDelegate; import org.chromium.ui.PhotoPickerListener; import org.chromium.ui.UiUtils; import org.chromium.ui.base.SelectFileDialog; @@ -148,9 +149,9 @@ protected void handlePreNativeInitialization() { Context application = ContextUtils.getApplicationContext(); - UiUtils.setKeyboardShowingDelegate(new UiUtils.KeyboardShowingDelegate() { + KeyboardVisibilityDelegate.setInstance(new KeyboardVisibilityDelegate() { @Override - public boolean disableKeyboardCheck(Context context, View view) { + public boolean isKeyboardShowing(Context context, View view) { Activity activity = null; if (context instanceof Activity) { activity = (Activity) context; @@ -158,9 +159,11 @@ activity = (Activity) view.getContext(); } - // For multiwindow mode we do not track keyboard visibility. - return activity != null - && MultiWindowUtils.getInstance().isLegacyMultiWindow(activity); + if (activity != null + && MultiWindowUtils.getInstance().isLegacyMultiWindow(activity)) { + return false; // For multi-window mode we do not track keyboard visibility. + } + return super.isKeyboardShowing(context, view); } });
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/router/caf/CafBaseMediaRouteProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/media/router/caf/CafBaseMediaRouteProvider.java index a087c7b..4bbd6b4 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/media/router/caf/CafBaseMediaRouteProvider.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/media/router/caf/CafBaseMediaRouteProvider.java
@@ -217,6 +217,7 @@ public void onSessionStarted(CastSession session, String sessionId) { Log.d(TAG, "onSessionStarted"); mSessionController.attachToCastSession(session); + sessionController().getNotificationController().onSessionStarted(); MediaSink sink = mPendingCreateRouteRequestInfo.sink; MediaSource source = mPendingCreateRouteRequestInfo.source; @@ -261,17 +262,20 @@ /////////////////////////////////////////////////////// private void handleSessionEnd(String error) { - mSessionController.detachFromCastSession(); - getAndroidMediaRouter().selectRoute(getAndroidMediaRouter().getDefaultRoute()); - removeAllRoutesWithError(error); - if (mPendingCreateRouteRequestInfo == null) { + if (mPendingCreateRouteRequestInfo != null) { // The Cast SDK notifies about session ending when a route is unselected, even when // there's no current session. Because CastSessionController unselects the route to set // the receiver app ID, this needs to be guarded by a pending request null check to make // sure the listener is not unregistered during a session relaunch. - CastUtils.getCastContext().getSessionManager().removeSessionManagerListener( - this, CastSession.class); + return; } + mSessionController.getNotificationController().onSessionEnded(); + mSessionController.detachFromCastSession(); + mSessionController.onSessionEnded(); + getAndroidMediaRouter().selectRoute(getAndroidMediaRouter().getDefaultRoute()); + removeAllRoutesWithError(error); + CastUtils.getCastContext().getSessionManager().removeSessionManagerListener( + this, CastSession.class); } public @NonNull MediaRouter getAndroidMediaRouter() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/router/caf/CafNotificationController.java b/chrome/android/java/src/org/chromium/chrome/browser/media/router/caf/CafNotificationController.java new file mode 100644 index 0000000..e02a1ec8 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/media/router/caf/CafNotificationController.java
@@ -0,0 +1,148 @@ +// 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.media.router.caf; + +import android.content.Intent; + +import com.google.android.gms.cast.CastDevice; +import com.google.android.gms.cast.MediaStatus; +import com.google.android.gms.cast.framework.media.RemoteMediaClient; + +import org.chromium.chrome.R; +import org.chromium.chrome.browser.media.ui.MediaNotificationInfo; +import org.chromium.chrome.browser.media.ui.MediaNotificationListener; +import org.chromium.chrome.browser.media.ui.MediaNotificationManager; +import org.chromium.chrome.browser.metrics.MediaNotificationUma; +import org.chromium.chrome.browser.tab.Tab; +import org.chromium.content_public.common.MediaMetadata; + +/** Controller for updating media notification for Casting and MediaFling. */ +public class CafNotificationController implements MediaNotificationListener { + private MediaNotificationInfo.Builder mNotificationBuilder; + private final CastSessionController mSessionController; + + public CafNotificationController(CastSessionController sessionController) { + mSessionController = sessionController; + } + + /** Called when session started. */ + public void onSessionStarted() { + Intent contentIntent = + Tab.createBringTabToFrontIntent(mSessionController.getRouteCreationInfo().tabId); + if (contentIntent != null) { + contentIntent.putExtra(MediaNotificationUma.INTENT_EXTRA_NAME, + MediaNotificationUma.Source.PRESENTATION); + } + mNotificationBuilder = + new MediaNotificationInfo.Builder() + .setPaused(false) + .setOrigin(mSessionController.getRouteCreationInfo().origin) + // TODO(zqzhang): the same session might have more than one tab id. Should + // we track the last foreground alive tab and update the notification with + // it? + .setTabId(mSessionController.getRouteCreationInfo().tabId) + .setPrivate(mSessionController.getRouteCreationInfo().isIncognito) + .setActions(MediaNotificationInfo.ACTION_STOP) + .setContentIntent(contentIntent) + .setNotificationSmallIcon(R.drawable.ic_notification_media_route) + .setDefaultNotificationLargeIcon(R.drawable.cast_playing_square) + .setId(R.id.presentation_notification) + .setListener(this); + + updateNotificationMetadata(); + MediaNotificationManager.show(mNotificationBuilder.build()); + } + + /** Called when session ended. */ + public void onSessionEnded() { + MediaNotificationManager.clear(R.id.presentation_notification); + mNotificationBuilder = null; + } + + /** Called when media status updated. */ + public void onStatusUpdated() { + if (mNotificationBuilder == null) return; + if (!mSessionController.isConnected()) return; + + MediaStatus mediaStatus = mSessionController.getRemoteMediaClient().getMediaStatus(); + if (mediaStatus == null) return; + + int playerState = mediaStatus.getPlayerState(); + if (playerState == MediaStatus.PLAYER_STATE_PAUSED + || playerState == MediaStatus.PLAYER_STATE_PLAYING) { + mNotificationBuilder.setPaused(playerState != MediaStatus.PLAYER_STATE_PLAYING); + mNotificationBuilder.setActions( + MediaNotificationInfo.ACTION_STOP | MediaNotificationInfo.ACTION_PLAY_PAUSE); + } else { + mNotificationBuilder.setActions(MediaNotificationInfo.ACTION_STOP); + } + MediaNotificationManager.show(mNotificationBuilder.build()); + } + + /** Called when media metadata updated. */ + public void onMetadataUpdated() { + if (mNotificationBuilder == null) return; + updateNotificationMetadata(); + MediaNotificationManager.show(mNotificationBuilder.build()); + } + + private void updateNotificationMetadata() { + MediaMetadata notificationMetadata = new MediaMetadata("", "", ""); + mNotificationBuilder.setMetadata(notificationMetadata); + + if (!mSessionController.isConnected()) return; + + CastDevice castDevice = mSessionController.getSession().getCastDevice(); + if (castDevice != null) notificationMetadata.setTitle(castDevice.getFriendlyName()); + + RemoteMediaClient remoteMediaClient = mSessionController.getRemoteMediaClient(); + + com.google.android.gms.cast.MediaInfo info = remoteMediaClient.getMediaInfo(); + if (info == null) return; + + com.google.android.gms.cast.MediaMetadata metadata = info.getMetadata(); + if (metadata == null) return; + + String title = metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_TITLE); + if (title != null) notificationMetadata.setTitle(title); + + String artist = metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_ARTIST); + if (artist == null) { + artist = metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_ALBUM_ARTIST); + } + if (artist != null) notificationMetadata.setArtist(artist); + + String album = + metadata.getString(com.google.android.gms.cast.MediaMetadata.KEY_ALBUM_TITLE); + if (album != null) notificationMetadata.setAlbum(album); + } + + ///////////////////////////////////////////////////////////////////////////////////////////// + // MediaNotificationListener implementation. + + @Override + public void onPlay(int actionSource) { + if (!mSessionController.isConnected()) return; + + mSessionController.getRemoteMediaClient().play(); + } + + @Override + public void onPause(int actionSource) { + if (!mSessionController.isConnected()) return; + + mSessionController.getRemoteMediaClient().pause(); + } + + @Override + public void onStop(int actionSource) { + if (!mSessionController.isConnected()) return; + + mSessionController.endSession(); + } + + @Override + public void onMediaSessionAction(int action) {} +}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/media/router/caf/CastSessionController.java b/chrome/android/java/src/org/chromium/chrome/browser/media/router/caf/CastSessionController.java index f37f033..d6d07518 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/media/router/caf/CastSessionController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/media/router/caf/CastSessionController.java
@@ -32,25 +32,27 @@ private CastSession mCastSession; private final CafBaseMediaRouteProvider mProvider; - private MediaSink mSink; - private MediaSource mSource; private List<String> mNamespaces = new ArrayList<String>(); private final CastListener mCastListener; private final MediaRouter.Callback mMediaRouterCallbackForSessionLaunch; + private CreateRouteRequestInfo mRouteCreationInfo; + private final CafNotificationController mNotificationController; + private final RemoteMediaClient.Callback mRemoteMediaClientCallback; public CastSessionController(CafBaseMediaRouteProvider provider) { mProvider = provider; mCastListener = new CastListener(); mMediaRouterCallbackForSessionLaunch = new MediaRouterCallbackForSessionLaunch(); + mNotificationController = new CafNotificationController(this); + mRemoteMediaClientCallback = new RemoteMediaClientCallback(); } public void requestSessionLaunch() { - CreateRouteRequestInfo request = mProvider.getPendingCreateRouteRequestInfo(); - mSource = request.source; - mSink = request.sink; - CastUtils.getCastContext().setReceiverApplicationId(request.source.getApplicationId()); + mRouteCreationInfo = mProvider.getPendingCreateRouteRequestInfo(); + CastUtils.getCastContext().setReceiverApplicationId( + mRouteCreationInfo.source.getApplicationId()); - if (request.routeInfo.isSelected()) { + if (mRouteCreationInfo.routeInfo.isSelected()) { // If a route has just been selected, CAF might not be ready yet before setting the app // ID. So unselect and select the route will let CAF be aware that the route has been // selected thus it can start the session. @@ -59,19 +61,24 @@ // short time, the selection might be ignored by MediaRouter, so put the reselection in // a callback. mProvider.getAndroidMediaRouter().addCallback( - mSource.buildRouteSelector(), mMediaRouterCallbackForSessionLaunch); + mRouteCreationInfo.source.buildRouteSelector(), + mMediaRouterCallbackForSessionLaunch); mProvider.getAndroidMediaRouter().unselect(MediaRouter.UNSELECT_REASON_UNKNOWN); } else { - request.routeInfo.select(); + mRouteCreationInfo.routeInfo.select(); } } public MediaSource getSource() { - return mSource; + return (mRouteCreationInfo != null) ? mRouteCreationInfo.source : null; } public MediaSink getSink() { - return mSink; + return (mRouteCreationInfo != null) ? mRouteCreationInfo.sink : null; + } + + public CreateRouteRequestInfo getRouteCreationInfo() { + return mRouteCreationInfo; } public CastSession getSession() { @@ -82,6 +89,10 @@ return mCastSession.getRemoteMediaClient(); } + public CafNotificationController getNotificationController() { + return mNotificationController; + } + public void endSession() { MediaRouter mediaRouter = mProvider.getAndroidMediaRouter(); mediaRouter.selectRoute(mediaRouter.getDefaultRoute()); @@ -125,6 +136,7 @@ public void attachToCastSession(CastSession session) { mCastSession = session; mCastSession.addCastListener(mCastListener); + getRemoteMediaClient().registerCallback(mRemoteMediaClientCallback); updateNamespaces(); } @@ -133,9 +145,14 @@ mNamespaces.clear(); mCastSession.removeCastListener(mCastListener); + getRemoteMediaClient().unregisterCallback(mRemoteMediaClientCallback); mCastSession = null; } + public void onSessionEnded() { + mRouteCreationInfo = null; + } + private class CastListener extends Cast.Listener { @Override public void onApplicationStatusChanged() { @@ -226,4 +243,16 @@ } } } + + private class RemoteMediaClientCallback extends RemoteMediaClient.Callback { + @Override + public void onStatusUpdated() { + mNotificationController.onStatusUpdated(); + } + + @Override + public void onMetadataUpdated() { + mNotificationController.onMetadataUpdated(); + } + } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java index 5770f02..3d04165 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
@@ -225,9 +225,6 @@ NewTabPageUma.recordNTPImpression(NewTabPageUma.NTP_IMPRESSION_REGULAR); // If not visible when loading completes, wait until onShown is received. if (!mTab.isHidden()) recordNTPShown(); - if (mTab.getUrl().contains(UrlConstants.CONTENT_SUGGESTIONS_SUFFIX)) { - scrollToSuggestions(); - } } } @@ -372,13 +369,6 @@ index, NAVIGATION_ENTRY_SCROLL_POSITION_KEY, Integer.toString(scrollPosition)); } - /** - * Scroll to the list of suggested articles. - */ - protected void scrollToSuggestions() { - mNewTabPageView.scrollToSuggestions(); - } - /** @return The view container for the new tab page. */ @VisibleForTesting public NewTabPageView getNewTabPageView() {
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 375c683..a262bcc7 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
@@ -26,7 +26,6 @@ import org.chromium.chrome.browser.suggestions.SuggestionsDependencyFactory; import org.chromium.chrome.browser.suggestions.SuggestionsUiDelegate; import org.chromium.chrome.browser.suggestions.TileGroup; -import org.chromium.chrome.browser.tab.EmptyTabObserver; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.util.FeatureUtilities; import org.chromium.chrome.browser.util.ViewUtils; @@ -316,43 +315,6 @@ } /** - * Scrolls to the top of content suggestions header if one exists. If not, scrolls to the top - * of the first article suggestion. Uses scrollToPositionWithOffset to position the suggestions - * below the toolbar and not below the status bar. - */ - void scrollToSuggestions() { - int scrollPosition = getSuggestionsScrollPosition(); - // Nothing to scroll to; return early. - if (scrollPosition == RecyclerView.NO_POSITION) return; - - // Scrolling doesn't occur if it's called too soon i.e. the ntp hasn't finished loading. - if (mTab.isLoading()) { - mTab.addObserver(new EmptyTabObserver() { - @Override - public void onPageLoadFinished(Tab tab) { - mRecyclerView.getLinearLayoutManager().scrollToPositionWithOffset( - scrollPosition, mScrollToSuggestionsOffset); - mTab.removeObserver(this); - } - }); - return; - } - - mRecyclerView.getLinearLayoutManager().scrollToPositionWithOffset( - scrollPosition, mScrollToSuggestionsOffset); - } - - /** - * Retrieves the position of articles or of their header in the NTP adapter to scroll to. - * @return The header's position if a header is present. Otherwise, the first - * suggestion card's position. - */ - private int getSuggestionsScrollPosition() { - // Header always exists. - return mRecyclerView.getNewTabPageAdapter().getArticleHeaderPosition(); - } - - /** * @return The adapter position the user has scrolled to. */ public int getScrollPosition() {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java index a1b524e..73063e638 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/RecentTabsManager.java
@@ -4,7 +4,6 @@ package org.chromium.chrome.browser.ntp; -import android.accounts.Account; import android.content.Context; import android.graphics.Bitmap; import android.support.annotation.IntDef; @@ -21,13 +20,13 @@ import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSession; import org.chromium.chrome.browser.ntp.ForeignSessionHelper.ForeignSessionTab; import org.chromium.chrome.browser.profiles.Profile; -import org.chromium.chrome.browser.signin.DisplayableProfileData; import org.chromium.chrome.browser.signin.PersonalizedSigninPromoView; import org.chromium.chrome.browser.signin.ProfileDataCache; import org.chromium.chrome.browser.signin.SigninAccessPoint; import org.chromium.chrome.browser.signin.SigninManager; import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver; import org.chromium.chrome.browser.signin.SigninPromoController; +import org.chromium.chrome.browser.signin.SigninPromoUtil; import org.chromium.chrome.browser.tab.Tab; import org.chromium.components.signin.AccountManagerFacade; import org.chromium.components.signin.AccountsChangeObserver; @@ -380,15 +379,8 @@ * @param view The view to be configured. */ void setupPersonalizedSigninPromo(PersonalizedSigninPromoView view) { - DisplayableProfileData profileData = null; - Account[] accounts = AccountManagerFacade.get().tryGetGoogleAccounts(); - if (accounts.length > 0) { - String defaultAccountName = accounts[0].name; - mProfileDataCache.update(Collections.singletonList(defaultAccountName)); - profileData = mProfileDataCache.getProfileDataOrDefault(defaultAccountName); - } - mSigninPromoController.detach(); - mSigninPromoController.setupPromoView(mContext, view, profileData, null); + SigninPromoUtil.setupPromoViewFromCache( + mSigninPromoController, mProfileDataCache, view, null); } // SignInStateObserver implementation.
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 bf7536c..11fcba08 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
@@ -55,6 +55,8 @@ private final AllDismissedItem mAllDismissed; private final Footer mFooter; + private final RemoteSuggestionsStatusObserver mRemoteSuggestionsStatusObserver; + /** * Creates the adapter that will manage all the cards to display on the NTP. * @param uiDelegate used to interact with the rest of the system. @@ -75,9 +77,16 @@ mUiConfig = uiConfig; mRoot = new InnerNode<>(); mSections = new SectionList(mUiDelegate, offlinePageBridge); - mSigninPromo = SignInPromo.maybeCreatePromo(mUiDelegate); mAllDismissed = new AllDismissedItem(); + if (SignInPromo.shouldCreatePromo()) { + mSigninPromo = new SignInPromo(); + mSigninPromo.setCanShowPersonalizedSuggestions( + mUiDelegate.getSuggestionsSource().areRemoteSuggestionsEnabled()); + } else { + mSigninPromo = null; + } + if (mAboveTheFoldView != null) mRoot.addChildren(new AboveTheFoldItem()); if (SuggestionsConfig.scrollToLoad()) { @@ -96,8 +105,8 @@ mOfflinePageBridge = offlinePageBridge; - RemoteSuggestionsStatusObserver suggestionsObserver = new RemoteSuggestionsStatusObserver(); - mUiDelegate.addDestructionObserver(suggestionsObserver); + mRemoteSuggestionsStatusObserver = new RemoteSuggestionsStatusObserver(); + mUiDelegate.addDestructionObserver(mRemoteSuggestionsStatusObserver); updateAllDismissedVisibility(); mRoot.addObserver(this); @@ -135,7 +144,8 @@ mRecyclerView, mContextMenuManager, mUiDelegate, mUiConfig); case ItemViewType.PROMO: - return mSigninPromo.createViewHolder(mRecyclerView, mContextMenuManager, mUiConfig); + return new PersonalizedPromoViewHolder( + mRecyclerView, mContextMenuManager, mUiConfig); case ItemViewType.FOOTER: return new Footer.ViewHolder(mRecyclerView, mUiDelegate.getNavigationDelegate()); @@ -179,39 +189,6 @@ return getFirstPositionForType(ItemViewType.HEADER); } - public int getFirstSnippetPosition() { - return getFirstPositionForType(ItemViewType.SNIPPET); - } - - /** - * Returns the position in the adapter of the header to the article suggestions if it exists. - * @return The article header position. RecyclerView.NO_POSITION if articles or their header - * does not exist. - */ - public int getArticleHeaderPosition() { - SuggestionsSection suggestions = mSections.getSection(KnownCategories.ARTICLES); - if (suggestions == null || !suggestions.hasCards()) return RecyclerView.NO_POSITION; - - int articlesRank = RecyclerView.NO_POSITION; - int emptySectionCount = 0; - int[] categories = mUiDelegate.getSuggestionsSource().getCategories(); - for (int i = 0; i < categories.length; i++) { - // The categories array includes empty sections. - if (mSections.getSection(categories[i]) == null) emptySectionCount++; - if (categories[i] == KnownCategories.ARTICLES) { - articlesRank = i - emptySectionCount; - break; - } - } - if (articlesRank == RecyclerView.NO_POSITION) return RecyclerView.NO_POSITION; - - int headerRank = RecyclerView.NO_POSITION; - for (int i = 0; i < getItemCount(); i++) { - if (getItemViewType(i) == ItemViewType.HEADER && ++headerRank == articlesRank) return i; - } - return RecyclerView.NO_POSITION; - } - public int getFirstCardPosition() { for (int i = 0; i < getItemCount(); ++i) { if (CardViewHolder.isCard(getItemViewType(i))) return i; @@ -337,6 +314,16 @@ return mRoot; } + @VisibleForTesting + SuggestionsSource.Observer getSuggestionsSourceObserverForTesting() { + return mRemoteSuggestionsStatusObserver; + } + + @VisibleForTesting + SignInPromo getSignInPromoForTesting() { + return mSigninPromo; + } + private class RemoteSuggestionsStatusObserver extends SuggestionsSource.EmptyObserver implements DestructionObserver { public RemoteSuggestionsStatusObserver() { @@ -349,11 +336,20 @@ if (!SnippetsBridge.isCategoryRemote(category)) return; updateAllDismissedVisibility(); + + // Checks whether the category is enabled first to avoid unnecessary + // calls across JNI. + if (mSigninPromo != null) { + mSigninPromo.setCanShowPersonalizedSuggestions( + SnippetsBridge.isCategoryEnabled(newStatus) + || mUiDelegate.getSuggestionsSource().areRemoteSuggestionsEnabled()); + } } @Override public void onDestroy() { mUiDelegate.getSuggestionsSource().removeObserver(this); + if (mSigninPromo != null) mSigninPromo.destroy(); } } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/PersonalizedPromoViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/PersonalizedPromoViewHolder.java new file mode 100644 index 0000000..9987e21 --- /dev/null +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/PersonalizedPromoViewHolder.java
@@ -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. + +package org.chromium.chrome.browser.ntp.cards; + +import android.support.annotation.DrawableRes; +import android.support.annotation.Nullable; + +import org.chromium.chrome.R; +import org.chromium.chrome.browser.ntp.ContextMenuManager; +import org.chromium.chrome.browser.signin.DisplayableProfileData; +import org.chromium.chrome.browser.signin.PersonalizedSigninPromoView; +import org.chromium.chrome.browser.signin.ProfileDataCache; +import org.chromium.chrome.browser.signin.SigninPromoController; +import org.chromium.chrome.browser.signin.SigninPromoUtil; +import org.chromium.chrome.browser.suggestions.SuggestionsConfig; +import org.chromium.chrome.browser.suggestions.SuggestionsRecyclerView; +import org.chromium.chrome.browser.util.FeatureUtilities; +import org.chromium.chrome.browser.widget.displaystyle.UiConfig; + +/** + * View Holder for {@link SignInPromo} if the personalized promo is to be shown. + */ +public class PersonalizedPromoViewHolder extends CardViewHolder { + private @Nullable ProfileDataCache mProfileDataCache; + private @Nullable SigninPromoController mSigninPromoController; + + public PersonalizedPromoViewHolder(SuggestionsRecyclerView parent, + ContextMenuManager contextMenuManager, UiConfig config) { + super(SuggestionsConfig.useModernLayout() + ? R.layout.personalized_signin_promo_view_modern_content_suggestions + : R.layout.personalized_signin_promo_view_ntp_content_suggestions, + parent, config, contextMenuManager); + if (!FeatureUtilities.isChromeModernDesignEnabled()) { + getParams().topMargin = parent.getResources().getDimensionPixelSize( + R.dimen.ntp_sign_in_promo_margin_top); + } + } + + public void onBindViewHolder( + SigninPromoController signinPromoController, ProfileDataCache profileDataCache) { + super.onBindViewHolder(); + mSigninPromoController = signinPromoController; + mProfileDataCache = profileDataCache; + updatePersonalizedSigninPromo(); + } + + @Override + public void recycle() { + if (mSigninPromoController != null) { + mSigninPromoController.detach(); + mSigninPromoController = null; + } + mProfileDataCache = null; + super.recycle(); + } + + @DrawableRes + @Override + protected int selectBackground(boolean hasCardAbove, boolean hasCardBelow) { + // Modern does not update the card background. + assert !SuggestionsConfig.useModernLayout(); + return R.drawable.ntp_signin_promo_card_single; + } + + /** + * Triggers an update of the personalized signin promo. Intended to be used as + * {@link NewTabPageViewHolder.PartialBindCallback}. + */ + public static void update(NewTabPageViewHolder viewHolder) { + ((PersonalizedPromoViewHolder) viewHolder).updatePersonalizedSigninPromo(); + } + + private void updatePersonalizedSigninPromo() { + SigninPromoUtil.setupPromoViewFromCache(mSigninPromoController, mProfileDataCache, + (PersonalizedSigninPromoView) itemView, null); + } + + /** + * Binds the view and sets the profile data directly. Used for testing purposes. + * @param profileData The profile data which will be used to configure the personalized + * signin promo. + */ + public void bindAndConfigureViewForTests(@Nullable DisplayableProfileData profileData) { + super.onBindViewHolder(); + PersonalizedSigninPromoView view = (PersonalizedSigninPromoView) itemView; + mSigninPromoController.setupPromoView(view.getContext(), view, profileData, null); + } + + public void setSigninPromoControllerForTests(@Nullable SigninPromoController controller) { + mSigninPromoController = controller; + } +} \ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SignInPromo.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SignInPromo.java index b566043..0660a74 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SignInPromo.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SignInPromo.java
@@ -4,40 +4,23 @@ package org.chromium.chrome.browser.ntp.cards; -import android.accounts.Account; import android.content.Context; -import android.support.annotation.DrawableRes; -import android.support.annotation.Nullable; import android.support.annotation.StringRes; import org.chromium.base.Callback; import org.chromium.base.ContextUtils; import org.chromium.base.VisibleForTesting; import org.chromium.chrome.R; -import org.chromium.chrome.browser.ntp.ContextMenuManager; -import org.chromium.chrome.browser.ntp.snippets.CategoryInt; -import org.chromium.chrome.browser.ntp.snippets.CategoryStatus; -import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge; -import org.chromium.chrome.browser.ntp.snippets.SuggestionsSource; import org.chromium.chrome.browser.preferences.ChromePreferenceManager; -import org.chromium.chrome.browser.signin.DisplayableProfileData; -import org.chromium.chrome.browser.signin.PersonalizedSigninPromoView; import org.chromium.chrome.browser.signin.ProfileDataCache; import org.chromium.chrome.browser.signin.SigninAccessPoint; import org.chromium.chrome.browser.signin.SigninManager; import org.chromium.chrome.browser.signin.SigninManager.SignInAllowedObserver; import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver; import org.chromium.chrome.browser.signin.SigninPromoController; -import org.chromium.chrome.browser.suggestions.DestructionObserver; -import org.chromium.chrome.browser.suggestions.SuggestionsConfig; -import org.chromium.chrome.browser.suggestions.SuggestionsRecyclerView; -import org.chromium.chrome.browser.suggestions.SuggestionsUiDelegate; -import org.chromium.chrome.browser.util.FeatureUtilities; -import org.chromium.chrome.browser.widget.displaystyle.UiConfig; import org.chromium.components.signin.AccountManagerFacade; import org.chromium.components.signin.AccountsChangeObserver; -import java.util.Collections; import java.util.concurrent.TimeUnit; /** @@ -69,18 +52,15 @@ */ private boolean mCanShowPersonalizedSuggestions; - private final @Nullable SigninObserver mSigninObserver; - private final @Nullable SigninPromoController mSigninPromoController; - private final @Nullable ProfileDataCache mProfileDataCache; + private final SigninObserver mSigninObserver; + protected final SigninPromoController mSigninPromoController; + protected final ProfileDataCache mProfileDataCache; - private SignInPromo(SuggestionsUiDelegate uiDelegate) { + protected SignInPromo() { Context context = ContextUtils.getApplicationContext(); - SuggestionsSource suggestionsSource = uiDelegate.getSuggestionsSource(); SigninManager signinManager = SigninManager.get(); mCanSignIn = signinManager.isSignInAllowed() && !signinManager.isSignedInOnNative(); - mCanShowPersonalizedSuggestions = suggestionsSource.areRemoteSuggestionsEnabled(); - updateVisibility(); int imageSize = context.getResources().getDimensionPixelSize(R.dimen.user_picture_size); @@ -88,8 +68,22 @@ mSigninPromoController = new SigninPromoController(SigninAccessPoint.NTP_CONTENT_SUGGESTIONS); - mSigninObserver = new SigninObserver(signinManager, suggestionsSource); - uiDelegate.addDestructionObserver(mSigninObserver); + mSigninObserver = new SigninObserver(signinManager); + } + + /** Clear any dependencies. */ + public void destroy() { + mSigninObserver.unregister(); + } + + /** + * Update whether personalized suggestions can be shown and update visibility for this + * {@link SignInPromo} accordingly. + * @param canShow Whether personalized suggestions can be shown. + */ + public void setCanShowPersonalizedSuggestions(boolean canShow) { + mCanShowPersonalizedSuggestions = canShow; + updateVisibility(); } /** @@ -101,13 +95,12 @@ System.currentTimeMillis()); } - public static SignInPromo maybeCreatePromo(SuggestionsUiDelegate uiDelegate) { - if (sDisablePromoForTests) return null; - if (ChromePreferenceManager.getInstance().readBoolean( - ChromePreferenceManager.NTP_SIGNIN_PROMO_DISMISSED, false)) - return null; - if (getSuppressionStatus()) return null; - return new SignInPromo(uiDelegate); + /** @return Whether the {@link SignInPromo} should be created. */ + public static boolean shouldCreatePromo() { + return !sDisablePromoForTests + && !ChromePreferenceManager.getInstance().readBoolean( + ChromePreferenceManager.NTP_SIGNIN_PROMO_DISMISSED, false) + && !getSuppressionStatus(); } private static boolean getSuppressionStatus() { @@ -129,27 +122,10 @@ return ItemViewType.PROMO; } - /** - * @return a {@link DestructionObserver} observer that updates the visibility of the signin - * promo and unregisters itself when the New Tab Page is destroyed. - */ - @Nullable - public DestructionObserver getObserver() { - return mSigninObserver; - } - - /** - * @return a {@link NewTabPageViewHolder} which will contain the view for the signin promo. - */ - public NewTabPageViewHolder createViewHolder(SuggestionsRecyclerView parent, - ContextMenuManager contextMenuManager, UiConfig config) { - return new PersonalizedPromoViewHolder( - parent, config, contextMenuManager, mProfileDataCache, mSigninPromoController); - } - @Override protected void onBindViewHolder(NewTabPageViewHolder holder) { - ((PersonalizedPromoViewHolder) holder).onBindViewHolder(); + ((PersonalizedPromoViewHolder) holder) + .onBindViewHolder(mSigninPromoController, mProfileDataCache); } @Override @@ -157,6 +133,11 @@ return "SIGN_IN_PROMO"; } + /** Notify that the content for this {@link SignInPromo} has changed. */ + protected void notifyDataChanged() { + if (isVisible()) notifyItemChanged(0, PersonalizedPromoViewHolder::update); + } + private void updateVisibility() { setVisibilityInternal(!mDismissed && mCanSignIn && mCanShowPersonalizedSuggestions); } @@ -187,23 +168,23 @@ } @VisibleForTesting - class SigninObserver extends SuggestionsSource.EmptyObserver - implements SignInStateObserver, SignInAllowedObserver, DestructionObserver, - ProfileDataCache.Observer, AccountsChangeObserver { + SigninObserver getSigninObserverForTesting() { + return mSigninObserver; + } + + @VisibleForTesting + class SigninObserver implements SignInStateObserver, SignInAllowedObserver, + ProfileDataCache.Observer, AccountsChangeObserver { private final SigninManager mSigninManager; - private final SuggestionsSource mSuggestionsSource; /** Guards {@link #unregister()}, which can be called multiple times. */ private boolean mUnregistered; - private SigninObserver(SigninManager signinManager, SuggestionsSource suggestionsSource) { + private SigninObserver(SigninManager signinManager) { mSigninManager = signinManager; mSigninManager.addSignInAllowedObserver(this); mSigninManager.addSignInStateObserver(this); - mSuggestionsSource = suggestionsSource; - mSuggestionsSource.addObserver(this); - mProfileDataCache.addObserver(this); AccountManagerFacade.get().addObserver(this); } @@ -214,19 +195,10 @@ mSigninManager.removeSignInAllowedObserver(this); mSigninManager.removeSignInStateObserver(this); - - mSuggestionsSource.removeObserver(this); - mProfileDataCache.removeObserver(this); AccountManagerFacade.get().removeObserver(this); } - // DestructionObserver implementation. - @Override - public void onDestroy() { - unregister(); - } - // SignInAllowedObserver implementation. @Override public void onSignInAllowedChanged() { @@ -250,113 +222,16 @@ updateVisibility(); } - @Override - public void onCategoryStatusChanged( - @CategoryInt int category, @CategoryStatus int newStatus) { - if (!SnippetsBridge.isCategoryRemote(category)) return; - - // Checks whether the category is enabled first to avoid unnecessary calls across JNI. - mCanShowPersonalizedSuggestions = SnippetsBridge.isCategoryEnabled(category) - || mSuggestionsSource.areRemoteSuggestionsEnabled(); - updateVisibility(); - } - // AccountsChangeObserver implementation. @Override public void onAccountsChanged() { - notifyPersonalizedPromoIfVisible(); + notifyDataChanged(); } // ProfileDataCache.Observer implementation. @Override public void onProfileDataUpdated(String accountId) { - notifyPersonalizedPromoIfVisible(); - } - - private void notifyPersonalizedPromoIfVisible() { - if (isVisible()) notifyItemChanged(0, PersonalizedPromoViewHolder::update); - } - } - - /** - * View Holder for {@link SignInPromo} if the personalized promo is to be shown. - */ - @VisibleForTesting - public static class PersonalizedPromoViewHolder extends CardViewHolder { - private final ProfileDataCache mProfileDataCache; - private final SigninPromoController mSigninPromoController; - - public PersonalizedPromoViewHolder(SuggestionsRecyclerView parent, UiConfig config, - ContextMenuManager contextMenuManager, ProfileDataCache profileDataCache, - SigninPromoController signinPromoController) { - super(SuggestionsConfig.useModernLayout() - ? R.layout.personalized_signin_promo_view_modern_content_suggestions - : R.layout.personalized_signin_promo_view_ntp_content_suggestions, - parent, config, contextMenuManager); - if (!FeatureUtilities.isChromeModernDesignEnabled()) { - getParams().topMargin = parent.getResources().getDimensionPixelSize( - R.dimen.ntp_sign_in_promo_margin_top); - } - - mProfileDataCache = profileDataCache; - mSigninPromoController = signinPromoController; - } - - @Override - public void onBindViewHolder() { - super.onBindViewHolder(); - bindPersonalizedSigninPromo(); - } - - @Override - public void recycle() { - mSigninPromoController.detach(); - super.recycle(); - } - - @DrawableRes - @Override - protected int selectBackground(boolean hasCardAbove, boolean hasCardBelow) { - // Modern does not update the card background. - assert !SuggestionsConfig.useModernLayout(); - return R.drawable.ntp_signin_promo_card_single; - } - - /** - * Triggers an update of the personalized signin promo. Intended to be used as - * {@link NewTabPageViewHolder.PartialBindCallback}. - */ - public static void update(NewTabPageViewHolder viewHolder) { - ((PersonalizedPromoViewHolder) viewHolder).updatePersonalizedSigninPromo(); - } - - private void updatePersonalizedSigninPromo() { - mSigninPromoController.detach(); - bindPersonalizedSigninPromo(); - } - - private void bindPersonalizedSigninPromo() { - DisplayableProfileData profileData = null; - Account[] accounts = AccountManagerFacade.get().tryGetGoogleAccounts(); - if (accounts.length > 0) { - String defaultAccountName = accounts[0].name; - mProfileDataCache.update(Collections.singletonList(defaultAccountName)); - profileData = mProfileDataCache.getProfileDataOrDefault(defaultAccountName); - } - PersonalizedSigninPromoView view = (PersonalizedSigninPromoView) itemView; - mSigninPromoController.setupPromoView(view.getContext(), view, profileData, null); - } - - /** - * Binds the view and sets the profile data directly. Used for testing purposes. - * @param profileData The profile data which will be used to configure the personalized - * signin promo. - */ - @VisibleForTesting - public void bindAndConfigureViewForTests(@Nullable DisplayableProfileData profileData) { - super.onBindViewHolder(); - PersonalizedSigninPromoView view = (PersonalizedSigninPromoView) itemView; - mSigninPromoController.setupPromoView(view.getContext(), view, profileData, null); + notifyDataChanged(); } } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorController.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorController.java index 82c4616..dfbddd2 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/OfflineIndicatorController.java
@@ -52,14 +52,14 @@ // Default time in seconds to wait until the offline state is stablized in the case of flaky // connections. - private static final int STABLE_OFFLINE_DEFAULT_WAIT_SECONDS = 3 * 60; + private static final int STABLE_OFFLINE_DEFAULT_WAIT_SECONDS = 20; @SuppressLint("StaticFieldLeak") private static OfflineIndicatorController sInstance; private boolean mIsShowingOfflineIndicator; - // Set to true if the offline indicator has been shown once. - private boolean mHasOfflineIndicatorShown; + // Set to true if the offline indicator has been shown once since the activity has resumed. + private boolean mHasOfflineIndicatorShownSinceActivityResumed; private ConnectivityDetector mConnectivityDetector; private ChromeActivity mObservedActivity; @@ -121,6 +121,7 @@ public void onApplicationStateChange(int newState) { // If the application is resumed, update the connection state and show indicator if needed. if (newState == ApplicationState.HAS_RUNNING_ACTIVITIES) { + mHasOfflineIndicatorShownSinceActivityResumed = false; mConnectivityDetector.detect(); updateOfflineIndicator(mConnectivityDetector.getConnectionState() == ConnectivityDetector.ConnectionState.VALIDATED); @@ -222,7 +223,7 @@ // be shown if the user has been continuously online for the required duration, then goes // back to being offline. // TODO(jianli): keep these values in shared prefernces. (http://crbug.com/879725) - if (mHasOfflineIndicatorShown + if (mHasOfflineIndicatorShownSinceActivityResumed && SystemClock.elapsedRealtime() - mLastOnlineTime < getTimeToWaitForStableOffline()) { return; @@ -252,7 +253,7 @@ RecordHistogram.recordEnumeratedHistogram("OfflineIndicator.CTR", OFFLINE_INDICATOR_CTR_DISPLAYED, OFFLINE_INDICATOR_CTR_COUNT); mIsShowingOfflineIndicator = true; - mHasOfflineIndicatorShown = true; + mHasOfflineIndicatorShownSinceActivityResumed = true; } private void hideOfflineIndicator(Activity activity) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/TopSnackbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/TopSnackbarManager.java index dad3133..f04c276d 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/TopSnackbarManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/offlinepages/indicator/TopSnackbarManager.java
@@ -44,7 +44,7 @@ @Override public void onActivityStateChange(Activity activity, int newState) { - if (newState == ActivityState.STOPPED) { + if (newState == ActivityState.PAUSED || newState == ActivityState.STOPPED) { dismissSnackbar(false); } } @@ -70,10 +70,10 @@ * Shows a snackbar at the top of the given activity. */ public void show(Snackbar snackbar, Activity activity) { - if (mSnackbar != null - || ApplicationStatus.getStateForActivity(activity) != ActivityState.RESUMED) { - return; - } + if (mSnackbar != null) return; + @ActivityState + int state = ApplicationStatus.getStateForActivity(activity); + if (state != ActivityState.STARTED && state != ActivityState.RESUMED) return; mActivity = activity; mSnackbar = snackbar;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java index b1c2ff6..1f04ee4 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java
@@ -280,7 +280,7 @@ return true; } else if (KeyNavigationUtil.isEnter(event) && LocationBarLayout.this.getVisibility() == VISIBLE) { - UiUtils.hideKeyboard(mUrlBar); + getWindowAndroid().getKeyboardDelegate().hideKeyboard(mUrlBar); final String urlText = mUrlCoordinator.getTextWithAutocomplete(); if (mNativeInitialized) { findMatchAndLoadUrl(urlText, event.getEventTime()); @@ -703,7 +703,7 @@ SelectionState.SELECT_ALL); } hideSuggestions(); - UiUtils.hideKeyboard(mUrlBar); + getWindowAndroid().getKeyboardDelegate().hideKeyboard(mUrlBar); } } @@ -1347,7 +1347,7 @@ loadUrlFromOmniboxMatch( suggestionMatchUrl, position, suggestion, mLastActionUpTimestamp); hideSuggestions(); - UiUtils.hideKeyboard(mUrlBar); + getWindowAndroid().getKeyboardDelegate().hideKeyboard(mUrlBar); } @Override @@ -1608,7 +1608,7 @@ post(new Runnable() { @Override public void run() { - UiUtils.showKeyboard(mUrlBar); + getWindowAndroid().getKeyboardDelegate().showKeyboard(mUrlBar); } }); } @@ -1762,7 +1762,7 @@ public void backKeyPressed() { setUrlBarFocus(false); hideSuggestions(); - UiUtils.hideKeyboard(mUrlBar); + getWindowAndroid().getKeyboardDelegate().hideKeyboard(mUrlBar); // Revert the URL to match the current page. setUrlToPageUrl(); focusCurrentTab();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarPhone.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarPhone.java index ca52643..255c0c7 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarPhone.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarPhone.java
@@ -18,7 +18,6 @@ import org.chromium.chrome.browser.ntp.NewTabPage; import org.chromium.chrome.browser.widget.bottomsheet.BottomSheet; import org.chromium.chrome.browser.widget.bottomsheet.EmptyBottomSheetObserver; -import org.chromium.ui.UiUtils; /** * A location bar implementation specific for smaller/phone screens. @@ -134,7 +133,7 @@ postDelayed(new Runnable() { @Override public void run() { - UiUtils.hideKeyboard(mUrlBar); + getWindowAndroid().getKeyboardDelegate().hideKeyboard(mUrlBar); } }, KEYBOARD_HIDE_DELAY_MS); // Convert the keyboard back to resize mode (delay the change for an arbitrary amount @@ -149,7 +148,7 @@ if (mBottomSheet == null) { setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN, false); } - UiUtils.showKeyboard(mUrlBar); + getWindowAndroid().getKeyboardDelegate().showKeyboard(mUrlBar); // As the position of the navigation icon has changed, ensure the suggestions are // updated to reflect the new position. if (getSuggestionList() != null && getSuggestionList().isShown()) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarTablet.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarTablet.java index 171aac8..dfc71b7 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarTablet.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarTablet.java
@@ -22,7 +22,6 @@ import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.toolbar.ToolbarTablet; import org.chromium.chrome.browser.widget.animation.CancelAwareAnimatorListener; -import org.chromium.ui.UiUtils; import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.interpolators.BakedBezierInterpolator; @@ -206,7 +205,7 @@ getWindowDelegate().setWindowSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); } - UiUtils.showKeyboard(mUrlBar); + getWindowAndroid().getKeyboardDelegate().showKeyboard(mUrlBar); } else { if (mSecurityButton.getVisibility() == GONE && mSecurityButton.getDrawable() != null @@ -214,7 +213,7 @@ && mSecurityButton.getDrawable().getIntrinsicHeight() > 0) { mSecurityButton.setVisibility(VISIBLE); } - UiUtils.hideKeyboard(mUrlBar); + getWindowAndroid().getKeyboardDelegate().hideKeyboard(mUrlBar); // Convert the keyboard back to resize mode (delay the change for an arbitrary // amount of time in hopes the keyboard will be completely hidden before making // this change).
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java index df9b37b9..35ae34d 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/UrlBar.java
@@ -36,9 +36,8 @@ import org.chromium.base.SysUtils; import org.chromium.base.ThreadUtils; import org.chromium.chrome.browser.WindowDelegate; -import org.chromium.chrome.browser.omnibox.UrlBar.ScrollType; import org.chromium.chrome.browser.toolbar.ToolbarManager; -import org.chromium.ui.UiUtils; +import org.chromium.ui.KeyboardVisibilityDelegate; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -340,7 +339,7 @@ post(new Runnable() { @Override public void run() { - UiUtils.showKeyboard(UrlBar.this); + KeyboardVisibilityDelegate.getInstance().showKeyboard(UrlBar.this); } }); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SignInPreference.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SignInPreference.java index 76ed21c..266afb85 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SignInPreference.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SignInPreference.java
@@ -4,7 +4,6 @@ package org.chromium.chrome.browser.preferences; -import android.accounts.Account; import android.content.Context; import android.preference.Preference; import android.preference.PreferenceFragment; @@ -27,6 +26,7 @@ import org.chromium.chrome.browser.signin.SigninManager; import org.chromium.chrome.browser.signin.SigninManager.SignInAllowedObserver; import org.chromium.chrome.browser.signin.SigninPromoController; +import org.chromium.chrome.browser.signin.SigninPromoUtil; import org.chromium.chrome.browser.sync.ProfileSyncService; import org.chromium.chrome.browser.sync.ProfileSyncService.SyncStateChangedListener; import org.chromium.chrome.browser.util.ViewUtils; @@ -277,21 +277,15 @@ return; } - DisplayableProfileData profileData = null; - Account[] accounts = AccountManagerFacade.get().tryGetGoogleAccounts(); - if (accounts.length > 0) { - String defaultAccountName = accounts[0].name; - mProfileDataCache.update(Collections.singletonList(defaultAccountName)); - profileData = mProfileDataCache.getProfileDataOrDefault(defaultAccountName); - } PersonalizedSigninPromoView signinPromoView = view.findViewById(R.id.signin_promo_view_container); - mSigninPromoController.detach(); - mSigninPromoController.setupPromoView(getContext(), signinPromoView, profileData, () -> { - ChromePreferenceManager.getInstance().writeBoolean( - ChromePreferenceManager.SETTINGS_PERSONALIZED_SIGNIN_PROMO_DISMISSED, true); - update(); - }); + SigninPromoUtil.setupPromoViewFromCache( + mSigninPromoController, mProfileDataCache, signinPromoView, () -> { + ChromePreferenceManager.getInstance().writeBoolean( + ChromePreferenceManager.SETTINGS_PERSONALIZED_SIGNIN_PROMO_DISMISSED, + true); + update(); + }); if (ChromeFeatureList.isEnabled(ChromeFeatureList.UNIFIED_CONSENT)) { View divider = view.findViewById(R.id.divider);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java index 21cfa0d..b4842c494 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/SyncAndServicesPreferences.java
@@ -484,7 +484,7 @@ /** Enables sync if any of the data types is selected, otherwise disables sync. */ private void updateSyncStateFromSelectedModelTypes() { - boolean shouldEnableSync = mUseSyncAndAllServices.isChecked() + boolean shouldEnableSync = UnifiedConsentServiceBridge.isUnifiedConsentGiven() || !getSelectedModelTypes().isEmpty() || !canDisableSync(); if (mIsSyncEnabled == shouldEnableSync) return; mIsSyncEnabled = shouldEnableSync; @@ -537,7 +537,7 @@ updateSyncStateFromSelectedModelTypes(); if (!mIsSyncEnabled) return; - boolean syncEverything = mUseSyncAndAllServices.isChecked(); + boolean syncEverything = UnifiedConsentServiceBridge.isUnifiedConsentGiven(); mProfileSyncService.setPreferredDataTypes(syncEverything, getSelectedModelTypes()); // Update the invalidation listener with the set of types we are enabling. InvalidationController invController = InvalidationController.get(); @@ -686,7 +686,7 @@ * sync being turned on and the engine initialization completing. */ private void updateDataTypeState() { - boolean syncEverything = mUseSyncAndAllServices.isChecked(); + boolean syncEverything = UnifiedConsentServiceBridge.isUnifiedConsentGiven(); boolean passwordSyncConfigurable = mProfileSyncService.isEngineInitialized() && mProfileSyncService.isCryptographerReady(); boolean hasCustomPassphrase = mProfileSyncService.isEngineInitialized()
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/AddExceptionPreference.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/AddExceptionPreference.java index 0704686..050fd676 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/AddExceptionPreference.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/AddExceptionPreference.java
@@ -25,7 +25,7 @@ import org.chromium.base.ApiCompatibilityUtils; import org.chromium.chrome.R; -import org.chromium.ui.UiUtils; +import org.chromium.ui.KeyboardVisibilityDelegate; /** * A utility class for the UI recording exceptions to the blocked list for site @@ -121,7 +121,7 @@ alertDialog.setOnShowListener(new DialogInterface.OnShowListener() { @Override public void onShow(DialogInterface dialog) { - UiUtils.showKeyboard(input); + KeyboardVisibilityDelegate.getInstance().showKeyboard(input); } }); alertDialog.show();
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java index 1274fd3c..364229c 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SiteSettingsPreferences.java
@@ -54,9 +54,9 @@ mProtectedContentMenuAvailable = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT; - String category = ""; if (getArguments() != null) { - category = getArguments().getString(SingleCategoryPreferences.EXTRA_CATEGORY, ""); + String category = + getArguments().getString(SingleCategoryPreferences.EXTRA_CATEGORY, ""); if (MEDIA_KEY.equals(category)) { mMediaSubMenu = true; getActivity().setTitle(findPreference(MEDIA_KEY).getTitle().toString()); @@ -191,9 +191,15 @@ p.setTitle(ContentSettingsResources.getTitle(contentType)); p.setOnPreferenceClickListener(this); - // Disable autoplay preference if Data Saver is ON. - if (SiteSettingsCategory.Type.AUTOPLAY == prefCategory + if ((SiteSettingsCategory.Type.CAMERA == prefCategory + || SiteSettingsCategory.Type.MICROPHONE == prefCategory) + && SiteSettingsCategory.createFromType(prefCategory) + .showPermissionBlockedMessage(getActivity())) { + // Show 'disabled' message when permission is not granted in Android. + p.setSummary(ContentSettingsResources.getCategorySummary(contentType, false)); + } else if (SiteSettingsCategory.Type.AUTOPLAY == prefCategory && DataReductionProxySettings.getInstance().isDataReductionProxyEnabled()) { + // Disable autoplay preference if Data Saver is ON. p.setSummary(ContentSettingsResources.getAutoplayDisabledByDataSaverSummary()); p.setEnabled(false); } else if (SiteSettingsCategory.Type.COOKIES == prefCategory && checked
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java index 5e7f147..8a12f69 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/searchwidget/SearchActivityLocationBarLayout.java
@@ -21,7 +21,6 @@ import org.chromium.chrome.browser.omnibox.UrlBarData; import org.chromium.chrome.browser.profiles.Profile; import org.chromium.chrome.browser.toolbar.ToolbarPhone; -import org.chromium.ui.UiUtils; import java.util.List; @@ -159,7 +158,7 @@ new Handler().post(new Runnable() { @Override public void run() { - UiUtils.showKeyboard(mUrlBar); + getWindowAndroid().getKeyboardDelegate().showKeyboard(mUrlBar); } }); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoUtil.java b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoUtil.java index ca77f1c..7e7a8ff 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoUtil.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/signin/SigninPromoUtil.java
@@ -4,6 +4,7 @@ package org.chromium.chrome.browser.signin; +import android.accounts.Account; import android.app.Activity; import android.text.TextUtils; @@ -17,6 +18,7 @@ import org.chromium.components.signin.ChromeSigninController; import org.chromium.ui.base.WindowAndroid; +import java.util.Collections; import java.util.HashSet; import java.util.Set; @@ -99,6 +101,26 @@ } /** + * @param signinPromoController The {@link SigninPromoController} that maintains the view. + * @param profileDataCache The {@link ProfileDataCache} that stores profile data. + * @param view The {@link PersonalizedSigninPromoView} that should be set up. + * @param listener The {@link SigninPromoController.OnDismissListener} to be set to the view. + */ + public static void setupPromoViewFromCache(SigninPromoController signinPromoController, + ProfileDataCache profileDataCache, PersonalizedSigninPromoView view, + SigninPromoController.OnDismissListener listener) { + DisplayableProfileData profileData = null; + Account[] accounts = AccountManagerFacade.get().tryGetGoogleAccounts(); + if (accounts.length > 0) { + String defaultAccountName = accounts[0].name; + profileDataCache.update(Collections.singletonList(defaultAccountName)); + profileData = profileDataCache.getProfileDataOrDefault(defaultAccountName); + } + signinPromoController.detach(); + signinPromoController.setupPromoView(view.getContext(), view, profileData, listener); + } + + /** * A convenience method to create an AccountSigninActivity, passing the access point as an * intent extra. * @param window WindowAndroid from which to get the Activity/Context.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabRedirectHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabRedirectHandler.java index 687d973..ab541f4 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabRedirectHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabRedirectHandler.java
@@ -89,10 +89,10 @@ * Replace {@link TabRedirectHandler} instance for the Tab with the new one. * @return Old {@link TabRedirectHandler} associated with the Tab. Could be {@code null}. */ - public static TabRedirectHandler swapFor(Tab tab, TabRedirectHandler newHandler) { + public static TabRedirectHandler swapFor(Tab tab, @Nullable TabRedirectHandler newHandler) { UserDataHost host = tab.getUserDataHost(); TabRedirectHandler oldHandler = host.getUserData(TabRedirectHandler.class); - host.setUserData(TabRedirectHandler.class, newHandler); + if (newHandler != null) host.setUserData(TabRedirectHandler.class, newHandler); return oldHandler; }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarControlContainer.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarControlContainer.java index dc78d5a..a2e96489 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarControlContainer.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarControlContainer.java
@@ -27,7 +27,7 @@ import org.chromium.chrome.browser.widget.ViewResourceFrameLayout; import org.chromium.ui.AsyncViewProvider; import org.chromium.ui.AsyncViewStub; -import org.chromium.ui.UiUtils; +import org.chromium.ui.KeyboardVisibilityDelegate; import org.chromium.ui.base.DeviceFormFactor; import org.chromium.ui.resources.dynamics.ViewResourceAdapter; import org.chromium.ui.widget.OptimizedFrameLayout; @@ -305,7 +305,9 @@ public boolean shouldRecognizeSwipe(MotionEvent e1, MotionEvent e2) { if (isOnTabStrip(e1)) return false; if (mToolbar.shouldIgnoreSwipeGesture()) return false; - if (UiUtils.isKeyboardShowing(getContext(), ToolbarControlContainer.this)) return false; + if (KeyboardVisibilityDelegate.getInstance().isKeyboardShowing( + getContext(), ToolbarControlContainer.this)) + return false; return true; } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarTablet.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarTablet.java index 0496a02f..040a6535 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarTablet.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarTablet.java
@@ -298,7 +298,8 @@ Tab tab = getToolbarDataProvider().getTab(); if (tab == null || tab.getWebContents() == null) return; mNavigationPopup = new NavigationPopup(tab.getProfile(), getContext(), - tab.getWebContents().getNavigationController(), isForward, false); + tab.getWebContents().getNavigationController(), + isForward ? NavigationPopup.Type.TABLET_FORWARD : NavigationPopup.Type.TABLET_BACK); mNavigationPopup.setAnchorView(anchorView);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInfo.java index feefc19..5845cb2 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInfo.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInfo.java
@@ -4,12 +4,16 @@ package org.chromium.chrome.browser.webapps; +import android.annotation.TargetApi; import android.content.Intent; +import android.content.pm.ActivityInfo; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; +import android.os.Build; import android.os.Bundle; import android.support.annotation.IntDef; import android.text.TextUtils; @@ -29,6 +33,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -56,6 +61,8 @@ private String mManifestUrl; private String mManifestStartUrl; private @WebApkDistributor int mDistributor; + // A serialized string of the Share Target details (if any) for the WebAPK. + private String mSerializedShareTarget; private Map<String, String> mIconUrlToMurmur2HashMap; public static WebApkInfo createEmpty() { @@ -179,12 +186,13 @@ int splashIconId = IntentUtils.safeGetInt(bundle, WebApkMetaDataKeys.SPLASH_ID, 0); Bitmap splashIcon = decodeBitmapFromDrawable(res, splashIconId); + String serializedShareTarget = extractSerializedShareTarget(webApkPackageName); return create(WebApkConstants.WEBAPK_ID_PREFIX + webApkPackageName, url, scope, new Icon(primaryIcon), new Icon(badgeIcon), new Icon(splashIcon), name, shortName, displayMode, orientation, source, themeColor, backgroundColor, webApkPackageName, shellApkVersion, manifestUrl, manifestStartUrl, distributor, - iconUrlToMurmur2HashMap, forceNavigation); + iconUrlToMurmur2HashMap, serializedShareTarget, forceNavigation); } /** @@ -212,6 +220,8 @@ * @param distributor The source from where the WebAPK is installed. * @param iconUrlToMurmur2HashMap Map of the WebAPK's icon URLs to Murmur2 hashes of the * icon untransformed bytes. + * @param serializedShareTarget The serialized string of the Share Target details (if any) for + * the WebAPK. * @param forceNavigation Whether the WebAPK should navigate to {@link url} if the * WebAPK is already open. */ @@ -220,7 +230,8 @@ @WebDisplayMode int displayMode, int orientation, int source, long themeColor, long backgroundColor, String webApkPackageName, int shellApkVersion, String manifestUrl, String manifestStartUrl, @WebApkDistributor int distributor, - Map<String, String> iconUrlToMurmur2HashMap, boolean forceNavigation) { + Map<String, String> iconUrlToMurmur2HashMap, String serializedShareTarget, + boolean forceNavigation) { if (id == null || url == null || manifestStartUrl == null || webApkPackageName == null) { Log.e(TAG, "Incomplete data provided: " + id + ", " + url + ", " + manifestStartUrl + ", " @@ -238,7 +249,7 @@ return new WebApkInfo(id, url, scope, primaryIcon, badgeIcon, splashIcon, name, shortName, displayMode, orientation, source, themeColor, backgroundColor, webApkPackageName, shellApkVersion, manifestUrl, manifestStartUrl, distributor, - iconUrlToMurmur2HashMap, forceNavigation); + iconUrlToMurmur2HashMap, serializedShareTarget, forceNavigation); } protected WebApkInfo(String id, String url, String scope, Icon primaryIcon, Icon badgeIcon, @@ -246,7 +257,8 @@ int orientation, int source, long themeColor, long backgroundColor, String webApkPackageName, int shellApkVersion, String manifestUrl, String manifestStartUrl, @WebApkDistributor int distributor, - Map<String, String> iconUrlToMurmur2HashMap, boolean forceNavigation) { + Map<String, String> iconUrlToMurmur2HashMap, String serializedShareTarget, + boolean forceNavigation) { super(id, url, scope, primaryIcon, name, shortName, displayMode, orientation, source, themeColor, backgroundColor, null /* splash_screen_url */, false /* isIconGenerated */, forceNavigation); @@ -258,6 +270,7 @@ mManifestStartUrl = manifestStartUrl; mDistributor = distributor; mIconUrlToMurmur2HashMap = iconUrlToMurmur2HashMap; + mSerializedShareTarget = serializedShareTarget; } protected WebApkInfo() {} @@ -276,6 +289,13 @@ return (mSplashIcon == null) ? null : mSplashIcon.decoded(); } + /** + * Returns the serialized string which contains all of the information about a share target. + */ + public String serializedShareTarget() { + return mSerializedShareTarget; + } + @Override public String apkPackageName() { return mApkPackageName; @@ -449,4 +469,40 @@ return ScreenOrientationValues.DEFAULT; } } + + /** + * Returns the serialized string which contains all of the information about a share target for + * the given WebAPK. Returns null if there isn't a ShareActivity declared in the WebAPK. + */ + @TargetApi(Build.VERSION_CODES.KITKAT) + static String extractSerializedShareTarget(String webApkPackageName) { + Intent shareIntent = new Intent(); + shareIntent.setAction(Intent.ACTION_SEND); + shareIntent.setPackage(webApkPackageName); + shareIntent.setType("text/plain"); + List<ResolveInfo> resInfos = + ContextUtils.getApplicationContext().getPackageManager().queryIntentActivities( + shareIntent, PackageManager.GET_META_DATA); + if (resInfos.isEmpty()) return null; + + ActivityInfo activityInfo = resInfos.get(0).activityInfo; + if (activityInfo.metaData == null) return null; + + Bundle metaData = activityInfo.metaData; + return getSerializedShareTarget(metaData.getString(WebApkMetaDataKeys.SHARE_ACTION), + metaData.getString(WebApkMetaDataKeys.SHARE_PARAM_TITLE), + metaData.getString(WebApkMetaDataKeys.SHARE_PARAM_TEXT), + metaData.getString(WebApkMetaDataKeys.SHARE_PARAM_URL)); + } + + /** + * Returns the serialized Share Target String. + */ + static String getSerializedShareTarget(String shareAction, String shareParamsTitle, + String shareParamsText, String shareParamsUrl) { + if (shareAction == null) return null; + + return String.format("action: \"%s\", title: \"%s\", text: \"%s\", url: \"%s\"", + shareAction, shareParamsTitle, shareParamsText, shareParamsUrl); + } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcher.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcher.java index cad95b0..4c5f744 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcher.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcher.java
@@ -99,7 +99,8 @@ String shortName, String primaryIconUrl, String primaryIconMurmur2Hash, Bitmap primaryIconBitmap, String badgeIconUrl, String badgeIconMurmur2Hash, Bitmap badgeIconBitmap, String[] iconUrls, @WebDisplayMode int displayMode, - int orientation, long themeColor, long backgroundColor) { + int orientation, long themeColor, long backgroundColor, String shareAction, + String shareParamsTitle, String shareParamsText, String shareParamsUrl) { HashMap<String, String> iconUrlToMurmur2HashMap = new HashMap<String, String>(); for (String iconUrl : iconUrls) { String murmur2Hash = null; @@ -111,12 +112,15 @@ iconUrlToMurmur2HashMap.put(iconUrl, murmur2Hash); } + String serializedShareTarget = WebApkInfo.getSerializedShareTarget( + shareAction, shareParamsTitle, shareParamsText, shareParamsUrl); + WebApkInfo info = WebApkInfo.create(mOldInfo.id(), mOldInfo.uri().toString(), scopeUrl, new WebApkInfo.Icon(primaryIconBitmap), new WebApkInfo.Icon(badgeIconBitmap), null, name, shortName, displayMode, orientation, mOldInfo.source(), themeColor, backgroundColor, mOldInfo.apkPackageName(), mOldInfo.shellApkVersion(), mOldInfo.manifestUrl(), manifestStartUrl, WebApkInfo.WebApkDistributor.BROWSER, - iconUrlToMurmur2HashMap, mOldInfo.shouldForceNavigation()); + iconUrlToMurmur2HashMap, serializedShareTarget, mOldInfo.shouldForceNavigation()); mObserver.onGotManifestData(info, primaryIconUrl, badgeIconUrl); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java index 8edf556d..46f332ce 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkUpdateManager.java
@@ -328,6 +328,9 @@ return WebApkUpdateReason.ORIENTATION_DIFFERS; } else if (oldInfo.displayMode() != fetchedInfo.displayMode()) { return WebApkUpdateReason.DISPLAY_MODE_DIFFERS; + } else if (!TextUtils.equals( + oldInfo.serializedShareTarget(), fetchedInfo.serializedShareTarget())) { + return WebApkUpdateReason.WEB_SHARE_TARGET_DIFFERS; } return WebApkUpdateReason.NONE; }
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 d97aa39..ebc7452 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
@@ -48,7 +48,6 @@ import org.chromium.content_public.browser.SelectionPopupController; import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.common.BrowserControlsState; -import org.chromium.ui.UiUtils; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -609,8 +608,9 @@ // If we are in the middle of a touch event stream (i.e. scrolling while // keyboard is up) don't set the sheet state. Instead allow the gesture detector // to position the sheet and make sure the keyboard hides. - if (mGestureDetector.isScrolling()) { - UiUtils.hideKeyboard(BottomSheet.this); + if (mGestureDetector.isScrolling() && mActivity.getWindowAndroid() != null) { + mActivity.getWindowAndroid().getKeyboardDelegate().hideKeyboard( + BottomSheet.this); } else { cancelAnimation(); setSheetState(mCurrentState, false);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/emptybackground/EmptyBackgroundViewTablet.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/emptybackground/EmptyBackgroundViewTablet.java index 3edf2a6a..b9280f1 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/widget/emptybackground/EmptyBackgroundViewTablet.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/emptybackground/EmptyBackgroundViewTablet.java
@@ -21,7 +21,7 @@ import org.chromium.chrome.browser.tabmodel.TabCreatorManager.TabCreator; import org.chromium.chrome.browser.tabmodel.TabModelSelector; import org.chromium.chrome.browser.widget.incognitotoggle.IncognitoToggleButtonTablet; -import org.chromium.ui.UiUtils; +import org.chromium.ui.KeyboardVisibilityDelegate; /** * Represents the background screen that shows when no tabs are visible. This {@link View} @@ -111,7 +111,7 @@ if (shouldShow && getVisibility() != View.VISIBLE && mCurrentTransitionAnimation != mAnimateInAnimation) { nextAnimator = mAnimateInAnimation; - UiUtils.hideKeyboard(this); + KeyboardVisibilityDelegate.getInstance().hideKeyboard(this); } else if (!shouldShow && getVisibility() != View.GONE && mCurrentTransitionAnimation != mAnimateOutAnimation) { nextAnimator = mAnimateOutAnimation;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/findinpage/FindResultBar.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/findinpage/FindResultBar.java index cd7216f..a503356 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/widget/findinpage/FindResultBar.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/findinpage/FindResultBar.java
@@ -24,7 +24,7 @@ import org.chromium.chrome.browser.findinpage.FindInPageBridge; import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.util.MathUtils; -import org.chromium.ui.UiUtils; +import org.chromium.ui.KeyboardVisibilityDelegate; import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.interpolators.BakedBezierInterpolator; @@ -190,7 +190,7 @@ // We decided it's more important to get the keyboard out of the // way asap; the user can compensate if their next MotionEvent // scrolls somewhere unintended. - UiUtils.hideKeyboard(this); + KeyboardVisibilityDelegate.getInstance().hideKeyboard(this); // Identify which drawn tickmark is closest to the user's finger. int closest = Collections.binarySearch(mTickmarks,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/findinpage/FindToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/findinpage/FindToolbar.java index 26a0a250..e24411c6 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/widget/findinpage/FindToolbar.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/findinpage/FindToolbar.java
@@ -47,7 +47,6 @@ import org.chromium.chrome.browser.tabmodel.TabModelSelectorObserver; import org.chromium.chrome.browser.widget.TintedImageButton; import org.chromium.chrome.browser.widget.VerticallyFixedEditText; -import org.chromium.ui.UiUtils; import org.chromium.ui.base.WindowAndroid; import java.lang.annotation.Retention; @@ -244,7 +243,7 @@ if (mFindQuery.getText().length() > 0) { mSearchKeyShouldTriggerSearch = true; } - UiUtils.hideKeyboard(mFindQuery); + mWindowAndroid.getKeyboardDelegate().hideKeyboard(mFindQuery); } } }); @@ -301,7 +300,7 @@ mSearchKeyShouldTriggerSearch = false; hideKeyboardAndStartFinding(true); } else { - UiUtils.hideKeyboard(mFindQuery); + mWindowAndroid.getKeyboardDelegate().hideKeyboard(mFindQuery); mFindInPageBridge.activateFindInPageResultForAccessibility(); mAccessibilityDidActivateResult = true; } @@ -348,7 +347,7 @@ final String findQuery = mFindQuery.getText().toString(); if (findQuery.length() == 0) return; - UiUtils.hideKeyboard(mFindQuery); + mWindowAndroid.getKeyboardDelegate().hideKeyboard(mFindQuery); mFindInPageBridge.startFinding(findQuery, forward, false); mFindInPageBridge.activateFindInPageResultForAccessibility(); mAccessibilityDidActivateResult = true; @@ -635,7 +634,7 @@ mCurrentTab.removeObserver(mTabObserver); - UiUtils.hideKeyboard(mFindQuery); + mWindowAndroid.getKeyboardDelegate().hideKeyboard(mFindQuery); if (mFindQuery.getText().length() > 0) { clearResults(); mFindInPageBridge.stopFinding(clearSelection); @@ -785,6 +784,6 @@ mShowKeyboardOnceWindowIsFocused = true; return; } - UiUtils.showKeyboard(mFindQuery); + mWindowAndroid.getKeyboardDelegate().showKeyboard(mFindQuery); } }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDialog.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDialog.java index fde8b418..deacfb696 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDialog.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDialog.java
@@ -50,7 +50,7 @@ import org.chromium.chrome.browser.widget.AlwaysDismissedDialog; import org.chromium.chrome.browser.widget.FadingEdgeScrollView; import org.chromium.chrome.browser.widget.TintedDrawable; -import org.chromium.ui.UiUtils; +import org.chromium.ui.KeyboardVisibilityDelegate; import java.util.ArrayList; import java.util.List; @@ -534,7 +534,9 @@ if (mDialogInOutAnimator != null && mIsDismissed) return; // Hide keyboard and disable EditText views for animation efficiency. - if (getCurrentFocus() != null) UiUtils.hideKeyboard(getCurrentFocus()); + if (getCurrentFocus() != null) { + KeyboardVisibilityDelegate.getInstance().hideKeyboard(getCurrentFocus()); + } for (int i = 0; i < mEditableTextFields.size(); i++) { mEditableTextFields.get(i).setEnabled(false); } @@ -558,7 +560,9 @@ mEditableTextFields.get(i).setEnabled(true); } // Note that keyboard will not show for dropdown field since it's not necessary. - if (getCurrentFocus() != null) UiUtils.showKeyboard(getCurrentFocus()); + if (getCurrentFocus() != null) { + KeyboardVisibilityDelegate.getInstance().showKeyboard(getCurrentFocus()); + } mDialogInOutAnimator = null; initFocus(); }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDropdownField.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDropdownField.java index bc09493..4ed4025 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDropdownField.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/prefeditor/EditorDropdownField.java
@@ -20,7 +20,7 @@ import org.chromium.chrome.R; import org.chromium.chrome.browser.preferences.autofill.AutofillProfileBridge.DropdownKeyValue; -import org.chromium.ui.UiUtils; +import org.chromium.ui.KeyboardVisibilityDelegate; import java.util.ArrayList; import java.util.List; @@ -179,7 +179,7 @@ } private void requestFocusAndHideKeyboard() { - UiUtils.hideKeyboard(mDropdown); + KeyboardVisibilityDelegate.getInstance().hideKeyboard(mDropdown); ViewGroup parent = (ViewGroup) mDropdown.getParent(); if (parent != null) parent.requestChildFocus(mDropdown, mDropdown); mDropdown.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectableListToolbar.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectableListToolbar.java index 975cf9c..17f4c31 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectableListToolbar.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/selection/SelectableListToolbar.java
@@ -49,7 +49,7 @@ import org.chromium.chrome.browser.widget.displaystyle.HorizontalDisplayStyle; import org.chromium.chrome.browser.widget.displaystyle.UiConfig; import org.chromium.chrome.browser.widget.selection.SelectionDelegate.SelectionObserver; -import org.chromium.ui.UiUtils; +import org.chromium.ui.KeyboardVisibilityDelegate; import java.util.List; @@ -153,7 +153,7 @@ public void destroy() { mIsDestroyed = true; if (mSelectionDelegate != null) mSelectionDelegate.removeObserver(this); - UiUtils.hideKeyboard(mSearchEditText); + KeyboardVisibilityDelegate.getInstance().hideKeyboard(mSearchEditText); VrModuleProvider.unregisterVrModeObserver(this); } @@ -447,7 +447,7 @@ showSearchViewInternal(); mSearchEditText.requestFocus(); - UiUtils.showKeyboard(mSearchEditText); + KeyboardVisibilityDelegate.getInstance().showKeyboard(mSearchEditText); setTitle(null); } @@ -471,7 +471,7 @@ mIsSearching = false; mSearchEditText.setText(""); - UiUtils.hideKeyboard(mSearchEditText); + KeyboardVisibilityDelegate.getInstance().hideKeyboard(mSearchEditText); showNormalView(); mSearchDelegate.onEndSearch(); @@ -491,7 +491,7 @@ @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_SEARCH) { - UiUtils.hideKeyboard(v); + KeyboardVisibilityDelegate.getInstance().hideKeyboard(v); } return false; } @@ -620,7 +620,7 @@ switchToNumberRollView(selectedItems, wasSelectionEnabled); - if (mIsSearching) UiUtils.hideKeyboard(mSearchEditText); + if (mIsSearching) KeyboardVisibilityDelegate.getInstance().hideKeyboard(mSearchEditText); updateDisplayStyleIfNecessary(); }
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 cea5fb8..5cce0ee 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_am.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_am.xtb
@@ -24,6 +24,7 @@ <translation id="1157102636231978136">የእርስዎ የአሰሳ አደራረግ ውሂብ እና እንቅስቃሴ፣ ወደ የእርስዎ የGoogle መለያ ተመሳስለዋል</translation> <translation id="116280672541001035">ጥቅም ላይ የዋለው</translation> <translation id="1172593791219290334">የጅምር መነሻ ገጽ</translation> +<translation id="1175310183703641346">የእርስዎ እልባቶች፣ ታሪክ፣ የይለፍ ቃላት እና ተጨማሪ ነገሮች ከእንግዲህ ከGoogle መለያዎ ጋር አይሰምሩም።</translation> <translation id="1178581264944972037">ለአፍታ አቁም</translation> <translation id="1181037720776840403">አስወግድ</translation> <translation id="1197267115302279827">ዕልባቶችን ውሰድ</translation> @@ -48,6 +49,7 @@ <translation id="129553762522093515">በቅርብ ጊዜ የተዘጉ</translation> <translation id="1326317727527857210">ትሮችዎን ከሌሎች መሣሪያዎችዎ ለማግኘት ወደ Chrome ይግቡ።</translation> <translation id="1332501820983677155">የGoogle Chrome ባህሪ አቋራጮች</translation> +<translation id="1360432990279830238">ዘግተው ወጥተው ስምረት ይጥፋ?</translation> <translation id="136248372334525878">ለበለጠ ፈጣን ጭነት እና የመስመር ውጭ ንባብ ገጾችን አስቀድመው ይጫኑ</translation> <translation id="1369915414381695676"><ph name="SITE_NAME" /> ጣቢያ ተክሏል</translation> <translation id="1373696734384179344">የተመረጠውን ይዘት ለማውረድ በቂ ያልሆነ ማህደረ ትውስታ።</translation> @@ -69,7 +71,6 @@ <translation id="1445680696957526815">የChrome አባላት እርስ ከራሳቸው ጋር ተኳሃኝ አይደሉም። Chrome እያላቀ ሊሆን ይችላል፣ እባክዎ በጥቂት ደቂቃዎች ውስጥ እንደገና ይሞክሩ። ችግሩ ከቀጠለ Chromeን አራግፈውት እንደገና ጭነው ይሞክሩ።</translation> <translation id="1446450296470737166">ሙሉ የMIDI መሣሪያዎች መቆጣጠርን ያስችላል</translation> <translation id="145097072038377568">በAndroid ቅንብሮች ውስጥ ጠፍቷል።</translation> -<translation id="1455941322673536744">ራስ-ሙላ እና ክፍያዎች</translation> <translation id="1477626028522505441">በአገልጋይ ችግሮች ምክንያት <ph name="FILE_NAME" />ን ማውረድ አልተሳካም።</translation> <translation id="1506061864768559482">የፍለጋ ፕሮግራም</translation> <translation id="1513352483775369820">ዕልባቶች እና የድር ታሪክ</translation> @@ -159,6 +160,7 @@ <translation id="2131665479022868825"><ph name="DATA" /> ተቀምጧል</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> ተዘግቷል</translation> <translation id="2139186145475833000">ወደ መነሻ ማያ ገጽ አክል</translation> +<translation id="2142289305367051020">ተወዳጅ ገጾችዎ እዚህ ናቸው</translation> <translation id="2146738493024040262">ቅጽበታዊ መተግበሪያን ክፈት</translation> <translation id="2148716181193084225">ዛሬ</translation> <translation id="2154484045852737596">ካርትን ያርትዑ</translation> @@ -349,6 +351,7 @@ <translation id="3822502789641063741">የጣቢያ ማከማቻ ይጽዳ?</translation> <translation id="385051799172605136">ተመለስ</translation> <translation id="3859306556332390985">ወደፊት ፈልግ</translation> +<translation id="3868004864571585162">ኩኪዎች፣ የሚዲያ ፈቃዶች እና የጣቢያ ውሂብ</translation> <translation id="3894427358181296146">አቃፊ ያክሉ</translation> <translation id="3895926599014793903">ማጉላት አንቃን ያስገድዱ</translation> <translation id="3927692899758076493">ሳንስ ሰሪፍ</translation> @@ -811,6 +814,7 @@ <translation id="7413229368719586778">መጀመሪያ ቀን <ph name="DATE" /></translation> <translation id="7423098979219808738">መጀመሪያ ጠይቅ</translation> <translation id="7423538860840206698">ቅንጥብ ሰሌዳን ከማንበብ ታግዷል</translation> +<translation id="7431991332293347422">ፍለጋን እና ተጨማሪ ነገሮችን ግላዊነት ለማላበስ የእርስዎ የአሰሳ ታሪክ እንዴት ጥቅም ላይ እንደሚውል ይቆጣጠሩ</translation> <translation id="7437998757836447326">ዘግተው ከChrome ይውጡ</translation> <translation id="7444811645081526538">ተጨማሪ ምድቦች</translation> <translation id="7445411102860286510">ጣቢያዎች ድምፀ-ከል የተደረገባቸው ቪዲዮዎችን በራስ-ሰር እንዲያጫውቱ ይፍቀዱላቸው (የሚመከር)</translation> @@ -879,6 +883,7 @@ <translation id="7963646190083259054">አቅራቢ፦</translation> <translation id="7981313251711023384">ይበልጥ ፈጣን ለሆነ አሰሳ እና ፍለጋ ገጾችን ቅድሚያ ይጫኑ</translation> <translation id="79859296434321399">የትክክለኛ እውነታ ይዘትን ለማየት ARCore ይጫኑ</translation> +<translation id="7986741934819883144">አንድ እውቂያ ይምረጡ</translation> <translation id="7987073022710626672">የChrome አገልግሎት ውል</translation> <translation id="7987764905897278458">ተጨማሪ Google ዘመናዊ ነገሮችን ያግኙ</translation> <translation id="7998918019931843664">የተዘጋውን ትር ዳግም ይክፈቱ</translation> @@ -907,6 +912,7 @@ <translation id="8109613176066109935">የእርስዎን ዕልባቶች በሁሉም መሣሪያዎችዎ ላይ ስምረትን ማብራት ለማግኘት</translation> <translation id="8116925261070264013">ድምፀ ከል ተደርጓል</translation> <translation id="813082847718468539">የጣቢያ መረጃን ይመልከቱ</translation> +<translation id="8156139159503939589">ምን ቋንቋዎች ነው የሚያነብቡት?</translation> <translation id="8168435359814927499">ይዘት</translation> <translation id="8186512483418048923"><ph name="FILES" /> ፋይሎች ይቀራሉ</translation> <translation id="8190358571722158785">1 ቀን ይቀራል</translation> @@ -919,6 +925,7 @@ <translation id="8260126382462817229">እንደገና ለመግባት ይሞክሩ</translation> <translation id="8261506727792406068">ሰርዝ</translation> <translation id="8266862848225348053">የሚወርድበት ቦታ</translation> +<translation id="8274165955039650276">ውርዶችን ይመልከቱ</translation> <translation id="8283853025636624853">ከ<ph name="SYNC_ACCOUNT_USER_NAME" /> ጋር ማሥመር</translation> <translation id="8310344678080805313">መደበኛ ትሮች</translation> <translation id="8313455859591948645">የጅምር መነሻ ገጽን ያርትዑ</translation> @@ -935,6 +942,7 @@ <translation id="8441146129660941386">ወደኋላ ፈልግ</translation> <translation id="8445448999790540984">የይለፍ ቃላትን ወደ ውጭ መላክ አልተቻለም</translation> <translation id="8447861592752582886">የመሣሪያ ፈቃድ ሻር</translation> +<translation id="8477071352266846533">ስምረት ለ<ph name="SYNC_ACCOUNT_USER_NAME" /> ጠፍቷል</translation> <translation id="8487700953926739672">ከመስመር ውጪ ይገኛል</translation> <translation id="8489271220582375723">የታሪክ ገጹን ክፈት</translation> <translation id="8493948351860045254">ቦታ አስለቅቅ</translation> @@ -974,6 +982,7 @@ <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> <translation id="8730621377337864115">ተከናውኗል</translation> <translation id="8748850008226585750">ይዘቶች ተደብቀዋል</translation> +<translation id="8751914237388039244">ምስል ይምረጡ</translation> <translation id="8788968922598763114">መጨረሻ ላይ የተዘጋውን ትር ዳግም ክፈት</translation> <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>
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 00a499b..ef3ef440 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb
@@ -24,6 +24,7 @@ <translation id="1157102636231978136">بيانات التصفُّح والنشاط المتزامنة في حسابك على Google</translation> <translation id="116280672541001035">المستخدَمة</translation> <translation id="1172593791219290334">صفحة بدء التشغيل</translation> +<translation id="1175310183703641346">لن تتم مزامنة الإشارات المرجعية والسِجلّ وكلمات المرور والمزيد مع حسابك على Google بعد الآن.</translation> <translation id="1178581264944972037">تعليق</translation> <translation id="1181037720776840403">إزالة</translation> <translation id="1197267115302279827">نقل الإشارات المرجعية</translation> @@ -48,6 +49,7 @@ <translation id="129553762522093515">المغلقة حديثًا</translation> <translation id="1326317727527857210">للحصول على علامات التبويب من أجهزتك الأخرى، سجّل الدخول إلى Chrome.</translation> <translation id="1332501820983677155">اختصارات ميزات Google Chrome</translation> +<translation id="1360432990279830238">هل تريد تسجيل الخروج وإيقاف المزامنة؟</translation> <translation id="136248372334525878">التحميل المسبق للصفحات للحصول على تحميل أسرع والقراءة بلا اتصال بالإنترنت</translation> <translation id="1369915414381695676">تمت إضافة الموقع <ph name="SITE_NAME" /></translation> <translation id="1373696734384179344">لا توجد ذاكرة كافية لتنزيل المحتوى المحدد.</translation> @@ -69,7 +71,6 @@ <translation id="1445680696957526815">مكونات Chrome غير متوافقة مع بعضها البعض. قد تتم ترقية Chrome؛ لذا يُرجى إعادة المحاولة بعد دقائق قليلة. وإذا استمرت المشكلة، فحاول إلغاء تثبيت Chrome وإعادة تثبيته.</translation> <translation id="1446450296470737166">السماح بالتحكم الكامل لأجهزة MIDI</translation> <translation id="145097072038377568">تم إيقافه في إعدادات Android.</translation> -<translation id="1455941322673536744">الملء التلقائي والدفعات</translation> <translation id="1477626028522505441">تعذّر تنزيل الملف <ph name="FILE_NAME" /> بسبب مشاكل بالخادم.</translation> <translation id="1506061864768559482">محرك البحث</translation> <translation id="1513352483775369820">الإشارات المرجعية وسجل بحث الويب</translation> @@ -159,6 +160,7 @@ <translation id="2131665479022868825">تم توفير <ph name="DATA" /></translation> <translation id="213279576345780926">تم إغلاق <ph name="TAB_TITLE" /></translation> <translation id="2139186145475833000">الإضافة إلى الشاشة الرئيسية</translation> +<translation id="2142289305367051020">صفحاتك المفضَّلة هنا</translation> <translation id="2146738493024040262">فتح تطبيق فوري</translation> <translation id="2148716181193084225">اليوم</translation> <translation id="2154484045852737596">تعديل البطاقة</translation> @@ -349,6 +351,7 @@ <translation id="3822502789641063741">أتمحو سعة تخزين الموقع؟</translation> <translation id="385051799172605136">الرجوع إلى الوراء</translation> <translation id="3859306556332390985">الانتقال للأمام</translation> +<translation id="3868004864571585162">ملفات تعريف الارتباط وتراخيص الوسائط وبيانات الموقع الإلكتروني</translation> <translation id="3894427358181296146">إضافة مجلد</translation> <translation id="3895926599014793903">فرض تفعيل التكبير/التصغير</translation> <translation id="3927692899758076493">Sans Serif</translation> @@ -812,6 +815,7 @@ <translation id="7413229368719586778">تاريخ البدء: <ph name="DATE" /></translation> <translation id="7423098979219808738">السؤال أولاً</translation> <translation id="7423538860840206698">تم الحظر من قراءة الحافظة</translation> +<translation id="7431991332293347422">التحكُّم في كيفية استخدامنا لسِجل التصفُّح لتخصيص البحث والمزيد</translation> <translation id="7437998757836447326">الخروج من Chrome</translation> <translation id="7444811645081526538">مزيد من الفئات</translation> <translation id="7445411102860286510">السماح للمواقع بتشغيل الفيديوهات مكتومة الصوت تلقائيًا (مُستحسن)</translation> @@ -880,6 +884,7 @@ <translation id="7963646190083259054">المورّد:</translation> <translation id="7981313251711023384">التحميل المُسبق للصفحات للحصول على أداء أسرع أثناء التصفّح والبحث</translation> <translation id="79859296434321399">لعرض محتوى الواقع المُعزَّز، يُرجى تثبيت ARCore</translation> +<translation id="7986741934819883144">اختيار جهة اتصال</translation> <translation id="7987073022710626672">بنود خدمة Chrome</translation> <translation id="7987764905897278458">الحصول على مزيد من ميزات Google الذكية</translation> <translation id="7998918019931843664">إعادة فتح علامة التبويب المغلقة</translation> @@ -908,6 +913,7 @@ <translation id="8109613176066109935">للحصول على الإشارات المرجعية على جميع أجهزتك، يُرجى تفعيل المزامنة.</translation> <translation id="8116925261070264013">مواقع الويب التي تم كتم الصوت فيها</translation> <translation id="813082847718468539">عرض معلومات الموقع</translation> +<translation id="8156139159503939589">ما اللغات التي تقرأها؟</translation> <translation id="8168435359814927499">المحتوى</translation> <translation id="8186512483418048923"><ph name="FILES" /> من الملفات المتبقية</translation> <translation id="8190358571722158785">يتبقى يوم واحد</translation> @@ -920,6 +926,7 @@ <translation id="8260126382462817229">محاولة تسجيل الدخول مرة أخرى</translation> <translation id="8261506727792406068">حذف</translation> <translation id="8266862848225348053">موقع التنزيل</translation> +<translation id="8274165955039650276">الاطِّلاع على التنزيلات</translation> <translation id="8283853025636624853">تتم المزامنة مع <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8310344678080805313">علامات التبويب القياسية</translation> <translation id="8313455859591948645">تعديل صفحة بدء التشغيل</translation> @@ -936,6 +943,7 @@ <translation id="8441146129660941386">الرجوع للوراء</translation> <translation id="8445448999790540984">يتعذّر تصدير كلمات المرور</translation> <translation id="8447861592752582886">إبطال إذن الجهاز</translation> +<translation id="8477071352266846533">المزامنة موقوفة لـ <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8487700953926739672">التوفر بلا إنترنت</translation> <translation id="8489271220582375723">فتح صفحة السجل</translation> <translation id="8493948351860045254">تفريغ بعض المساحة</translation> @@ -975,6 +983,7 @@ <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> <translation id="8730621377337864115">تم</translation> <translation id="8748850008226585750">المحتويات مخفية</translation> +<translation id="8751914237388039244">اختيار صورة</translation> <translation id="8788968922598763114">إعادة فتح آخر علامة تبويب تم إغلاقها</translation> <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>
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 e338792..0f3b32f8 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Компонентите на Chrome не са съвместими един с друг. Възможно е браузърът да се надстройва. Моля, опитайте отново след няколко минути. Ако проблемът не се отстрани, пробвайте да деинсталирате и да инсталирате отново Chrome.</translation> <translation id="1446450296470737166">Разр. на пълния контрол над MIDI</translation> <translation id="145097072038377568">Изключено от настройките на Android</translation> -<translation id="1455941322673536744">Автоматично попълване и плащания</translation> <translation id="1477626028522505441">Изтеглянето на „<ph name="FILE_NAME" />“ не бе успешно поради проблеми в сървъра.</translation> <translation id="1506061864768559482">Търсеща машина</translation> <translation id="1513352483775369820">Отметки и посетени сайтове</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 0a5a713..61e9d4e 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Els components de Chrome no són compatibles entre ells. És possible que Chrome s'estigui actualitzant. Torneu-ho a provar d'aquí a uns quants minuts. Si el problema continua, desinstal·leu Chrome i torneu-lo a instal·lar.</translation> <translation id="1446450296470737166">Permet control total disp. MIDI</translation> <translation id="145097072038377568">Aquest permís està desactivat a la configuració d'Android</translation> -<translation id="1455941322673536744">Emplenament automàtic i pagaments</translation> <translation id="1477626028522505441">No s'ha pogut baixar <ph name="FILE_NAME" /> a causa de problemes amb el servidor.</translation> <translation id="1506061864768559482">Motor de cerca</translation> <translation id="1513352483775369820">Adreces interès i historial web</translation> @@ -432,7 +431,7 @@ <translation id="4521489764227272523">Les dades seleccionades s'han suprimit de Chrome i dels dispositius sincronitzats. És possible que el teu compte de Google tingui altres formes de l'historial de navegació, com ara les cerques i l'activitat d'altres serveis de Google a <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> -<translation id="4532845899244822526">Trieu la carpeta</translation> +<translation id="4532845899244822526">Tria la carpeta</translation> <translation id="4550003330909367850">Per veure o copiar la contrasenya aquí, configura el bloqueig de pantalla en aquest dispositiu.</translation> <translation id="4558311620361989323">Dreceres per a pàgines web</translation> <translation id="4561979708150884304">No hi ha connexió</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 140ea78..0038366 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Komponenty prohlížeče Chrome navzájem nejsou kompatibilní. Je možné, že se Chrome zrovna upgraduje. Pokud problém přetrvává, zkuste Chrome odinstalovat a poté znovu nainstalovat.</translation> <translation id="1446450296470737166">Povolit úplné ovládání zařízení MIDI</translation> <translation id="145097072038377568">Vypnuto v Nastavení pro Android</translation> -<translation id="1455941322673536744">Automatické vyplňování a platby</translation> <translation id="1477626028522505441">Stažení souboru <ph name="FILE_NAME" /> se nezdařilo z důvodu problémů se serverem.</translation> <translation id="1506061864768559482">Vyhledávač</translation> <translation id="1513352483775369820">Záložky a webová historie</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 b71fc474..d4df58d0 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_da.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_da.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Chromes komponenter er ikke kompatible med hinanden. Chrome er muligvis ved at opgradere. Prøv igen om et par minutter. Hvis problemet fortsætter, kan du prøve at afinstallere og geninstallere Chrome.</translation> <translation id="1446450296470737166">Tillad fuld kontrol over MIDI-enheder</translation> <translation id="145097072038377568">Deaktiveret i indstillingerne for Android</translation> -<translation id="1455941322673536744">Autofyld og betalinger</translation> <translation id="1477626028522505441">Download af <ph name="FILE_NAME" /> mislykkedes på grund af serverproblemer.</translation> <translation id="1506061864768559482">Søgemaskine</translation> <translation id="1513352483775369820">Bogmærker og webhistorik</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 3e3db4ab..5457161 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_de.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_de.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Die Chrome-Komponenten sind nicht miteinander kompatibel. Möglicherweise wird Chrome gerade aktualisiert. Bitte versuchen Sie es in einigen Minuten erneut. Sollte das Problem weiterhin bestehen, versuchen Sie, Chrome zu deinstallieren und erneut zu installieren.</translation> <translation id="1446450296470737166">Volle Kontr. über MIDI-Ger. erl.</translation> <translation id="145097072038377568">In den Android-Einstellungen deaktiviert</translation> -<translation id="1455941322673536744">AutoFill und Zahlungen</translation> <translation id="1477626028522505441"><ph name="FILE_NAME" /> konnte aufgrund von Serverproblemen nicht heruntergeladen werden.</translation> <translation id="1506061864768559482">Suchmaschine</translation> <translation id="1513352483775369820">Lesezeichen und Webprotokoll</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 a1529da..a78fd0f9 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_el.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_el.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Τα στοιχεία του Chrome δεν είναι συμβατά μεταξύ τους. Το Chrome ενδεχομένως να αναβαθμίζεται. Δοκιμάστε ξανά σε λίγα λεπτά. Αν το πρόβλημα παραμένει, δοκιμάστε να απεγκαταστήσετε και να εγκαταστήσετε ξανά το Chrome.</translation> <translation id="1446450296470737166">Να επιτρέπεται πλήρης έλεγχος σε MIDI</translation> <translation id="145097072038377568">Έχει απενεργοποιηθεί στις Ρυθμίσεις Android</translation> -<translation id="1455941322673536744">Αυτόματη Συμπλήρωση και πληρωμές</translation> <translation id="1477626028522505441">Η λήψη του αρχείου <ph name="FILE_NAME" /> απέτυχε λόγω προβλημάτων στον διακομιστή.</translation> <translation id="1506061864768559482">Μηχανή αναζήτησης</translation> <translation id="1513352483775369820">Σελιδοδείκτες και ιστορικό ιστού</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 6ae8df8..70f579f 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
@@ -71,7 +71,6 @@ <translation id="1445680696957526815">Chrome’s components are incompatible with one another. Chrome may be upgrading, please try again in a few minutes. If the problem continues, try uninstalling and re-installing Chrome.</translation> <translation id="1446450296470737166">Allow full control of MIDI devices</translation> <translation id="145097072038377568">Turned off in Android Settings</translation> -<translation id="1455941322673536744">Autofill and payments</translation> <translation id="1477626028522505441"><ph name="FILE_NAME" /> download failed due to server issues.</translation> <translation id="1506061864768559482">Search engine</translation> <translation id="1513352483775369820">Bookmarks and web history</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 6a86729..b1d99cb 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
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Los componentes de Chrome no son compatibles entre sí. Es posible que Chrome esté actualizándose. Espera unos minutos y vuelve a intentarlo. Si el problema continúa, prueba a desinstalar Chrome y volver a instalarlo.</translation> <translation id="1446450296470737166">Control de dispositivos MIDI</translation> <translation id="145097072038377568">Desactivado en la configuración de Android</translation> -<translation id="1455941322673536744">Autocompletar y pagos</translation> <translation id="1477626028522505441"><ph name="FILE_NAME" /> no se pudo descargar debido a problemas del servidor.</translation> <translation id="1506061864768559482">Motor de búsqueda</translation> <translation id="1513352483775369820">Favoritos e historial web</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 b09e1203..76dd72c 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_es.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_es.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Los componentes de Chrome no son compatibles entre sí. Es posible que Chrome se esté actualizando. Vuelve a intentarlo dentro de unos minutos. Si el problema persiste, prueba a desinstalar Chrome y volver a instalarlo.</translation> <translation id="1446450296470737166">Control total dispositivos MIDI</translation> <translation id="145097072038377568">Ajustes de Android desactivados</translation> -<translation id="1455941322673536744">Autocompletar y pagos</translation> <translation id="1477626028522505441">No se ha podido descargar <ph name="FILE_NAME" /> debido a problemas con el servidor.</translation> <translation id="1506061864768559482">Motor de búsqueda</translation> <translation id="1513352483775369820">Historial web y marcadores</translation> @@ -376,7 +375,7 @@ <translation id="4056223980640387499">Sepia</translation> <translation id="4060598801229743805">Opciones disponibles junto a la parte superior de la pantalla</translation> <translation id="4062305924942672200">Información legal</translation> -<translation id="4084682180776658562">Marcador</translation> +<translation id="4084682180776658562">Añadir a marcadores</translation> <translation id="4084712963632273211">De <ph name="PUBLISHER_ORIGIN" /> (<ph name="BEGIN_DEEMPHASIZED" />ofrecida por Google<ph name="END_DEEMPHASIZED" />)</translation> <translation id="4084836577264234537">MB descargados: <ph name="MEGABYTES" /></translation> <translation id="4089831646916293264">Esta función puede interferir con el acceso a servicios de datos premium ofrecidos por el operador.</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 25f1a2ab..d7f127074 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb
@@ -24,6 +24,7 @@ <translation id="1157102636231978136">دادههای محصول مرور و فعالیتتان با حساب Google شما همگامسازی شد</translation> <translation id="116280672541001035">مصرفشده</translation> <translation id="1172593791219290334">صفحه شروع</translation> +<translation id="1175310183703641346">نشانکها، سابقه، گذرواژهها و سایر تنظیمات، دیگر با حساب Google شما همگامسازی نمیشود</translation> <translation id="1178581264944972037">مکث</translation> <translation id="1181037720776840403">حذف</translation> <translation id="1197267115302279827">انتقال نشانکها</translation> @@ -48,6 +49,7 @@ <translation id="129553762522093515">اخیراً بستهشده</translation> <translation id="1326317727527857210">برای دسترسی به برگههایتان در دستگاههای دیگر، به سیستم Chrome وارد شوید.</translation> <translation id="1332501820983677155">میانبرهای ویژه Google Chrome</translation> +<translation id="1360432990279830238">از سیستم خارج و همگامسازی خاموش شود؟</translation> <translation id="136248372334525878">برای بارگیری سریعتر و خواندن درحالت آفلاین، صفحات را پیشبارگیری کنید</translation> <translation id="1369915414381695676">سایت <ph name="SITE_NAME" /> اضافه شد</translation> <translation id="1373696734384179344">حافظه برای بارگیری محتوای انتخابی کافی نیست.</translation> @@ -69,7 +71,6 @@ <translation id="1445680696957526815">مؤلفههای Chrome با هم سازگار نیستند. ممکن است Chrome در حال ارتقا دادن باشد، لطفاً پس از چند دقیقه دوباره امتحان کنید. اگر همچنان مشکل وجود داشت، نصب Chrome را لغو کنید و دوباره آن را نصب کنید.</translation> <translation id="1446450296470737166">اجازه کنترل کامل دستگاههای MIDI</translation> <translation id="145097072038377568">در تنظیمات Android مسدود شد</translation> -<translation id="1455941322673536744">تکمیل خودکار و پرداخت</translation> <translation id="1477626028522505441">بهدلیل مشکلاتی در سرور، بارگیری <ph name="FILE_NAME" /> انجام نشد.</translation> <translation id="1506061864768559482">موتور جستجو</translation> <translation id="1513352483775369820">نشانکها و سابقه وب</translation> @@ -159,6 +160,7 @@ <translation id="2131665479022868825"><ph name="DATA" /> صرفهجویی شد</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> بسته شد</translation> <translation id="2139186145475833000">افزودن به صفحه اصلی</translation> +<translation id="2142289305367051020">صفحههای دلخواه در اینجا نشان داده میشود</translation> <translation id="2146738493024040262">برنامه فوری را باز کنید</translation> <translation id="2148716181193084225">امروز</translation> <translation id="2154484045852737596">ویرایش کارت</translation> @@ -349,6 +351,7 @@ <translation id="3822502789641063741">فضای ذخیره سایت پاک شود؟</translation> <translation id="385051799172605136">بازگشت</translation> <translation id="3859306556332390985">جستجو به جلو</translation> +<translation id="3868004864571585162">کوکیها، مجوزهای رسانه و دادههای سایت</translation> <translation id="3894427358181296146">افزودن پوشه</translation> <translation id="3895926599014793903">فعال کردن اجباری بزرگنمایی</translation> <translation id="3927692899758076493">Sans Serif</translation> @@ -810,6 +813,7 @@ <translation id="7413229368719586778">تاریخ شروع: <ph name="DATE" /></translation> <translation id="7423098979219808738">ابتدا سؤال شود</translation> <translation id="7423538860840206698">خواندن محتوای بریدهدان مسدود شد</translation> +<translation id="7431991332293347422">کنترل نحوه استفاده از سابقه مرور برای شخصیسازی «جستجو» و موارد دیگر</translation> <translation id="7437998757836447326">خروج از سیستم Chrome</translation> <translation id="7444811645081526538">دستههای بیشتر</translation> <translation id="7445411102860286510">اجازه به سایتها برای پخش خودکار ویدیوهای صامتشده (توصیه میشود)</translation> @@ -878,6 +882,7 @@ <translation id="7963646190083259054">ارائهدهنده:</translation> <translation id="7981313251711023384">پیشبارگیری صفحهها برای مرور و جستجوی سریعتر</translation> <translation id="79859296434321399">برای مشاهده محتوای واقعیت افزوده، ARCore را نصب کنید</translation> +<translation id="7986741934819883144">مخاطبی انتخاب کنید</translation> <translation id="7987073022710626672">شرایط خدمات Chrome</translation> <translation id="7987764905897278458">دریافت هوشمندیهای بیشتری از Google</translation> <translation id="7998918019931843664">بازکردن مجدد برگههای بسته شده</translation> @@ -906,6 +911,7 @@ <translation id="8109613176066109935">برای اینکه به نشانکها در همه دستگاههایتان دسترسی داشته باشید، همگامسازی را روشن کنید</translation> <translation id="8116925261070264013">صامتشده</translation> <translation id="813082847718468539">مشاهدهٔ اطلاعات سایت</translation> +<translation id="8156139159503939589">به چه زبانی مطالعه میکنید؟</translation> <translation id="8168435359814927499">محتوا</translation> <translation id="8186512483418048923"><ph name="FILES" /> فایل باقی مانده است</translation> <translation id="8190358571722158785">۱ روز باقیمانده است</translation> @@ -918,6 +924,7 @@ <translation id="8260126382462817229">دوباره سعی کنید به سیستم وارد شوید</translation> <translation id="8261506727792406068">حذف</translation> <translation id="8266862848225348053">مکان بارگیری</translation> +<translation id="8274165955039650276">مشاهده بارگیریها</translation> <translation id="8283853025636624853">در حال همگامسازی در <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8310344678080805313">برگههای استاندارد</translation> <translation id="8313455859591948645">ویرایش صفحه شروع</translation> @@ -934,6 +941,7 @@ <translation id="8441146129660941386">جستجو به عقب</translation> <translation id="8445448999790540984">گذرواژهها صادر نشدند</translation> <translation id="8447861592752582886">لغو مجوز دستگاه</translation> +<translation id="8477071352266846533">همگامسازی برای <ph name="SYNC_ACCOUNT_USER_NAME" /> خاموش است</translation> <translation id="8487700953926739672">امکان دسترسی به صورت آفلاین</translation> <translation id="8489271220582375723">باز کردن صفحه سابقه</translation> <translation id="8493948351860045254">آزاد کردن فضا</translation> @@ -973,6 +981,7 @@ <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> <translation id="8730621377337864115">تمام</translation> <translation id="8748850008226585750">محتوا پنهان است</translation> +<translation id="8751914237388039244">تصویری انتخاب کنید</translation> <translation id="8788968922598763114">دوباره باز کردن آخرین برگه بستهشده</translation> <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>
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 3ab1ce0..2d5e18e1 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Chromen osat eivät ole yhteensopivia toistensa kanssa. Chromen päivitys voi olla kesken; yritä uudelleen muutaman minuutin kuluttua. Jos ongelma ei ratkea, poista Chrome ja asenna se uudelleen.</translation> <translation id="1446450296470737166">Salli MIDI-laitteiden täysi käyttöoik.</translation> <translation id="145097072038377568">Poistettu käytöstä Android-asetuksissa</translation> -<translation id="1455941322673536744">Automaattinen täyttö ja maksut</translation> <translation id="1477626028522505441">Tiedoston <ph name="FILE_NAME" /> lataus epäonnistui palvelinongelman vuoksi.</translation> <translation id="1506061864768559482">Hakukone</translation> <translation id="1513352483775369820">Kirjanmerkit ja verkkohistoria</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 ef8331c..19ed221a 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb
@@ -24,6 +24,7 @@ <translation id="1157102636231978136">Naka-sync sa iyong Google Account ang data mula sa pag-browse at aktibidad.</translation> <translation id="116280672541001035">Nagamit</translation> <translation id="1172593791219290334">Page sa Pagsisimula</translation> +<translation id="1175310183703641346">Hindi na isi-sync sa Google Account mo ang iyong mga bookmark, history, password, at higit pa</translation> <translation id="1178581264944972037">I-pause</translation> <translation id="1181037720776840403">Alisin</translation> <translation id="1197267115302279827">Ilipat ang mga bookmark</translation> @@ -48,6 +49,7 @@ <translation id="129553762522093515">Kamakailang isinara</translation> <translation id="1326317727527857210">Upang makuha ang iyong mga tab mula sa iba mo pang mga device, mag-sign in sa Chrome.</translation> <translation id="1332501820983677155">Mga shortcut ng feature ng Google Chrome</translation> +<translation id="1360432990279830238">Mag-sign out at i-off ang pag-sync?</translation> <translation id="136248372334525878">Mag-preload ng mga page para sa mas mabilis na pag-load at offline na pagbabasa</translation> <translation id="1369915414381695676">Nadagdag na ang site ng <ph name="SITE_NAME" /></translation> <translation id="1373696734384179344">Hindi sapat ang memory upang ma-download ang napiling content.</translation> @@ -69,7 +71,6 @@ <translation id="1445680696957526815">Hindi tugma ang mga bahagi ng Chrome sa isa't isa. Maaaring nag-a-upgrade ang Chrome, subukang muli pagkatapos ng ilang sandali. Kung magpapatuloy ang problema, subukang i-uninstall at muling i-install ang Chrome.</translation> <translation id="1446450296470737166">Payagan ganap na kontrol sa MIDI device</translation> <translation id="145097072038377568">Naka-off sa Mga Setting ng Android</translation> -<translation id="1455941322673536744">Autofill at mga pagbabayad</translation> <translation id="1477626028522505441">Hindi na-download ang <ph name="FILE_NAME" /> dahil sa mga isyu sa server.</translation> <translation id="1506061864768559482">Search engine</translation> <translation id="1513352483775369820">Bookmark at history ng web</translation> @@ -159,6 +160,7 @@ <translation id="2131665479022868825"><ph name="DATA" /> ang natipid</translation> <translation id="213279576345780926">Isinarang <ph name="TAB_TITLE" /></translation> <translation id="2139186145475833000">Magdagdag sa Home screen</translation> +<translation id="2142289305367051020">Narito ang mga paborito mong page</translation> <translation id="2146738493024040262">Buksan ang Instant App</translation> <translation id="2148716181193084225">Ngayon</translation> <translation id="2154484045852737596">I-edit ang card</translation> @@ -349,6 +351,7 @@ <translation id="3822502789641063741">I-clear ang storage ng site?</translation> <translation id="385051799172605136">Bumalik</translation> <translation id="3859306556332390985">Maghanap nang pasulong</translation> +<translation id="3868004864571585162">Cookies, mga lisensya ng media, at data ng site</translation> <translation id="3894427358181296146">Magdagdag ng folder</translation> <translation id="3895926599014793903">Puwersahang i-enable ang zoom</translation> <translation id="3927692899758076493">Sans Serif</translation> @@ -811,6 +814,7 @@ <translation id="7413229368719586778">Petsa ng pagsisimula <ph name="DATE" /></translation> <translation id="7423098979219808738">Magtanong muna</translation> <translation id="7423538860840206698">Na-block sa pag-read ng clipboard</translation> +<translation id="7431991332293347422">Kontrolin kung paano ginagamit ang iyong history ng pag-browse para i-personalize ang Paghahanap at higit pa</translation> <translation id="7437998757836447326">Mag-sign out sa Chrome</translation> <translation id="7444811645081526538">Higit pang kategorya</translation> <translation id="7445411102860286510">Payagan ang mga site na awtomatikong mag-play ng mga naka-mute na video (inirerekomenda)</translation> @@ -879,6 +883,7 @@ <translation id="7963646190083259054">Vendor:</translation> <translation id="7981313251711023384">I-preload ang mga page para sa mas mabilis na pag-browse at paghahanap</translation> <translation id="79859296434321399">Para matingnan ang augmented reality na content, i-install ang ARCore</translation> +<translation id="7986741934819883144">Pumili ng contact</translation> <translation id="7987073022710626672">Mga Tuntunin ng Serbisyo ng Chrome</translation> <translation id="7987764905897278458">Magkaroon ng higit pang smart na feature ng Google</translation> <translation id="7998918019931843664">Muling buksan ang isinarang tab</translation> @@ -907,6 +912,7 @@ <translation id="8109613176066109935">Para makuha ang iyong mga bookmark sa lahat ng device mo, i-on ang pag-sync</translation> <translation id="8116925261070264013">Naka-mute</translation> <translation id="813082847718468539">Tingnan ang impormasyon ng site</translation> +<translation id="8156139159503939589">Anong mga wika ang binabasa mo?</translation> <translation id="8168435359814927499">Content</translation> <translation id="8186512483418048923"><ph name="FILES" /> (na) file ang natitira</translation> <translation id="8190358571722158785">1 araw na lang ang natitira</translation> @@ -919,6 +925,7 @@ <translation id="8260126382462817229">Subukang mag-sign in muli</translation> <translation id="8261506727792406068">I-delete</translation> <translation id="8266862848225348053">Lokasyon ng download</translation> +<translation id="8274165955039650276">Tingnan ang mga download</translation> <translation id="8283853025636624853">Sini-sync sa <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8310344678080805313">Mga karaniwang tab</translation> <translation id="8313455859591948645">I-edit ang page sa pagsisimula</translation> @@ -935,6 +942,7 @@ <translation id="8441146129660941386">Maghanap nang pabalik</translation> <translation id="8445448999790540984">Hindi ma-export ang mga password</translation> <translation id="8447861592752582886">Bawiin ang pahintulot ng device</translation> +<translation id="8477071352266846533">Naka-off ang pag-sync para sa <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8487700953926739672">Available sa offline</translation> <translation id="8489271220582375723">Buksan ang page ng history</translation> <translation id="8493948351860045254">Magbakante ng espasyo</translation> @@ -974,6 +982,7 @@ <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> <translation id="8730621377337864115">Tapos na</translation> <translation id="8748850008226585750">Nakatago ang mga content</translation> +<translation id="8751914237388039244">Pumili ng larawan</translation> <translation id="8788968922598763114">Muling buksan ang huling isinarang tab</translation> <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>
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 22f75ad..5877d6f0e 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Les composants de Chrome ne sont pas compatibles entre eux. Une mise à jour de Chrome est peut-être en cours. Veuillez réessayer dans quelques minutes. Si le problème persiste, veuillez désinstaller Chrome, puis le réinstaller.</translation> <translation id="1446450296470737166">Autoriser le contrôle complet des appareils MIDI</translation> <translation id="145097072038377568">Désactivée dans les paramètres Android</translation> -<translation id="1455941322673536744">Saisie automatique et paiements</translation> <translation id="1477626028522505441">Échec du téléchargement du fichier "<ph name="FILE_NAME" />" en raison de problèmes liés au serveur.</translation> <translation id="1506061864768559482">Moteur de recherche</translation> <translation id="1513352483775369820">Favoris et historique Web</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 afd76d7f..5a8db576 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Chrome के घटक एक-दूसरे से असंगत हैं. संभवत: Chrome अपग्रेड हो रहा है, कृपया कुछ ही देर में पुन: प्रयास करें. यदि समस्या बनी रहती है, तो Chrome को अनइंस्टॉल करके और पुन: इंस्टॉल करके देखें.</translation> <translation id="1446450296470737166">MIDI डिवाइस के पूर्ण नियंत्रण की अनुमति दें</translation> <translation id="145097072038377568">Android सेटिंग में बंद कर दिया गया है</translation> -<translation id="1455941322673536744">ऑटोमैटिक भरना और भुगतान</translation> <translation id="1477626028522505441">सर्वर संबधी समस्याओं के कारण <ph name="FILE_NAME" /> डाउनलोड विफल रहा.</translation> <translation id="1506061864768559482">खोज इंजन</translation> <translation id="1513352483775369820">बुकमार्क और वेब इतिहास</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 1bb25311..523c83b 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb
@@ -24,6 +24,7 @@ <translation id="1157102636231978136">Vaši podaci o pregledavanju i aktivnost, sinkronizirani s vašim Google računom</translation> <translation id="116280672541001035">Iskorišteno</translation> <translation id="1172593791219290334">Početna stranica</translation> +<translation id="1175310183703641346">Vaše oznake, povijest, zaporke i druge stavke više se neće sinkronizirati s vašim Google računom</translation> <translation id="1178581264944972037">Pauziraj</translation> <translation id="1181037720776840403">Ukloni</translation> <translation id="1197267115302279827">Premjesti oznake</translation> @@ -48,6 +49,7 @@ <translation id="129553762522093515">Nedavno zatvoreno</translation> <translation id="1326317727527857210">Da bi se prikazale kartice s vaših ostalih uređaja, prijavite se na Chrome.</translation> <translation id="1332501820983677155">Prečaci za značajke Google Chromea</translation> +<translation id="1360432990279830238">Odjaviti se i isključiti sinkronizaciju?</translation> <translation id="136248372334525878">Prethodno učitajte stranice za brže učitavanje i čitanje izvan mreže</translation> <translation id="1369915414381695676">Dodana je web-lokacija <ph name="SITE_NAME" /></translation> <translation id="1373696734384179344">Nema dovoljno memorije za preuzimanje odabranog sadržaja.</translation> @@ -69,7 +71,6 @@ <translation id="1445680696957526815">Chromeove komponente nisu međusobno kompatibilne. Chrome se možda nadograđuje, pa pokušajte ponovo za nekoliko minuta. Ako se problem nastavi, pokušajte deinstalirati i ponovo instalirati Chrome.</translation> <translation id="1446450296470737166">Omogući potpuni nadzor za MIDI</translation> <translation id="145097072038377568">Isključeno u postavkama Androida</translation> -<translation id="1455941322673536744">Automatsko popunjavanje/plaćanja</translation> <translation id="1477626028522505441">Preuzimanje datoteke <ph name="FILE_NAME" /> nije uspjelo zbog poteškoća s poslužiteljem.</translation> <translation id="1506061864768559482">Tražilica</translation> <translation id="1513352483775369820">Oznake i Google povijest</translation> @@ -159,6 +160,7 @@ <translation id="2131665479022868825"><ph name="DATA" /> spremljeno</translation> <translation id="213279576345780926">Zatvorena je kartica <ph name="TAB_TITLE" /></translation> <translation id="2139186145475833000">Dodaj na početni zaslon</translation> +<translation id="2142289305367051020">Ovdje su vaše omiljene stranice</translation> <translation id="2146738493024040262">Otvori instant aplikaciju</translation> <translation id="2148716181193084225">Danas</translation> <translation id="2154484045852737596">Uredite karticu</translation> @@ -349,6 +351,7 @@ <translation id="3822502789641063741">Izbrisati pohranu?</translation> <translation id="385051799172605136">Natrag</translation> <translation id="3859306556332390985">Traži unaprijed</translation> +<translation id="3868004864571585162">Kolačići, medijske licence i podaci web-lokacija</translation> <translation id="3894427358181296146">Dodavanje mape</translation> <translation id="3895926599014793903">Prisilno omogućavanje zumiranja</translation> <translation id="3927692899758076493">Sans Serif</translation> @@ -811,6 +814,7 @@ <translation id="7413229368719586778">Datum početka: <ph name="DATE" /></translation> <translation id="7423098979219808738">Prvo pitaj</translation> <translation id="7423538860840206698">Blokirano je čitanje međuspremnika</translation> +<translation id="7431991332293347422">Odredite na koji će se način vaša povijest pregledavanja upotrebljavati za prilagodbu Pretraživanja i drugih značajki</translation> <translation id="7437998757836447326">Odjava s Chromea</translation> <translation id="7444811645081526538">Više kategorija</translation> <translation id="7445411102860286510">Web-lokacije mogu automatski reproducirati zanemarene videozapise (preporučeno)</translation> @@ -879,6 +883,7 @@ <translation id="7963646190083259054">Dobavljač:</translation> <translation id="7981313251711023384">Prethodno učitaj stranice za brže pregledavanje i pretraživanje</translation> <translation id="79859296434321399">Za prikaz sadržaja proširene stvarnosti instalirajte ARCore</translation> +<translation id="7986741934819883144">Odaberite kontakt</translation> <translation id="7987073022710626672">Chromeovi uvjeti pružanja usluge</translation> <translation id="7987764905897278458">Iskoristite više pametnih Googleovih značajki</translation> <translation id="7998918019931843664">Ponovno otvaranje zatvorene kartice</translation> @@ -907,6 +912,7 @@ <translation id="8109613176066109935">Da bi se vaše oznake prikazale na svim vašim uređajima, uključite sinkronizaciju</translation> <translation id="8116925261070264013">Bez zvuka</translation> <translation id="813082847718468539">Prikaz informacija o web-mjestu</translation> +<translation id="8156139159503939589">Koje jezike znate čitati?</translation> <translation id="8168435359814927499">Sadržaj</translation> <translation id="8186512483418048923">Preostalo datoteka: <ph name="FILES" /></translation> <translation id="8190358571722158785">Još 1 dan</translation> @@ -919,6 +925,7 @@ <translation id="8260126382462817229">Ponovo se pokušajte prijaviti</translation> <translation id="8261506727792406068">Izbriši</translation> <translation id="8266862848225348053">Lokacija za preuzimanje</translation> +<translation id="8274165955039650276">Pregled preuzimanja</translation> <translation id="8283853025636624853">Sinkronizacija s računom <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8310344678080805313">Standardne kartice</translation> <translation id="8313455859591948645">Uređivanje početne stranice</translation> @@ -935,6 +942,7 @@ <translation id="8441146129660941386">Traži unatrag</translation> <translation id="8445448999790540984">Izvoz zaporki nije moguć</translation> <translation id="8447861592752582886">Opozovi odobrenje uređaja</translation> +<translation id="8477071352266846533">Sinkronizacija je isključena za <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8487700953926739672">Dostupno izvanmrežno</translation> <translation id="8489271220582375723">Prikaz stranice povijesti</translation> <translation id="8493948351860045254">Oslobodi prostor</translation> @@ -974,6 +982,7 @@ <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> <translation id="8730621377337864115">Gotovo</translation> <translation id="8748850008226585750">Sadržaj je skriven</translation> +<translation id="8751914237388039244">Odaberite sliku</translation> <translation id="8788968922598763114">Ponovno otvaranje posljednje zatvorene kartice</translation> <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>
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 b716c35..0ddcd044 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb
@@ -24,6 +24,7 @@ <translation id="1157102636231978136">Böngészési adatai és tevékenységei, Google-fiókjával szinkronizálva.</translation> <translation id="116280672541001035">Használt</translation> <translation id="1172593791219290334">Kezdőoldal</translation> +<translation id="1175310183703641346">Könyvjelzői, előzményei, jelszavai és más beállításai többé nem lesznek szinkronizálva a Google-fiókjával</translation> <translation id="1178581264944972037">Szünet</translation> <translation id="1181037720776840403">Eltávolítás</translation> <translation id="1197267115302279827">Könyvjelzők áthelyezése</translation> @@ -48,6 +49,7 @@ <translation id="129553762522093515">Mostanában bezárt</translation> <translation id="1326317727527857210">Ha hozzá szeretne férni lapjaihoz a többi eszközéről, jelentkezzen be a Chrome-ba.</translation> <translation id="1332501820983677155">A Google Chrome-funkciók billentyűparancsai</translation> +<translation id="1360432990279830238">Kijelentkezik, és kikapcsolja a szinkronizálást?</translation> <translation id="136248372334525878">Oldalak előtöltése a gyorsabb betöltés és az offline módban történő olvasás érdekében</translation> <translation id="1369915414381695676">A(z) <ph name="SITE_NAME" /> webhely hozzáadva</translation> <translation id="1373696734384179344">Nincs elegendő memória a kiválasztott tartalom letöltéséhez.</translation> @@ -69,7 +71,6 @@ <translation id="1445680696957526815">A Chrome egyes összetevői nem kompatibilisek egymással. Lehet, hogy éppen a Chrome verziófrissítése zajlik, ezért próbálja újra pár perc múlva. Ha a probléma továbbra is fennáll, próbálja meg eltávolítani, majd újratelepíteni a Chrome-ot.</translation> <translation id="1446450296470737166">MIDI-eszközök teljes vezérlése</translation> <translation id="145097072038377568">Kikapcsolva az Android beállításaiban</translation> -<translation id="1455941322673536744">Automatikus kitöltés, fizetések</translation> <translation id="1477626028522505441">A következő fájl letöltése szerverproblémák miatt nem sikerült: <ph name="FILE_NAME" />.</translation> <translation id="1506061864768559482">Keresőmotor</translation> <translation id="1513352483775369820">Könyvjelzők és webes előzmények</translation> @@ -159,6 +160,7 @@ <translation id="2131665479022868825"><ph name="DATA" /> megtakarítva</translation> <translation id="213279576345780926">Bezárva: <ph name="TAB_TITLE" /></translation> <translation id="2139186145475833000">Hozzáadás kezdőképernyőhöz</translation> +<translation id="2142289305367051020">Itt jelennek meg a kedvenc oldalai</translation> <translation id="2146738493024040262">Azonnali alkalmazás megnyitása</translation> <translation id="2148716181193084225">Ma</translation> <translation id="2154484045852737596">Kártya szerkesztése</translation> @@ -349,6 +351,7 @@ <translation id="3822502789641063741">Törli a webhely tárhelyét?</translation> <translation id="385051799172605136">Vissza</translation> <translation id="3859306556332390985">Ugrás előre</translation> +<translation id="3868004864571585162">Cookie-k, médialicencek és webhelyadatok</translation> <translation id="3894427358181296146">Mappa hozzáadása</translation> <translation id="3895926599014793903">Nagyítás/kicsinyítés kényszerített engedélyezése</translation> <translation id="3927692899758076493">Sans Serif</translation> @@ -811,6 +814,7 @@ <translation id="7413229368719586778">Kezdés dátuma: <ph name="DATE" /></translation> <translation id="7423098979219808738">Kérdezzen rá</translation> <translation id="7423538860840206698">Le van tiltva a vágólap megtekintése</translation> +<translation id="7431991332293347422">Beállíthatja, hogy a rendszer hogyan szabja személyre a Keresést és egyebeket a böngészési előzmények alapján</translation> <translation id="7437998757836447326">Kijelentkezés a Chrome-ból</translation> <translation id="7444811645081526538">További kategóriák</translation> <translation id="7445411102860286510">Lehetővé teszi a webhelyek számára a némított videók automatikus lejátszását (ajánlott)</translation> @@ -879,6 +883,7 @@ <translation id="7963646190083259054">Szolgáltató:</translation> <translation id="7981313251711023384">Oldalak előtöltése a gyorsabb böngészés és keresés érdekében</translation> <translation id="79859296434321399">A kiterjesztett valósággal kapcsolatos tartalmak megtekintéséhez telepítse az ARCore-t</translation> +<translation id="7986741934819883144">Válasszon ki egy névjegyet</translation> <translation id="7987073022710626672">Chrome – Általános Szerződési Feltételek</translation> <translation id="7987764905897278458">Még több okos megoldás a Google-től</translation> <translation id="7998918019931843664">Bezárt lap megnyitása</translation> @@ -907,6 +912,7 @@ <translation id="8109613176066109935">Ha az összes eszközén szeretné elérni könyvjelzőit, kapcsolja be a szinkronizálást</translation> <translation id="8116925261070264013">Némítva</translation> <translation id="813082847718468539">Az oldalinformációk megtekintése</translation> +<translation id="8156139159503939589">Milyen nyelveken olvas?</translation> <translation id="8168435359814927499">Tartalom</translation> <translation id="8186512483418048923"><ph name="FILES" /> fájl maradt</translation> <translation id="8190358571722158785">1 nap van hátra</translation> @@ -919,6 +925,7 @@ <translation id="8260126382462817229">Próbáljon meg újra bejelentkezni</translation> <translation id="8261506727792406068">Törlés</translation> <translation id="8266862848225348053">Letöltés helye</translation> +<translation id="8274165955039650276">Letöltések megtekintése</translation> <translation id="8283853025636624853">Szinkronizálás a következővel: <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8310344678080805313">Szabványos lapok</translation> <translation id="8313455859591948645">Kezdőoldal szerkesztése</translation> @@ -935,6 +942,7 @@ <translation id="8441146129660941386">Ugrás visszafelé</translation> <translation id="8445448999790540984">Nem sikerült a jelszavak exportálása</translation> <translation id="8447861592752582886">Eszközengedély visszavonása</translation> +<translation id="8477071352266846533">Szinkronizálás kikapcsolva a következőnél: <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8487700953926739672">Offline elérhető</translation> <translation id="8489271220582375723">Az Előzmények oldal megnyitása</translation> <translation id="8493948351860045254">Terület felszabadítása</translation> @@ -974,6 +982,7 @@ <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> <translation id="8730621377337864115">Kész</translation> <translation id="8748850008226585750">Tartalom elrejtve</translation> +<translation id="8751914237388039244">Válasszon képet</translation> <translation id="8788968922598763114">A legutóbb bezárt lap újranyitása</translation> <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>
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 9464a60..97a0e5c 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_id.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_id.xtb
@@ -24,6 +24,7 @@ <translation id="1157102636231978136">Data dan aktivitas browsing internet Anda disinkronkan ke Akun Google</translation> <translation id="116280672541001035">Digunakan</translation> <translation id="1172593791219290334">Halaman Awal</translation> +<translation id="1175310183703641346">Bookmark, histori, sandi, dan lainnya tidak akan lagi disinkronkan ke Akun Google Anda.</translation> <translation id="1178581264944972037">Jeda</translation> <translation id="1181037720776840403">Hapus</translation> <translation id="1197267115302279827">Pindahkan bookmark</translation> @@ -48,6 +49,7 @@ <translation id="129553762522093515">Barusan ditutup</translation> <translation id="1326317727527857210">Untuk mendapatkan tab dari perangkat lainnya, masuk ke Chrome.</translation> <translation id="1332501820983677155">Pintasan fitur Google Chrome</translation> +<translation id="1360432990279830238">Logout dan nonaktifkan sinkronisasi?</translation> <translation id="136248372334525878">Pramuat halaman agar loading dan membaca offline lebih cepat</translation> <translation id="1369915414381695676">Situs <ph name="SITE_NAME" /> ditambahkan</translation> <translation id="1373696734384179344">Memori tidak cukup untuk mendownload konten yang dipilih.</translation> @@ -69,7 +71,6 @@ <translation id="1445680696957526815">Komponen Chrome tidak kompatibel dengan satu sama lain. Chrome mungkin ditingkatkan versinya, coba lagi dalam beberapa menit. Jika masalah terus berlanjut, coba uninstal dan instal ulang.</translation> <translation id="1446450296470737166">Izinkan kontrol penuh perangkat MIDI</translation> <translation id="145097072038377568">Dinonaktifkan di Setelan Android</translation> -<translation id="1455941322673536744">IsiOtomatis dan pembayaran</translation> <translation id="1477626028522505441">Download <ph name="FILE_NAME" /> gagal karena masalah server.</translation> <translation id="1506061864768559482">Mesin telusur</translation> <translation id="1513352483775369820">Bookmark dan histori web</translation> @@ -159,6 +160,7 @@ <translation id="2131665479022868825"><ph name="DATA" /> tersimpan</translation> <translation id="213279576345780926">Menutup <ph name="TAB_TITLE" /></translation> <translation id="2139186145475833000">Tambahkan ke Layar Utama</translation> +<translation id="2142289305367051020">Halaman favorit Anda di sini</translation> <translation id="2146738493024040262">Buka Aplikasi Instan</translation> <translation id="2148716181193084225">Hari ini</translation> <translation id="2154484045852737596">Edit kartu</translation> @@ -349,6 +351,7 @@ <translation id="3822502789641063741">Kosongkan penyimpanan situs?</translation> <translation id="385051799172605136">Mundur</translation> <translation id="3859306556332390985">Cari maju</translation> +<translation id="3868004864571585162">Cookie, lisensi media, dan data situs</translation> <translation id="3894427358181296146">Tambah folder</translation> <translation id="3895926599014793903">Memaksa pengaktifan zoom</translation> <translation id="3927692899758076493">Sans Serif</translation> @@ -811,6 +814,7 @@ <translation id="7413229368719586778">Tanggal mulai <ph name="DATE" /></translation> <translation id="7423098979219808738">Tanyakan terlebih dahulu</translation> <translation id="7423538860840206698">Diblokir agar tidak membaca papan klip</translation> +<translation id="7431991332293347422">Kontrol cara histori browsing digunakan untuk mempersonalisasi Penelusuran dan lainnya</translation> <translation id="7437998757836447326">Keluar dari Chrome</translation> <translation id="7444811645081526538">Kategori lainnya</translation> <translation id="7445411102860286510">Izinkan situs untuk otomatis memutar video yang dibisukan (disarankan)</translation> @@ -879,6 +883,7 @@ <translation id="7963646190083259054">Vendor:</translation> <translation id="7981313251711023384">Pramuat halaman agar browsing dan menelusuri lebih cepat</translation> <translation id="79859296434321399">Untuk melihat konten augmented reality, instal ARCore</translation> +<translation id="7986741934819883144">Pilih kontak</translation> <translation id="7987073022710626672">Persyaratan Layanan Chrome</translation> <translation id="7987764905897278458">Dapatkan kecanggihan Google lainnya</translation> <translation id="7998918019931843664">Buka kembali tab yang ditutup</translation> @@ -907,6 +912,7 @@ <translation id="8109613176066109935">Untuk mendapatkan bookmark di semua perangkat Anda, aktifkan sinkronisasi</translation> <translation id="8116925261070264013">Dinonaktifkan</translation> <translation id="813082847718468539">Lihat informasi situs</translation> +<translation id="8156139159503939589">Anda membaca dalam bahasa apa?</translation> <translation id="8168435359814927499">Konten</translation> <translation id="8186512483418048923"><ph name="FILES" /> file tersisa</translation> <translation id="8190358571722158785">1 hari lagi</translation> @@ -919,6 +925,7 @@ <translation id="8260126382462817229">Coba masuk lagi</translation> <translation id="8261506727792406068">Hapus</translation> <translation id="8266862848225348053">Lokasi download</translation> +<translation id="8274165955039650276">Lihat hasil download</translation> <translation id="8283853025636624853">Menyinkronkan dengan <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8310344678080805313">Tab standar</translation> <translation id="8313455859591948645">Edit halaman awal</translation> @@ -935,6 +942,7 @@ <translation id="8441146129660941386">Cari mundur</translation> <translation id="8445448999790540984">Tidak dapat mengekspor sandi</translation> <translation id="8447861592752582886">Cabut izin perangkat</translation> +<translation id="8477071352266846533">Sinkronisasi dinonaktifkan untuk <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8487700953926739672">Tersedia secara offline</translation> <translation id="8489271220582375723">Membuka halaman histori</translation> <translation id="8493948351860045254">Kosongkan ruang</translation> @@ -974,6 +982,7 @@ <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> <translation id="8730621377337864115">Selesai</translation> <translation id="8748850008226585750">Konten tersembunyi</translation> +<translation id="8751914237388039244">Pilih gambar</translation> <translation id="8788968922598763114">Membuka ulang tab yang terakhir ditutup</translation> <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>
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 817cf10..cac3950 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_it.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_it.xtb
@@ -24,6 +24,7 @@ <translation id="1157102636231978136">L'attività e i dati di navigazione sincronizzati con il tuo account Google</translation> <translation id="116280672541001035">Utilizzati</translation> <translation id="1172593791219290334">Pagina iniziale</translation> +<translation id="1175310183703641346">I preferiti, la cronologia, le password e altre impostazioni non verranno più sincronizzati con il tuo Account Google</translation> <translation id="1178581264944972037">Pausa</translation> <translation id="1181037720776840403">Rimuovi</translation> <translation id="1197267115302279827">Sposta i Preferiti</translation> @@ -48,6 +49,7 @@ <translation id="129553762522093515">Chiuse di recente</translation> <translation id="1326317727527857210">Accedi a Chrome per trovare le tue schede degli altri dispositivi.</translation> <translation id="1332501820983677155">Scorciatoie delle funzioni di Google Chrome</translation> +<translation id="1360432990279830238">Uscire e disattivare sincronizzazione?</translation> <translation id="136248372334525878">Le pagine vengono precaricate per velocizzare il caricamento e per la lettura offline</translation> <translation id="1369915414381695676">Sito <ph name="SITE_NAME" /> aggiunto</translation> <translation id="1373696734384179344">Memoria non sufficiente per scaricare i contenuti selezionati.</translation> @@ -69,7 +71,6 @@ <translation id="1445680696957526815">I componenti di Chrome non sono compatibili tra loro. Potrebbe essere in corso l'upgrade di Chrome, riprova tra qualche minuto. Se il problema persiste, prova a disinstallare e reinstallare Chrome.</translation> <translation id="1446450296470737166">Controllo completo dispos. MIDI</translation> <translation id="145097072038377568">Disattivata in Impostazioni Android</translation> -<translation id="1455941322673536744">Autocompilazione e pagamenti</translation> <translation id="1477626028522505441">Download di <ph name="FILE_NAME" /> non riuscito a causa di problemi del server.</translation> <translation id="1506061864768559482">Motore di ricerca</translation> <translation id="1513352483775369820">Preferiti e cronologia web</translation> @@ -159,6 +160,7 @@ <translation id="2131665479022868825">Dati salvati: <ph name="DATA" /></translation> <translation id="213279576345780926">La scheda <ph name="TAB_TITLE" /> è stata chiusa</translation> <translation id="2139186145475833000">Aggiungi a schermata Home</translation> +<translation id="2142289305367051020">Qui puoi trovare le tue pagine preferite</translation> <translation id="2146738493024040262">Apri l'app istantanea</translation> <translation id="2148716181193084225">Oggi</translation> <translation id="2154484045852737596">Modifica la carta</translation> @@ -349,6 +351,7 @@ <translation id="3822502789641063741">Cancellare memoria usata da siti?</translation> <translation id="385051799172605136">Indietro</translation> <translation id="3859306556332390985">Posiziona avanti</translation> +<translation id="3868004864571585162">Cookie, licenze multimediali e dati dei siti</translation> <translation id="3894427358181296146">Aggiungi cartella</translation> <translation id="3895926599014793903">Attivazione forzata dello zoom</translation> <translation id="3927692899758076493">Sans Serif</translation> @@ -811,6 +814,7 @@ <translation id="7413229368719586778">Data di inizio: <ph name="DATE" /></translation> <translation id="7423098979219808738">Chiedi prima</translation> <translation id="7423538860840206698">Lettura degli appunti non consentita</translation> +<translation id="7431991332293347422">Controlla la modalità di utilizzo della cronologia di navigazione per personalizzare la Ricerca e non solo</translation> <translation id="7437998757836447326">Esci da Chrome</translation> <translation id="7444811645081526538">Altre categorie</translation> <translation id="7445411102860286510">Consenti ai siti di riprodurre automaticamente i video con audio disattivato (opzione consigliata)</translation> @@ -879,6 +883,7 @@ <translation id="7963646190083259054">Fornitore:</translation> <translation id="7981313251711023384">Le pagine vengono precaricate per velocizzare la navigazione e la ricerca</translation> <translation id="79859296434321399">Per visualizzare i contenuti di realtà aumentata, installa ARCore</translation> +<translation id="7986741934819883144">Seleziona un contatto</translation> <translation id="7987073022710626672">Termini di servizio di Chrome</translation> <translation id="7987764905897278458">Utilizza il meglio dell'intelligenza di Google</translation> <translation id="7998918019931843664">Riapri la scheda chiusa</translation> @@ -907,6 +912,7 @@ <translation id="8109613176066109935">Attiva la sincronizzazione per trovare i tuoi preferiti su tutti i dispositivi</translation> <translation id="8116925261070264013">Con audio disattivato</translation> <translation id="813082847718468539">Visualizza informazioni sul sito</translation> +<translation id="8156139159503939589">In quali lingue sai leggere?</translation> <translation id="8168435359814927499">Contenuti</translation> <translation id="8186512483418048923"><ph name="FILES" /> file rimanenti</translation> <translation id="8190358571722158785">1 giorno rimanente</translation> @@ -919,6 +925,7 @@ <translation id="8260126382462817229">Prova ad accedere nuovamente</translation> <translation id="8261506727792406068">Elimina</translation> <translation id="8266862848225348053">Percorso di download</translation> +<translation id="8274165955039650276">Visualizza i download</translation> <translation id="8283853025636624853">Sincronizzazione con <ph name="SYNC_ACCOUNT_USER_NAME" /> in corso</translation> <translation id="8310344678080805313">Schede standard</translation> <translation id="8313455859591948645">Modifica la pagina iniziale</translation> @@ -935,6 +942,7 @@ <translation id="8441146129660941386">Posiziona indietro</translation> <translation id="8445448999790540984">Impossibile esportare le password</translation> <translation id="8447861592752582886">Revoca autorizzazione dispositivo</translation> +<translation id="8477071352266846533">Sincronizzazione di <ph name="SYNC_ACCOUNT_USER_NAME" /> disattivata</translation> <translation id="8487700953926739672">Disponibile offline</translation> <translation id="8489271220582375723">Apri la pagina Cronologia</translation> <translation id="8493948351860045254">Libera spazio</translation> @@ -974,6 +982,7 @@ <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> <translation id="8730621377337864115">Fine</translation> <translation id="8748850008226585750">Contenuti nascosti</translation> +<translation id="8751914237388039244">Seleziona un'immagine</translation> <translation id="8788968922598763114">Riapri l'ultima scheda chiusa</translation> <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>
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 dfb2b46..2956a57 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">הרכיבים של Chrome אינם תואמים זה לזה. ייתכן ש-Chrome מבצע שדרוג, נסה שוב בעוד כמה דקות. אם הבעיה נמשכת, נסה להסיר את Chrome ולהתקין אותו מחדש.</translation> <translation id="1446450296470737166">התר שליטה מלאה על מכשירי MIDI</translation> <translation id="145097072038377568">כבוי בהגדרות Android</translation> -<translation id="1455941322673536744">מילוי אוטומטי ותשלומים</translation> <translation id="1477626028522505441">הורדת <ph name="FILE_NAME" /> נכשלה עקב בעיות בשרת.</translation> <translation id="1506061864768559482">מנוע חיפוש</translation> <translation id="1513352483775369820">סימניות והיסטוריית אתרים</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 698de52d..17eae644 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb
@@ -24,6 +24,7 @@ <translation id="1157102636231978136">閲覧データとアクティビティ(Google アカウントに同期)</translation> <translation id="116280672541001035">使用量</translation> <translation id="1172593791219290334">起動ページ</translation> +<translation id="1175310183703641346">ブックマーク、履歴、パスワードなどの設定は Google アカウントと同期されなくなります</translation> <translation id="1178581264944972037">一時停止</translation> <translation id="1181037720776840403">削除</translation> <translation id="1197267115302279827">ブックマークを移動</translation> @@ -48,6 +49,7 @@ <translation id="129553762522093515">最近閉じたタブ</translation> <translation id="1326317727527857210">他の端末と同じタブを使用するには、Chrome にログインします。</translation> <translation id="1332501820983677155">Google Chrome 機能のショートカット</translation> +<translation id="1360432990279830238">ログアウトして同期をオフにしますか?</translation> <translation id="136248372334525878">ページをプリロードすると、読み込みが速くなり、オフラインでの閲覧も可能になります</translation> <translation id="1369915414381695676">サイト <ph name="SITE_NAME" /> を追加しました</translation> <translation id="1373696734384179344">選択したコンテンツをダウンロードするにはメモリが不足しています。</translation> @@ -69,7 +71,6 @@ <translation id="1445680696957526815">Chrome のコンポーネント同士に互換性がありません。Chrome が更新中の可能性があります。しばらくしてからもう一度お試しください。問題が続く場合は、Chrome をいったんアンインストールし、再インストールしてみてください。</translation> <translation id="1446450296470737166">MIDI機器のフルコントロールを許可</translation> <translation id="145097072038377568">Android の設定で無効</translation> -<translation id="1455941322673536744">自動入力とお支払い</translation> <translation id="1477626028522505441">サーバーで問題が発生したため、<ph name="FILE_NAME" /> をダウンロードできませんでした。</translation> <translation id="1506061864768559482">検索エンジン</translation> <translation id="1513352483775369820">ブックマークとウェブ履歴</translation> @@ -159,6 +160,7 @@ <translation id="2131665479022868825"><ph name="DATA" /> 削減しました</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> を閉じました</translation> <translation id="2139186145475833000">ホーム画面に追加</translation> +<translation id="2142289305367051020">お気に入りのページがここに表示されます</translation> <translation id="2146738493024040262">プレビュー アプリを開く</translation> <translation id="2148716181193084225">今日</translation> <translation id="2154484045852737596">カードを編集</translation> @@ -349,6 +351,7 @@ <translation id="3822502789641063741">サイトのストレージを消去しますか?</translation> <translation id="385051799172605136">戻る</translation> <translation id="3859306556332390985">前方にシーク再生</translation> +<translation id="3868004864571585162">Cookie、メディア ライセンス、サイトデータ</translation> <translation id="3894427358181296146">フォルダの追加</translation> <translation id="3895926599014793903">強制的にズームを有効にする</translation> <translation id="3927692899758076493">Sans Serif</translation> @@ -811,6 +814,7 @@ <translation id="7413229368719586778">開始日: <ph name="DATE" /></translation> <translation id="7423098979219808738">最初に確認する</translation> <translation id="7423538860840206698">クリップボードの読み取りがブロックされています</translation> +<translation id="7431991332293347422">検索などのカスタマイズを目的とした閲覧履歴の使用方法を設定</translation> <translation id="7437998757836447326">Chromeからログアウト</translation> <translation id="7444811645081526538">その他のカテゴリ</translation> <translation id="7445411102860286510">ミュートされた動画の自動再生をサイトに許可する(推奨)</translation> @@ -879,6 +883,7 @@ <translation id="7963646190083259054">ベンダー:</translation> <translation id="7981313251711023384">ページをプリロードして閲覧と検索をすばやく行えるようにする</translation> <translation id="79859296434321399">拡張現実(AR)コンテンツを表示するには ARCore をインストールしてください</translation> +<translation id="7986741934819883144">連絡先の選択</translation> <translation id="7987073022710626672">Chrome 利用規約</translation> <translation id="7987764905897278458">Google の最先端技術をさらに活用</translation> <translation id="7998918019931843664">閉じたタブを開く</translation> @@ -907,6 +912,7 @@ <translation id="8109613176066109935">お使いのどの端末でも同じブックマークを使用するには、同期を有効にします</translation> <translation id="8116925261070264013">ミュート中</translation> <translation id="813082847718468539">サイト情報を表示</translation> +<translation id="8156139159503939589">どの言語で閲覧しますか?</translation> <translation id="8168435359814927499">コンテンツ</translation> <translation id="8186512483418048923">残り <ph name="FILES" /> ファイル</translation> <translation id="8190358571722158785">残り 1 日</translation> @@ -919,6 +925,7 @@ <translation id="8260126382462817229">もう一度ログインしてみてください</translation> <translation id="8261506727792406068">削除</translation> <translation id="8266862848225348053">ダウンロード場所</translation> +<translation id="8274165955039650276">ダウンロードを表示</translation> <translation id="8283853025636624853"><ph name="SYNC_ACCOUNT_USER_NAME" /> に同期しています</translation> <translation id="8310344678080805313">標準のタブ</translation> <translation id="8313455859591948645">起動ページの編集</translation> @@ -935,6 +942,7 @@ <translation id="8441146129660941386">後方にシーク再生</translation> <translation id="8445448999790540984">パスワードをエクスポートできません</translation> <translation id="8447861592752582886">端末の許可を取り消します</translation> +<translation id="8477071352266846533"><ph name="SYNC_ACCOUNT_USER_NAME" /> の同期はオフです</translation> <translation id="8487700953926739672">オフラインでの利用</translation> <translation id="8489271220582375723">履歴ページを開く</translation> <translation id="8493948351860045254">容量を空ける</translation> @@ -974,6 +982,7 @@ <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> <translation id="8730621377337864115">完了</translation> <translation id="8748850008226585750">メッセージは非表示です</translation> +<translation id="8751914237388039244">画像を選択</translation> <translation id="8788968922598763114">最後に閉じたタブを開く</translation> <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>
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 8a87fc5..d70c042 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Chrome의 구성요소가 서로 호환되지 않습니다. Chrome이 업그레이드 중일 수 있으니 몇 분 후에 다시 시도하세요. 문제가 계속되면 Chrome을 제거하고 다시 설치해 보세요.</translation> <translation id="1446450296470737166">MIDI 기기의 전체 제어 허용</translation> <translation id="145097072038377568">Android 설정에서 사용이 중지됨</translation> -<translation id="1455941322673536744">자동 완성 및 결제</translation> <translation id="1477626028522505441">서버 문제로 인해 <ph name="FILE_NAME" />을(를) 다운로드할 수 없습니다.</translation> <translation id="1506061864768559482">검색엔진</translation> <translation id="1513352483775369820">북마크 및 방문 기록</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 452140d..9bcac96b 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb
@@ -24,6 +24,7 @@ <translation id="1157102636231978136">Su „Google“ paskyra sinchronizuojami jūsų naršymo duomenys ir veikla</translation> <translation id="116280672541001035">Naudojama</translation> <translation id="1172593791219290334">Paleidimo puslapis</translation> +<translation id="1175310183703641346">Žymės, istorija, slaptažodžiai ir kiti nustatymai nebebus sinchronizuojami su „Google“ paskyra</translation> <translation id="1178581264944972037">Pristabdyti</translation> <translation id="1181037720776840403">Pašalinti</translation> <translation id="1197267115302279827">Perkelti žymes</translation> @@ -48,6 +49,7 @@ <translation id="129553762522093515">Neseniai uždarytas</translation> <translation id="1326317727527857210">Prisijunkite prie „Chrome“, kad pasiektumėte skirtukus iš kitų įrenginių.</translation> <translation id="1332501820983677155">„Google Chrome“ funkcijų spartieji klavišai</translation> +<translation id="1360432990279830238">Atsijungti ir išjungti sinchronizavimą?</translation> <translation id="136248372334525878">Iš anksto įkeliami puslapiai, kad įkėlimo procesas vyktų greičiau ir būtų galima skaityti neprisijungus</translation> <translation id="1369915414381695676">Pridėta svetainė <ph name="SITE_NAME" /></translation> <translation id="1373696734384179344">Nepakanka atminties pasirinktam turiniui atsisiųsti.</translation> @@ -69,7 +71,6 @@ <translation id="1445680696957526815">„Chrome“ komponentai nesuderinami tarpusavyje. „Chrome“ tikriausiai naujovinama, netrukus bandykite dar kartą. Jei problema išlieka, pabandykite pašalinti ir vėl įdiegti „Chrome“.</translation> <translation id="1446450296470737166">Leisti visiškai valdyti MIDI įr.</translation> <translation id="145097072038377568">Išjungta „Android“ nustatymuose</translation> -<translation id="1455941322673536744">Automat. pildymas ir mokėjimai</translation> <translation id="1477626028522505441">Nepavyko atsisiųsti „<ph name="FILE_NAME" />“ dėl serverio problemų.</translation> <translation id="1506061864768559482">Paieškos variklis</translation> <translation id="1513352483775369820">Žymių ir žiniatinklio istorija</translation> @@ -159,6 +160,7 @@ <translation id="2131665479022868825">Išsaugota: <ph name="DATA" /></translation> <translation id="213279576345780926">„<ph name="TAB_TITLE" />“ uždaryta</translation> <translation id="2139186145475833000">Pridėti prie pagr. ekrano</translation> +<translation id="2142289305367051020">Čia pateikti jūsų mėgstamiausi puslapiai</translation> <translation id="2146738493024040262">Atidaryti akimirksniu įkeliamą programėlę</translation> <translation id="2148716181193084225">Šiandien</translation> <translation id="2154484045852737596">Kortelės informacijos redagavimas</translation> @@ -349,6 +351,7 @@ <translation id="3822502789641063741">Išvalyti svet. saugyklą?</translation> <translation id="385051799172605136">Grįžti</translation> <translation id="3859306556332390985">Eiti pirmyn</translation> +<translation id="3868004864571585162">Slapukai, medijos licencijos ir svetainių duomenys</translation> <translation id="3894427358181296146">Aplanko pridėjimas</translation> <translation id="3895926599014793903">Priverstinai įgalinti mastelio keitimą</translation> <translation id="3927692899758076493">Be užraitų</translation> @@ -811,6 +814,7 @@ <translation id="7413229368719586778">Pradžios data: <ph name="DATE" /></translation> <translation id="7423098979219808738">Pirmiausia paklausti</translation> <translation id="7423538860840206698">Neleidžiama skaityti iškarpinės</translation> +<translation id="7431991332293347422">Naršymo istorijos naudojimo paieškai ir kitoms funkcijoms suasmeninti valdymas</translation> <translation id="7437998757836447326">Atsijungimas nuo „Chrome“</translation> <translation id="7444811645081526538">Daugiau kategorijų</translation> <translation id="7445411102860286510">Leisti svetainėms automatiškai leisti nutildytus vaizdo įrašus (rekomenduojama)</translation> @@ -879,6 +883,7 @@ <translation id="7963646190083259054">Paslaugos teikėjas:</translation> <translation id="7981313251711023384">Iš anksto įkelti puslapius, kad naršymo ir paieškos procesai vyktų greičiau</translation> <translation id="79859296434321399">Norėdami peržiūrėti išplėstosios realybės turinį įdiekite „ARCore“</translation> +<translation id="7986741934819883144">Pasirinkite kontaktą</translation> <translation id="7987073022710626672">„Chrome“ paslaugų teikimo sąlygos</translation> <translation id="7987764905897278458">Gaukite daugiau „Google“ išmaniųjų funkcijų</translation> <translation id="7998918019931843664">Iš naujo atidarykite uždarytą skirtuko lapą</translation> @@ -907,6 +912,7 @@ <translation id="8109613176066109935">Jei norite pasiekti žymes visuose įrenginiuose, įjunkite sinchronizavimą</translation> <translation id="8116925261070264013">Išjungta</translation> <translation id="813082847718468539">Žiūrėti svetainės informaciją</translation> +<translation id="8156139159503939589">Kokiomis kalbomis skaitote?</translation> <translation id="8168435359814927499">Turinys</translation> <translation id="8186512483418048923">Liko failų: <ph name="FILES" /></translation> <translation id="8190358571722158785">Liko 1 d.</translation> @@ -919,6 +925,7 @@ <translation id="8260126382462817229">Bandykite prisijungti dar kartą</translation> <translation id="8261506727792406068">Ištrinti</translation> <translation id="8266862848225348053">Atsisiuntimo vieta</translation> +<translation id="8274165955039650276">Peržiūrėti atsisiuntimus</translation> <translation id="8283853025636624853">Sinchronizuojama su <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8310344678080805313">Įprasti skirtukai</translation> <translation id="8313455859591948645">Paleidimo puslapio redagavimas</translation> @@ -935,6 +942,7 @@ <translation id="8441146129660941386">Ieškoti einant atgal</translation> <translation id="8445448999790540984">Nepavyksta eksportuoti slaptažodžių</translation> <translation id="8447861592752582886">Anuliuoti įrenginio leidimą</translation> +<translation id="8477071352266846533">Sinchronizavimas su <ph name="SYNC_ACCOUNT_USER_NAME" /> išjungtas</translation> <translation id="8487700953926739672">Pasiekiama neprisijungus</translation> <translation id="8489271220582375723">Atidaryti istorijos puslapį</translation> <translation id="8493948351860045254">Atlaisvinti vietos</translation> @@ -974,6 +982,7 @@ <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> <translation id="8730621377337864115">Atlikta</translation> <translation id="8748850008226585750">Turinys paslėptas</translation> +<translation id="8751914237388039244">Pasirinkti vaizdą</translation> <translation id="8788968922598763114">Iš naujo atidaryti paskutinį uždarytą skirtuką</translation> <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>
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 2ae37b7..530a41bf 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Chrome komponenti nav savstarpēji saderīgi. Iespējams, notiek pārlūka Chrome jaunināšana. Lūdzu, pēc dažām minūtēm mēģiniet vēlreiz. Ja problēma joprojām pastāv, atinstalējiet un atkārtoti instalējiet pārlūku Chrome.</translation> <translation id="1446450296470737166">Pilnīga MIDI ierīču pārvaldība</translation> <translation id="145097072038377568">Izslēgts Android iestatījumos</translation> -<translation id="1455941322673536744">Automātiskā aizpilde, maksājumi</translation> <translation id="1477626028522505441">Neizdevās lejupielādēt failu <ph name="FILE_NAME" />, jo radās servera problēmas.</translation> <translation id="1506061864768559482">Meklētājprogramma</translation> <translation id="1513352483775369820">Grāmatzīmes un tīmekļa vēsture</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 7e1ec1c..17dba49d 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Onderdelen van Chrome zijn incompatibel met elkaar. Chrome wordt mogelijk geüpgraded. Wacht enkele minuten. Als het probleem blijft optreden, verwijder je Chrome en installeer je het programma opnieuw.</translation> <translation id="1446450296470737166">Volledig beheer van MIDI-apparaten toestaan</translation> <translation id="145097072038377568">Uitgeschakeld in Android-instellingen</translation> -<translation id="1455941322673536744">Autom. aanvullen en betalingen</translation> <translation id="1477626028522505441">Downloaden van <ph name="FILE_NAME" /> is mislukt door serverproblemen.</translation> <translation id="1506061864768559482">Zoekmachine</translation> <translation id="1513352483775369820">Bladwijzers en webgeschiedenis</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 fd15458c..e79e8023 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_no.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_no.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Komponentene i Chrome er ikke kompatible med hverandre. Det kan hende at Chrome er i ferd med å oppdateres. Prøv igjen om noen minutter. Hvis problemet vedvarer, kan du prøve å avinstallere Chrome og så installere den på nytt.</translation> <translation id="1446450296470737166">Full kontroll over MIDI-enheter</translation> <translation id="145097072038377568">Slått av i Android-innstillingene</translation> -<translation id="1455941322673536744">Autofyll og betaling</translation> <translation id="1477626028522505441">Nedlastingen av <ph name="FILE_NAME" /> ble avbrutt på grunn av tjenerproblemer.</translation> <translation id="1506061864768559482">Søkemotor</translation> <translation id="1513352483775369820">Bokmerker og nettlogg</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 6243ba9..ef20eb2 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb
@@ -24,6 +24,7 @@ <translation id="1157102636231978136">Dane przeglądania i aktywność związana z przeglądaniem, które są synchronizowane z Twoim kontem Google</translation> <translation id="116280672541001035">Użyto</translation> <translation id="1172593791219290334">Strona początkowa</translation> +<translation id="1175310183703641346">Twoje zakładki, historia, hasła i inne ustawienia przestaną być synchronizowane z Twoim kontem Google</translation> <translation id="1178581264944972037">Wstrzymaj</translation> <translation id="1181037720776840403">Usuń</translation> <translation id="1197267115302279827">Przenieś zakładki</translation> @@ -48,6 +49,7 @@ <translation id="129553762522093515">Ostatnio zamknięte</translation> <translation id="1326317727527857210">Aby korzystać z kart ze swoich innych urządzeń, zaloguj się w Chrome.</translation> <translation id="1332501820983677155">Skróty do funkcji Google Chrome</translation> +<translation id="1360432990279830238">Wylogować i wyłączyć synchronizację?</translation> <translation id="136248372334525878">Ładuj wstępnie strony, by szybciej się wczytywały i były dostępne do czytania w trybie offline</translation> <translation id="1369915414381695676">Strona <ph name="SITE_NAME" /> została dodana</translation> <translation id="1373696734384179344">Za mało pamięci, by pobrać te treści.</translation> @@ -69,7 +71,6 @@ <translation id="1445680696957526815">Komponenty Chrome są ze sobą niezgodne. Być może przeglądarka się uaktualnia. Spróbuj ponownie za kilka minut. Jeśli problem nie ustąpi, odinstaluj i ponownie zainstaluj Chrome.</translation> <translation id="1446450296470737166">Pełne sterowanie urządzeniami MIDI</translation> <translation id="145097072038377568">Wyłączone w ustawieniach Androida</translation> -<translation id="1455941322673536744">Autouzupełnianie i płatności</translation> <translation id="1477626028522505441">Nie udało się pobrać pliku <ph name="FILE_NAME" /> z powodu problemów z serwerem.</translation> <translation id="1506061864768559482">Wyszukiwarka</translation> <translation id="1513352483775369820">Zakładki i historia online</translation> @@ -159,6 +160,7 @@ <translation id="2131665479022868825">Zaoszczędzono <ph name="DATA" /></translation> <translation id="213279576345780926">Zamknięto <ph name="TAB_TITLE" /></translation> <translation id="2139186145475833000">Dodaj do ekranu głównego</translation> +<translation id="2142289305367051020">Tu są Twoje ulubione strony</translation> <translation id="2146738493024040262">Otwórz aplikację błyskawiczną</translation> <translation id="2148716181193084225">Dzisiaj</translation> <translation id="2154484045852737596">Edytowanie karty</translation> @@ -349,6 +351,7 @@ <translation id="3822502789641063741">Wyczyścić dane witryn?</translation> <translation id="385051799172605136">Wstecz</translation> <translation id="3859306556332390985">Przewiń do przodu</translation> +<translation id="3868004864571585162">Pliki cookie, licencje multimediów i dane witryn</translation> <translation id="3894427358181296146">Dodaj folder</translation> <translation id="3895926599014793903">Wymuś powiększenie</translation> <translation id="3927692899758076493">Bezszeryfowa</translation> @@ -720,7 +723,7 @@ <translation id="6656545060687952787">Aby wyszukać urządzenia, Chrome potrzebuje dostępu do lokalizacji. <ph name="BEGIN_LINK" />Zwiększ uprawnienia<ph name="END_LINK" /></translation> <translation id="6657585470893396449">Hasło</translation> <translation id="6659594942844771486">Tab</translation> -<translation id="666268767214822976">Gdy piszesz na pasku adresu, korzystaj z usługi przewidywania, by wyświetlać podobne zapytania i adresy popularnych stron</translation> +<translation id="666268767214822976">Gdy piszesz na pasku adresu, korzystaj z podpowiedzi, by wyświetlać podobne zapytania i adresy popularnych stron</translation> <translation id="666731172850799929">Otwórz w <ph name="APP_NAME" /></translation> <translation id="666981079809192359">Informacje na temat ochrony prywatności w Chrome</translation> <translation id="6697492270171225480">Gdy nie można odnaleźć strony, pokazuj sugestie podobnych stron</translation> @@ -811,6 +814,7 @@ <translation id="7413229368719586778">Data rozpoczęcia: <ph name="DATE" /></translation> <translation id="7423098979219808738">Najpierw zapytaj</translation> <translation id="7423538860840206698">Zablokowano odczytywanie schowka</translation> +<translation id="7431991332293347422">Zarządzaj personalizacją wyszukiwarki i innych funkcji na podstawie historii przeglądania</translation> <translation id="7437998757836447326">Wyloguj się z Chrome</translation> <translation id="7444811645081526538">Więcej kategorii</translation> <translation id="7445411102860286510">Zezwalaj witrynom na automatyczne odtwarzanie wyciszonych filmów (zalecane)</translation> @@ -879,6 +883,7 @@ <translation id="7963646190083259054">Dostawca:</translation> <translation id="7981313251711023384">Ładuj wstępnie strony, by przyspieszyć przeglądanie i wyszukiwanie</translation> <translation id="79859296434321399">Aby oglądać treści rzeczywistości rozszerzonej, zainstaluj ARCore</translation> +<translation id="7986741934819883144">Wybierz kontakt</translation> <translation id="7987073022710626672">Warunki korzystania z Chrome</translation> <translation id="7987764905897278458">Więcej inteligentnych rozwiązań Google</translation> <translation id="7998918019931843664">Otwórz ponownie zamkniętą kartę</translation> @@ -907,6 +912,7 @@ <translation id="8109613176066109935">Aby korzystać ze swoich zakładek na wszystkich urządzeniach, włącz synchronizację</translation> <translation id="8116925261070264013">Wyciszone</translation> <translation id="813082847718468539">Wyświetl informacje o witrynie</translation> +<translation id="8156139159503939589">W jakich językach umiesz czytać?</translation> <translation id="8168435359814927499">Treści</translation> <translation id="8186512483418048923">Pozostałe pliki: <ph name="FILES" /></translation> <translation id="8190358571722158785">Pozostał dzień</translation> @@ -919,6 +925,7 @@ <translation id="8260126382462817229">Spróbuj zalogować się jeszcze raz</translation> <translation id="8261506727792406068">Usuń</translation> <translation id="8266862848225348053">Miejsce zapisywania pobranych plików</translation> +<translation id="8274165955039650276">Zobacz pobrane</translation> <translation id="8283853025636624853">Synchronizowanie z kontem <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8310344678080805313">Karty standardowe</translation> <translation id="8313455859591948645">Zmiana strony początkowej</translation> @@ -935,6 +942,7 @@ <translation id="8441146129660941386">Przewiń do tyłu</translation> <translation id="8445448999790540984">Nie można wyeksportować haseł</translation> <translation id="8447861592752582886">Cofnij zgodę na dostęp do urządzenia</translation> +<translation id="8477071352266846533">Synchronizacja z kontem <ph name="SYNC_ACCOUNT_USER_NAME" /> wyłączona</translation> <translation id="8487700953926739672">Dostępny offline</translation> <translation id="8489271220582375723">Otwórz stronę historii</translation> <translation id="8493948351860045254">Zwolnij miejsce</translation> @@ -974,6 +982,7 @@ <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> <translation id="8730621377337864115">Gotowe</translation> <translation id="8748850008226585750">Treści ukryte</translation> +<translation id="8751914237388039244">Wybierz obraz</translation> <translation id="8788968922598763114">Ponownie otwórz ostatnio zamknięte karty</translation> <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>
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 79ea6f4..541c831 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
@@ -24,6 +24,7 @@ <translation id="1157102636231978136">Seus dados e atividades de navegação, sincronizados com sua Conta do Google</translation> <translation id="116280672541001035">Dados usados</translation> <translation id="1172593791219290334">Página de inicialização</translation> +<translation id="1175310183703641346">Seus favoritos, histórico, senhas e outras configurações não serão mais sincronizados com sua Conta do Google</translation> <translation id="1178581264944972037">Pausar</translation> <translation id="1181037720776840403">Remover</translation> <translation id="1197267115302279827">Mover favoritos</translation> @@ -48,6 +49,7 @@ <translation id="129553762522093515">Recentemente fechadas</translation> <translation id="1326317727527857210">Para ver as guias dos seus outros dispositivos, faça login no Chrome.</translation> <translation id="1332501820983677155">Atalhos de recursos do Google Chrome</translation> +<translation id="1360432990279830238">Sair e desativar a sincronização?</translation> <translation id="136248372334525878">Pré-carregue páginas para um carregamento mais rápido e leitura off-line</translation> <translation id="1369915414381695676">Site <ph name="SITE_NAME" /> adicionado</translation> <translation id="1373696734384179344">Memória insuficiente para fazer o download do conteúdo selecionado.</translation> @@ -69,7 +71,6 @@ <translation id="1445680696957526815">Os componentes do Chrome são incompatíveis entre si. O Chrome pode estar fazendo um upgrade. Tente novamente em alguns minutos. Se o problema persistir, tente desinstalar e reinstalar o Chrome.</translation> <translation id="1446450296470737166">Permitir controle total de dispositivos MIDI</translation> <translation id="145097072038377568">Desativada nas configurações do Android</translation> -<translation id="1455941322673536744">Autopreenchimento e pagamentos</translation> <translation id="1477626028522505441">Falha no download do arquivo <ph name="FILE_NAME" /> devido a problemas de servidor.</translation> <translation id="1506061864768559482">Mecanismo de pesquisa</translation> <translation id="1513352483775369820">Favoritos e histórico da Web</translation> @@ -159,6 +160,7 @@ <translation id="2131665479022868825"><ph name="DATA" /> salvo(s)</translation> <translation id="213279576345780926"><ph name="TAB_TITLE" /> fechada</translation> <translation id="2139186145475833000">Adicionar à tela inicial</translation> +<translation id="2142289305367051020">Suas páginas favoritas estão aqui</translation> <translation id="2146738493024040262">Abrir Instant App</translation> <translation id="2148716181193084225">Hoje</translation> <translation id="2154484045852737596">Editar cartão</translation> @@ -349,6 +351,7 @@ <translation id="3822502789641063741">Limpar armaz. de sites?</translation> <translation id="385051799172605136">Voltar</translation> <translation id="3859306556332390985">Avançar</translation> +<translation id="3868004864571585162">Cookies, licenças de mídia e dados do site</translation> <translation id="3894427358181296146">Adicionar pasta</translation> <translation id="3895926599014793903">Forçar zoom</translation> <translation id="3927692899758076493">Sans Serif</translation> @@ -811,6 +814,7 @@ <translation id="7413229368719586778">Data de início: <ph name="DATE" /></translation> <translation id="7423098979219808738">Perguntar primeiro</translation> <translation id="7423538860840206698">Leitura da área de transferência bloqueada</translation> +<translation id="7431991332293347422">Controlar como o histórico de navegação é usado para personalizar a Pesquisa e muito mais</translation> <translation id="7437998757836447326">Sair do Google Chrome</translation> <translation id="7444811645081526538">Mais categorias</translation> <translation id="7445411102860286510">Permite que os sites reproduzam automaticamente vídeos silenciados (recomendado)</translation> @@ -879,6 +883,7 @@ <translation id="7963646190083259054">Fornecedor:</translation> <translation id="7981313251711023384">Pré-carregar páginas para possibilitar navegação e pesquisa mais rápidas</translation> <translation id="79859296434321399">Para ver conteúdo de realidade aumentada, instale o ARCore</translation> +<translation id="7986741934819883144">Selecione um contato</translation> <translation id="7987073022710626672">Termos de Serviço do Chrome</translation> <translation id="7987764905897278458">Aproveite mais a tecnologia do Google</translation> <translation id="7998918019931843664">Reabrir guia fechada</translation> @@ -907,6 +912,7 @@ <translation id="8109613176066109935">Para ter seus favoritos em todos os seus dispositivos, ative a sincronização</translation> <translation id="8116925261070264013">Com som desativado</translation> <translation id="813082847718468539">Visualizar informações do site</translation> +<translation id="8156139159503939589">Quais idiomas você lê?</translation> <translation id="8168435359814927499">Conteúdo</translation> <translation id="8186512483418048923"><ph name="FILES" /> arquivos restantes</translation> <translation id="8190358571722158785">Um dia restante</translation> @@ -919,6 +925,7 @@ <translation id="8260126382462817229">Tente fazer login novamente</translation> <translation id="8261506727792406068">Excluir</translation> <translation id="8266862848225348053">Local de download</translation> +<translation id="8274165955039650276">Ver downloads</translation> <translation id="8283853025636624853">Sincronizando com <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8310344678080805313">Guias padrão</translation> <translation id="8313455859591948645">Editar página de inicialização</translation> @@ -935,6 +942,7 @@ <translation id="8441146129660941386">Retroceder</translation> <translation id="8445448999790540984">Não é possível exportar senhas</translation> <translation id="8447861592752582886">Revogar permissão do dispositivo</translation> +<translation id="8477071352266846533">Sincronização desativada para <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8487700953926739672">Disponível off-line</translation> <translation id="8489271220582375723">Abrir a página Histórico</translation> <translation id="8493948351860045254">Liberar espaço</translation> @@ -973,6 +981,7 @@ <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> <translation id="8730621377337864115">Concluído</translation> <translation id="8748850008226585750">Conteúdo oculto</translation> +<translation id="8751914237388039244">Selecione uma imagem</translation> <translation id="8788968922598763114">Reabrir a última guia fechada</translation> <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>
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 5691584..1e0c73791 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
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Os componentes do Chrome são incompatíveis entre si. O Chrome pode estar a ser atualizado, tente novamente dentro de alguns minutos. Se o problema continuar, experimente desinstalar e reinstalar o Chrome.</translation> <translation id="1446450296470737166">Perm. controlo total dispo. MIDI</translation> <translation id="145097072038377568">Desativada nas Definições do Android</translation> -<translation id="1455941322673536744">Preenchimento auto. e pagamentos</translation> <translation id="1477626028522505441">A transferência de <ph name="FILE_NAME" /> falhou devido a problemas do servidor.</translation> <translation id="1506061864768559482">Motor de pesquisa</translation> <translation id="1513352483775369820">Marcadores e histórico da Web</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 77ac949..c31923c7 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Componentele Chrome nu sunt compatibile între ele. Chrome poate fi în curs de actualizare. Încearcă din nou peste câteva minute. Dacă problema persistă, încearcă să dezinstalezi și să reinstalezi Chrome.</translation> <translation id="1446450296470737166">Control complet dispozitive MIDI</translation> <translation id="145097072038377568">Dezactivată din Setări Android</translation> -<translation id="1455941322673536744">Completarea automată și plățile</translation> <translation id="1477626028522505441">Descărcarea fișierului <ph name="FILE_NAME" /> nu a reușit din cauza unor probleme de server.</translation> <translation id="1506061864768559482">Motor de căutare</translation> <translation id="1513352483775369820">Marcaje și istoric web</translation> @@ -450,7 +449,7 @@ <translation id="4660011489602794167">Afișează tastatura</translation> <translation id="4663756553811254707">S-au șters <ph name="NUMBER_OF_BOOKMARKS" /> (de) marcaje</translation> <translation id="4665282149850138822">Site-ul <ph name="NAME" /> a fost adăugat pe ecranul de pornire</translation> -<translation id="4684427112815847243">Sincronizare totală</translation> +<translation id="4684427112815847243">Sincronizează tot</translation> <translation id="4695891336199304370">{SHIPPING_OPTIONS,plural, =1{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 și încă <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}few{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 și încă <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}other{<ph name="SHIPPING_OPTION_PREVIEW" />\u2026 și încă <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />}}</translation> <translation id="4698034686595694889">Vezi offline în <ph name="APP_NAME" /></translation> <translation id="4698413471314543145">Lipsește o funcție esențială pentru a rula Chrome; fie instalarea Chrome este incompletă, fie nu este compatibilă cu această versiune de Android.</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 8e1ffd24..d2fe945 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Компоненты Chrome несовместимы друг с другом. Возможно, выполняется обновление. Повторите попытку через несколько минут. Если проблема не исчезнет, переустановите браузер.</translation> <translation id="1446450296470737166">Полный доступ к управлению MIDI-устройствами</translation> <translation id="145097072038377568">Отключено в настройках Android</translation> -<translation id="1455941322673536744">Автозаполнение и платежи</translation> <translation id="1477626028522505441">Не удалось скачать файл <ph name="FILE_NAME" /> из-за неполадок на сервере.</translation> <translation id="1506061864768559482">Поисковая система</translation> <translation id="1513352483775369820">Закладки и история поиска</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 b2ec5f6..d4559972 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb
@@ -24,6 +24,7 @@ <translation id="1157102636231978136">Dáta prehliadania a aktivita sa synchronizujú do vášho účtu Google</translation> <translation id="116280672541001035">Použité</translation> <translation id="1172593791219290334">Stránka pri spustení</translation> +<translation id="1175310183703641346">Záložky, história, heslá a ďalší obsah sa už nebudú synchronizovať do vášho účtu Google</translation> <translation id="1178581264944972037">Pozastaviť</translation> <translation id="1181037720776840403">Odstrániť</translation> <translation id="1197267115302279827">Presunúť záložky</translation> @@ -48,6 +49,7 @@ <translation id="129553762522093515">Naposledy zatvorené</translation> <translation id="1326317727527857210">Ak chcete získať karty z ďalších svojich zariadení, prihláste sa do Chromu.</translation> <translation id="1332501820983677155">Skratky pre funkcie prehliadača Google Chrome</translation> +<translation id="1360432990279830238">Odhlásiť sa a vypnúť synchronizáciu?</translation> <translation id="136248372334525878">Predbežné načítanie urýchľujúce načítanie a čítanie offline</translation> <translation id="1369915414381695676">Boli pridané stránky <ph name="SITE_NAME" /></translation> <translation id="1373696734384179344">Vybraný obsah nie je možné stiahnuť z dôvodu nedostatku pamäte</translation> @@ -69,7 +71,6 @@ <translation id="1445680696957526815">Komponenty prehliadača Chrome sú vzájomne nekompatibilné. Chrome možno inštaluje inováciu. Skúste to znova o niekoľko minút. Ak problém pretrváva, skúste prehliadač Chrome odinštalovať a znovu nainštalovať.</translation> <translation id="1446450296470737166">Povoliť úplné ovlád. zar. MIDI</translation> <translation id="145097072038377568">Vypnuté v nastaveniach Androidu</translation> -<translation id="1455941322673536744">Automatické dopĺňanie a platby</translation> <translation id="1477626028522505441">Súbor <ph name="FILE_NAME" /> sa nepodarilo stiahnuť z dôvodu problémov so serverom.</translation> <translation id="1506061864768559482">Vyhľadávač</translation> <translation id="1513352483775369820">Záložky a webová história</translation> @@ -159,6 +160,7 @@ <translation id="2131665479022868825">Uložené: <ph name="DATA" /></translation> <translation id="213279576345780926">Karta <ph name="TAB_TITLE" /> je zavretá</translation> <translation id="2139186145475833000">Pridať na plochu</translation> +<translation id="2142289305367051020">Tu nájdete svoje obľúbené stránky</translation> <translation id="2146738493024040262">Otvoriť okamžitú aplikáciu</translation> <translation id="2148716181193084225">Dnes</translation> <translation id="2154484045852737596">Úprava karty</translation> @@ -349,6 +351,7 @@ <translation id="3822502789641063741">Vymazať úložisko webu?</translation> <translation id="385051799172605136">Naspäť</translation> <translation id="3859306556332390985">Pretočiť dopredu</translation> +<translation id="3868004864571585162">Súbory cookie, licencie médií a údaje webov</translation> <translation id="3894427358181296146">Pridanie priečinka</translation> <translation id="3895926599014793903">Vynútiť povolenie priblíženia</translation> <translation id="3927692899758076493">Bezpätkové</translation> @@ -811,6 +814,7 @@ <translation id="7413229368719586778">Dátum začatia: <ph name="DATE" /></translation> <translation id="7423098979219808738">Najprv sa spýtať</translation> <translation id="7423538860840206698">Blokovať čítanie schránky</translation> +<translation id="7431991332293347422">Ovládajte, ako sa história prehliadania používa na prispôsobenie Vyhľadávania a ďalšieho obsahu</translation> <translation id="7437998757836447326">Odhlásenie z prehliadača Chrome</translation> <translation id="7444811645081526538">Ďalšie kategórie</translation> <translation id="7445411102860286510">Povoliť webom automaticky prehrávať stlmené videá (odporúča sa)</translation> @@ -879,6 +883,7 @@ <translation id="7963646190083259054">Dodávateľ:</translation> <translation id="7981313251711023384">Vopred načítavať stránky na zrýchlenie prehliadania a vyhľadávania</translation> <translation id="79859296434321399">Ak chcete zobraziť obsah v rozšírenej realite, nainštalujte si ARCore</translation> +<translation id="7986741934819883144">Výber kontaktu</translation> <translation id="7987073022710626672">Zmluvné podmienky prehliadača Chrome</translation> <translation id="7987764905897278458">Získajte viac inteligentných doplnkov Googlu</translation> <translation id="7998918019931843664">Znova otvoriť zavretú kartu</translation> @@ -907,6 +912,7 @@ <translation id="8109613176066109935">Ak chcete získať záložky vo všetkých zariadeniach, zapnite synchronizáciu</translation> <translation id="8116925261070264013">Zvuk bol vypnutý</translation> <translation id="813082847718468539">Zobraziť informácie o stránkach</translation> +<translation id="8156139159503939589">Akým jazykom rozumiete?</translation> <translation id="8168435359814927499">Obsah</translation> <translation id="8186512483418048923">Zostávajúce súbory: <ph name="FILES" /></translation> <translation id="8190358571722158785">Zostáva: 1 d</translation> @@ -919,6 +925,7 @@ <translation id="8260126382462817229">Skúste sa znova prihlásiť</translation> <translation id="8261506727792406068">Odstrániť</translation> <translation id="8266862848225348053">Umiestnenie sťahovaných súborov</translation> +<translation id="8274165955039650276">Zobraziť stiahnuté</translation> <translation id="8283853025636624853">Synchronizácia do účtu <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8310344678080805313">Štandardné karty</translation> <translation id="8313455859591948645">Úprava stránky pri spustení</translation> @@ -935,6 +942,7 @@ <translation id="8441146129660941386">Pretočiť dozadu</translation> <translation id="8445448999790540984">Heslá sa nepodarilo exportovať</translation> <translation id="8447861592752582886">Odvolať povolenie pre zariadenie</translation> +<translation id="8477071352266846533">Synchronizácia účtu <ph name="SYNC_ACCOUNT_USER_NAME" /> je vypnutá</translation> <translation id="8487700953926739672">K dispozícii offline</translation> <translation id="8489271220582375723">Otvorenie stránky História</translation> <translation id="8493948351860045254">Uvoľniť miesto</translation> @@ -972,6 +980,7 @@ <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> <translation id="8730621377337864115">Hotovo</translation> <translation id="8748850008226585750">Obsah je skrytý</translation> +<translation id="8751914237388039244">Vyberte obrázok</translation> <translation id="8788968922598763114">Opätovné otvorenie poslednej zavretej karty</translation> <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>
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 814a881..cf8ac16 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Chromove komponente niso združljive med seboj. Morda se Chrome posodablja, zato poskusite znova čez nekaj minut. Če se težava ponovi, poskusite odstraniti in znova namestiti Chrome.</translation> <translation id="1446450296470737166">Dovolitev popolnega nadzora nad napravami MIDI</translation> <translation id="145097072038377568">Izklopljeno v nastavitvah za Android</translation> -<translation id="1455941322673536744">Samodejno izpolnj. in plačila</translation> <translation id="1477626028522505441">Prenos datoteke <ph name="FILE_NAME" /> ni uspel zaradi težav s strežnikom.</translation> <translation id="1506061864768559482">Iskalnik</translation> <translation id="1513352483775369820">Zaznamki in spletna zgodovina</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 0b51a46..a1151ab 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Chrome-ове компоненте нису међусобно компатибилне. Chrome се можда надограђује, па покушајте поново за пар минута. Ако и даље будете имали исти проблем, покушајте да деинсталирате и поново инсталирате Chrome.</translation> <translation id="1446450296470737166">Пуна контрола над MIDI уређајима</translation> <translation id="145097072038377568">Искључено је у Android подешавањима</translation> -<translation id="1455941322673536744">Аутоматско попуњавање и плаћања</translation> <translation id="1477626028522505441">Преузимање датотеке <ph name="FILE_NAME" /> није успело због проблема на серверу.</translation> <translation id="1506061864768559482">Претраживач</translation> <translation id="1513352483775369820">Обележивачи и веб-историја</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 f503c33..ebebad2c 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Chromes komponenter är inte inbördes kompatibla. Kanske håller Chrome på att uppgraderas. Försök igen om några minuter. Om problemet kvarstår testar du att avinstallera och sedan installera om Chrome.</translation> <translation id="1446450296470737166">Tillåt fullst. kontroll av MIDI</translation> <translation id="145097072038377568">Inaktiverad i Android-inställningarna</translation> -<translation id="1455941322673536744">Autofyll och betalning</translation> <translation id="1477626028522505441">Det gick inte att ladda ned <ph name="FILE_NAME" /> på grund av serverfel.</translation> <translation id="1506061864768559482">Sökmotor</translation> <translation id="1513352483775369820">Bokmärken och webbhistorik</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 d9799b5..32652ecb 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb
@@ -24,6 +24,7 @@ <translation id="1157102636231978136">Imesawazisha data na shughuli za kuvinjari kwenye Akaunti yako ya Google</translation> <translation id="116280672541001035">Imetumika</translation> <translation id="1172593791219290334">Ukurasa Unaoanza</translation> +<translation id="1175310183703641346">Haitasawazisha tena alamisho, historia, manenosiri na zaidi kwenye Akaunti yako ya Google</translation> <translation id="1178581264944972037">Sitisha</translation> <translation id="1181037720776840403">Ondoa</translation> <translation id="1197267115302279827">Sogeza alamisho</translation> @@ -48,6 +49,7 @@ <translation id="129553762522093515">Vilivyofungwa hivi karibuni</translation> <translation id="1326317727527857210">Ili upate vichupo kutoka kwenye vifaa vyako vingine, ingia katika Chrome.</translation> <translation id="1332501820983677155">Njia za mikato za vipengele vya Google Chrome</translation> +<translation id="1360432990279830238">Utaondoka na uzime usawazishaji?</translation> <translation id="136248372334525878">Pakia mapema kurasa ili zipakie kwa haraka na kwa usomaji wa nje ya mtandao</translation> <translation id="1369915414381695676">Tovuti <ph name="SITE_NAME" /> imeongezwa</translation> <translation id="1373696734384179344">Hakuna hifadhi ya kutosha ya kupakua maudhui yaliyochaguliwa.</translation> @@ -69,7 +71,6 @@ <translation id="1445680696957526815">Vipengele vya Chrome havioani. Huenda Chrome inajaribu kupata toleo jipya, tafadhali jaribu tena baada ya dakika chache. Ikiwa tatizo litaendelea, jaribu kuondoa na usakinishe upya Chrome.</translation> <translation id="1446450296470737166">Ruhusu udhibiti kamili wa vifaa vya MIDI</translation> <translation id="145097072038377568">Imezimwa katika Mipangilio ya Android</translation> -<translation id="1455941322673536744">Kujaza kiotomatiki na malipo</translation> <translation id="1477626028522505441">Kipakuliwa cha <ph name="FILE_NAME" /> hakijafaulu kwa sababu ya matatizo ya seva.</translation> <translation id="1506061864768559482">Mtambo wa utafutaji</translation> <translation id="1513352483775369820">Alamisho na historia ya wavuti</translation> @@ -159,6 +160,7 @@ <translation id="2131665479022868825"><ph name="DATA" /> imeokolewa</translation> <translation id="213279576345780926">Umefunga <ph name="TAB_TITLE" /></translation> <translation id="2139186145475833000">Ongeza kwenye skrini ya kwanza</translation> +<translation id="2142289305367051020">Kurasa unazofungua sana zinapatikana hapa</translation> <translation id="2146738493024040262">Fungua Programu Inayofunguka Papo Hapo</translation> <translation id="2148716181193084225">Leo</translation> <translation id="2154484045852737596">Badilisha kadi</translation> @@ -349,6 +351,7 @@ <translation id="3822502789641063741">Ungependa kufuta hifadhi ya tovuti?</translation> <translation id="385051799172605136">Nyuma</translation> <translation id="3859306556332390985">Peleka mbele</translation> +<translation id="3868004864571585162">Vidakuzi, leseni za vyombo vya habari na data ya tovuti</translation> <translation id="3894427358181296146">Ongeza folda</translation> <translation id="3895926599014793903">Lazimisha kuwasha ukuzaji</translation> <translation id="3927692899758076493">Sans Serif</translation> @@ -811,6 +814,7 @@ <translation id="7413229368719586778">Tarehe ya kuanza <ph name="DATE" /></translation> <translation id="7423098979219808738">Uliza kwanza</translation> <translation id="7423538860840206698">Imezuiwa kusoma ubao wa kunakili</translation> +<translation id="7431991332293347422">Dhibiti namna historia yako ya kuvinjari inavyotumika kuweka mapendeleo kwenye huduma ya Tafuta na Google na zaidi</translation> <translation id="7437998757836447326">Ondoka kwenye Chrome</translation> <translation id="7444811645081526538">Aina zingine</translation> <translation id="7445411102860286510">Ruhusu tovuti zicheze video kiotomatiki bila sauti (inapendekezwa)</translation> @@ -879,6 +883,7 @@ <translation id="7963646190083259054">Mchuuzi:</translation> <translation id="7981313251711023384">Pakia mapema kurasa ili upate huduma ya haraka ya kuvinjari na kutafuta</translation> <translation id="79859296434321399">Sakinisha ARCore ili uangalie maudhui ya uhalisia ulioboreshwa</translation> +<translation id="7986741934819883144">Chagua anwani</translation> <translation id="7987073022710626672">Sheria na Masharti ya Chrome</translation> <translation id="7987764905897278458">Pata programu zaidi mahiri za Google</translation> <translation id="7998918019931843664">Fungua tena kichupo kilichofungwa</translation> @@ -907,6 +912,7 @@ <translation id="8109613176066109935">Washa kipengele cha usawazishaji ili upate alamisho kwenye vifaa vyako vyote</translation> <translation id="8116925261070264013">Imezimwa</translation> <translation id="813082847718468539">Angalia maelezo ya tovuti</translation> +<translation id="8156139159503939589">Unaweza kusoma katika lugha gani?</translation> <translation id="8168435359814927499">Maudhui</translation> <translation id="8186512483418048923">Zimesalia faili <ph name="FILES" /></translation> <translation id="8190358571722158785">Imesalia siku 1</translation> @@ -919,6 +925,7 @@ <translation id="8260126382462817229">Jaribu kuingia katika akaunti tena</translation> <translation id="8261506727792406068">Futa</translation> <translation id="8266862848225348053">Sehemu ya kuweka vipakuliwa</translation> +<translation id="8274165955039650276">Angalia vipakuliwa</translation> <translation id="8283853025636624853">Inasawazisha kwenye <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8310344678080805313">Vichupo muundo-msingi</translation> <translation id="8313455859591948645">Badilisha ukurasa unaoanza</translation> @@ -935,6 +942,7 @@ <translation id="8441146129660941386">Peleka nyuma</translation> <translation id="8445448999790540984">Haiwezi kuhamisha manenosiri</translation> <translation id="8447861592752582886">Batilisha ruhusa ya kifaa</translation> +<translation id="8477071352266846533">Umezima usawazishaji katika <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8487700953926739672">Kinapatikana nje ya mtandao</translation> <translation id="8489271220582375723">Fungua ukurasa wa historia</translation> <translation id="8493948351860045254">Ongeza nafasi ya hifadhi</translation> @@ -974,6 +982,7 @@ <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> <translation id="8730621377337864115">Nimemaliza</translation> <translation id="8748850008226585750">Maudhui yamefichwa</translation> +<translation id="8751914237388039244">Chagua picha</translation> <translation id="8788968922598763114">Fungua tena kichupo kilichofungwa mwisho</translation> <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>
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 679e2f8..afd6893 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_th.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_th.xtb
@@ -24,6 +24,7 @@ <translation id="1157102636231978136">ข้อมูลและกิจกรรมการท่องเว็บซึ่งซิงค์กับบัญชี Google</translation> <translation id="116280672541001035">ใช้ไป</translation> <translation id="1172593791219290334">หน้าเริ่มต้นใช้งาน</translation> +<translation id="1175310183703641346">บุ๊กมาร์ก ประวัติการเข้าชม รหัสผ่าน และอื่นๆ จะเลิกซิงค์กับบัญชี Google</translation> <translation id="1178581264944972037">หยุดชั่วคราว</translation> <translation id="1181037720776840403">ลบ</translation> <translation id="1197267115302279827">ย้ายบุ๊กมาร์ก</translation> @@ -48,6 +49,7 @@ <translation id="129553762522093515">เพิ่งปิด</translation> <translation id="1326317727527857210">ลงชื่อเข้าใช้ Chrome เพื่อรับแท็บจากอุปกรณ์เครื่องอื่นๆ ของคุณ</translation> <translation id="1332501820983677155">แป้นพิมพ์ลัดสำหรับฟีเจอร์ของ Google Chrome</translation> +<translation id="1360432990279830238">ออกจากระบบและปิดการซิงค์ไหม</translation> <translation id="136248372334525878">โหลดหน้าเว็บไว้ล่วงหน้าเพื่อให้โหลดได้เร็วและไว้อ่านแบบออฟไลน์</translation> <translation id="1369915414381695676">เพิ่มเว็บไซต์ <ph name="SITE_NAME" /> แล้ว</translation> <translation id="1373696734384179344">หน่วยความจำไม่เพียงพอที่จะดาวน์โหลดเนื้อหาที่เลือก</translation> @@ -69,7 +71,6 @@ <translation id="1445680696957526815">คอมโพเนนต์ของ Chrome ไม่สามารถทำงานร่วมกันได้ Chrome อาจกำลังอัปเกรด โปรดรอสักครู่แล้วลองอีกครั้ง หากยังมีปัญหาอยู่ ให้ลองถอนการติดตั้งและติดตั้ง Chrome ใหม่อีกครั้ง</translation> <translation id="1446450296470737166">ควบคุมอุปกรณ์ MIDI ได้สมบูรณ์</translation> <translation id="145097072038377568">ปิดในการตั้งค่า Android</translation> -<translation id="1455941322673536744">การป้อนอัตโนมัติและการชำระเงิน</translation> <translation id="1477626028522505441">การดาวน์โหลด <ph name="FILE_NAME" /> ล้มเหลวเพราะเซิร์ฟเวอร์มีปัญหา</translation> <translation id="1506061864768559482">เครื่องมือค้นหา</translation> <translation id="1513352483775369820">บุ๊กมาร์กและประวัติเว็บ</translation> @@ -159,6 +160,7 @@ <translation id="2131665479022868825">ประหยัดไป <ph name="DATA" /></translation> <translation id="213279576345780926">ปิด <ph name="TAB_TITLE" /> แล้ว</translation> <translation id="2139186145475833000">เพิ่มไปยังหน้าจอหลัก</translation> +<translation id="2142289305367051020">หน้าโปรดของคุณอยู่ตรงนี้แล้ว</translation> <translation id="2146738493024040262">เปิด Instant App</translation> <translation id="2148716181193084225">วันนี้</translation> <translation id="2154484045852737596">แก้ไขบัตร</translation> @@ -349,6 +351,7 @@ <translation id="3822502789641063741">ล้างพื้นที่เก็บข้อมูลเว็บไซต์ไหม</translation> <translation id="385051799172605136">กลับ</translation> <translation id="3859306556332390985">ไปข้างหน้า</translation> +<translation id="3868004864571585162">คุกกี้ ใบอนุญาตสื่อ และข้อมูลเว็บไซต์</translation> <translation id="3894427358181296146">เพิ่มโฟลเดอร์</translation> <translation id="3895926599014793903">บังคับให้เปิดใช้การซูม</translation> <translation id="3927692899758076493">Sans Serif</translation> @@ -811,6 +814,7 @@ <translation id="7413229368719586778">วันที่เริ่มต้น <ph name="DATE" /></translation> <translation id="7423098979219808738">ถามก่อน</translation> <translation id="7423538860840206698">บล็อกไม่ให้อ่านคลิปบอร์ด</translation> +<translation id="7431991332293347422">ควบคุมการใช้ประวัติการท่องเว็บเพื่อปรับเปลี่ยน Search และบริการอื่นๆ ในแบบของคุณ</translation> <translation id="7437998757836447326">ออกจากระบบ Chrome</translation> <translation id="7444811645081526538">หมวดหมู่อื่นๆ</translation> <translation id="7445411102860286510">อนุญาตให้เว็บไซต์เล่นวิดีโอที่ปิดเสียงโดยอัตโนมัติ (แนะนำ)</translation> @@ -879,6 +883,7 @@ <translation id="7963646190083259054">ผู้ขาย:</translation> <translation id="7981313251711023384">โหลดหน้าเว็บล่วงหน้าเพื่อให้เรียกดูและค้นหาได้เร็วขึ้น</translation> <translation id="79859296434321399">ติดตั้ง ARCore เพื่อดูเนื้อหา Augmented Reality</translation> +<translation id="7986741934819883144">เลือกรายชื่อติดต่อ</translation> <translation id="7987073022710626672">ข้อกำหนดในการให้บริการของ Chrome</translation> <translation id="7987764905897278458">ใช้ฟีเจอร์เจ๋งๆ จาก Google มากขึ้น</translation> <translation id="7998918019931843664">เปิดแท็บที่ปิดไปแล้วขึ้นใหม่</translation> @@ -907,6 +912,7 @@ <translation id="8109613176066109935">เปิดการซิงค์เพื่อรับบุ๊กมาร์กในอุปกรณ์ทุกเครื่องของคุณ</translation> <translation id="8116925261070264013">ปิดเสียง</translation> <translation id="813082847718468539">ดูข้อมูลเว็บไซต์</translation> +<translation id="8156139159503939589">คุณอ่านภาษาใดได้บ้าง</translation> <translation id="8168435359814927499">เนื้อหา</translation> <translation id="8186512483418048923">เหลืออีก <ph name="FILES" /> ไฟล์</translation> <translation id="8190358571722158785">เหลือ 1 วัน</translation> @@ -919,6 +925,7 @@ <translation id="8260126382462817229">ลองลงชื่อเข้าใช้อีกครั้ง</translation> <translation id="8261506727792406068">ลบ</translation> <translation id="8266862848225348053">ตำแหน่งที่ดาวน์โหลด</translation> +<translation id="8274165955039650276">ดูการดาวน์โหลด</translation> <translation id="8283853025636624853">กำลังซิงค์กับ <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8310344678080805313">แท็บมาตรฐาน</translation> <translation id="8313455859591948645">แก้ไขหน้าเริ่มต้นใช้งาน</translation> @@ -935,6 +942,7 @@ <translation id="8441146129660941386">ย้อนกลับ</translation> <translation id="8445448999790540984">ส่งออกรหัสผ่านไม่ได้</translation> <translation id="8447861592752582886">เพิกถอนสิทธิ์ของอุปกรณ์</translation> +<translation id="8477071352266846533">ปิดการซิงค์สำหรับ <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8487700953926739672">ใช้งานแบบออฟไลน์ได้</translation> <translation id="8489271220582375723">เปิดหน้าประวัติการเข้าชม</translation> <translation id="8493948351860045254">เพิ่มพื้นที่ว่าง</translation> @@ -974,6 +982,7 @@ <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> <translation id="8730621377337864115">เสร็จสิ้น</translation> <translation id="8748850008226585750">เนื้อหาถูกซ่อนไว้</translation> +<translation id="8751914237388039244">เลือกรูปภาพ</translation> <translation id="8788968922598763114">เปิดแท็บที่เพิ่งปิดอีกครั้ง</translation> <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>
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 54780268..818285e9 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Chrome bileşenleri birbirleriyle uyumlu değil. Chrome yeni sürüme geçiyor olabilir, lütfen birkaç dakika sonra tekrar deneyin. Sorun devam ederse Chrome'u kaldırıp yeniden yüklemeyi deneyin.</translation> <translation id="1446450296470737166">MIDI cihazlarının tam denetimine izin verme</translation> <translation id="145097072038377568">Android Ayarları'ndan kapatıldı</translation> -<translation id="1455941322673536744">Otomatik doldurma ve ödemeler</translation> <translation id="1477626028522505441">Sunucu sorunları nedeniyle <ph name="FILE_NAME" /> dosyası indirilemedi.</translation> <translation id="1506061864768559482">Arama motoru</translation> <translation id="1513352483775369820">Yer işaretleri ve web geçmişi</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 167e675..0c7e9dc 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb
@@ -24,6 +24,7 @@ <translation id="1157102636231978136">Дані веб-перегляду й історія активності, синхронізовані з обліковим записом Google</translation> <translation id="116280672541001035">Використано</translation> <translation id="1172593791219290334">Стартова сторінка</translation> +<translation id="1175310183703641346">Закладки, історія, паролі тощо більше не синхронізуватимуться з обліковим записом Google</translation> <translation id="1178581264944972037">Пауза</translation> <translation id="1181037720776840403">Видалити</translation> <translation id="1197267115302279827">Перемістити закладки</translation> @@ -48,6 +49,7 @@ <translation id="129553762522093515">Нещодавно закриті</translation> <translation id="1326317727527857210">Щоб мати доступ до вкладок з інших пристроїв, увійдіть в обліковий запис Chrome.</translation> <translation id="1332501820983677155">Комбінації клавіш для функцій Google Chrome</translation> +<translation id="1360432990279830238">Вийти й вимкнути синхронізацію?</translation> <translation id="136248372334525878">Попередньо завантажує сторінки, щоб швидше завантажувати та переглядати їх у режимі офлайн</translation> <translation id="1369915414381695676">Сайт <ph name="SITE_NAME" /> додано</translation> <translation id="1373696734384179344">Недостатньо пам’яті, щоб завантажити вибраний вміст.</translation> @@ -69,7 +71,6 @@ <translation id="1445680696957526815">Компоненти Chrome несумісні одне з одним. Веб-переглядач може оновлюватися, спробуйте через декілька хвилин. Якщо проблема не зникне, видаліть Chrome і встановіть його знову.</translation> <translation id="1446450296470737166">Повний контроль пристроїв MIDI</translation> <translation id="145097072038377568">Вимкнено в налаштуваннях Android</translation> -<translation id="1455941322673536744">Автозаповнення й платежі</translation> <translation id="1477626028522505441">Файл <ph name="FILE_NAME" /> не завантажено через проблеми із сервером.</translation> <translation id="1506061864768559482">Пошукова система</translation> <translation id="1513352483775369820">Закладки й історія веб-пошуку</translation> @@ -159,6 +160,7 @@ <translation id="2131665479022868825">Заощаджено <ph name="DATA" /></translation> <translation id="213279576345780926">Вкладку "<ph name="TAB_TITLE" />" закрито</translation> <translation id="2139186145475833000">Додати на головний екран</translation> +<translation id="2142289305367051020">Ваші улюблені сторінки доступні тут</translation> <translation id="2146738493024040262">Відкрити додаток із миттєвим запуском</translation> <translation id="2148716181193084225">Сьогодні</translation> <translation id="2154484045852737596">Редагувати картку</translation> @@ -249,7 +251,7 @@ <translation id="2900528713135656174">Створити подію</translation> <translation id="2902702728133930130">Не вдалося запустити Chrome через неочікувану помилку.</translation> <translation id="290376772003165898">Ця сторінка відображається не такою мовою: <ph name="LANGUAGE" />?</translation> -<translation id="2910701580606108292">Запитувати, перш ніж дозволити сайтам відтворювати захищений вміст</translation> +<translation id="2910701580606108292">Запитувати, перш ніж дозволяти сайтам відтворювати захищений вміст</translation> <translation id="2913331724188855103">Дозволити сайтам зберігати та розпізнавати дані файлів cookie (рекомендується)</translation> <translation id="2932150158123903946">Дані додатка Google <ph name="APP_NAME" /></translation> <translation id="2943166482989655199">Покращуйте Chrome і функції безпеки, надсилаючи в Google дані про систему та використання</translation> @@ -349,6 +351,7 @@ <translation id="3822502789641063741">Видалити дані сайтів?</translation> <translation id="385051799172605136">Назад</translation> <translation id="3859306556332390985">Далі</translation> +<translation id="3868004864571585162">Файли сookie, ліцензії медіа-вмісту й дані із сайтів</translation> <translation id="3894427358181296146">Додати папку</translation> <translation id="3895926599014793903">Примусово ввімкнути масштабування</translation> <translation id="3927692899758076493">Sans Serif</translation> @@ -811,6 +814,7 @@ <translation id="7413229368719586778">Дата початку: <ph name="DATE" /></translation> <translation id="7423098979219808738">Спершу запитувати</translation> <translation id="7423538860840206698">Заборонено переглядати буфер обміну</translation> +<translation id="7431991332293347422">Указуйте, як використовувати історію веб-перегляду для персоналізації Пошуку тощо</translation> <translation id="7437998757836447326">Вихід із Chrome</translation> <translation id="7444811645081526538">Інші категорії</translation> <translation id="7445411102860286510">Дозволити сайтам автоматично відтворювати відео з вимкненим звуком (рекомендується)</translation> @@ -879,6 +883,7 @@ <translation id="7963646190083259054">Постачальник:</translation> <translation id="7981313251711023384">Попередньо завантажувати сторінки, щоб швидше переглядати та шукати</translation> <translation id="79859296434321399">Щоб переглядати вміст у режимі доповненої реальності, установіть ARCore</translation> +<translation id="7986741934819883144">Виберіть контакт</translation> <translation id="7987073022710626672">Умови використання Google Chrome</translation> <translation id="7987764905897278458">Отримайте більше розумних функцій Google</translation> <translation id="7998918019931843664">Знову відкрити закриту вкладку</translation> @@ -907,6 +912,7 @@ <translation id="8109613176066109935">Щоб мати доступ до закладок на всіх своїх пристроях, увімкніть синхронізацію</translation> <translation id="8116925261070264013">Звук вимкнено</translation> <translation id="813082847718468539">Перегляд інформації про сайт</translation> +<translation id="8156139159503939589">Якими мовами ви читаєте?</translation> <translation id="8168435359814927499">Вміст</translation> <translation id="8186512483418048923">Залишилося файлів: <ph name="FILES" /></translation> <translation id="8190358571722158785">Залишився 1 день</translation> @@ -919,6 +925,7 @@ <translation id="8260126382462817229">Спробуйте ввійти ще раз</translation> <translation id="8261506727792406068">Видалити</translation> <translation id="8266862848225348053">Папка для завантажень</translation> +<translation id="8274165955039650276">Переглянути завантаження</translation> <translation id="8283853025636624853">Синхронізація з обліковим записом <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8310344678080805313">Стандартні вкладки</translation> <translation id="8313455859591948645">Редагувати стартову сторінку</translation> @@ -935,6 +942,7 @@ <translation id="8441146129660941386">Назад</translation> <translation id="8445448999790540984">Не вдається експортувати паролі</translation> <translation id="8447861592752582886">Скасувати доступ до пристрою</translation> +<translation id="8477071352266846533">Вимкнено синхронізацію з обліковим записом <ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8487700953926739672">Доступ у режимі офлайн</translation> <translation id="8489271220582375723">Відкрити сторінку "Історія"</translation> <translation id="8493948351860045254">Звільнити місце</translation> @@ -974,6 +982,7 @@ <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> <translation id="8730621377337864115">Готово</translation> <translation id="8748850008226585750">Вміст сховано</translation> +<translation id="8751914237388039244">Виберіть зображення</translation> <translation id="8788968922598763114">Відкрити останню закриту вкладку</translation> <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>
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 125df18..6901c251 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Các cấu phần của Chrome không tương thích với nhau. Chrome có thể đang nâng cấp, vui lòng thử lại sau ít phút. Nếu sự cố vẫn tiếp diễn, hãy thử gỡ cài đặt và cài đặt lại Chrome.</translation> <translation id="1446450296470737166">Cho phép kiểm soát hoàn toàn thiết bị MIDI</translation> <translation id="145097072038377568">Tắt trong Cài đặt Android</translation> -<translation id="1455941322673536744">Tự động điền và thanh toán</translation> <translation id="1477626028522505441">Tải xuống <ph name="FILE_NAME" /> không thành công do sự cố máy chủ.</translation> <translation id="1506061864768559482">Công cụ tìm kiếm</translation> <translation id="1513352483775369820">Dấu trang và lịch sử web</translation> @@ -725,7 +724,7 @@ <translation id="666981079809192359">Thông báo bảo mật của Chrome</translation> <translation id="6697492270171225480">Hiển thị đề xuất về các trang tương tự khi không tìm thấy một trang nào đó</translation> <translation id="6697947395630195233">Chrome cần truy cập vị trí của bạn để chia sẻ thông tin vị trí với trang web này.</translation> -<translation id="6698801883190606802">Quản lý dữ liệu được đồng bộ hóa</translation> +<translation id="6698801883190606802">Quản lý dữ liệu đã đồng bộ hóa</translation> <translation id="6710213216561001401">Trước đó</translation> <translation id="6738867403308150051">Đang tải xuống...</translation> <translation id="6746124502594467657">Di chuyển xuống</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 bb492b11..218aecef 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
@@ -69,7 +69,6 @@ <translation id="1445680696957526815">Chrome 的组件互不兼容。Chrome 可能正在升级,请过几分钟后重试。如果问题仍然存在,请尝试卸载并重新安装 Chrome。</translation> <translation id="1446450296470737166">允许全面控制 MIDI 设备</translation> <translation id="145097072038377568">已在 Android 设置中停用</translation> -<translation id="1455941322673536744">自动填充和付款</translation> <translation id="1477626028522505441">未能成功下载 <ph name="FILE_NAME" />,因为服务器出现了问题。</translation> <translation id="1506061864768559482">搜索引擎</translation> <translation id="1513352483775369820">书签和网络历史记录</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 a735b41ba..74a0d34 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
@@ -24,6 +24,7 @@ <translation id="1157102636231978136">讓你的瀏覽資料和活動與你的 Google 帳戶保持同步</translation> <translation id="116280672541001035">使用量</translation> <translation id="1172593791219290334">起始網頁</translation> +<translation id="1175310183703641346">系統會將你的書籤、歷史記錄、密碼和其他設定與你的 Google 帳戶保持同步。</translation> <translation id="1178581264944972037">暫停</translation> <translation id="1181037720776840403">移除</translation> <translation id="1197267115302279827">移動書籤</translation> @@ -48,6 +49,7 @@ <translation id="129553762522093515">最近關閉的分頁</translation> <translation id="1326317727527857210">如要存取您在其他裝置上開啟的分頁,請登入 Chrome。</translation> <translation id="1332501820983677155">Google Chrome 功能快速鍵</translation> +<translation id="1360432990279830238">要登出並關閉同步處理功能嗎?</translation> <translation id="136248372334525878">預先載入網頁,以加快載入速度,並提供離線瀏覽功能</translation> <translation id="1369915414381695676">已新增 <ph name="SITE_NAME" /> 網站</translation> <translation id="1373696734384179344">記憶體不足,無法下載您選取的這項內容。</translation> @@ -69,7 +71,6 @@ <translation id="1445680696957526815">出現元件互不相容的情況,這可能是因為 Chrome 目前正在進行升級,請稍候片刻再試。如果問題持續發生,請先將 Chrome 移除,然後重新安裝一次。</translation> <translation id="1446450296470737166">允許完整控制 MIDI 裝置</translation> <translation id="145097072038377568">已在 Android 設定中關閉</translation> -<translation id="1455941322673536744">自動填入和付費</translation> <translation id="1477626028522505441">伺服器發生問題,因此無法下載 <ph name="FILE_NAME" />。</translation> <translation id="1506061864768559482">搜尋引擎</translation> <translation id="1513352483775369820">書籤與網頁記錄</translation> @@ -159,6 +160,7 @@ <translation id="2131665479022868825">已節省 <ph name="DATA" /></translation> <translation id="213279576345780926">已關閉「<ph name="TAB_TITLE" />」</translation> <translation id="2139186145475833000">加到主畫面</translation> +<translation id="2142289305367051020">這裡會顯示你最常瀏覽的網頁</translation> <translation id="2146738493024040262">開啟免安裝應用程式</translation> <translation id="2148716181193084225">今天</translation> <translation id="2154484045852737596">編輯卡片資訊</translation> @@ -349,6 +351,7 @@ <translation id="3822502789641063741">要清除網站儲存的資料嗎?</translation> <translation id="385051799172605136">返回</translation> <translation id="3859306556332390985">快轉到特定的播放時間點</translation> +<translation id="3868004864571585162">Cookie、媒體授權和網站資料</translation> <translation id="3894427358181296146">新增資料夾</translation> <translation id="3895926599014793903">強制啟用縮放功能</translation> <translation id="3927692899758076493">Sans Serif</translation> @@ -811,6 +814,7 @@ <translation id="7413229368719586778">開始日期:<ph name="DATE" /></translation> <translation id="7423098979219808738">先詢問我</translation> <translation id="7423538860840206698">禁止讀取剪貼簿</translation> +<translation id="7431991332293347422">控制 Google 使用瀏覽記錄提供個人化搜尋服務和其他內容的方式</translation> <translation id="7437998757836447326">登出 Chrome</translation> <translation id="7444811645081526538">更多類別</translation> <translation id="7445411102860286510">允許網站自動播放靜音的影片 (建議)</translation> @@ -879,6 +883,7 @@ <translation id="7963646190083259054">供應商:</translation> <translation id="7981313251711023384">預先載入網頁,以加快瀏覽及搜尋速度</translation> <translation id="79859296434321399">如要查看擴增實境內容,請安裝 ARCore</translation> +<translation id="7986741934819883144">選取聯絡人</translation> <translation id="7987073022710626672">Chrome 服務條款</translation> <translation id="7987764905897278458">體驗更多 Google 強大的智慧功能</translation> <translation id="7998918019931843664">重新開啟先前關閉的分頁</translation> @@ -907,6 +912,7 @@ <translation id="8109613176066109935">如要將書籤同步到所有裝置,請開啟同步處理功能</translation> <translation id="8116925261070264013">已設為靜音</translation> <translation id="813082847718468539">查看網站資訊</translation> +<translation id="8156139159503939589">你看得懂哪些語言?</translation> <translation id="8168435359814927499">內容</translation> <translation id="8186512483418048923">還剩 <ph name="FILES" /> 個檔案</translation> <translation id="8190358571722158785">還剩 1 天</translation> @@ -919,6 +925,7 @@ <translation id="8260126382462817229">請嘗試重新登入</translation> <translation id="8261506727792406068">刪除</translation> <translation id="8266862848225348053">下載位置</translation> +<translation id="8274165955039650276">查看已下載的內容</translation> <translation id="8283853025636624853">同步的帳戶:<ph name="SYNC_ACCOUNT_USER_NAME" /></translation> <translation id="8310344678080805313">標準分頁</translation> <translation id="8313455859591948645">編輯起始網頁</translation> @@ -935,6 +942,7 @@ <translation id="8441146129660941386">倒轉到特定的播放時間點</translation> <translation id="8445448999790540984">無法匯出密碼</translation> <translation id="8447861592752582886">撤銷裝置權限</translation> +<translation id="8477071352266846533"><ph name="SYNC_ACCOUNT_USER_NAME" /> 已停用同步處理</translation> <translation id="8487700953926739672">可離線使用</translation> <translation id="8489271220582375723">開啟記錄頁面</translation> <translation id="8493948351860045254">釋出空間</translation> @@ -974,6 +982,7 @@ <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> <translation id="8730621377337864115">完成</translation> <translation id="8748850008226585750">內容已隱藏</translation> +<translation id="8751914237388039244">選取圖片</translation> <translation id="8788968922598763114">重新開啟最近關閉的分頁</translation> <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>
diff --git a/chrome/android/java_sources.gni b/chrome/android/java_sources.gni index 1c221fd6..5528d40 100644 --- a/chrome/android/java_sources.gni +++ b/chrome/android/java_sources.gni
@@ -798,6 +798,7 @@ "java/src/org/chromium/chrome/browser/media/router/caf/CafBaseMediaRouteProvider.java", "java/src/org/chromium/chrome/browser/media/router/caf/CafMediaRouteProvider.java", "java/src/org/chromium/chrome/browser/media/router/caf/CafMessageHandler.java", + "java/src/org/chromium/chrome/browser/media/router/caf/CafNotificationController.java", "java/src/org/chromium/chrome/browser/media/router/caf/CreateRouteRequestInfo.java", "java/src/org/chromium/chrome/browser/media/router/cast/BaseMediaRouteProvider.java", "java/src/org/chromium/chrome/browser/media/router/cast/CastMediaRouteProvider.java", @@ -932,6 +933,7 @@ "java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageViewHolder.java", "java/src/org/chromium/chrome/browser/ntp/cards/OptionalLeaf.java", "java/src/org/chromium/chrome/browser/ntp/cards/PartiallyBindable.java", + "java/src/org/chromium/chrome/browser/ntp/cards/PersonalizedPromoViewHolder.java", "java/src/org/chromium/chrome/browser/ntp/cards/ProgressIndicatorView.java", "java/src/org/chromium/chrome/browser/ntp/cards/ProgressItem.java", "java/src/org/chromium/chrome/browser/ntp/cards/ProgressViewHolder.java",
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/NavigationPopupTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/NavigationPopupTest.java index 8d17125..b4c53ea 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/NavigationPopupTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/NavigationPopupTest.java
@@ -279,12 +279,7 @@ ThreadUtils.runOnUiThreadBlocking(() -> { ListView list = popup.getListView(); View view = list.getAdapter().getView(list.getAdapter().getCount() - 1, null, list); - TextView text = null; - if (view instanceof TextView) { - text = (TextView) view; - } else { - text = (TextView) view.findViewById(R.id.entry_title); - } + TextView text = (TextView) view.findViewById(R.id.entry_title); Assert.assertNotNull(text); Assert.assertEquals(text.getResources().getString(R.string.show_full_history), text.getText().toString()); @@ -293,8 +288,8 @@ private NavigationPopup showPopup(NavigationController controller) throws ExecutionException { return ThreadUtils.runOnUiThreadBlocking(() -> { - NavigationPopup popup = new NavigationPopup( - mProfile, mActivityTestRule.getActivity(), controller, true, false); + NavigationPopup popup = new NavigationPopup(mProfile, mActivityTestRule.getActivity(), + controller, NavigationPopup.Type.TABLET_FORWARD); popup.setWidth(300); popup.setHeight(300); popup.setAnchorView(mActivityTestRule.getActivity().getActivityTab().getContentView());
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/OSKOverscrollTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/OSKOverscrollTest.java index 01dab8b..af30c58 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/OSKOverscrollTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/OSKOverscrollTest.java
@@ -25,7 +25,6 @@ import org.chromium.content_public.browser.test.util.CriteriaHelper; import org.chromium.content_public.browser.test.util.DOMUtils; import org.chromium.content_public.browser.test.util.JavaScriptUtils; -import org.chromium.ui.UiUtils; import java.util.Locale; import java.util.concurrent.ExecutionException; @@ -81,7 +80,8 @@ CriteriaHelper.pollUiThread(new Criteria("Keyboard was never shown.") { @Override public boolean isSatisfied() { - return UiUtils.isKeyboardShowing(mActivityTestRule.getActivity(), + return mActivityTestRule.getKeyboardDelegate().isKeyboardShowing( + mActivityTestRule.getActivity(), mActivityTestRule.getActivity().getActivityTab().getContentView()); } });
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 2d8a0447..8ab40e18 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/TabsTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/TabsTest.java
@@ -307,7 +307,7 @@ public boolean isSatisfied() { updateFailureReason("expected keyboard show: " + show); return show - == org.chromium.ui.UiUtils.isKeyboardShowing( + == mActivityTestRule.getKeyboardDelegate().isKeyboardShowing( mActivityTestRule.getActivity(), mActivityTestRule.getActivity().getTabsView()); } @@ -1696,7 +1696,8 @@ UiUtils.settleDownUI(InstrumentationRegistry.getInstrumentation()); Assert.assertFalse("Keyboard somehow got shown", - org.chromium.ui.UiUtils.isKeyboardShowing(mActivityTestRule.getActivity(), urlBar)); + mActivityTestRule.getKeyboardDelegate().isKeyboardShowing( + mActivityTestRule.getActivity(), urlBar)); ThreadUtils.runOnUiThread(() -> { edgeSwipeHandler.swipeStarted(ScrollDirection.RIGHT, 0, 0); @@ -1716,7 +1717,7 @@ ThreadUtils.runOnUiThread(() -> { Assert.assertFalse("Keyboard should be hidden while swiping", - org.chromium.ui.UiUtils.isKeyboardShowing( + mActivityTestRule.getKeyboardDelegate().isKeyboardShowing( mActivityTestRule.getActivity(), urlBar)); edgeSwipeHandler.swipeFinished(); }); @@ -1731,7 +1732,8 @@ }); Assert.assertFalse("Keyboard should not be shown", - org.chromium.ui.UiUtils.isKeyboardShowing(mActivityTestRule.getActivity(), urlBar)); + mActivityTestRule.getKeyboardDelegate().isKeyboardShowing( + mActivityTestRule.getActivity(), urlBar)); } /**
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillKeyboardAccessoryIntegrationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillKeyboardAccessoryIntegrationTest.java index 879ecd7..3008fa7 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillKeyboardAccessoryIntegrationTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillKeyboardAccessoryIntegrationTest.java
@@ -36,7 +36,6 @@ import org.chromium.content_public.browser.test.util.Criteria; import org.chromium.content_public.browser.test.util.CriteriaHelper; import org.chromium.content_public.browser.test.util.DOMUtils; -import org.chromium.ui.UiUtils; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeoutException; @@ -128,7 +127,7 @@ CriteriaHelper.pollUiThread(Criteria.equals(true, () - -> UiUtils.isKeyboardShowing( + -> mActivityTestRule.getKeyboardDelegate().isKeyboardShowing( mActivityTestRule.getActivity(), mContainerRef.get()))); Assert.assertTrue("Keyboard accessory should be showing.", isAccessoryVisible()); } @@ -147,7 +146,7 @@ CriteriaHelper.pollUiThread(Criteria.equals(true, () - -> UiUtils.isKeyboardShowing( + -> mActivityTestRule.getKeyboardDelegate().isKeyboardShowing( mActivityTestRule.getActivity(), mContainerRef.get()))); ThreadUtils.runOnUiThreadBlocking(() -> getSuggestionsComponent().scrollToPosition(2)); @@ -173,7 +172,7 @@ CriteriaHelper.pollUiThread(Criteria.equals(true, () - -> UiUtils.isKeyboardShowing( + -> mActivityTestRule.getKeyboardDelegate().isKeyboardShowing( mActivityTestRule.getActivity(), mContainerRef.get()))); Assert.assertTrue("Keyboard accessory should be visible.", isAccessoryVisible()); @@ -181,7 +180,7 @@ CriteriaHelper.pollUiThread(Criteria.equals(false, () - -> UiUtils.isKeyboardShowing( + -> mActivityTestRule.getKeyboardDelegate().isKeyboardShowing( mActivityTestRule.getActivity(), mContainerRef.get()))); Assert.assertTrue("Keyboard accessory should be hidden.", isAccessoryGone()); }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillPopupWithKeyboardTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillPopupWithKeyboardTest.java index 0ceba10e..32258d8 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillPopupWithKeyboardTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/AutofillPopupWithKeyboardTest.java
@@ -28,7 +28,6 @@ import org.chromium.content_public.browser.test.util.DOMUtils; import org.chromium.ui.DropdownPopupWindowInterface; import org.chromium.ui.R; -import org.chromium.ui.UiUtils; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeoutException; @@ -93,7 +92,8 @@ CriteriaHelper.pollUiThread(new Criteria("Keyboard was never shown.") { @Override public boolean isSatisfied() { - return UiUtils.isKeyboardShowing(mActivityTestRule.getActivity(), + return mActivityTestRule.getKeyboardDelegate().isKeyboardShowing( + mActivityTestRule.getActivity(), mActivityTestRule.getActivity().getActivityTab().getContentView()); } });
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingIntegrationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingIntegrationTest.java index 8f4619e..b89fccd 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingIntegrationTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingIntegrationTest.java
@@ -24,6 +24,7 @@ import android.view.View; import android.view.ViewGroup; +import org.junit.After; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; @@ -63,6 +64,11 @@ private final ManualFillingTestHelper mHelper = new ManualFillingTestHelper(mActivityTestRule); + @After + public void tearDown() { + mHelper.clear(); + } + @Test @SmallTest public void testAccessoryIsAvailable() throws InterruptedException { @@ -210,7 +216,7 @@ // Focus the field to bring up the accessory. mHelper.clickEmailField(); mHelper.waitForKeyboard(); - DropdownPopupWindowInterface popup = mHelper.waitForAutofillPopup(); + DropdownPopupWindowInterface popup = mHelper.waitForAutofillPopup("a.tu"); assertThat(popup.isShowing(), is(true));
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingTestHelper.java b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingTestHelper.java index 8a7235a..0235ae4 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingTestHelper.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingTestHelper.java
@@ -17,6 +17,7 @@ import static org.chromium.chrome.test.util.ViewUtils.waitForView; import static org.chromium.ui.base.LocalizationUtils.setRtlForTesting; +import android.content.Context; import android.support.design.widget.TabLayout; import android.support.test.InstrumentationRegistry; import android.support.test.espresso.PerformException; @@ -34,12 +35,14 @@ import org.chromium.base.test.util.UrlUtils; import org.chromium.chrome.R; import org.chromium.chrome.test.ChromeTabbedActivityTestRule; +import org.chromium.content_public.browser.ImeAdapter; import org.chromium.content_public.browser.WebContents; import org.chromium.content_public.browser.test.util.Criteria; import org.chromium.content_public.browser.test.util.CriteriaHelper; import org.chromium.content_public.browser.test.util.DOMUtils; +import org.chromium.content_public.browser.test.util.TestInputMethodManagerWrapper; import org.chromium.ui.DropdownPopupWindowInterface; -import org.chromium.ui.UiUtils; +import org.chromium.ui.KeyboardVisibilityDelegate; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeoutException; @@ -51,6 +54,42 @@ public class ManualFillingTestHelper { private final ChromeTabbedActivityTestRule mActivityTestRule; private final AtomicReference<WebContents> mWebContentsRef = new AtomicReference<>(); + private TestInputMethodManagerWrapper mInputMethodManagerWrapper; + + private class FakeKeyboard extends KeyboardVisibilityDelegate { + static final int KEYBOARD_HEIGHT = 234; + private boolean mIsShowing; + + @Override + public void showKeyboard(View view) { + mIsShowing = true; + ThreadUtils.runOnUiThreadBlocking(() -> { + mActivityTestRule.getActivity() + .getManualFillingController() + .getMediatorForTesting() + .onKeyboardVisibilityChanged(mIsShowing); + }); + } + + @Override + public boolean hideKeyboard(View view) { + boolean keyboardWasVisible = mIsShowing; + mIsShowing = false; + ThreadUtils.runOnUiThreadBlocking(() -> { + mActivityTestRule.getActivity() + .getManualFillingController() + .getMediatorForTesting() + .onKeyboardVisibilityChanged(mIsShowing); + }); + return keyboardWasVisible; + } + + @Override + public int calculateKeyboardHeight(Context context, View rootView) { + return mIsShowing ? KEYBOARD_HEIGHT : 0; + } + } + private final FakeKeyboard mKeyboard = new FakeKeyboard(); ManualFillingTestHelper(ChromeTabbedActivityTestRule activityTestRule) { mActivityTestRule = activityTestRule; @@ -67,39 +106,58 @@ + "<input type=\"submit\" id=\"submit\" />" + "</form></body></html>")); setRtlForTesting(isRtl); - ThreadUtils.runOnUiThreadBlocking( - () - -> mWebContentsRef.set( - mActivityTestRule.getActivity().getActivityTab().getWebContents())); + ThreadUtils.runOnUiThreadBlocking(() -> { + mWebContentsRef.set(mActivityTestRule.getActivity().getActivityTab().getWebContents()); + // The TestInputMethodManagerWrapper intercepts showSoftInput so that a keyboard is + // never brought up. + final ImeAdapter imeAdapter = ImeAdapter.fromWebContents(mWebContentsRef.get()); + mInputMethodManagerWrapper = TestInputMethodManagerWrapper.create(imeAdapter); + imeAdapter.setInputMethodManagerWrapper(mInputMethodManagerWrapper); + }); DOMUtils.waitForNonZeroNodeBounds(mWebContentsRef.get(), "password"); + KeyboardVisibilityDelegate.setDelegateForTesting(mKeyboard); // Use a fake keyboard. + } + public void clear() { + KeyboardVisibilityDelegate.clearDelegateForTesting(); } public void waitForKeyboard() { - CriteriaHelper.pollUiThread( - () - -> UiUtils.isKeyboardShowing(InstrumentationRegistry.getContext(), - mActivityTestRule.getActivity().getCurrentFocus())); + CriteriaHelper.pollUiThread(() -> { + return mActivityTestRule.getKeyboardDelegate().isKeyboardShowing( + InstrumentationRegistry.getContext(), + mActivityTestRule.getActivity().getCurrentFocus()); + }); } public void waitForKeyboardToDisappear() { CriteriaHelper.pollUiThread( () - -> !UiUtils.isKeyboardShowing(InstrumentationRegistry.getContext(), + -> !KeyboardVisibilityDelegate.getInstance().isKeyboardShowing( + InstrumentationRegistry.getContext(), mActivityTestRule.getActivity().getCurrentFocus())); } public void clickPasswordField() throws TimeoutException, InterruptedException { DOMUtils.clickNode(mWebContentsRef.get(), "password"); + mKeyboard.showKeyboard(null); } public void clickEmailField() throws TimeoutException, InterruptedException { DOMUtils.clickNode(mWebContentsRef.get(), "email"); + mKeyboard.showKeyboard(null); } - public DropdownPopupWindowInterface waitForAutofillPopup() + public DropdownPopupWindowInterface waitForAutofillPopup(String filterInput) throws InterruptedException, ExecutionException, TimeoutException { final WebContents webContents = mActivityTestRule.getActivity().getCurrentWebContents(); final ViewGroup view = webContents.getViewAndroidDelegate().getContainerView(); + + // Wait for InputConnection to be ready and fill the filterInput. Then wait for the anchor. + CriteriaHelper.pollUiThread( + Criteria.equals(1, () -> mInputMethodManagerWrapper.getShowSoftInputCounter())); + ThreadUtils.runOnUiThreadBlocking(() -> { + ImeAdapter.fromWebContents(webContents).setComposingTextForTest(filterInput, 4); + }); CriteriaHelper.pollUiThread(new Criteria("Autofill Popup anchor view was never added.") { @Override public boolean isSatisfied() { @@ -129,6 +187,7 @@ */ public void clickSubmit() throws TimeoutException, InterruptedException { DOMUtils.clickNode(mWebContentsRef.get(), "submit"); + mKeyboard.hideKeyboard(null); } /**
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessoryIntegrationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessoryIntegrationTest.java index 8f145ab5..1fb4391 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessoryIntegrationTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessoryIntegrationTest.java
@@ -30,6 +30,7 @@ import org.hamcrest.Description; import org.hamcrest.Matcher; +import org.junit.After; import org.junit.Assert; import org.junit.Rule; import org.junit.Test; @@ -65,6 +66,11 @@ private final ManualFillingTestHelper mHelper = new ManualFillingTestHelper(mActivityTestRule); + @After + public void tearDown() { + mHelper.clear(); + } + @Test @SmallTest @EnableFeatures({ChromeFeatureList.PASSWORDS_KEYBOARD_ACCESSORY})
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkPersonalizedSigninPromoTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkPersonalizedSigninPromoTest.java index 3a63b09..61802b1 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkPersonalizedSigninPromoTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/bookmarks/BookmarkPersonalizedSigninPromoTest.java
@@ -31,6 +31,7 @@ import org.chromium.base.ThreadUtils; import org.chromium.base.test.util.CommandLineFlags; import org.chromium.base.test.util.DisableIf; +import org.chromium.base.test.util.DisabledTest; import org.chromium.base.test.util.RetryOnFailure; import org.chromium.chrome.R; import org.chromium.chrome.browser.ChromeActivity; @@ -75,6 +76,7 @@ @Test @MediumTest + @DisabledTest(message = "crbug.com/789531") public void testManualDismissPromo() throws Exception { openBookmarkManager(); onView(withId(R.id.signin_promo_view_container)).check(matches(isDisplayed())); @@ -82,10 +84,10 @@ onView(withId(R.id.signin_promo_view_container)).check(doesNotExist()); } - // If this starts flaking again, disable the test. See crbug.com/789531. @Test @LargeTest @DisableIf.Device(type = {UiDisableIf.TABLET}) // https://crbug.com/776405. + @DisabledTest(message = "crbug.com/789531") public void testAutoDismissPromo() throws Exception { int impressionCap = SigninPromoController.getMaxImpressionsBookmarksForTests(); for (int impression = 0; impression < impressionCap; impression++) { @@ -99,6 +101,7 @@ @Test @MediumTest + @DisabledTest(message = "crbug.com/789531") public void testSigninButtonDefaultAccount() throws Exception { addTestAccount(); openBookmarkManager(); @@ -120,6 +123,7 @@ @Test @MediumTest + @DisabledTest(message = "crbug.com/789531") public void testSigninButtonNotDefaultAccount() throws Exception { addTestAccount(); openBookmarkManager(); @@ -140,6 +144,7 @@ @Test @MediumTest + @DisabledTest(message = "crbug.com/789531") public void testSigninButtonNewAccount() throws Exception { openBookmarkManager(); onView(withId(R.id.signin_promo_view_container)).check(matches(isDisplayed()));
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/overlays/strip/TabStripTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/overlays/strip/TabStripTest.java index c5b10efa..fd43adb 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/overlays/strip/TabStripTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/compositor/overlays/strip/TabStripTest.java
@@ -34,7 +34,6 @@ import org.chromium.content_public.browser.test.util.Criteria; import org.chromium.content_public.browser.test.util.CriteriaHelper; import org.chromium.content_public.browser.test.util.DOMUtils; -import org.chromium.ui.UiUtils; import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.test.util.UiRestriction; @@ -1229,7 +1228,8 @@ public boolean isSatisfied() { updateFailureReason("expectsShown: " + expectsShown); return expectsShown - == UiUtils.isKeyboardShowing(mActivityTestRule.getActivity(), + == mActivityTestRule.getKeyboardDelegate().isKeyboardShowing( + mActivityTestRule.getActivity(), mActivityTestRule.getActivity().getActivityTab().getView()); } });
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/media/MediaLauncherActivityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/media/MediaLauncherActivityTest.java index eb9fb3b..97033df 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/media/MediaLauncherActivityTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/media/MediaLauncherActivityTest.java
@@ -22,6 +22,7 @@ import org.chromium.base.CollectionUtil; import org.chromium.base.test.util.CommandLineFlags; +import org.chromium.base.test.util.DisabledTest; import org.chromium.base.test.util.UrlUtils; import org.chromium.chrome.browser.ChromeSwitches; import org.chromium.chrome.browser.customtabs.SeparateTaskCustomTabActivity; @@ -60,6 +61,7 @@ } @Test + @DisabledTest(message = "crbug.com/882938") @SmallTest public void testHandleVideoIntent() throws Exception { String url = TestContentProvider.createContentUrl("media/test.mp4"); @@ -67,6 +69,7 @@ } @Test + @DisabledTest(message = "crbug.com/882938") @SmallTest public void testHandleAudioIntent() throws Exception { String url = TestContentProvider.createContentUrl("media/audio.mp3"); @@ -74,6 +77,7 @@ } @Test + @DisabledTest(message = "crbug.com/882938") @SmallTest public void testHandleImageIntent() throws Exception { String url = TestContentProvider.createContentUrl("google.png"); @@ -81,6 +85,7 @@ } @Test + @DisabledTest(message = "crbug.com/882938") @SmallTest public void testHandleFileURIIntent() throws Exception { String url = UrlUtils.getTestFileUrl("google.png");
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/snippets/ArticleSnippetsTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/snippets/ArticleSnippetsTest.java index 76099d73..7895a78 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/snippets/ArticleSnippetsTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/ntp/snippets/ArticleSnippetsTest.java
@@ -18,6 +18,7 @@ import android.view.ViewGroup; import android.widget.FrameLayout; +import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Rule; @@ -37,8 +38,7 @@ import org.chromium.chrome.browser.favicon.IconType; import org.chromium.chrome.browser.favicon.LargeIconBridge; import org.chromium.chrome.browser.ntp.ContextMenuManager; -import org.chromium.chrome.browser.ntp.cards.NewTabPageViewHolder; -import org.chromium.chrome.browser.ntp.cards.SignInPromo; +import org.chromium.chrome.browser.ntp.cards.PersonalizedPromoViewHolder; import org.chromium.chrome.browser.ntp.cards.SuggestionsCategoryInfo; import org.chromium.chrome.browser.signin.DisplayableProfileData; import org.chromium.chrome.browser.signin.SigninAccessPoint; @@ -99,7 +99,7 @@ private ContextMenuManager mContextMenuManager; private FrameLayout mContentView; private SnippetArticleViewHolder mSuggestion; - private NewTabPageViewHolder mSigninPromo; + private PersonalizedPromoViewHolder mSigninPromo; private UiConfig mUiConfig; @@ -144,6 +144,11 @@ }); } + @After + public void tearDown() { + if (mSigninPromo != null) mSigninPromo.setSigninPromoControllerForTests(null); + } + @Test @MediumTest @Feature({"ArticleSnippets", "RenderTest"}) @@ -343,10 +348,9 @@ private void createPersonalizedSigninPromo(@Nullable DisplayableProfileData profileData) { SigninPromoController signinPromoController = new SigninPromoController(SigninAccessPoint.NTP_CONTENT_SUGGESTIONS); - mSigninPromo = new SignInPromo.PersonalizedPromoViewHolder( - mRecyclerView, mUiConfig, null, null, signinPromoController); - ((SignInPromo.PersonalizedPromoViewHolder) mSigninPromo) - .bindAndConfigureViewForTests(profileData); + mSigninPromo = new PersonalizedPromoViewHolder(mRecyclerView, null, mUiConfig); + mSigninPromo.setSigninPromoControllerForTests(signinPromoController); + mSigninPromo.bindAndConfigureViewForTests(profileData); } private DisplayableProfileData getTestProfileData() {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/autofill/AutofillProfilesFragmentTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/autofill/AutofillProfilesFragmentTest.java index 9bf2f60..9d822cf 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/autofill/AutofillProfilesFragmentTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/autofill/AutofillProfilesFragmentTest.java
@@ -26,7 +26,7 @@ import org.chromium.chrome.browser.preferences.PreferencesTest; import org.chromium.content_public.browser.test.util.Criteria; import org.chromium.content_public.browser.test.util.CriteriaHelper; -import org.chromium.ui.UiUtils; +import org.chromium.ui.KeyboardVisibilityDelegate; import java.util.List; import java.util.concurrent.ExecutionException; @@ -270,7 +270,7 @@ // Hide the keyboard. ThreadUtils.runOnUiThreadBlocking(() -> { List<EditText> fields = addProfile.getEditorDialog().getEditableTextFieldsForTest(); - UiUtils.hideKeyboard(fields.get(0)); + KeyboardVisibilityDelegate.getInstance().hideKeyboard(fields.get(0)); }); // Check that the keyboard is hidden. waitForKeyboardStatus(false, activity); @@ -292,8 +292,8 @@ @Override public boolean isSatisfied() { return keyboardVisible - == UiUtils.isKeyboardShowing( - activity, activity.findViewById(android.R.id.content)); + == KeyboardVisibilityDelegate.getInstance().isKeyboardShowing( + activity, activity.findViewById(android.R.id.content)); } }); }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcherTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcherTest.java index c5528d2..ee6fcbb 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcherTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateDataFetcherTest.java
@@ -105,7 +105,7 @@ public void run() { WebApkInfo oldInfo = WebApkInfo.create("", "", scopeUrl, null, null, null, null, null, -1, -1, -1, -1, -1, "random.package", -1, manifestUrl, "", - WebApkInfo.WebApkDistributor.BROWSER, new HashMap<String, String>(), + WebApkInfo.WebApkDistributor.BROWSER, new HashMap<String, String>(), null, false /* forceNavigation */); fetcher.start(mTab, oldInfo, observer); }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java index 0183aed..7bf1d36e9 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerTest.java
@@ -159,7 +159,7 @@ creationData.backgroundColor, "", WebApkVersion.CURRENT_SHELL_APK_VERSION, creationData.manifestUrl, creationData.startUrl, WebApkInfo.WebApkDistributor.BROWSER, creationData.iconUrlToMurmur2HashMap, - false /* forceNavigation */); + null, false /* forceNavigation */); updateManager.updateIfNeeded(mTab, info); } });
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappVisibilityTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappVisibilityTest.java index c1ada90..a1a161c 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappVisibilityTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/WebappVisibilityTest.java
@@ -134,6 +134,7 @@ false /* forceNavigation */) : WebApkInfo.create("", "", webappStartUrlOrScopeUrl, null, null, null, null, null, displayMode, 0, 0, 0, 0, "", 0, null, "", - WebApkInfo.WebApkDistributor.BROWSER, null, false /* forceNavigation */); + WebApkInfo.WebApkDistributor.BROWSER, null, null, + false /* forceNavigation */); } }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/widget/findinpage/FindTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/widget/findinpage/FindTest.java index f7f9978b..708ec55 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/widget/findinpage/FindTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/widget/findinpage/FindTest.java
@@ -461,7 +461,8 @@ private void waitForIME(final boolean imePresent) { // Wait for IME to appear. CriteriaHelper.pollUiThread(Criteria.equals(imePresent, - () -> org.chromium.ui.UiUtils.isKeyboardShowing( - mActivityTestRule.getActivity(), getFindQueryText()))); + () + -> mActivityTestRule.getKeyboardDelegate().isKeyboardShowing( + mActivityTestRule.getActivity(), getFindQueryText()))); } }
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 64aa5adc..9e2aa960 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
@@ -69,8 +69,6 @@ import org.chromium.chrome.browser.preferences.Pref; import org.chromium.chrome.browser.preferences.PrefServiceBridge; import org.chromium.chrome.browser.signin.SigninManager; -import org.chromium.chrome.browser.signin.SigninManager.SignInAllowedObserver; -import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver; import org.chromium.chrome.browser.suggestions.ContentSuggestionsAdditionalAction; import org.chromium.chrome.browser.suggestions.DestructionObserver; import org.chromium.chrome.browser.suggestions.SuggestionsEventReporter; @@ -915,31 +913,28 @@ assertItemsFor(sectionWithStatusCard().withProgress(), signinPromo()); assertTrue(isSignInPromoVisible()); - // Note: As currently implemented, these variables should point to the same object, a - // SignInPromo.SigninObserver List<DestructionObserver> observers = getDestructionObserver(mUiDelegate); - SignInStateObserver signInStateObserver = - findFirstInstanceOf(observers, SignInStateObserver.class); - assertNotNull(signInStateObserver); - SignInAllowedObserver signInAllowedObserver = - findFirstInstanceOf(observers, SignInAllowedObserver.class); - assertNotNull(signInAllowedObserver); SuggestionsSource.Observer suggestionsObserver = findFirstInstanceOf(observers, SuggestionsSource.Observer.class); assertNotNull(suggestionsObserver); - signInStateObserver.onSignedIn(); + SignInPromo signInPromo = mAdapter.getSignInPromoForTesting(); + assertNotNull(signInPromo); + SigninObserver signinObserver = signInPromo.getSigninObserverForTesting(); + assertNotNull(signinObserver); + + signinObserver.onSignedIn(); assertFalse(isSignInPromoVisible()); - signInStateObserver.onSignedOut(); + signinObserver.onSignedOut(); assertTrue(isSignInPromoVisible()); when(mMockSigninManager.isSignInAllowed()).thenReturn(false); - signInAllowedObserver.onSignInAllowedChanged(); + signinObserver.onSignInAllowedChanged(); assertFalse(isSignInPromoVisible()); when(mMockSigninManager.isSignInAllowed()).thenReturn(true); - signInAllowedObserver.onSignInAllowedChanged(); + signinObserver.onSignInAllowedChanged(); assertTrue(isSignInPromoVisible()); mSource.setRemoteSuggestionsEnabled(false); @@ -1018,8 +1013,9 @@ @Test @Feature({"Ntp"}) public void testAllDismissedVisibility() { - SigninObserver signinObserver = - findFirstInstanceOf(getDestructionObserver(mUiDelegate), SigninObserver.class); + SignInPromo signInPromo = mAdapter.getSignInPromoForTesting(); + assertNotNull(signInPromo); + SigninObserver signinObserver = signInPromo.getSigninObserverForTesting(); assertNotNull(signinObserver); @SuppressWarnings("unchecked") @@ -1092,7 +1088,7 @@ // Disabling remote suggestions should remove both the promo and the AllDismissed item mSource.setRemoteSuggestionsEnabled(false); - signinObserver.onCategoryStatusChanged( + mAdapter.getSuggestionsSourceObserverForTesting().onCategoryStatusChanged( KnownCategories.REMOTE_CATEGORIES_OFFSET + TEST_CATEGORY, CategoryStatus.CATEGORY_EXPLICITLY_DISABLED); // Adapter content: @@ -1110,7 +1106,7 @@ // Prepare some suggestions. They should not load because the category is dismissed on // the current NTP. mSource.setRemoteSuggestionsEnabled(true); - signinObserver.onCategoryStatusChanged( + mAdapter.getSuggestionsSourceObserverForTesting().onCategoryStatusChanged( KnownCategories.REMOTE_CATEGORIES_OFFSET + TEST_CATEGORY, CategoryStatus.AVAILABLE); mSource.setStatusForCategory(TEST_CATEGORY, CategoryStatus.AVAILABLE); mSource.setSuggestionsForCategory(TEST_CATEGORY, createDummySuggestions(1, TEST_CATEGORY));
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerUnitTest.java index a5675bf..f1bbc5d 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerUnitTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/WebApkUpdateManagerUnitTest.java
@@ -257,7 +257,7 @@ manifestData.shortName, manifestData.displayMode, manifestData.orientation, -1, manifestData.themeColor, manifestData.backgroundColor, kPackageName, -1, WEB_MANIFEST_URL, manifestData.startUrl, WebApkInfo.WebApkDistributor.BROWSER, - manifestData.iconUrlToMurmur2HashMap, false /* forceNavigation */); + manifestData.iconUrlToMurmur2HashMap, null, false /* forceNavigation */); } /**
diff --git a/chrome/android/webapk/libs/common/src/org/chromium/webapk/lib/common/WebApkMetaDataKeys.java b/chrome/android/webapk/libs/common/src/org/chromium/webapk/lib/common/WebApkMetaDataKeys.java index bc63ae0..cf766d0b 100644 --- a/chrome/android/webapk/libs/common/src/org/chromium/webapk/lib/common/WebApkMetaDataKeys.java +++ b/chrome/android/webapk/libs/common/src/org/chromium/webapk/lib/common/WebApkMetaDataKeys.java
@@ -33,4 +33,5 @@ public static final String SHARE_ACTION = "org.chromium.webapk.shell_apk.shareAction"; public static final String SHARE_PARAM_TITLE = "org.chromium.webapk.shell_apk.shareParamTitle"; public static final String SHARE_PARAM_TEXT = "org.chromium.webapk.shell_apk.shareParamText"; + public static final String SHARE_PARAM_URL = "org.chromium.webapk.shell_apk.shareParamUrl"; }
diff --git a/chrome/app/BUILD.gn b/chrome/app/BUILD.gn index cb79befb..0f6308ea 100644 --- a/chrome/app/BUILD.gn +++ b/chrome/app/BUILD.gn
@@ -334,6 +334,7 @@ "//chrome/utility", "//components/nacl/common:buildflags", "//components/startup_metric_utils/browser:lib", + "//components/tracing", "//content/public/app:both", "//content/public/common", "//content/public/common:service_names",
diff --git a/chrome/app/DEPS b/chrome/app/DEPS index ffae30da..881d107d 100644 --- a/chrome/app/DEPS +++ b/chrome/app/DEPS
@@ -22,6 +22,7 @@ "+components/policy", "+components/safe_browsing", "+components/startup_metric_utils/browser", + "+components/tracing/common/tracing_sampler_profiler.h", "+components/upload_list", "+components/version_info", "+content/public/app",
diff --git a/chrome/app/chrome_main_delegate.cc b/chrome/app/chrome_main_delegate.cc index 504d056..b644568 100644 --- a/chrome/app/chrome_main_delegate.cc +++ b/chrome/app/chrome_main_delegate.cc
@@ -50,6 +50,7 @@ #include "components/nacl/common/buildflags.h" #include "components/services/heap_profiling/public/cpp/allocator_shim.h" #include "components/services/heap_profiling/public/cpp/stream.h" +#include "components/tracing/common/tracing_sampler_profiler.h" #include "components/version_info/version_info.h" #include "content/public/common/content_client.h" #include "content/public/common/content_paths.h" @@ -509,6 +510,7 @@ void ChromeMainDelegate::PostEarlyInitialization() { DCHECK(chrome_feature_list_creator_); chrome_feature_list_creator_->CreateFeatureList(); + tracing_sampler_profiler_->OnMessageLoopStarted(); } #endif @@ -543,6 +545,10 @@ base::trace_event::TraceLog::GetInstance()->SetArgumentFilterPredicate( base::Bind(&IsTraceEventArgsWhitelisted)); + // Setup tracing sampler profiler as early as possible at startup if needed. + tracing_sampler_profiler_ = std::make_unique<tracing::TracingSamplerProfiler>( + base::PlatformThread::CurrentId()); + #if defined(OS_WIN) && !defined(CHROME_MULTIPLE_DLL_BROWSER) v8_breakpad_support::SetUp(); #endif
diff --git a/chrome/app/chrome_main_delegate.h b/chrome/app/chrome_main_delegate.h index 59d8d1b..3508a62 100644 --- a/chrome/app/chrome_main_delegate.h +++ b/chrome/app/chrome_main_delegate.h
@@ -23,6 +23,10 @@ class CommandLine; } +namespace tracing { +class TracingSamplerProfiler; +} + class ChromeContentBrowserClient; // Chrome implementation of ContentMainDelegate. @@ -89,6 +93,8 @@ std::unique_ptr<ChromeFeatureListCreator> chrome_feature_list_creator_; #endif + std::unique_ptr<tracing::TracingSamplerProfiler> tracing_sampler_profiler_; + DISALLOW_COPY_AND_ASSIGN(ChromeMainDelegate); };
diff --git a/chrome/app/chromeos_strings.grdp b/chrome/app/chromeos_strings.grdp index 37d1d39..99b6bd6 100644 --- a/chrome/app/chromeos_strings.grdp +++ b/chrome/app/chromeos_strings.grdp
@@ -1580,7 +1580,7 @@ Entering as Guest. </message> <message name="IDS_CHROMEOS_ACC_LOGIN_SIGNIN_PUBLIC_ACCOUNT" desc="Status when signing in into a public account."> - Entering public session. + Entering managed session. </message> <message name="IDS_CHROMEOS_ACC_LEARN_MORE" desc="Dialog button [?] linking to more information."> Learn more. @@ -2301,14 +2301,14 @@ <message name="IDS_LOGIN_PUBLIC_ACCOUNT_SIGNOUT_REMINDER" desc="Text shown in the public account user pod, reminding the user to log out."> Your information will be removed from the device when you sign out. </message> - <message name="IDS_LOGIN_PUBLIC_SESSION_LANGUAGE_AND_INPUT" desc="Link in public session pod that shows a section which allows the user to change the UI language and keyboard layout."> + <message name="IDS_LOGIN_PUBLIC_SESSION_LANGUAGE_AND_INPUT" desc="Link in managed session pod that shows a section which allows the user to change the UI language and keyboard layout."> Language and input </message> <message name="IDS_LOGIN_PUBLIC_ACCOUNT_ENTER" meaning="Label text for signing in." desc="Label text for the sign-in button in the public account user pod."> Enter </message> <message name="IDS_LOGIN_PUBLIC_ACCOUNT_ENTER_ACCESSIBLE_NAME" desc="Text to be spoken when focus is set to the sign-in button in the public account user pod."> - Enter public session + Enter managed session </message> <message name="IDS_LOGIN_PUBLIC_ACCOUNT_MONITORING_WARNING" desc="Text shown in the public account user pod, warning the user about potential admin monitoring."> The device admin may monitor your browsing activity.
diff --git a/chrome/app/resources/chromium_strings_am.xtb b/chrome/app/resources/chromium_strings_am.xtb index 310ac5f7..eefcf45b 100644 --- a/chrome/app/resources/chromium_strings_am.xtb +++ b/chrome/app/resources/chromium_strings_am.xtb
@@ -18,6 +18,7 @@ <translation id="1502360822835740515">Chromiumን የእርስዎ ነባሪ አሳሽ ያድርጉ</translation> <translation id="151962892725702025">ማመሳሰል ለጎራዎ ስለማይገኝ Chromium OS ውሂብዎን ማመሳሰል አይችልም።</translation> <translation id="1585657529869845941"><ph name="BEGIN_BOLD" />ለማንኛውም ቀይር<ph name="END_BOLD" /> ከመጣ ጠቅ ያድርጉት</translation> +<translation id="1662639173275167396">Chrome OS እና እንዲሁም <ph name="BEGIN_LINK_LINUX_OSS" />Linux (ቅድመ-ይሁንታ)<ph name="END_LINK_LINUX_OSS" /> ሊሠሩ የቻሉት በተጨማሪ <ph name="BEGIN_LINK_CROS_OSS" />የክፍት ምንጭ ሶፍትዌር<ph name="END_LINK_CROS_OSS" /> ነው።</translation> <translation id="1668054258064581266">መለያዎን ከChromium ካስወገዱ በኋላ፣ ክፍት ትሮችዎ እንዲሰሩ መልሰው መጫን ሊኖርብዎ ይችላል።</translation> <translation id="1688750314291223739">ግላዊነት የተላበሰው የአሳሽ ባህሪዎችዎ ድር ላይ ለማስቀመጥና ከዚያ Chromium ካለው ማንኛውም ኮምፒውተር ለመድረስ አመሳስልን ያዋቅሩ።</translation> <translation id="1708666629004767631">አዲስና ደህንነቱ ይበልጥ የተጠበቀ የChromium ስሪት አለ።</translation>
diff --git a/chrome/app/resources/chromium_strings_ar.xtb b/chrome/app/resources/chromium_strings_ar.xtb index 19c7900..1c5d60a 100644 --- a/chrome/app/resources/chromium_strings_ar.xtb +++ b/chrome/app/resources/chromium_strings_ar.xtb
@@ -16,6 +16,7 @@ <translation id="1502360822835740515">جعل Chromium المتصفح التلقائي</translation> <translation id="151962892725702025">تعذر على نظام التشغيل Chromium مزامنة البيانات نظرًا لأن المزامنة غير متاحة في نطاقك.</translation> <translation id="1585657529869845941">النقر على زر <ph name="BEGIN_BOLD" />التبديل على أي حال<ph name="END_BOLD" /> في حال ظهوره</translation> +<translation id="1662639173275167396">أصبح نظام التشغيل Chrome متاحًا من خلال <ph name="BEGIN_LINK_CROS_OSS" />برنامج مفتوح المصدر<ph name="END_LINK_CROS_OSS" />إضافي، كما في نظام التشغيل <ph name="BEGIN_LINK_LINUX_OSS" />Linux (إصدار تجريبي)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1668054258064581266">بعد إزالة حسابك من Chromium، قد تحتاج إلى إعادة تحميل علامات التبويب المفتوحة لتفعيلها.</translation> <translation id="1688750314291223739">يمكنك إعداد المزامنة لحفظ ميزات المتصفح المخصصة على الويب والدخول إليها من Chromium على أي كمبيوتر.</translation> <translation id="1708666629004767631">يتوفر إصدار جديد وأكثر أمانًا Chromium.</translation>
diff --git a/chrome/app/resources/chromium_strings_et.xtb b/chrome/app/resources/chromium_strings_et.xtb index 44e5e1ff..99f7aae 100644 --- a/chrome/app/resources/chromium_strings_et.xtb +++ b/chrome/app/resources/chromium_strings_et.xtb
@@ -16,6 +16,7 @@ <translation id="1502360822835740515">Chromiumi vaikebrauseriks määramine</translation> <translation id="151962892725702025">Chromium OS ei saanud teie andmeid sünkroonida, sest teie domeenil pole sünkroonimine saadaval.</translation> <translation id="1585657529869845941">Kui see kuvatakse, klõpsake valikul <ph name="BEGIN_BOLD" />Vaheta ikkagi<ph name="END_BOLD" /></translation> +<translation id="1662639173275167396">Chrome OS töötab täiendava <ph name="BEGIN_LINK_CROS_OSS" />avatud lähtekoodiga tarkvara<ph name="END_LINK_CROS_OSS" /> toel, nagu ka näiteks <ph name="BEGIN_LINK_LINUX_OSS" />Linux (beetaversioon)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1668054258064581266">Pärast konto eemaldamist Chromiumist tuleb avatud vahekaardid võib-olla uuesti laadida, et need toimiksid.</translation> <translation id="1688750314291223739">Seadistage sünkroonimine, et salvestada isikupärastatud brauserifunktsioonid veebi, misjuhul pääsete igast arvutist Chromiumi kaudu nende juurde.</translation> <translation id="1708666629004767631">Saadaval on Chromiumi uus, turvalisem versioon.</translation>
diff --git a/chrome/app/resources/chromium_strings_fa.xtb b/chrome/app/resources/chromium_strings_fa.xtb index 6652cd8..3716d413 100644 --- a/chrome/app/resources/chromium_strings_fa.xtb +++ b/chrome/app/resources/chromium_strings_fa.xtb
@@ -16,6 +16,7 @@ <translation id="1502360822835740515">Chromium مرورگر پیشفرض شود</translation> <translation id="151962892725702025">سیستمعامل Chromium قادر به همگامسازی دادههای شما نبود زیرا همگامسازی برای دامنه شما قابل دسترسی نیست.</translation> <translation id="1585657529869845941">درصورتیکه نمایان شد، روی <ph name="BEGIN_BOLD" />بههرصورت جابهجایی<ph name="END_BOLD" /> کلیک کنید</translation> +<translation id="1662639173275167396">ساخت سیستمعامل Chrome به کمک <ph name="BEGIN_LINK_CROS_OSS" />نرمافزار منبع آزاد<ph name="END_LINK_CROS_OSS" /> دیگری (همانگونه که <ph name="BEGIN_LINK_LINUX_OSS" />Linux (بتا)<ph name="END_LINK_LINUX_OSS" /> است)، امکانپذیر شده است.</translation> <translation id="1668054258064581266">پس از حذف حسابتان از Chromium، ممکن است لازم باشد برای اعمال تغییرات، برگههای بازتان را تازهسازی کنید.</translation> <translation id="1688750314291223739">برای ذخیره ویژگیهای مرورگر سفارشی شده خود در وب و دسترسی به آنها از Chromium از هر رایانه دیگری، همگامسازی را راهاندازی کنید.</translation> <translation id="1708666629004767631">نسخه جدید و امنتری از Chromium موجود است.</translation>
diff --git a/chrome/app/resources/chromium_strings_fil.xtb b/chrome/app/resources/chromium_strings_fil.xtb index 9654369..81ceb48 100644 --- a/chrome/app/resources/chromium_strings_fil.xtb +++ b/chrome/app/resources/chromium_strings_fil.xtb
@@ -18,6 +18,7 @@ <translation id="1502360822835740515">Gawing default mong browser ang Chromium</translation> <translation id="151962892725702025">Hindi ma-sync ng Chromium OS ang iyong data dahil hindi available ang Pag-sync para sa iyong domain.</translation> <translation id="1585657529869845941">I-click ang <ph name="BEGIN_BOLD" />Lumipat pa rin<ph name="END_BOLD" />, kung lalabas ito</translation> +<translation id="1662639173275167396">Ginagawang posible ang Chrome OS ng karagdagang <ph name="BEGIN_LINK_CROS_OSS" />open source na software<ph name="END_LINK_CROS_OSS" />, gayundin ng <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1668054258064581266">Pagkatapos alisin ang iyong account sa Chromium, maaaring kailangan mong i-reload ang mga nakabukas mong tab upang magkabisa.</translation> <translation id="1688750314291223739">I-set up ang Pag-sync upang i-save ang iyong personalized na mga tampok ng browser sa web at i-access ang mga iyon mula sa Chromium sa anumang computer.</translation> <translation id="1708666629004767631">May available na bago at mas ligtas na bersyon ng Chromium.</translation>
diff --git a/chrome/app/resources/chromium_strings_hr.xtb b/chrome/app/resources/chromium_strings_hr.xtb index 764ec3b..6457d02 100644 --- a/chrome/app/resources/chromium_strings_hr.xtb +++ b/chrome/app/resources/chromium_strings_hr.xtb
@@ -16,6 +16,7 @@ <translation id="1502360822835740515">Postavljanje Chromiuma kao zadanog preglednika</translation> <translation id="151962892725702025">OS Chromium nije mogao sinkronizirati vaše podatke jer sinkronizacija nije dostupna za vašu domenu.</translation> <translation id="1585657529869845941">Kliknite <ph name="BEGIN_BOLD" />Svejedno promijeni<ph name="END_BOLD" />, ako ste ta opcija pojavi</translation> +<translation id="1662639173275167396">OS Chrome omogućen je dodatnim <ph name="BEGIN_LINK_CROS_OSS" />softverom otvorenog izvornog koda<ph name="END_LINK_CROS_OSS" />, isto kao i <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1668054258064581266">Nakon uklanjanja računa s Chromiuma možda ćete morati ponovo učitati otvorene kartice kako bi nastupile promjene.</translation> <translation id="1688750314291223739">Postavite sinkronizaciju da biste spremili svoje prilagođene značajke preglednika na web i pristupali im s preglednika Chromium na bilo kojem računalu.</translation> <translation id="1708666629004767631">Dostupna je nova, sigurnija verzija preglednika Chromium.</translation>
diff --git a/chrome/app/resources/chromium_strings_hu.xtb b/chrome/app/resources/chromium_strings_hu.xtb index 955b129e..a087209 100644 --- a/chrome/app/resources/chromium_strings_hu.xtb +++ b/chrome/app/resources/chromium_strings_hu.xtb
@@ -16,6 +16,7 @@ <translation id="1502360822835740515">Legyen a Chromium az alapértelmezett böngészője</translation> <translation id="151962892725702025">A Chromium OS nem tudta szinkronizálni az adatait, mert a szinkronizálás nem érhető el az Ön domainjénél.</translation> <translation id="1585657529869845941">Ha megjelenik, kattintson a <ph name="BEGIN_BOLD" />Váltás mindenképpen<ph name="END_BOLD" /> lehetőségre</translation> +<translation id="1662639173275167396">A Chrome OS létrejöttéhez egyéb <ph name="BEGIN_LINK_CROS_OSS" />nyílt forráskódú szoftverek<ph name="END_LINK_CROS_OSS" /> is hozzájárultak, ahogyan a <ph name="BEGIN_LINK_LINUX_OSS" />Linux (béta)<ph name="END_LINK_LINUX_OSS" /> létrejöttéhez is.</translation> <translation id="1668054258064581266">Fiókjának eltávolítása után a Chromiumból előfordulhat, hogy újra kell töltenie a megnyitott lapokat ahhoz, hogy a változások életbe lépjenek.</translation> <translation id="1688750314291223739">A szinkronizálás beállításával személyre szabott beállításait az interneten tárolhatja, így azok elérhetők a Chromiumból bármelyik számítógépen.</translation> <translation id="1708666629004767631">Elérhető a Chromium új, biztonságosabb verziója.</translation>
diff --git a/chrome/app/resources/chromium_strings_id.xtb b/chrome/app/resources/chromium_strings_id.xtb index 49bcc475..76f6239 100644 --- a/chrome/app/resources/chromium_strings_id.xtb +++ b/chrome/app/resources/chromium_strings_id.xtb
@@ -16,6 +16,7 @@ <translation id="1502360822835740515">Jadikan Chromium sebagai browser default</translation> <translation id="151962892725702025">Chromium OS tidak dapat menyinkronkan data Anda karena Sinkronisasi tidak tersedia untuk domain Anda.</translation> <translation id="1585657529869845941">Klik <ph name="BEGIN_BOLD" />Ganti saja<ph name="END_BOLD" />, jika muncul</translation> +<translation id="1662639173275167396">Chrome OS terwujud karena <ph name="BEGIN_LINK_CROS_OSS" />software open source<ph name="END_LINK_CROS_OSS" /> tambahan, seperti <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1668054258064581266">Setelah membuang akun dari Chromium, Anda mungkin perlu memuat ulang tab terbuka untuk mulai menerapkannya.</translation> <translation id="1688750314291223739">Siapkan Sinkronisasi untuk menyimpan fitur browser hasil personalisasi Anda ke web dan mengaksesnya dari Chromium di komputer mana saja.</translation> <translation id="1708666629004767631">Tersedia versi Chromium yang baru dan lebih aman.</translation>
diff --git a/chrome/app/resources/chromium_strings_it.xtb b/chrome/app/resources/chromium_strings_it.xtb index de1726a..57bfca3d 100644 --- a/chrome/app/resources/chromium_strings_it.xtb +++ b/chrome/app/resources/chromium_strings_it.xtb
@@ -16,6 +16,7 @@ <translation id="1502360822835740515">Imposta Chromium come browser predefinito</translation> <translation id="151962892725702025">Impossibile sincronizzare i dati in Chromium OS perché la sincronizzazione non è disponibile per il tuo dominio.</translation> <translation id="1585657529869845941">Fai clic su <ph name="BEGIN_BOLD" />Switch anyway<ph name="END_BOLD" /> (Passa comunque) se viene visualizzato</translation> +<translation id="1662639173275167396">La realizzazione di Chrome OS è stata possibile grazie a <ph name="BEGIN_LINK_CROS_OSS" />software open source<ph name="END_LINK_CROS_OSS" /> aggiuntivo, come <ph name="BEGIN_LINK_LINUX_OSS" />Linux (beta)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1668054258064581266">Dopo avere rimosso il tuo account da Chromium, potresti dover ricaricare le schede aperte perché le modifiche vengano applicate.</translation> <translation id="1688750314291223739">Configura la sincronizzazione per salvare le funzioni personalizzate del browser sul Web e accedervi da Chromium su qualsiasi computer.</translation> <translation id="1708666629004767631">È disponibile una nuova versione più sicura di Chromium.</translation>
diff --git a/chrome/app/resources/chromium_strings_ja.xtb b/chrome/app/resources/chromium_strings_ja.xtb index 5e89794..e5f51d9 100644 --- a/chrome/app/resources/chromium_strings_ja.xtb +++ b/chrome/app/resources/chromium_strings_ja.xtb
@@ -16,6 +16,7 @@ <translation id="1502360822835740515">Chromium をデフォルトのブラウザにする</translation> <translation id="151962892725702025">お使いのドメインでは同期を利用できないため、Chromium OS はデータを同期できませんでした。</translation> <translation id="1585657529869845941">[<ph name="BEGIN_BOLD" />切り替える<ph name="END_BOLD" />] をクリックします(表示された場合)</translation> +<translation id="1662639173275167396">Chrome OS は、さらに追加の<ph name="BEGIN_LINK_CROS_OSS" />オープンソース ソフトウェア<ph name="END_LINK_CROS_OSS" />によって <ph name="BEGIN_LINK_LINUX_OSS" />Linux(ベータ版)<ph name="END_LINK_LINUX_OSS" />で実現しました。</translation> <translation id="1668054258064581266">Chromium からアカウントを削除したら、場合によっては開いているタブを再読み込みして変更を反映させる必要があります。</translation> <translation id="1688750314291223739">同期を設定すると、パーソナライズされたブラウザ機能をウェブ上に保存して、どのパソコンの Chromium からでも使用できるようになります。</translation> <translation id="1708666629004767631">Chromium がさらに安全になりました。最新バージョンをぜひお試しください。</translation>
diff --git a/chrome/app/resources/chromium_strings_kn.xtb b/chrome/app/resources/chromium_strings_kn.xtb index e2bd83c4..6d8ac11 100644 --- a/chrome/app/resources/chromium_strings_kn.xtb +++ b/chrome/app/resources/chromium_strings_kn.xtb
@@ -3,7 +3,7 @@ <translationbundle lang="kn"> <translation id="1065672644894730302">ನಿಮ್ಮ ಪ್ರಾಶಸ್ತ್ಯಗಳನ್ನು ರೀಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಅಲ್ಲದೇ, ಕೆಲವು ವೈಶಿಷ್ಟ್ಯಗಳು ಲಭ್ಯವಿಲ್ಲದಿರಬಹುದು ಮತ್ತು ಪ್ರಾಶಸ್ತ್ಯಗಳಲ್ಲಿ ಮಾಡಿದ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲಾಗುವುದಿಲ್ಲ.</translation> <translation id="1104942323762546749">Chromium ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ರಫ್ತು ಮಾಡಲು ಬಯಸುತ್ತದೆ. ಇದನ್ನು ಅನುಮತಿಸಲು ನಿಮ್ಮ Windows ಪಾಸ್ವರ್ಡ್ ಟೈಪ್ ಮಾಡಿ.</translation> -<translation id="1115445892567829615">Chromium ಗೆ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ನವೀಕರಿಸಿ.</translation> +<translation id="1115445892567829615">Chromium ಗೆ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಿ.</translation> <translation id="113122355610423240">Chromium ನಿಮ್ಮ ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಆಗಿದೆ.</translation> <translation id="1170115874949214249">ನಿಮ್ಮ ಫೋನ್ನಲ್ಲಿ Chromium ಅನ್ನು ಸ್ಥಾಪಿಸಿ. ನಿಮ್ಮ ಖಾತೆ ಮರುಪ್ರಾಪ್ತಿ ಫೋನ್ ಸಂಖ್ಯೆಗೆ ನಾವು ಎಸ್ಎಂಎಸ್ ಕಳುಹಿಸುತ್ತೇವೆ.</translation> <translation id="1174473354587728743">ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದೇ? ಇದೀಗ ನೀವು ಇಷ್ಟಪಡುವ ರೀತಿಯಲ್ಲಿ ನೀವು Chromium ಹೊಂದಿಸಬಹುದು.</translation> @@ -19,7 +19,7 @@ <translation id="1668054258064581266">Chromium ನಿಂದ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ತೆಗೆದುಹಾಕಿದ ನಂತರ, ಪರಿಣಾಮಕಾರಿಯಾಗಲು ನಿಮ್ಮ ತೆರೆದ ಟ್ಯಾಬ್ಗಳನ್ನು ನೀವು ಮರುಲೋಡ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ.</translation> <translation id="1688750314291223739">ವೆಬ್ಗೆ ನಿಮ್ಮ ವೈಯಕ್ತಿಕಗೊಳಿಸಿದ ಬ್ರೌಸರ್ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಉಳಿಸಲು ಸಿಂಕ್ ಅನ್ನು ಹೊಂದಿಸಿ ಮತ್ತು ಯಾವುದೇ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ Chromium ನಿಂದ ಅವುಗಳನ್ನು ಪ್ರವೇಶಿಸಿ.</translation> <translation id="1708666629004767631">ಹೊಸದಾದ, ಸುರಕ್ಷಿತವಾದ Chromium ನ ಆವೃತ್ತಿ ಲಭ್ಯವಿದೆ.</translation> -<translation id="1766096484055239003">ಅಪ್ಡೇಟ್ ಅನ್ವಯಿಸಲು ನಿಮ್ಮ ನಿರ್ವಾಹಕರಿಗೆ ನೀವು Chromium ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸುವ ಅಗತ್ಯವಿದೆ</translation> +<translation id="1766096484055239003">ಅಪ್ಡೇಟ್ ಅನ್ವಯಿಸಲು ನೀವು Chrome ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕೆಂದು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಕೋರುತ್ತಿದ್ದಾರೆ</translation> <translation id="1774152462503052664">Chromium ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಚಾಲನೆಗೊಳ್ಳಲು ಅನುಮತಿಸಿ</translation> <translation id="1779356040007214683">Chromium ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿರಿಸಲು, <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ನಲ್ಲಿ ನಾವು ಪಟ್ಟಿ ಮಾಡಲಾದ ಕೆಲವು ವಿಸ್ತರಣೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದೇವೆ ಮತ್ತು ಇದು ಗಮನಕ್ಕೆ ಬಾರದೇ ಸೇರಿಸಿರಬಹುದು.</translation> <translation id="1808667845054772817">Chromium ಅನ್ನು ಮರುಸ್ಥಾಪಿಸು</translation> @@ -29,14 +29,14 @@ <translation id="1929939181775079593">Chromium ಸ್ಪಂದಿಸುತ್ತಿಲ್ಲ. ಇದೀಗ ಮರುಪ್ರಾರಂಭಿಸುವುದೇ?</translation> <translation id="1966382378801805537">ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಅನ್ನು ನಿರ್ಧರಿಸಲು ಅಥವಾ ಹೊಂದಿಸಲು Chromium ಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ</translation> <translation id="2008474315282236005">ಈ ಸಾಧನದಿಂದ 1 ಐಟಂ ಅನ್ನು ಇದು ಅಳಿಸುತ್ತದೆ. ನಂತರ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಮರುಪಡೆಯಲು, <ph name="USER_EMAIL" /> ನಂತೆ Chromium ಗೆ ಸೈನ್ಇನ್ ಮಾಡಿ.</translation> -<translation id="2117378023188580026">ಈ ಅಪ್ಡೇಟ್ ಅನ್ವಯಿಸಲು ನೀವು Chromium ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ ಎಂದು ನಿರ್ವಾಹಕ ನಿಮ್ಮನ್ನು ಕೇಳುತ್ತದೆ</translation> +<translation id="2117378023188580026">ಈ ಅಪ್ಡೇಟ್ ಅನ್ವಯಿಸಲು ನೀವು Chrome ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕೆಂದು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಕೋರುತ್ತಿದ್ದಾರೆ</translation> <translation id="2119636228670142020">&Chromium OS ಕುರಿತು</translation> <translation id="2241627712206172106">ನೀವು ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಹಂಚಿಕೊಂಡರೆ, ಸ್ನೇಹಿತರು ಮತ್ತು ಕುಟುಂಬದವರು ಪ್ರತ್ಯೇಕವಾಗಿ ಬ್ರೌಸ್ ಮಾಡಬಹುದು ಮತ್ತು Chromium ಅನ್ನು ಅವರಿಗೆ ಬೇಕಾದಂತೆ ಹೊಂದಿಸಿಕೊಳ್ಳಬಹುದು.</translation> <translation id="2265088490657775772">ನಿಮ್ಮ iPhone ನಲ್ಲಿ Chromium ಪಡೆದುಕೊಳ್ಳಿ</translation> <translation id="2347108572062610441">ನೀವು Chromium ಪ್ರಾರಂಭಿಸಿದಾಗ ಯಾವ ಪುಟ ತೋರಿಸಬೇಕೆಂಬುದನ್ನು ಈ ವಿಸ್ತರಣೆಯು ಬದಲಾಯಿಸಿದೆ.</translation> <translation id="2396765026452590966">ನೀವು Chromium ಪ್ರಾರಂಭಿಸಿದಾಗ ತೋರಿಸಬೇಕಾದ ಪುಟವನ್ನು "<ph name="EXTENSION_NAME" />" ವಿಸ್ತರಣೆಯು ಬದಲಾಯಿಸಿದೆ.</translation> <translation id="2483889755041906834">Chromium ನಲ್ಲಿ</translation> -<translation id="2485422356828889247">ಅಸ್ಥಾಪಿಸು</translation> +<translation id="2485422356828889247">ಅನ್ಇನ್ಸ್ಟಾಲ್</translation> <translation id="2527042973354814951"><ph name="PLUGIN_NAME" /> ಸಕ್ರಿಯಗೊಳಿಸಲು Chromium ಮರುಪ್ರಾರಂಭಿಸಿ</translation> <translation id="2535480412977113886">ನಿಮ್ಮ ಖಾತೆಯ ಸೈನ್ ಇನ್ ವಿವರಗಳು ತೀರಾ ಹಳೆಯದಾಗಿರುವ ಕಾರಣ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು Chromium OS ಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.</translation> <translation id="2560420686485554789">ಫೈಲ್ಗಳನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲು Chromium ಗೆ ಸಂಗ್ರಹಣೆಯನ್ನು ಪ್ರವೇಶಿಸುವ ಅಗತ್ಯವಿದೆ</translation> @@ -155,20 +155,20 @@ <translation id="6309712487085796862">Chromium ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಬಳಸುತ್ತಿದೆ.</translation> <translation id="6333502561965082103">Chromium ನಲ್ಲಿ ಬೇರೆ ಕಾರ್ಯಾಚರಣೆಯು ಪ್ರಗತಿಯಲ್ಲಿದೆ. ದಯವಿಟ್ಟು ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="6334986366598267305">ನಿಮ್ಮ Google ಖಾತೆಯ ಮೂಲಕ ಮತ್ತು ಹಂಚಿದ ಕಂಪ್ಯೂಟರ್ಗಳಲ್ಲಿ Chromium ಬಳಕೆಯು ಇದೀಗ ತುಂಬಾ ಸುಲಭವಾಗಿದೆ.</translation> -<translation id="6373523479360886564">Chromium ಅಸ್ಥಾಪಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?</translation> +<translation id="6373523479360886564">Chromium ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?</translation> <translation id="6394232988457703198">ಇದೀಗ ನೀವು Chromium ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕು.</translation> <translation id="6400072781405947421">Mac OS X 10.9 ನಲ್ಲಿ Chromium ಇನ್ನು ಮುಂದೆ ಬೆಂಬಲಿಸದೇ ಇರುವುದರಿಂದ ಅದು ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸದೇ ಇರಬಹುದು.</translation> <translation id="6403826409255603130">Chromium ಒಂದು ವೆಬ್ ಬ್ರೌಸರ್ ಆಗಿದ್ದು ವೆಬ್ಪುಟಗಳನ್ನು ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ವೇಗದೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಇದು ವೇಗವಾದ, ಸ್ಥಿರವಾದ, ಮತ್ತು ಬಳಸಲು ಸುಲಭವಾಗಿದೆ. ಮಾಲ್ವೇರ್ನೊಂದಿಗೆ ಹೆಚ್ಚು ಸುರಕ್ಷಿತವಾಗಿ ಹಾಗೂ Chromium ನಲ್ಲಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಫಿಶಿಂಗ್ ಸುರಕ್ಷೆಯೊಂದಿಗೆ ವೆಬ್ ಅನ್ನು ಬ್ರೌಸ್ ಮಾಡಿ.</translation> <translation id="641451971369018375">ಬ್ರೌಸಿಂಗ್ ಮತ್ತು Chromium ಅನ್ನು ಸುಧಾರಿಸಲು Google ನೊಂದಿಗೆ ಸಂವಹಿಸುತ್ತದೆ</translation> <translation id="6457450909262716557">{SECONDS,plural, =1{Chromium 1 ಸೆಕೆಂಡ್ನಲ್ಲಿ ಮರುಪ್ರಾರಂಭವಾಗುತ್ತದೆ}one{Chromium # ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಮರುಪ್ರಾರಂಭವಾಗುತ್ತದೆ}other{Chromium # ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಮರುಪ್ರಾರಂಭವಾಗುತ್ತದೆ}}</translation> <translation id="6475912303565314141">ನೀವು Chromium ಪ್ರಾರಂಭಿಸಿದಾಗ ತೋರಿಸಬೇಕಾದ ಪುಟವನ್ನು ಕೂಡಾ ಇದು ನಿಯಂತ್ರಿಸುತ್ತದೆ.</translation> -<translation id="6485906693002546646">ನಿಮ್ಮ Chromium ವಿಷಯವನ್ನು ಸಿಂಕ್ ಮಾಡಲು ನೀವು <ph name="PROFILE_EMAIL" /> ಅನ್ನು ಬಳಸುತ್ತಿರುವಿರಿ. Google ಖಾತೆ ಇಲ್ಲದೆ ನಿಮ್ಮ ಸಿಂಕ್ ಪ್ರಾಶಸ್ತ್ಯಗಳನ್ನು ನವೀಕರಿಸಲು ಅಥವಾ Chromium ಬಳಸಲು, <ph name="SETTINGS_LINK" /> ಭೇಟಿ ನೀಡಿ.</translation> +<translation id="6485906693002546646">ನಿಮ್ಮ Chromium ವಿಷಯವನ್ನು ಸಿಂಕ್ ಮಾಡಲು ನೀವು <ph name="PROFILE_EMAIL" /> ಅನ್ನು ಬಳಸುತ್ತಿರುವಿರಿ. Google ಖಾತೆ ಇಲ್ಲದೆ ನಿಮ್ಮ ಸಿಂಕ್ ಪ್ರಾಶಸ್ತ್ಯಗಳನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಲು ಅಥವಾ Chromium ಬಳಸಲು, <ph name="SETTINGS_LINK" /> ಭೇಟಿ ನೀಡಿ.</translation> <translation id="6510925080656968729">Chromium ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ</translation> <translation id="6570579332384693436">ಕಾಗುಣಿತ ದೋಷಗಳನ್ನು ಸರಿಪಡಿಸಲು, ನೀವು ಪಠ್ಯ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ಟೈಪ್ ಮಾಡುವ ಪಠ್ಯವನ್ನು Chromium, Google ಗೆ ಕಳುಹಿಸುತ್ತದೆ</translation> <translation id="6598877126913850652">Chromium ಅಧಿಸೂಚನೆ ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ಹೋಗಿ</translation> <translation id="6676384891291319759">ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ</translation> <translation id="6717134281241384636">Chromium ನ ಹೊಸ ಆವೃತ್ತಿಯಾಗಿರುವುದರಿಂದ ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಅನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ. ಕೆಲವೊಂದು ವೈಶಿಷ್ಟ್ಯಗಳು ಲಭ್ಯವಿಲ್ಲದಿರಬಹುದು. ದಯವಿಟ್ಟು ಬೇರೆ ಒಂದು ಪೊಫೈಲ್ ಡೈರೆಕ್ಟರಿ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ ಅಥವಾ Chromium ನ ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ಬಳಸಿ.</translation> -<translation id="6734080038664603509">&Chromium ನವೀಕರಿಸಿ</translation> +<translation id="6734080038664603509">&Chromium ಅಪ್ಡೇಟ್ ಮಾಡಿ</translation> <translation id="6734291798041940871">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿನ ಎಲ್ಲ ಬಳಕೆದಾರರಿಗೆ ಈಗಾಗಲೇ Chromium ಸ್ಥಾಪಿತವಾಗಿದೆ.</translation> <translation id="6810143991807788455">ಪ್ರಸ್ತುತ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ವರದಿ ಮಾಡುವುದರ ಮೂಲಕ Chromium ಅನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ಸಹಾಯಮಾಡಿ</translation> <translation id="6857782730669500492">Chromium - <ph name="PAGE_TITLE" /></translation> @@ -177,14 +177,14 @@ <translation id="6964305034639999644">Chromium ಅ&ದೃಶ್ಯ ವಿಂಡೋದಲ್ಲಿ ಲಿಂಕ್ ತೆರೆಯಿರಿ</translation> <translation id="6970811910055250180">ನಿಮ್ಮ ಸಾಧನವನ್ನು ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="6990124437352146030">ಈ ಸೈಟ್ಗಾಗಿ ನಿಮ್ಮ ಮೈಕ್ರೊಫೋನ್ಗೆ ಪ್ರವೇಶಿಸಲು Chromium ಗೆ ಅನುಮತಿಯ ಅಗತ್ಯವಿದೆ</translation> -<translation id="705851970750939768">Chromium ನವೀಕರಿಸಿ</translation> -<translation id="7066436765290594559">ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು Chromium OS ಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ನವೀಕರಿಸಿ.</translation> +<translation id="705851970750939768">Chromium ಅಪ್ಡೇಟ್ ಮಾಡಿ</translation> +<translation id="7066436765290594559">ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು Chromium OS ಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಿ.</translation> <translation id="7162152143154757523">Google ಹುಡುಕಾಟ ಬಳಸುವ ಪದ ಪರೀಕ್ಷಕ ತಂತ್ರಜ್ಞಾನವನ್ನು ಬಳಸಲು ನಿಮಗೆ ಅನುಮತಿ ನೀಡಲು, ಬ್ರೌಸರ್ನಲ್ಲಿ ನೀವು ಟೈಪ್ ಮಾಡುವುದನ್ನು Google ಸರ್ವರ್ಗೆ ಕಳುಹಿಸುವ ಮೂಲಕ Chromium ಒಳ್ಳೆಯ ಪದ ಪರೀಕ್ಷವನ್ನು ಒದಗಿಸಬಹುದಾಗಿದೆ.</translation> <translation id="7196312274710523067">Chromium ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="7205698830395646142">Chromium ಮೆನುವಿನಲ್ಲಿ ಮರೆಮಾಡು</translation> <translation id="7223968959479464213">ಕಾರ್ಯನಿರ್ವಾಹಕ - Chromium</translation> <translation id="722928257909516027">Chromium ಮೆನು ತೋರಿಸಿ</translation> -<translation id="731644333568559921">&Chromium OS ಅನ್ನು ನವೀಕರಿಸಿ</translation> +<translation id="731644333568559921">&Chromium OS ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಿ</translation> <translation id="731795002583552498">Chromium ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation> <translation id="7318036098707714271">ನಿಮ್ಮ ಪ್ರಾಶಸ್ತ್ಯಗಳ ಫೈಲ್ ದೋಷಪೂರಿತವಾಗಿದೆ ಅಥವಾ ಅಮಾನ್ಯವಾಗಿದೆ. ನಿಮ್ಮ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಮರುಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ Chromium ವಿಫಲಗೊಂಡಿದೆ.</translation> <translation id="7331920710658926971">ನಿಮ್ಮ ಫೋನ್ನಲ್ಲಿ Chromium ಅನ್ನು ಸ್ಥಾಪಿಸಿ. ನಿಮ್ಮ ಫೋನ್ಗೆ ನಾವು ಎಸ್ಎಂಎಸ್ ಕಳುಹಿಸುತ್ತೇವೆ.</translation> @@ -203,7 +203,7 @@ <translation id="7471302858145901434">{0,plural, =1{ಒಂದು ದಿನದೊಳಗೆ Chromium OS ಮರುಪ್ರಾರಂಭಿಸಿ}one{# ದಿನಗಳ ಒಳಗೆ Chromium OS ಮರುಪ್ರಾರಂಭಿಸಿ}other{# ದಿನಗಳ ಒಳಗೆ Chromium OS ಮರುಪ್ರಾರಂಭಿಸಿ}}</translation> <translation id="7483335560992089831">ಪ್ರಸ್ತುತ ಚಾಲನೆಯಲ್ಲಿರುವ Chromium ನ ಅದೇ ಆವೃತ್ತಿಯನ್ನು ಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ದಯವಿಟ್ಟು Chromium ಅನ್ನು ಮುಚ್ಚಿರಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="7549178288319965365">Chromium OS ಕುರಿತು</translation> -<translation id="7577193603922410712">Chromium ಗೆ ವಿಶೇಷ ಸುರಕ್ಷತೆಯ ಅಪ್ಡೇಟ್ ಅನ್ನು ಅನ್ವಯಿಸಲಾಗಿದೆ; ಇದನ್ನು ಪರಿಣಾಮಕಾರಿಯನ್ನಾಗಿಸಲು ಇದೀಗ ನೀವು ಮರುಪ್ರಾರಂಭಿಸಬೇಕು (ನಿಮ್ಮ ಟ್ಯಾಬ್ಗಳನ್ನು ನಾವು ಮರುಸ್ಥಾಪಿಸುತ್ತೇವೆ).</translation> +<translation id="7577193603922410712">Chromium ಗೆ ವಿಶೇಷ ಸುರಕ್ಷತೆಯ ಅಪ್ಡೇಟ್ ಅನ್ನು ಅನ್ವಯಿಸಲಾಗಿದೆ; ಇದನ್ನು ಪರಿಣಾಮಕಾರಿಯನ್ನಾಗಿಸಲು ಇದೀಗ ನೀವು ಮರುಪ್ರಾರಂಭಿಸಬೇಕು (ನಿಮ್ಮ ಟ್ಯಾಬ್ಗಳನ್ನು ನಾವು ಪುನಃ ಇನ್ಸ್ಟಾಲ್ ಮಾಡುತ್ತೇವೆ).</translation> <translation id="761356813943268536">Chromium ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಮತ್ತು ಮೈಕ್ರೋಫೋನ್ ಬಳಸುತ್ತಿದೆ.</translation> <translation id="7617377681829253106">Chromium ಇದೀಗ ಉತ್ತಮಗೊಂಡಿದೆ</translation> <translation id="7686590090926151193">Chromium ನಿಮ್ಮ ಡೀಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಅಲ್ಲ</translation>
diff --git a/chrome/app/resources/chromium_strings_lt.xtb b/chrome/app/resources/chromium_strings_lt.xtb index f95710d..57cf4bd 100644 --- a/chrome/app/resources/chromium_strings_lt.xtb +++ b/chrome/app/resources/chromium_strings_lt.xtb
@@ -18,6 +18,7 @@ <translation id="1502360822835740515">Nustatymas „Chromium“ numatytąja naršykle</translation> <translation id="151962892725702025">„Chromium“ OS negali sinchronizuoti duomenų, nes jūsų domene sinchronizavimas nepasiekiamas.</translation> <translation id="1585657529869845941">Jei bus rodomas, spustelėkite mygtuką <ph name="BEGIN_BOLD" />Vis tiek perjungti<ph name="END_BOLD" /></translation> +<translation id="1662639173275167396">„Chrome“ OS pasiekiama naudojant papildomą <ph name="BEGIN_LINK_CROS_OSS" />atvirojo šaltinio programinę įrangą<ph name="END_LINK_CROS_OSS" /> (kaip ir <ph name="BEGIN_LINK_LINUX_OSS" />„Linux“ (beta versija)<ph name="END_LINK_LINUX_OSS" />).</translation> <translation id="1668054258064581266">Pašalinus paskyrą iš „Chromium“, galbūt reikės iš naujo įkelti skirtukus, kad pakeitimai įsigaliotų.</translation> <translation id="1688750314291223739">Nustatykite sinchronizavimą, kad žiniatinklyje išsaugotumėte suasmenintas naršyklės funkcijas ir pasiektumėte jas iš „Chromium“ bet kuriuo kompiuteriu.</translation> <translation id="1708666629004767631">Pasiekiama nauja, saugesnė „Chromium“ versija.</translation>
diff --git a/chrome/app/resources/chromium_strings_ml.xtb b/chrome/app/resources/chromium_strings_ml.xtb index ab294b76..caa3bab 100644 --- a/chrome/app/resources/chromium_strings_ml.xtb +++ b/chrome/app/resources/chromium_strings_ml.xtb
@@ -133,7 +133,7 @@ <translation id="5680901439334282664">Chromium-ത്തിലേക്ക് സൈൻ ഇൻ ചെയ്യുക</translation> <translation id="5698481217667032250">ഈ ഭാഷയിൽ Chromium പ്രദർശിപ്പിക്കുക</translation> <translation id="5712253116097046984">ഈ അപ്ഡേറ്റ് ബാധകമാക്കുന്നതിന് നിങ്ങൾ Chromium OS പുനഃരാരംഭിക്കാൻ അഡ്മിൻ ആവശ്യപ്പെടുന്നു</translation> -<translation id="5726838626470692954">നിങ്ങളുടെ മാനേജർ നിങ്ങളെ നീക്കംചെയ്ത് Chromium-ത്തിലേക്ക് തിരികെ ചേർക്കേണ്ടതാണ്.</translation> +<translation id="5726838626470692954">നിങ്ങളുടെ മാനേജർ നിങ്ങളെ നീക്കം ചെയ്ത് Chromium-ത്തിലേക്ക് തിരികെ ചേർക്കേണ്ടതാണ്.</translation> <translation id="5768914737813585044">ഈ ഭാഷയിൽ Chromium OS പ്രദർശിപ്പിക്കുക</translation> <translation id="5796460469508169315">Chromium ഏകദേശം തയാറായിക്കഴിഞ്ഞു.</translation> <translation id="5820394555380036790">Chromium OS</translation> @@ -241,7 +241,7 @@ <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> മുമ്പ് Chromium ഉപയോഗിച്ചിട്ടുണ്ട്</translation> <translation id="8375950122744241554">Chromium 70 പതിപ്പ് മുതൽ സൂപ്പർവൈസ് ചെയ്യപ്പെടുന്ന ഉപയോക്തൃ പ്രൊഫൈലുകള് ഇനിയങ്ങോട്ട് ലഭ്യമല്ല.</translation> <translation id="8379713241968949941">{0,plural, =1{Chromium ഒരു മണിക്കൂറിൽ വീണ്ടും സമാരംഭിക്കും}other{Chromium # മണിക്കൂറിൽ വീണ്ടും സമാരംഭിക്കും}}</translation> -<translation id="8453117565092476964">ഇൻസ്റ്റാളർ ആർക്കൈവ് കേടായതാണ് അല്ലെങ്കിൽ അസാധുവാണ്. Chromium വീണ്ടും ഡൗൺലോഡുചെയ്യുക.</translation> +<translation id="8453117565092476964">ഇൻസ്റ്റാളർ ആർക്കൈവ് കേടായതാണ് അല്ലെങ്കിൽ അസാധുവാണ്. Chromium വീണ്ടും ഡൗൺലോഡ് ചെയ്യുക.</translation> <translation id="8493179195440786826">Chromium കാലഹരണപ്പെട്ടു</translation> <translation id="85843667276690461">Chromium ഉപയോഗിക്കുന്നതിനുള്ള സഹായം നേടുക</translation> <translation id="8586442755830160949">പകർപ്പവകാശം <ph name="YEAR" /> Chromium രചയിതാക്കൾ. എല്ലാ അവകാശങ്ങളും നിക്ഷിപ്തം.</translation> @@ -258,7 +258,7 @@ <translation id="8897323336392112261">നിങ്ങൾ Chromium ആരംഭിക്കുമ്പോഴോ ഹോം ബട്ടൺ ക്ലിക്കുചെയ്യുമ്പോഴോ ദൃശ്യമാകുന്ന പേജും അത് നിയന്ത്രിയ്ക്കും.</translation> <translation id="8907580949721785412">Chromium പാസ്വേഡുകൾ ദൃശ്യമാക്കാൻ ശ്രമിക്കുന്നു. ഇത് അനുവദിക്കാൻ നിങ്ങളുടെ Windows പാസ്വേഡ് ടൈപ്പുചെയ്യുക.</translation> <translation id="8941642502866065432">Chromium അപ്ഡേറ്റ് ചെയ്യാനാകില്ല</translation> -<translation id="8974095189086268230">Chromium OS നിർമ്മിച്ചത് കൂടുതൽ <ph name="BEGIN_LINK_CROS_OSS" />ഓപ്പൺ സോഴ്സ് സോഫ്റ്റ്വെയർ<ph name="END_LINK_CROS_OSS" /> ഉപയോഗിച്ചാകാം.</translation> +<translation id="8974095189086268230">Chromium OS പ്രാവർത്തികമായത് കൂടുതൽ <ph name="BEGIN_LINK_CROS_OSS" />ഓപ്പൺ സോഴ്സ് സോഫ്റ്റ്വെയർ<ph name="END_LINK_CROS_OSS" /> ഉപയോഗിച്ചാണ്.</translation> <translation id="8985587603644336029">മുമ്പ് മറ്റാരോ Chromium-ലേയ്ക്ക് ഈ കമ്പ്യൂട്ടറിൽ നിന്ന് <ph name="ACCOUNT_EMAIL_LAST" /> എന്നായി സൈൻ ഇൻ ചെയ്തു. അത് നിങ്ങളുടെ അക്കൗണ്ടല്ലെങ്കിൽ, നിങ്ങളുടെ വിവരങ്ങൾ വേർതിരിച്ച് നിലനിർത്തുന്നതിന് ഒരു പുതിയ Chromium ഉപയോക്താവിനെ സൃഷ്ടിക്കുക. ഏതുവിധേനയും സൈൻ ഇൻ ചെയ്യുന്നത് ബുക്ക്മാർക്കുകൾ, ചരിത്രം, മറ്റ് ക്രമീകരണങ്ങൾ എന്നിവ പോലുള്ള Chromium വിവരങ്ങൾ <ph name="ACCOUNT_EMAIL_NEW" /> എന്നതുമായി ലയിപ്പിക്കും.</translation>
diff --git a/chrome/app/resources/chromium_strings_ms.xtb b/chrome/app/resources/chromium_strings_ms.xtb index 6cca3e2..e039d5a 100644 --- a/chrome/app/resources/chromium_strings_ms.xtb +++ b/chrome/app/resources/chromium_strings_ms.xtb
@@ -16,6 +16,7 @@ <translation id="1502360822835740515">Jadikan Chromium penyemak imbas lalai anda</translation> <translation id="151962892725702025">OS Chromium tidak dapat menyegerakkan data anda kerana Segerak tidak tersedia untuk domain anda.</translation> <translation id="1585657529869845941">Klik <ph name="BEGIN_BOLD" />Tukar juga<ph name="END_BOLD" />, jika dipaparkan</translation> +<translation id="1662639173275167396">OS Chrome menjadi kenyataan dengan <ph name="BEGIN_LINK_CROS_OSS" />perisian sumber terbuka<ph name="END_LINK_CROS_OSS" /> tambahan, sebagaimana <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1668054258064581266">Selepas mengalih keluar akaun anda daripada Chromium, anda mungkin perlu memuatkan semula tab yang dibuka untuk memberi kesan.</translation> <translation id="1688750314291223739">Sediakan Penyegerakan untuk menyimpan ciri penyemak imbas yang diperibadikan di web dan aksesnya dari Chromium pada mana-mana komputer.</translation> <translation id="1708666629004767631">Terdapat versi Chromium baharu yang lebih selamat tersedia.</translation>
diff --git a/chrome/app/resources/chromium_strings_pl.xtb b/chrome/app/resources/chromium_strings_pl.xtb index 7514352..d3164fbb 100644 --- a/chrome/app/resources/chromium_strings_pl.xtb +++ b/chrome/app/resources/chromium_strings_pl.xtb
@@ -16,6 +16,7 @@ <translation id="1502360822835740515">Ustawianie Chromium jako przeglądarki domyślnej</translation> <translation id="151962892725702025">System operacyjny Chromium nie może zsynchronizować danych, ponieważ synchronizacja jest niedostępna w Twojej domenie.</translation> <translation id="1585657529869845941">Kliknij przycisk <ph name="BEGIN_BOLD" />Przełącz mimo to<ph name="END_BOLD" />, jeśli jest widoczny</translation> +<translation id="1662639173275167396">Opracowanie systemu operacyjnego Chrome było możliwe dzięki dodatkowemu <ph name="BEGIN_LINK_CROS_OSS" />oprogramowaniu open source<ph name="END_LINK_CROS_OSS" />. To samo dotyczy funkcji <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1668054258064581266">Aby po usunięciu konta z Chromium zmiany zostały zastosowane, może być konieczne ponowne załadowanie otwartych kart.</translation> <translation id="1688750314291223739">Skonfiguruj synchronizację, by zapisać w internecie własne funkcje przeglądarki i mieć do nich dostęp w Chromium na każdym komputerze.</translation> <translation id="1708666629004767631">Dostępna jest nowa, bezpieczniejsza wersja Chromium.</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-BR.xtb b/chrome/app/resources/chromium_strings_pt-BR.xtb index 61c3cf3..9738188b 100644 --- a/chrome/app/resources/chromium_strings_pt-BR.xtb +++ b/chrome/app/resources/chromium_strings_pt-BR.xtb
@@ -16,6 +16,7 @@ <translation id="1502360822835740515">Tornar o Chromium seu navegador padrão</translation> <translation id="151962892725702025">O Chromium OS não pôde sincronizar seus dados porque a sincronização não está disponível para seu domínio.</translation> <translation id="1585657529869845941">Clique em <ph name="BEGIN_BOLD" />Alterar mesmo assim<ph name="END_BOLD" />, se essa opção for exibida</translation> +<translation id="1662639173275167396">O Chrome OS tornou-se possível graças a um outro <ph name="BEGIN_LINK_CROS_OSS" />software de código aberto<ph name="END_LINK_CROS_OSS" />, como o <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1668054258064581266">Depois de remover sua conta do Chromium, pode ser necessário recarregar as guias abertas para que a alteração entre em vigor.</translation> <translation id="1688750314291223739">Configure a sincronização para salvar suas características de navegador personalizadas na web e acessá-las do Chromium em qualquer computador.</translation> <translation id="1708666629004767631">Há uma nova versão mais segura do Chromium disponível.</translation>
diff --git a/chrome/app/resources/chromium_strings_sk.xtb b/chrome/app/resources/chromium_strings_sk.xtb index 9f85b2a..81ab172b 100644 --- a/chrome/app/resources/chromium_strings_sk.xtb +++ b/chrome/app/resources/chromium_strings_sk.xtb
@@ -18,6 +18,7 @@ <translation id="1502360822835740515">Nastavenie prehliadača Chromium ako predvoleného prehliadača</translation> <translation id="151962892725702025">Systému OS Chromium sa nepodarilo synchronizovať vaše údaje, pretože možnosť synchronizácie nie je pre vašu doménu k dispozícii.</translation> <translation id="1585657529869845941">Kliknite na možnosť <ph name="BEGIN_BOLD" />Napriek tomu prepnúť<ph name="END_BOLD" /> (ak sa zobrazí)</translation> +<translation id="1662639173275167396">Chrome OS mohol vzniknúť vďaka ďalšiemu <ph name="BEGIN_LINK_CROS_OSS" />softvéru open source<ph name="END_LINK_CROS_OSS" />, ako je napríklad <ph name="BEGIN_LINK_LINUX_OSS" />Linux (beta)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1668054258064581266">Po odstránení účtu z prehliadača Chromium možno budete musieť znova načítať otvorené karty, aby sa zmena uplatnila.</translation> <translation id="1688750314291223739">Ak chcete uložiť svoje prispôsobené funkcie prehliadača na webe a pristupovať k nim z prehliadača Chromium v ktoromkoľvek počítači, nastavte synchronizáciu.</translation> <translation id="1708666629004767631">K dispozícii je nová bezpečnejšia verzia prehliadača Chromium.</translation>
diff --git a/chrome/app/resources/chromium_strings_sw.xtb b/chrome/app/resources/chromium_strings_sw.xtb index c3c01bd9..f73f53f 100644 --- a/chrome/app/resources/chromium_strings_sw.xtb +++ b/chrome/app/resources/chromium_strings_sw.xtb
@@ -18,6 +18,7 @@ <translation id="1502360822835740515">Fanya Chromium iwe kivinjari chako chaguomsingi</translation> <translation id="151962892725702025">Mfumo wa Uendeshaji wa Chromium haukuweza kusawazisha data yako kwa sababu Usawazishaji haupatikani kwa kikoa chako.</translation> <translation id="1585657529869845941">Bofya kitufe cha <ph name="BEGIN_BOLD" />Badilisha tu<ph name="END_BOLD" />, kama kinaonekana</translation> +<translation id="1662639173275167396">Mfumo wa uendeshaji wa Chrome unawezeshwa na <ph name="BEGIN_LINK_CROS_OSS" />programu huria<ph name="END_LINK_CROS_OSS" /> za ziada, jinsi ilivyo katika <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1668054258064581266">Baada ya kuondoa akaunti yako kwenye Chromium, huenda ukahitajika kupakia upya vichupo vyako vilivyo wazi ili kuanza kufanya kazi.</translation> <translation id="1688750314291223739">Sanidi Usawazishaji ili uhifadhi vipengele vyako vya kivinjari vilivyobinafsishwa kwenye mtandao na uvifikie kutoka Chromium katika kompyuta yoyote</translation> <translation id="1708666629004767631">Kuna toleo jipya, na salama linalopatikana la Chromium.</translation>
diff --git a/chrome/app/resources/chromium_strings_ta.xtb b/chrome/app/resources/chromium_strings_ta.xtb index 9b91521e..23136994 100644 --- a/chrome/app/resources/chromium_strings_ta.xtb +++ b/chrome/app/resources/chromium_strings_ta.xtb
@@ -16,6 +16,7 @@ <translation id="1502360822835740515">Chromiumஐ இயல்பு உலாவியாக அமைக்கவும்</translation> <translation id="151962892725702025">உங்கள் களத்திற்கு ஒத்திசைவு கிடைக்கவில்லை என்பதால், Chromium OS ஆல் உங்கள் தரவை ஒத்திசைக்க முடியவில்லை.</translation> <translation id="1585657529869845941"><ph name="BEGIN_BOLD" />பரவாயில்லை, மாற்று<ph name="END_BOLD" /> எனும் பொத்தான் தெரிந்தால், அதைக் கிளிக் செய்யவும்</translation> +<translation id="1662639173275167396">Chrome OS, <ph name="BEGIN_LINK_LINUX_OSS" />Linuxஸைப் (பீட்டா)<ph name="END_LINK_LINUX_OSS" /> போலவே கூடுதல் <ph name="BEGIN_LINK_CROS_OSS" />ஓப்பன் சோர்ஸ் மென்பொருளால்<ph name="END_LINK_CROS_OSS" /> உருவாக்கப்பட்டுள்ளது.</translation> <translation id="1668054258064581266">Chromium இலிருந்து உங்கள் கணக்கை அகற்றிய பின்னர், செயல்படுத்த உங்கள் திறந்த தாவல்களை மீண்டும் ஏற்ற வேண்டியிருக்கலாம்.</translation> <translation id="1688750314291223739">உங்கள் தனிப்பயனாக்கப்பட்ட உலாவி அம்சங்களை வலையில் சேமிக்க, ஒத்திசைவை அமைத்து, எந்தக் கணினியில் உள்ள Chromium இலிருந்தும் அவற்றை அணுகலாம்.</translation> <translation id="1708666629004767631">Chromium இன் புதிய, பாதுகாப்பான பதிப்பு கிடைக்கிறது.</translation>
diff --git a/chrome/app/resources/chromium_strings_th.xtb b/chrome/app/resources/chromium_strings_th.xtb index 350e9e9..2255f1a9 100644 --- a/chrome/app/resources/chromium_strings_th.xtb +++ b/chrome/app/resources/chromium_strings_th.xtb
@@ -16,6 +16,7 @@ <translation id="1502360822835740515">กำหนดให้ Chromium เป็นเบราว์เซอร์เริ่มต้น</translation> <translation id="151962892725702025">Chromium OS ไม่สามารถซิงค์ข้อมูลของคุณเนื่องจากการซิงค์ไม่พร้อมให้บริการสำหรับโดเมนของคุณ</translation> <translation id="1585657529869845941">คลิก<ph name="BEGIN_BOLD" />สลับ<ph name="END_BOLD" /> หากเห็นปุ่มดังกล่าว</translation> +<translation id="1662639173275167396">Chrome OS เกิดขึ้นได้ด้วยการสนับสนุนจาก<ph name="BEGIN_LINK_CROS_OSS" />ซอฟต์แวร์โอเพนซอร์ส<ph name="END_LINK_CROS_OSS" />เพิ่มเติม เช่นเดียวกับ <ph name="BEGIN_LINK_LINUX_OSS" />Linux (เบต้า)<ph name="END_LINK_LINUX_OSS" /></translation> <translation id="1668054258064581266">เมื่อลบบัญชีของคุณออกจาก Chromium แล้ว คุณต้องโหลดแท็บที่เปิดอยู่ซ้ำเพื่อให้มีผล</translation> <translation id="1688750314291223739">ตั้งค่าการซิงค์เพื่อบันทึกฟีเจอร์เบราว์เซอร์ในแบบของคุณไปยังเว็บและเข้าถึงได้จาก Chromium บนคอมพิวเตอร์เครื่องใดก็ได้</translation> <translation id="1708666629004767631">Chromium รุ่นใหม่ที่ปลอดภัยกว่าเดิมพร้อมให้ใช้งานแล้ว</translation>
diff --git a/chrome/app/resources/chromium_strings_uk.xtb b/chrome/app/resources/chromium_strings_uk.xtb index a1c5727..3e6bcc8 100644 --- a/chrome/app/resources/chromium_strings_uk.xtb +++ b/chrome/app/resources/chromium_strings_uk.xtb
@@ -16,6 +16,7 @@ <translation id="1502360822835740515">Як зробити Chromium веб-переглядачем за умовчанням</translation> <translation id="151962892725702025">ОС Chromium не вдалося синхронізувати ваші дані, оскільки синхронізація для вашого домену недоступна.</translation> <translation id="1585657529869845941">Натисніть кнопку <ph name="BEGIN_BOLD" />Усе одно змінити<ph name="END_BOLD" />, якщо вона з’явиться</translation> +<translation id="1662639173275167396">ОС Chrome, як і <ph name="BEGIN_LINK_LINUX_OSS" />бета-версія Linux<ph name="END_LINK_LINUX_OSS" />, працюють завдяки додатковому <ph name="BEGIN_LINK_CROS_OSS" />програмному забезпеченню з відкритим кодом<ph name="END_LINK_CROS_OSS" />.</translation> <translation id="1668054258064581266">Якщо видалити обліковий запис із Chromium, можливо, потрібно оновити відкриті вкладки, щоб зміни почали діяти.</translation> <translation id="1688750314291223739">Налаштуйте синхронізацію, щоб зберегти свої персоналізовані функції веб-переглядача в Інтернеті й мати до них доступ із Chromium на будь-якому комп’ютері.</translation> <translation id="1708666629004767631">Доступна нова, надійніша версія Chromium.</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-TW.xtb b/chrome/app/resources/chromium_strings_zh-TW.xtb index 18c8fcd..93180a8 100644 --- a/chrome/app/resources/chromium_strings_zh-TW.xtb +++ b/chrome/app/resources/chromium_strings_zh-TW.xtb
@@ -16,6 +16,7 @@ <translation id="1502360822835740515">將 Chromium 設為預設瀏覽器</translation> <translation id="151962892725702025">你的網域無法使用「同步功能」,因此 Chromium 作業系統無法同步處理你的資料。</translation> <translation id="1585657529869845941">請點選 [確定切換] (如有顯示)<ph name="BEGIN_BOLD" /><ph name="END_BOLD" /></translation> +<translation id="1662639173275167396">Chrome 作業系統藉助了其他<ph name="BEGIN_LINK_CROS_OSS" />開放原始碼軟體<ph name="END_LINK_CROS_OSS" />的相關技術才得以問世,<ph name="BEGIN_LINK_LINUX_OSS" />Linux (測試版)<ph name="END_LINK_LINUX_OSS" /> 也是如此。</translation> <translation id="1668054258064581266">將你的帳戶從 Chromium 移除後,可能需要重新載入開啟的分頁,這項操作才會生效。</translation> <translation id="1688750314291223739">設定同步處理功能,即可在網路上儲存你的個人化瀏覽器功能,並且透過任何電腦從 Chromium 使用這些功能。</translation> <translation id="1708666629004767631">新版 Chromium 現已推出,安全更上一層樓。</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb index e90529d..e2698aa 100644 --- a/chrome/app/resources/generated_resources_am.xtb +++ b/chrome/app/resources/generated_resources_am.xtb
@@ -247,6 +247,7 @@ <translation id="1358741672408003399">እረማ ሆሄ እና ሰዋስው</translation> <translation id="1361164813881551742">ራስዎ ያክሉ</translation> <translation id="1361655923249334273">ጥቅም ላይ ያልዋለ</translation> +<translation id="1361872463926621533">ጅምር ላይ ድምጽ አጫውት</translation> <translation id="1363028406613469049">ትራክ</translation> <translation id="1367951781824006909">ፋይል ይምረጡ</translation> <translation id="1368265273904755308">ችግር ሪፖርት ያድርጉ</translation> @@ -570,6 +571,7 @@ <translation id="1817310072033858383">Smart Lockን ለእርስዎ <ph name="DEVICE_TYPE" /> ያዋቅሩ</translation> <translation id="1817871734039893258">Microsoft File Recovery</translation> <translation id="1818007989243628752">የ<ph name="USERNAME" /> ይለፍ ቃልን ሰርዝ</translation> +<translation id="1818913467757368489">የምዝግብ ማስታወሻ ሰቀላ በሂደት ላይ።</translation> <translation id="1819721979226826163">የመተግበሪያ ማሳወቂያዎች > Google Play አገልግሎቶችን መታ ያድርጉ።</translation> <translation id="1826516787628120939">በመፈተሸ ላይ</translation> <translation id="1828378091493947763">ይህ ተሰኪ በዚህ መሣሪያ ላይ አይደገፍም</translation> @@ -618,11 +620,13 @@ <translation id="1890674179660343635"><span>መታወቂያ፦ </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">ሙሉ ማያ ገጽ ክፈት</translation> <translation id="189358972401248634">ሌሎች ቋንቋዎች</translation> +<translation id="1894591787927543791">Google Payን ለመጠቀም ካርድ ያስቀምጡ</translation> <translation id="1895658205118569222">አጥፋ</translation> <translation id="1895934970388272448">ይህን ሂደት ለማጠናቀቅ በእርስዎ አታሚ ላይ ምዝገባ ማረጋገጥ አለብዎት - አሁን ያረጋግጡት።</translation> <translation id="1897762215429052132">የአውታረመረብ ግንኙነት፣ ቋንቋ፣ የቁልፍ ሰሌዳ አቀማመጥ… ያዘጋጁ</translation> <translation id="1901303067676059328">&ሁሉንም ምረጥ</translation> <translation id="1902576642799138955">የተገቢነት ክፍለ ጊዜ</translation> +<translation id="1904518222538904133">ከካርዶችዎ ውስጥ አንዱ ብቻ ነው በዚህ መሣሪያ ላይ መጠቀም የሚቻለው</translation> <translation id="1905375423839394163">የChromebook መሣሪያ ስም</translation> <translation id="1905710495812624430">የሚፈቀደው ከፍተኛ የሙከራዎች ብዛት ታልፏል።</translation> <translation id="1909880997794698664">እርግጠኛ ነዎት ይህን መሣሪያ በኪዮስክ ሁነታ እስከመጨረሻው ማቆየት ይፈልጋሉ?</translation> @@ -659,6 +663,7 @@ <translation id="1962969542251276847">የማያ ገጽ ቁልፍ</translation> <translation id="1963227389609234879">ሁሉንም አስወግድ</translation> <translation id="1965624977906726414">ምንም ልዩ ፍቃዶች የሉትም።</translation> +<translation id="1969654639948595766">የWebRTC ጽሑፍ ምዝግብ ማስታወሻዎች (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">ወደ የቪዲዮ ሁነታ ተገብቷል</translation> <translation id="197288927597451399">አስቀምጥ</translation> <translation id="1974043046396539880">CRL የማሰራጫ ነጥቦች</translation> @@ -802,6 +807,7 @@ <translation id="2190069059097339078">WiFi አሳማኝ ምስክርነቶችን አግኝ</translation> <translation id="219008588003277019">የውስጥ ተገልጋይ ሞዱል፦ <ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(ባዶ)</translation> +<translation id="2191223688506386601">አንድ የመጨረሻ ነገር</translation> <translation id="2192505247865591433">ከ፦</translation> <translation id="2193365732679659387">የእምነት ቅንብሮች</translation> <translation id="2195729137168608510">የኢሜይል መከላከያ</translation> @@ -1025,6 +1031,7 @@ <translation id="2534460670861217804">ደህንነቱ የተጠበቀ የኤችቲቲፒ ተኪ</translation> <translation id="253557089021624350">የKeepalive መለያ</translation> <translation id="2538361623464451692">ስምረት ተሰናክሏል</translation> +<translation id="2539876824180063438">የተለያዩ የጣት አሻራዎ ክፍሎችን ለማከል አመልካች ጣትዎን በትንሹ ያንቀሳቅሱት።</translation> <translation id="2541002089857695151">ሙሉ ማያ ገጽን መውሰድ ይትባ?</translation> <translation id="2542049655219295786">Google ሠንጠረዥ</translation> <translation id="2544853746127077729">የማረጋገጫ ምስክር ወረቀት በአውታረ መረቡ ተቀባይነት አላገኘም</translation> @@ -1258,7 +1265,9 @@ <translation id="287286579981869940"><ph name="PROVIDER_NAME" /> አክል...</translation> <translation id="2874343608108773609">የእርስዎን የይለፍ ቃላት በሁሉም መሣሪያዎችዎ ላይ ለማግኘት ወደ Chrome ይግቡ።</translation> <translation id="2875698561019555027">(Chrome ስህተት ገጾች)</translation> +<translation id="2876336351874743617">ጣት 2</translation> <translation id="288042212351694283">ሁለገብ 2ኛ ደረጃ መሣሪያዎችዎን ይደርስባቸዋል</translation> +<translation id="2881076733170862447">ቅጥያውን ጠቅ ሲያደርጉ</translation> <translation id="2881966438216424900">ለመጨረሻ ጊዜ የተደረሰው፦</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> ዳግም ይጀምርና ለጊዜው ዳግም ይዘጋጃል።</translation> <translation id="2885378588091291677">ተግባር መሪ</translation> @@ -1444,6 +1453,7 @@ <translation id="3154429428035006212">ከአንድ ወር በላይ ከመስመር ውጪ</translation> <translation id="3156531245809797194">Chromeን ለመጠቀም እባክዎ በመለያ ያግቡ</translation> <translation id="3157931365184549694">እነበረበት መልስ</translation> +<translation id="3158033540161634471">የጣት አሻራዎን ያዋቅሩ</translation> <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (በሃርድዌር የሚደገፍ)</translation> <translation id="316125635462764134">መተግበሪያ አስወግድ</translation> <translation id="3161522574479303604">ሁሉም ቋንቋዎች</translation> @@ -1513,9 +1523,10 @@ <translation id="3285322247471302225">አዲስ &ትር</translation> <translation id="3288047731229977326">በገንቢ ሁኔታ የሚሄዱ ጥያዎች የእርስዎን ኮምፒውተር ሊጎዱ ይችላሉ። እርስዎ ገንቢ ካልሆኑ ደህንነትዎን ለማረገገጥ በገንቢ ሁኔታ የሚሄዱ ቅጥያዎችን ማሰናከል አለብዎ።</translation> <translation id="3289856944988573801">ዝማኔዎች ካሉ ለማየት እባክዎ Ethernet ወይም Wi-Fi ይጠቀሙ።</translation> -<translation id="3292421191230118801">ጣቢያዎችን ሞባይል ላይ መመልከት ካቆሙበት በእርስዎ Chromebook ላይ ማየት ይቀጥሉ</translation> <translation id="32939749466444286">የLinux መያዣ አልጀመረም። እባክዎ እንደገና ይሞክሩ።</translation> <translation id="3294437725009624529">እንግዳ</translation> +<translation id="329703603001918157">አቋራጭን አርትዕ ማድረግ አይቻልም</translation> +<translation id="3297951628821704004">መለያን ከዚህ መሣሪያ አስወግድ</translation> <translation id="329838636886466101">ይጠግኑ</translation> <translation id="3298789223962368867">ልክ ያልሆነ ዩአርኤል ገብቷል።</translation> <translation id="32991397311664836">መሣሪያዎች</translation> @@ -1682,6 +1693,7 @@ <translation id="3534879087479077042">ክትትል የሚደረግበት ተጠቃሚ ምንድነው?</translation> <translation id="3538066758857505094">Linuxን በማራገፍ ላይ ስህተት። እባክዎ እንደገና ይሞክሩ።</translation> <translation id="354060433403403521">የAC የኤሌክትሪክ መመጠኛ</translation> +<translation id="354068948465830244">ይህ የጣቢያ ውሂብን ማንበብ እና መቀየር ይችላል</translation> <translation id="3541661933757219855">ለመደበቅ Ctrl+Alt+/ ወይም Escape ይተይቡ</translation> <translation id="3543393733900874979">ዝማኔ አልተሳካም (ስህተት፦ <ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">የX9.62 ECDSA ፊርማ በSHA-512</translation> @@ -1727,6 +1739,7 @@ <translation id="3606712892509067288">ከአብሮ ሲሆን የተሻለ አስወግድ</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">የተጠቃሚ ምስል ቅድመ-እይታ</translation> +<translation id="3609446736023031597">በPlay መደብር መተግበሪያዎች ላይ የቅርብ ጊዜዎቹን ዝማኔዎች እና ምክሮች ያግኙ</translation> <translation id="3609785682760573515">በማመሳሰል ላይ...</translation> <translation id="3609895557594655134">የAndroid ቪፒኤን አክል...</translation> <translation id="361106536627977100">የFlash ውሂብ</translation> @@ -1759,6 +1772,7 @@ <translation id="3645372836428131288">የጣት አሻራውን የተለየ ክፍል ለመያዝ በቀስታ ያንቀሳቅሱት።</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> ተገኝቷል</translation> <translation id="3649138363871392317">ፎቶ ተቀርጿል</translation> +<translation id="3650845953328929506">የምዝግብ ማስታወሻ ሰቀላ በመጠባበቅ ላይ።</translation> <translation id="3650952250015018111">«<ph name="APP_NAME" />» ይህን እንዲደርስ ይፍቀዱ፦</translation> <translation id="3651488188562686558">ከWi-Fi አላቅቅ</translation> <translation id="3652817283076144888">በማስጀመር ላይ</translation> @@ -1910,6 +1924,7 @@ <translation id="3856800405688283469">የሰዓት ሰቅ ይምረጡ</translation> <translation id="3857228364945137633">የእርስዎ ስልክ በአቅራቢያ በሚሆንበት ጊዜ የእርስዎን <ph name="DEVICE_TYPE" /> ያለ ይለፍ ቃል ለመክፈት Smart Lockን ይሞክሩት።</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation> +<translation id="3857807444929313943">ያንሱ፣ ከዚያ እንደገና ይንኩ</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />፦ ማሳመር ባለበት ቆሟል</translation> <translation id="3860381078714302691">እንኳን ወደ Hangouts Meet በደህና መጡ</translation> <translation id="3861241522664181545">ገጽ ባለበት ቆሟል።</translation> @@ -1928,6 +1943,7 @@ <translation id="3873315167136380065">ይህን ለማብራት፣ የእርስዎን የስምረት ግዢ ለማስወገድ <ph name="BEGIN_LINK" />ስምረትን ዳግም ያቀናብሩ<ph name="END_LINK" /></translation> <translation id="3878840326289104869">ቁጥጥር ላይ ያለ ተጠቃሚ በመፍጠር ላይ</translation> <translation id="3879748587602334249">የማውረድ አቀናባሪ</translation> +<translation id="3885455691202481064">ዳሳሹን በአመልካች ጣትዎ ይንኩት። በእርስዎ Chromebook ላይ ከላይ በስተግራ ላይ ነው።</translation> <translation id="3888550877729210209">ማስታወሻዎችን በ<ph name="LOCK_SCREEN_APP_NAME" /> በመውሰድ ላይ</translation> <translation id="3892414795099177503">OpenVPN / L2TP ያክሉ...</translation> <translation id="3893536212201235195">የተደራሽነት ቅንብሮችዎን ያነብባል እና ይቀይራል</translation> @@ -1980,6 +1996,7 @@ <translation id="3950820424414687140">ይግቡ</translation> <translation id="3954354850384043518">በሂደት ላይ</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> ኸርዝ)</translation> +<translation id="3954953195017194676">ምንም በቅርብ ጊዜ የተቀረጹ WebRTC ምዝግብ ማስታወሻዎች የለዎትም።</translation> <translation id="3955193568934677022">ጥበቃ የሚደረግበትን ይዘት እንዲያጫውቱ ለጣቢያዎች ፍቀድ (የሚመከር)</translation> <translation id="3956702100721821638">Google Playን መድረስ አልተቻለም</translation> <translation id="3958088479270651626">ዕልባቶችን እና ቅንብሮችን አስመጣ</translation> @@ -2231,6 +2248,7 @@ <translation id="4405117686468554883">*.jpeg፣ *.jpg፣ *.png</translation> <translation id="4408599188496843485">እ&ገዛ</translation> <translation id="4409697491990005945">ህዳጎች</translation> +<translation id="4410545552906060960">መሣሪያዎን ለመክፈት ከይለፍ ቃል ይልቅ ቁጥር (ፒን) ይጠቀሙ። የእርስዎን ፒን በኋላ ለማቀናበር ወደ ቅንብሮች ይሂዱ።</translation> <translation id="4411578466613447185">የኮድ ፈራሚ</translation> <translation id="4412698727486357573">የእገዛ ማዕከል</translation> <translation id="44141919652824029">«<ph name="APP_NAME" />» የተያያዙ ዩኤስቢ መሣሪያዎችዎን ዝርዝር እንዲያገኝ ይፈቀድለት?</translation> @@ -2322,8 +2340,10 @@ <translation id="4555769855065597957">ጥላ</translation> <translation id="4556110439722119938">የእርስዎን ዕልባቶች፣ ታሪክ፣ የይለፍ ቃላት እና ሌሎች ቅንብሮች በሁሉም መሣሪያዎችዎ ላይ መጠቀም እንዲችሉ ከGoogle መለያዎ ጋር ይሰምራሉ</translation> <translation id="4558426062282641716">የራስ-አስጀምር ፍቃድ ተጠይቋል</translation> +<translation id="4558491878126948419">በGoogle ምርቶች ላይ የ<ph name="DEVICE_TYPE" /> ጠቃሚ ምክሮችንና ዝማኔዎችን ያግኙ እና ግብረመልስ ያጋሩ። በማንኛውም ጊዜ ከደንበኝነት ምዝገባ ይውጡ።</translation> <translation id="4559617833001311418">ይህ ጣቢያ የእርስዎን እንቅስቃሴ ወይም የብርሃን ዳሳሾች እየደረሰ ነው።</translation> <translation id="4562155214028662640">የጣት አሻራን አክል</translation> +<translation id="4563880231729913339">ጣት 3</translation> <translation id="4565377596337484307">የይለፍ ቃል ደብቅ</translation> <translation id="4567772783389002344">ቃል አክል</translation> <translation id="4568213207643490790">ይቅርታ፣ የGoogle መለያዎች በዚህ መሣሪያ ላይ አይፈቀዱም።</translation> @@ -2398,6 +2418,7 @@ <translation id="4681930562518940301">የመጀመሪያውን ምስል በአዲስ ትር ክፈት</translation> <translation id="4682551433947286597">የግድግዳ ወረቀቶች በመግቢያ ገጹ ላይ ይታያሉ።</translation> <translation id="4684427112815847243">ሁሉንም ያመሳስሉ</translation> +<translation id="4688036121858134881">የአካባቢያዊ ምዝግብ ማስታወሻ መታወቂያ፦ <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />።</translation> <translation id="4689235506267737042">የእርስዎን ቅንጭብ ማሳያ ምርጫዎችን ይምረጡ</translation> <translation id="4689421377817139245">ይህን ዕልባት ከእርስዎ iPhone ጋር ያስምሩት</translation> <translation id="4690091457710545971"><አራት ፋይሎች በIntel Wi-Fi ፈርምዌር መንጭተዋል፦ csr.lst፣ fh_regs.lst፣ radio_reg.lst፣ monitor.lst.sysmon። የመጀመሪያዎቹ ሦስት የመዝገብ ተወጋጆችን የያዙ የሁለትዮሽ ፋይሎች ናቸው፣ እና ምንም የግል ወይም መሣሪያን ለይቶ የሚያሳውቅ መረጃን እንዳልያዙ በIntel የተረጋገጡ ናቸው። የመጨረሻው ፋይል ከIntel ፈርምዌር የሥራ ማስፈጸሚያ ዱካ ነው፤ ማናቸውም የግል ወይም መሣሪያን ለይቶ የሚያሳውቅ መረጃው እንዲራገፍ ተደርጓል። እነዚህ ፋይሎች የመነጩት በቅርቡ በእርስዎ መሣሪያ ላይ ከWi-Fi ጋር ለነበሩ ችግሮች እንደ ምላሽ ነው፣ እና ለእነዚህ ችግሮች መላ ለመፈለግ ለIntel ይጋራሉ።></translation> @@ -2582,6 +2603,7 @@ <translation id="4945444280533270988">Smart Lock በርቷል</translation> <translation id="4953689047182316270">ለተደራሽነት ክስተቶች ምላሽ መስጠት</translation> <translation id="4953808748584563296">ነባሪ ብርቱካናማ አምሳያ</translation> +<translation id="4955710816792587366">የእርስዎን ፒን ይምረጡ</translation> <translation id="4955814292505481804">ዓመታዊ</translation> <translation id="4957949153200969297">ከ<ph name="IDS_SHORT_PRODUCT_NAME" /> ስምረት ጋር የተዛመዱ ባህሪያትን ብቻ ያንቁ</translation> <translation id="4959262764292427323">በማናቸውም መሣሪያ ላይ እርስዎ ሊጠቀሙባቸው እንዲችሉ የይለፍ ቃላት በእርስዎ Google መለያ ውስጥ ይቀመጣሉ</translation> @@ -2647,6 +2669,7 @@ <translation id="5050042263972837708">የቡድን ስም</translation> <translation id="5052499409147950210">ጣቢያን አርትዕ ያድርጉ</translation> <translation id="5053604404986157245">በዘፈቀደ የመነጨው የTPM ይለፍ ቃል አይገኝም። ይሄ ከአንድ Powerwash በኋላ የሚከሰት የተለመደ ነገር ነው።</translation> +<translation id="5057110919553308744">ቅጥያውን ጠቅ ሲያደርጉ</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{ይህ አቃፊ ዕልባት አለው። እርግጠኛ ነዎት ሊሰርዙት ይፈልጋሉ?}one{ይህ አቃፊ # ዕልባቶች አሉት። እርግጠኛ ነዎት ሊሰርዙት ይፈልጋሉ?}other{ይህ አቃፊ # ዕልባቶች አሉት። እርግጠኛ ነዎት ሊሰርዙት ይፈልጋሉ?}}</translation> <translation id="5061708541166515394">ንፅፅር</translation> <translation id="5062930723426326933">በመለያ መግባት አልተሳካም፣ እባክዎ ከበይነመረቡ ጋር ይገናኙ እንደገና ይሞክሩ።</translation> @@ -2822,6 +2845,7 @@ <translation id="5315873049536339193">ማንነት</translation> <translation id="5316716239522500219">ማሳያዎችን አንጸባርቅ</translation> <translation id="5317780077021120954">አስቀምጥ</translation> +<translation id="5318819489018851358">ለLinux አጋራ</translation> <translation id="5319359161174645648">Google Chromeን ይመክራል</translation> <translation id="5319566035256672173">ይህ መሣሪያ ከእንግዲህ የቅርብ ጊዜዎቹ የሶፍትዌር ዝማኔዎችን አይቀበልም። እባክዎ ማላቁን ያስቡበት።</translation> <translation id="532247166573571973">አገልጋዩ የማይደረስበት ሊሆን ይችላል። ቆይተው እንደገና ይሞክሩ።</translation> @@ -3162,6 +3186,7 @@ <translation id="5804241973901381774">ፍቃዶች</translation> <translation id="580571955903695899">በርዕስ ቅደም ተከተል አስይዝ</translation> <translation id="5807290661599647102">Screen Lockን አዋቅር</translation> +<translation id="5811750797187914944">ሁሉም ዝግጁ</translation> <translation id="5814126672212206791">የግንኙነት ዓይነት</translation> <translation id="5815645614496570556">X.400 አድራሻ</translation> <translation id="5816434091619127343">የተጠየቁት የአታሚ ለውጦች አታሚው ጥቅም እንዳይሰጥ ያደርጉታል።</translation> @@ -3198,6 +3223,7 @@ <translation id="5855773610748894548">ውይ፣ ደህንነቱ የተጠበቀ ሞዱል ስህተት።</translation> <translation id="5856721540245522153">የማረሚያ ባህሪያትን ያንቁ</translation> <translation id="5857090052475505287">አዲስ አቃፊ</translation> +<translation id="5858490737742085133">ተርሚናል</translation> <translation id="585979798156957858">ውጫዊ ሜታ</translation> <translation id="5860033963881614850">አጥፋ</translation> <translation id="5860209693144823476">ትር 3</translation> @@ -3220,6 +3246,7 @@ <translation id="5882919346125742463">የታወቁ አውታረ መረቦች</translation> <translation id="5884474295213649357">ይህ ትር ከአንድ የዩኤስቢ መሣሪያ ጋር የተገናኘ ነው።</translation> <translation id="5885324376209859881">የማህደረ መረጃ ቅንብሮችን ያቀናብሩ...</translation> +<translation id="5886009770935151472">ጣት 1</translation> <translation id="5889282057229379085">ከፍተኛ የመሃከለኛ CAዎች ብዛት፦ <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">እንደገና ጀምር</translation> <translation id="5895187275912066135">በዚህ ቀን ቀርቧል</translation> @@ -3304,6 +3331,7 @@ <translation id="6025215716629925253">የቁልል መከታተያ</translation> <translation id="6026047032548434446">መተግበሪያ ይጫን?</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - ዩኤስቢ መሣሪያ ተገናኝቷል</translation> +<translation id="6028117231645531007">የጣት አሻራን አክል</translation> <translation id="6029027682598229313">የLinux ጭነት ተጠናቋል።</translation> <translation id="6029587122245504742">በጣም ቀርፋፋው</translation> <translation id="6032912588568283682">የፋይል ስርዓት</translation> @@ -3318,6 +3346,7 @@ <translation id="6042308850641462728">ተጨማሪ</translation> <translation id="6043317578411397101"><ph name="APP_NAME" /> አንድ የChrome ትር ለ<ph name="TAB_NAME" /> እያጋራ ነው።</translation> <translation id="6044805581023976844"><ph name="APP_NAME" /> አንድ የChrome ትር እና ኦዲዮ ለ<ph name="TAB_NAME" /> እያጋራ ነው።</translation> +<translation id="6047938872139769630">ዘግተው ሲወጡ መሣሪያዎን ለመክፈት ፒን መጠቀም ይችላሉ</translation> <translation id="6049004884579590341">ከሙሉ ማያ ገጽ ለመውጣት |<ph name="ACCELERATOR" />|ን ተጭነው ይያዙ</translation> <translation id="6049065490165456785">ፎቶ ከውስጣዊ ካሜራ</translation> <translation id="6051354611314852653">ውይ! ስርዓቱ የዚህ መሣሪያ ኤ ፒ አይ መዳረሻ መፍቀድ አልቻለም።</translation> @@ -3340,6 +3369,7 @@ <translation id="6075907793831890935"><ph name="HOSTNAME" /> ከሚባል መሣሪያ ጋር ውሂብ ተለዋወጥ</translation> <translation id="6076448957780543068">ይህን ቅጽበታዊ ገጽ እይታን ያካትቱ</translation> <translation id="6077131872140550515">ከሚመረጡ አስወግድ</translation> +<translation id="6077189836672154517">በ<ph name="DEVICE_TYPE" /> ላይ ጠቅሚ ምክሮች እና ዝማኔዎች</translation> <translation id="6078323886959318429">አቋራጭ አክል</translation> <translation id="6078752646384677957">እባክዎ የእርስዎን ማይክሮፎን እና የኦዲዮ ደረጃዎች ይፈትሹ።</translation> <translation id="6080515710685820702">የተጋራ ኮምፒውተር ነው እየተጠቀሙ ያሉት? ማንነት የማያሳውቅ መስኮት ለመክፈት ይሞክሩ።</translation> @@ -3389,6 +3419,7 @@ <translation id="6144938890088808325">Chromebooksን እንድናሻሽል ያግዙን</translation> <translation id="6146563240635539929">ቪዲዮዎች</translation> <translation id="6147020289383635445">የህትመት ቅድመ-እይታ አልተሳካም።</translation> +<translation id="6148052338549899048">ምንም ብቁ የሆኑ መሣሪያዎች የሉም። <ph name="LINK_BEGIN" />የበለጠ ለመረዳት።<ph name="LINK_END" /></translation> <translation id="614940544461990577">ይሞክሩ፦</translation> <translation id="6150853954427645995">ይህን ፋይል ከመስመር ውጪ ለመጠቀም መስመር ላይ ተመልሰው ይሂዱ፣ ፋይሉን በቀኝ ጠቅ ያድርጉትና የ<ph name="OFFLINE_CHECKBOX_NAME" /> አማራጩን ይምረጡ።</translation> <translation id="6151323131516309312"><ph name="SITE_NAME" />ን ለመፈለግ <ph name="SEARCH_KEY" /> ይጫኑ</translation> @@ -3408,6 +3439,7 @@ <translation id="6169040057125497443">እባክዎ ማይክሮፎንዎን ይፈትሹ።</translation> <translation id="6169666352732958425">ዴስክቶፕን cast ማድረግ አልተቻለም።</translation> <translation id="6171948306033499786">ማተምን ባለበት አቁም</translation> +<translation id="6173623053897475761">የእርስዎን ፒን እንደገና ይተይቡት</translation> <translation id="6175314957787328458">Microsoft Domain GUID</translation> <translation id="6176043333338857209">ከደህነንት ቁልፍዎ ጋር ለመገናኘት ብሉቱዝ ለጊዜው ይበራል</translation> <translation id="6178664161104547336">የዕውቅና ማረጋገጫ ምረጥ/ሰርቲፊኬት</translation> @@ -3597,11 +3629,13 @@ <translation id="6456394469623773452">ጥሩ</translation> <translation id="6456631036739229488">የSmart Lock ስልክ ተለውጧል። Smart Lockን ለማዘመን የእርስዎን የይለፍ ቃል ያስገቡ። በሚቀጥለው ጊዜ ስልክዎ የእርስዎን <ph name="DEVICE_TYPE" /> ይከፍተዋል። በቅንብሮች ውስጥ Smart Lockን ያጥፉ።</translation> <translation id="645705751491738698">ጃቫስክሪፕትን ማገድ ቀጥል</translation> +<translation id="6458701200018867744">ዝማኔ አልተሳካም (<ph name="WEBRTC_LOG_UPLOAD_TIME" />)።</translation> <translation id="6459488832681039634">ለማግኘት የተመረጡትን ተጠቀም</translation> <translation id="6459799433792303855">ንቁ መስኮት ወደ ሌላ ማሳያ ተዛውሯል።</translation> <translation id="6460601847208524483">ቀጣዩን አግኝ</translation> <translation id="6463795194797719782">&አርትዕ</translation> <translation id="6466988389784393586">&ሀሉንም እልባቶች ክፈት</translation> +<translation id="6467304607960172345">ባለሙሉ ማያ ቪዲዮዎችን አትባ</translation> <translation id="6468485451923838994">ቅርጸ-ቁምፊዎች</translation> <translation id="6472207088655375767">ኦቲፒ</translation> <translation id="6472893788822429178">መነሻ አዝራር አሳይ</translation> @@ -3777,6 +3811,7 @@ <translation id="6725206449694821596">የበይነመረብ ህትመት ፕሮቶኮል (አይፒፒፒ)</translation> <translation id="6727005317916125192">ቀዳሚ ንጥል</translation> <translation id="6732801395666424405">የእውቅና ማረጋገጫዎች አልተጫኑም</translation> +<translation id="6732900235521116609">አቋራጭን ማስወገድ አልተቻለም</translation> <translation id="6735304988756581115">ኩኪዎችንና የሌላ ጣቢያ ውሂብ አሳይ…</translation> <translation id="6736045498964449756">ውይ ውይ፣ የይለፍ ቃላቱ አይዛመዱም!</translation> <translation id="6736243959894955139">አድራሻ</translation> @@ -3860,6 +3895,7 @@ <translation id="6860427144121307915">በትር ውስጥ ክፈት</translation> <translation id="6862635236584086457">በዚህ አቃፊ ውስጥ የተቀመጡ ፋይሎች ሁሉ በራስ-ሰር መስመር ላይ መጠባበቂያ ይቀመጥላቸዋል</translation> <translation id="6865313869410766144">የራስ-ሙላ ቅጽ ውሂብ</translation> +<translation id="6865708901122695652">የWebRTC ክስተት ምዝግብ ማስታወሻዎች (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">የቀለም ሙቀት መጠን</translation> <translation id="6870888490422746447">የሚያጋሩትን መተግበሪያ ይምረጡ፦</translation> <translation id="6871644448911473373">OCSP ምላሽ ሰጪ፦ <ph name="LOCATION" /></translation> @@ -3904,6 +3940,7 @@ <translation id="694592694773692225">በዚህ ገጽ ላይ አቅጣጫ ማዞር ታግዷል።</translation> <translation id="6949306908218145636">ክፍት ገጾችን በዕልባት ያስቀምጡ...</translation> <translation id="6950627417367801484">መተግበሪያዎች</translation> +<translation id="6950943362443484797">መተግበሪያውን እንጭንልዎታለን</translation> <translation id="6951153907720526401">የክፍያ ተቆጣጣሪይዎች</translation> <translation id="6955446738988643816">ብቅ-ባይ ይመርምሩ</translation> <translation id="6957231940976260713">የአገልግሎት ስም</translation> @@ -3939,6 +3976,7 @@ <translation id="6998711733709403587"><ph name="SELCTED_FOLDERS_COUNT" /> አቃፊዎች ተመርጠዋል</translation> <translation id="6998793565256476099">መሣሪያን ለቪዲዮ ጉባዔ ያስመዝግቡ</translation> <translation id="7000347579424117903">Ctrl፣ Alt፣ ወይም ፍለጋን ያካትቱ</translation> +<translation id="700203306553508933">Google Payን ለመጠቀም ካርዶችን ያስቀምጡ</translation> <translation id="7002055706763150362">Smart Lock ለChromebook ለማዘጋጀት Google እርስዎ መሆንዎን እርግጠኛ መሆን ይፈልጋል—ለመጀመር የይለፍ ቃልዎን ይተይቡ።</translation> <translation id="7002454948392136538">ክትትል ለሚደረግበት ለዚህ ተጠቃሚ አቀናባሪ ይምረጡ</translation> <translation id="7003339318920871147">የድር ውሂብ ጎታዎች</translation> @@ -3986,6 +4024,7 @@ <translation id="706626672220389329">ማጋራትን ማፈናጠጥ ላይ ስህተት። የተገለጸው ማጋራት አስቀድሞ ተፈናጥጧል።</translation> <translation id="7066944511817949584">ከ«<ph name="DEVICE_NAME" />» ጋር መገናኘት አልተቻለም።</translation> <translation id="7067725467529581407">ይህን ዳግም አታሳይ።</translation> +<translation id="7070484045139057854">ይህ የጣቢያ ውሂብን ማንበብ እና መቀየር ይችላል</translation> <translation id="7072010813301522126">አቋራጭ ስም</translation> <translation id="707392107419594760">የቁልፍ ሰሌዳዎን ይምረጡ፦</translation> <translation id="7075513071073410194">PKCS #1 MD5 ከRSA ምስጠራ ጋር</translation> @@ -4115,6 +4154,7 @@ <translation id="7256710573727326513">በትር ውስጥ ክፈት</translation> <translation id="725758059478686223">የሕትመት አገልግሎት</translation> <translation id="7257666756905341374">የሚቀዱትን እና የሚለጥፉትን ውሂብ ያነብባል</translation> +<translation id="7258697411818564379">የእርስዎ ፒን ታክሏል</translation> <translation id="7260764918845374269">የደህንነት ቁልፍዎን ለማየት በማጣመር ሁነታ ላይ መሆን አለበት። በቁልፍዎ ላይ ያለውን አዝራር ቢያንስ ለ5 ሰከንዶች ይጫኑት።</translation> <translation id="7262004276116528033">ይህ የመለያ መግቢያ አገልግሎት በ<ph name="SAML_DOMAIN" /> የሚስተናገድ ነው</translation> <translation id="7268365133021434339">ትሮችን ዝጋ</translation> @@ -4262,6 +4302,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">የይለፍ ቃልዎን ረስተውታል?</translation> <translation id="7497215489070763236">የአገልጋይ CA እውቅና ማረጋገጫ</translation> +<translation id="7497981768003291373">ምንም በቅርብ ጊዜ የተቀረጹ WebRTC የጽሑፍ ምዝግብ ማስታወሻዎች የለዎትም።</translation> <translation id="7502658306369382406">የIPv6 አድራሻ</translation> <translation id="7503191893372251637">የNetscape ሰርቲፊኬት አይነት</translation> <translation id="7503821294401948377">አዶ «<ph name="ICON" />»ን ለአሳሽ እርምጃ መጫን አልተቻለም።</translation> @@ -4304,6 +4345,7 @@ <translation id="7564847347806291057">ሂደቱን ግታ</translation> <translation id="7566118625369982896">የPlay መተግበሪያ አገናኞችን ያቀናብሩ</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">ጣትዎን ያስቀምጡ</translation> <translation id="756809126120519699">የChrome ውሂብ ጸድቷል</translation> <translation id="7568790562536448087">በማዘመን ላይ</translation> <translation id="7571643774869182231">ለዝማኔ የሚሆን በቂ ቦታ የለውም</translation> @@ -4466,6 +4508,7 @@ <ph name="LINE_BREAK2" /> መጠናቸው አነስ ያሉ ፎቶዎችን ይሞክሩ።</translation> <translation id="782590969421016895">የአሁኑ ገጾችን ይጠቀሙ</translation> +<translation id="7826346148677309647">በPlay መደብር ለመሣሪያዎ ውስጥ ተጨማሪ መተግበሪያዎችን ማግኘት ይችላሉ።</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />የማረሚያ ባህሪያት<ph name="END_H3" /> <ph name="BR" /> ብጁ ኮድ በመሣሪያዎ ላይ ለመጫን እና ለመሞከር በእርስዎ Chrome OS መሣሪያ ላይ ያሉትን የማረሚያ ባህሪያት ማንቃት ይችላሉ። ይህ የሚከተሉትን እንዲያደርጉ ያስችልዎታል፦<ph name="BR" /> @@ -4667,6 +4710,7 @@ <translation id="8059417245945632445">&መሣሪያዎችን መርምር</translation> <translation id="8063235345342641131">ነባሪ አረንጓዴ አምሳያ</translation> <translation id="8064671687106936412">ቁልፍ፦</translation> +<translation id="8065485338434000013">አንዳንድ ካርዶችዎ በዚህ መሣሪያ ላይ ብቻ ነው መጠቀም የሚቻለው</translation> <translation id="806812017500012252">በርዕስ ቅደም ተከተል አስይዝ</translation> <translation id="8068253693380742035">በመለያ ለመግባት ይንኩ</translation> <translation id="8069615408251337349">Google ዳመና ህትመት</translation> @@ -4744,6 +4788,7 @@ <translation id="8191453843330043793">V8 Proxy Resolver</translation> <translation id="8193175696669055101">የመሳሪያ ሞዴል</translation> <translation id="8195027750202970175">ዲስክ ላይ ያለው መጠን</translation> +<translation id="8198323535106903877">እነዚህን <ph name="NUMBER_OF_APPS" /> መተግበሪያዎች እንጭንልዎታለን</translation> <translation id="8199300056570174101">አውታረ መረብ (አገልግሎት) እና የመሣሪያ ጠባያት</translation> <translation id="8200772114523450471">ከቆመበት ቀጥል</translation> <translation id="8202160505685531999">የእርስዎን የ<ph name="DEVICE_TYPE" /> መገለጫ ለማዘመን እባክዎ የእርስዎን የይለፍ ቃል ዳግም ያስገቡት።</translation> @@ -4963,7 +5008,6 @@ <translation id="8557930019681227453">ዝርዝር ሰነድ</translation> <translation id="8559694214572302298">ምስል ከጽምጽ ጋር አዛምዶ አንባቢ</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">ማንበብ ይቀጥሉ</translation> <translation id="8565650234829130278">የመተግበሪያውን ስሪት ለማውረድ ተሞክሯል።</translation> <translation id="8569002732135253578">አሁን <ph name="DOCUMENT_NAME" />ን በማተም ላይ</translation> <translation id="8569682776816196752">ምንም መድረሻዎች አልተገኙም</translation> @@ -5076,6 +5120,8 @@ <translation id="8716931980467311658">ከዚህ <ph name="DEVICE_TYPE" /> በእርስዎ Linux ፋይሎች አቃፊ ውስጥ ያሉ ሁሉም የLinux መተግበሪያዎች እና ውሂብ ይሰረዙ?</translation> <translation id="8719653885894320876"><ph name="PLUGIN_NAME" />ን ማውረድ አልተሳካም</translation> <translation id="8723829621484579639">ማንነት የማያሳውቁ ንዑስ ክፈፎች ለ፦ <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">ይህን አዶ ሲመለከቱ ለይቶ ለማወቅ ወይም ግዢዎችን ለማጽደቅ የእርስዎን የጣት አሻራ ይጠቀሙ።</translation> +<translation id="8724409975248965964">የጣት አሻራ ታክሏል</translation> <translation id="8724859055372736596">&በአቃፊ ውስጥ አሳይ</translation> <translation id="8725066075913043281">እንደገና ይሞክሩ</translation> <translation id="8725178340343806893">ተወዳጆች/ዕልባቶች</translation> @@ -5156,6 +5202,7 @@ <translation id="8838770651474809439">ሃምበርገር</translation> <translation id="883911313571074303">ምስልን አብራራ</translation> <translation id="8845001906332463065">እገዛ ያግኙ</translation> +<translation id="8846132060409673887">የዚህ ኮምፒውተር አምራችና ሞዴል ማንበብ</translation> <translation id="8846141544112579928">የቁልፍ ሰሌዳን በመፈለግ ላይ...</translation> <translation id="8847988622838149491">ዩ ኤስ ቢ</translation> <translation id="8859057652521303089">ቋንቋዎትን ይምረጡ፦</translation> @@ -5369,6 +5416,7 @@ <translation id="9161070040817969420">ንዑስ ክፈፎች ለ፦ <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">የስርዓት ውሂብ ይላኩ። ይህ መሣሪያ በአሁኑ ጊዜ የምርመራ እና የመሣሪያ እ3ና የመተግበሪያ አጠቃቀም ውሂብን በራስ-ሰር ወደ Google ይልካል። ይህ ቅንብር በባለቤቱ አስገዳጅነት ያለው እንዲሆን ይደረጋል። ተጨማሪ የድር እና የመተግበሪያ እንቅስቃሴን ካበሩ ይህ መረጃ በእኔ እንቅስቃሴ ውስጥ ማቀናበር እንዲችሉ በእርስዎ መለያ ላይ ይከማቻል። <ph name="BEGIN_LINK1" />የበለጠ ለመረዳት<ph name="END_LINK1" /></translation> <translation id="916607977885256133">በሥዕል ላይ ሥዕል</translation> +<translation id="9168436347345867845">በኋላ ያድርጉት</translation> <translation id="9169496697824289689">የቁልፍ ሰሌዳ አቋራጮችን ይመልከቱ</translation> <translation id="9169931577761441333"><ph name="APP_NAME" />ን ወደ መነሻ ገጽ ያክሉ</translation> <translation id="9170848237812810038">&ቀልብስ</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb index 3fdbfdb..7e136a5 100644 --- a/chrome/app/resources/generated_resources_ar.xtb +++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -247,6 +247,7 @@ <translation id="1358741672408003399">التدقيق الإملائي والتدقيق النحوي</translation> <translation id="1361164813881551742">الإضافة يدويًا</translation> <translation id="1361655923249334273">غير مستخدم</translation> +<translation id="1361872463926621533">تشغيل الصوت عند بدء التشغيل</translation> <translation id="1363028406613469049">مقطع صوتي</translation> <translation id="1367951781824006909">اختيار ملف</translation> <translation id="1368265273904755308">الإبلاغ عن مشكلة</translation> @@ -570,6 +571,7 @@ <translation id="1817310072033858383">إعداد Smart Lock لجهاز <ph name="DEVICE_TYPE" /></translation> <translation id="1817871734039893258">استرداد ملفات Microsoft</translation> <translation id="1818007989243628752">حذف كلمة مرور <ph name="USERNAME" /></translation> +<translation id="1818913467757368489">جارٍ تحميل السِجلّ.</translation> <translation id="1819721979226826163">يُرجى النقر على "إشعارات التطبيق" > خدمات Google Play.</translation> <translation id="1826516787628120939">حساب شيكات</translation> <translation id="1828378091493947763">هذا المكوِّن الإضافي غير مدعوم على هذا الجهاز</translation> @@ -618,11 +620,13 @@ <translation id="1890674179660343635"><span>رقم التعريف: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">فتح في وضع ملء الشاشة</translation> <translation id="189358972401248634">لغات أخرى</translation> +<translation id="1894591787927543791">حفظ البطاقة لاستخدام Google Pay</translation> <translation id="1895658205118569222">إيقاف التشغيل</translation> <translation id="1895934970388272448">يجب عليك تأكيد التسجيل في الطابعة لإنهاء هذه العملية - يُرجى التحقق منها الآن.</translation> <translation id="1897762215429052132">إعداد اتصال الشبكة أو اللغة أو تنسيق لوحة المفاتيح...</translation> <translation id="1901303067676059328">تح&ديد الكلّ</translation> <translation id="1902576642799138955">فترة الصلاحية</translation> +<translation id="1904518222538904133">لا يمكن استخدام إلا بطاقة واحدة من بطاقاتك على هذا الجهاز.</translation> <translation id="1905375423839394163">اسم جهاز Chromebook</translation> <translation id="1905710495812624430">تم تجاوز الحد الأقصى لعدد المحاولات المسموح بها.</translation> <translation id="1909880997794698664">هل تريد فعلًا تشغيل هذا الجهاز في وضع الكشك بشكل دائم؟</translation> @@ -659,6 +663,7 @@ <translation id="1962969542251276847">قفل الشاشة</translation> <translation id="1963227389609234879">إزالة كلمات المرور كلّها</translation> <translation id="1965624977906726414">لا يتطلب أذونات خاصة.</translation> +<translation id="1969654639948595766">سجلّات WebRTC النصية (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">تم الدخول إلى وضع الفيديو</translation> <translation id="197288927597451399">مواصلة</translation> <translation id="1974043046396539880">نقاط توزيع CRL (قائمة إبطال الشهادات)</translation> @@ -802,6 +807,7 @@ <translation id="2190069059097339078">أداة الحصول على بيانات اعتماد WiFi</translation> <translation id="219008588003277019">وحدة البرنامج العميل الأصلي: <ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(فارغ)</translation> +<translation id="2191223688506386601">تتبقى خطوة أخيرة</translation> <translation id="2192505247865591433">من:</translation> <translation id="2193365732679659387">إعدادات الثقة</translation> <translation id="2195729137168608510">حماية البريد الإلكتروني</translation> @@ -1025,6 +1031,7 @@ <translation id="2534460670861217804">خادم وكيل HTTP الآمن</translation> <translation id="253557089021624350">عدد مرات التحقق من الاتصال</translation> <translation id="2538361623464451692">تم إيقاف المزامنة.</translation> +<translation id="2539876824180063438">يمكنك تحريك إصبع السبابة قليلاً لإضافة جميع الأجزاء المختلفة لبصمة إصبعك.</translation> <translation id="2541002089857695151">هل تريد تحسين الإرسال بوضع ملء الشاشة؟</translation> <translation id="2542049655219295786">جدول من Google</translation> <translation id="2544853746127077729">تمّ رفض شهادة المصادقة بواسطة الشبكة</translation> @@ -1257,7 +1264,9 @@ <translation id="287286579981869940">جارٍ إضافة <ph name="PROVIDER_NAME" />...</translation> <translation id="2874343608108773609">للحصول على كلمات المرور على جميع أجهزتك، يُرجى تسجيل الدخول إلى Chrome.</translation> <translation id="2875698561019555027">(صفحات الخطأ في Chrome)</translation> +<translation id="2876336351874743617">إصبع 2</translation> <translation id="288042212351694283">الوصول إلى أجهزة العامل الثاني العالمي</translation> +<translation id="2881076733170862447">عند النقر على "الإضافة"</translation> <translation id="2881966438216424900">تاريخ آخر دخول:</translation> <translation id="2882943222317434580">ستتم إعادة تشغيل <ph name="IDS_SHORT_PRODUCT_NAME" /> وإعادة تعيينه بعد وهلة.</translation> <translation id="2885378588091291677">إدارة المهام</translation> @@ -1358,7 +1367,7 @@ <translation id="3020990233660977256">الرقم التسلسلي: <ph name="SERIAL_NUMBER" /></translation> <translation id="3021678814754966447">عرض م&صدر الإطار</translation> <translation id="3022978424994383087">لم يتم استيعاب هذا.</translation> -<translation id="3023464535986383522">الاختيار والاستماع</translation> +<translation id="3023464535986383522">الاستماع والاختيار</translation> <translation id="3024374909719388945">استخدام تنسيق 24 ساعة</translation> <translation id="302781076327338683">إعادة تحميل تجاوز ذاكرة التخزين المؤقت</translation> <translation id="3031417829280473749">الوكيل X</translation> @@ -1443,6 +1452,7 @@ <translation id="3154429428035006212">بلا إنترنت لمدة تتجاوز شهرًا</translation> <translation id="3156531245809797194">لاستخدام Chrome، يُرجى تسجيل الدخول</translation> <translation id="3157931365184549694">استعادة</translation> +<translation id="3158033540161634471">إعداد بصمة الإصبع</translation> <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (مستندة إلى الأجهزة)</translation> <translation id="316125635462764134">إزالة التطبيق</translation> <translation id="3161522574479303604">كل اللغات</translation> @@ -1512,9 +1522,10 @@ <translation id="3285322247471302225">&علامة تبويب جديدة</translation> <translation id="3288047731229977326">يمكن أن تؤدي الإضافات التي تعمل في وضع مطور البرامج إلى إلحاق الضرر بجهاز الكمبيوتر. إذا لم تكن مطور برامج، فيجب إيقاف هذه الإضافات التي تعمل في وضع مطور البرامج للبقاء في أمان.</translation> <translation id="3289856944988573801">للتحقق من وجود تحديثات، يُرجى استخدام شبكة Ethernet أو Wi-Fi.</translation> -<translation id="3292421191230118801">استئناف عرض مواقع الويب من الجوّال على جهاز Chromebook</translation> <translation id="32939749466444286">يتعذَّر بدء حاوية نظام التشغيل Linux. يُرجى إعادة المحاولة.</translation> <translation id="3294437725009624529">ضيف</translation> +<translation id="329703603001918157">يتعذَّر تعديل الاختصار</translation> +<translation id="3297951628821704004">إزالة الحساب من هذا الجهاز</translation> <translation id="329838636886466101">الإصلاح</translation> <translation id="3298789223962368867">تم إدخال عنوان URL غير صحيح.</translation> <translation id="32991397311664836">الأجهزة:</translation> @@ -1680,6 +1691,7 @@ <translation id="3534879087479077042">ما اسم المستخدم الذي يخضع للإشراف؟</translation> <translation id="3538066758857505094">حدث خطأ أثناء إلغاء تثبيت نظام التشغيل Linux. يُرجى إعادة المحاولة.</translation> <translation id="354060433403403521">محول AC</translation> +<translation id="354068948465830244">يمكن أن يؤدي ذلك إلى قراءة بيانات موقع الويب وتغييرها</translation> <translation id="3541661933757219855">اكتب Ctrl+Alt+/ أو Escape للإخفاء</translation> <translation id="3543393733900874979">تعذّر التحديث (خطأ: <ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">توقيع X9.62 ECDSA باستخدام SHA-512</translation> @@ -1725,6 +1737,7 @@ <translation id="3606712892509067288">إزالة من Better Together</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">معاينة صورة المستخدم</translation> +<translation id="3609446736023031597">الحصول على آخر التحديثات والاقتراحات في تطبيقات "متجر Play"</translation> <translation id="3609785682760573515">جارٍ المزامنة...</translation> <translation id="3609895557594655134">جارٍ إضافة الشبكة الظاهرية الخاصة (VPN) في Android...</translation> <translation id="361106536627977100">بيانات فلاش</translation> @@ -1754,9 +1767,10 @@ <translation id="363903084947548957">طريقة الإدخال التالية</translation> <translation id="3640214691812501263">هل تريد إضافة "<ph name="EXTENSION_NAME" />" لـ <ph name="USER_NAME" />؟</translation> <translation id="3644896802912593514">العرض</translation> -<translation id="3645372836428131288">تحرّك قليلاً لالتقاط جزء مختلف من بصمة الإصبع.</translation> +<translation id="3645372836428131288">حرّك إصبعك قليلاً لالتقاط جزء مختلف من بصمة الإصبع.</translation> <translation id="3648348069317717750">تم اكتشاف <ph name="USB_DEVICE_NAME" /></translation> <translation id="3649138363871392317">تم التقاط الصورة</translation> +<translation id="3650845953328929506">تحميل السجلّ مُعلّق.</translation> <translation id="3650952250015018111">السماح لتطبيق "<ph name="APP_NAME" />" بالوصول:</translation> <translation id="3651488188562686558">قطع الاتصال بشبكة Wi-Fi</translation> <translation id="3652817283076144888">جارٍ التهيئة</translation> @@ -1908,6 +1922,7 @@ <translation id="3856800405688283469">تحديد منطقة زمنية</translation> <translation id="3857228364945137633">يمكنك تجربة Smart Lock لإلغاء قفل جهاز <ph name="DEVICE_TYPE" /> من دون كلمة المرور عندما يكون هاتفك قريبًا.</translation> <translation id="3857773447683694438">أبجد هوز حطي كلمن سعفص قرشت</translation> +<translation id="3857807444929313943">رفع الإصبع، ثم اللمس مرة أخرى</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: تم إيقاف المزامنة مؤقتًا</translation> <translation id="3860381078714302691">مرحبًا بك في Hangouts Meet</translation> <translation id="3861241522664181545">تم إيقاف تحميل الصفحة مؤقتًا.</translation> @@ -1926,6 +1941,7 @@ <translation id="3873315167136380065">لتفعيل هذا الإعداد، يمكنك <ph name="BEGIN_LINK" />إعادة ضبط المزامنة<ph name="END_LINK" /> لإزالة عبارة مرور المزامنة.</translation> <translation id="3878840326289104869">إنشاء مستخدم يخضع للإدارة</translation> <translation id="3879748587602334249">تطبيق إدارة التنزيل</translation> +<translation id="3885455691202481064">يمكنك لمس جهاز الاستشعار باستخدام إصبع السبابة. ويتوفَّر الجهاز في أعلى يمين جهاز Chromebook.</translation> <translation id="3888550877729210209">تسجيل الملاحظات من خلال <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3892414795099177503">إضافة OpenVPN / L2TP...</translation> <translation id="3893536212201235195">قراءة وتغيير إعدادات إمكانية الوصول</translation> @@ -1975,6 +1991,7 @@ <translation id="3950820424414687140">تسجيل الدخول</translation> <translation id="3954354850384043518">جارية</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> هرتز)</translation> +<translation id="3954953195017194676">ليست لديك أي سجلات أحداث WebRTC تم التقاطها مؤخرًا.</translation> <translation id="3955193568934677022">السماح للمواقع الإلكترونية بتشغيل المحتوى المحمي (مُستحسَن)</translation> <translation id="3956702100721821638">تعذّر الوصول إلى Google Play</translation> <translation id="3958088479270651626">استيراد الإشارات المرجعية والإعدادات</translation> @@ -2228,6 +2245,7 @@ <translation id="4405117686468554883">jpeg.* وjpg.* وpng.*</translation> <translation id="4408599188496843485">م&ساعدة</translation> <translation id="4409697491990005945">الهوامش</translation> +<translation id="4410545552906060960">يمكنك استخدام رقم تعريف شخصي (PIN) بدلاً من كلمة مرور لفتح قفل الجهاز. لضبط رقم تعريفك الشخصي لاحقًا، انتقل إلى "الإعدادات".</translation> <translation id="4411578466613447185">موقّع الشفرة</translation> <translation id="4412698727486357573">مركز المساعدة</translation> <translation id="44141919652824029">هل تريد السماح لتطبيق "<ph name="APP_NAME" />" بالحصول على قائمة أجهزة USB المرفقة؟</translation> @@ -2319,8 +2337,10 @@ <translation id="4555769855065597957">ظل</translation> <translation id="4556110439722119938">ستتم مزامنة الإشارات المرجعية والسجل وكلمات المرور والإعدادات الأخرى مع حسابك في Google لكي يتسنّى لك استخدامها على جميع أجهزتك</translation> <translation id="4558426062282641716">تمّ طلب إذن للتشغيل التلقائي</translation> +<translation id="4558491878126948419">يمكنك الحصول على نصائح وتحديثات حول <ph name="DEVICE_TYPE" /> بخصوص منتجات Google ومشاركة التعليقات. ويمكنك إلغاء الاشتراك في أي وقت.</translation> <translation id="4559617833001311418">تم السماح لهذا الموقع بالوصول إلى أجهزة استشعار الإضاءة أو الحركة.</translation> <translation id="4562155214028662640">إضافة بصمة إصبع</translation> +<translation id="4563880231729913339">إصبع 3</translation> <translation id="4565377596337484307">إخفاء كلمة المرور</translation> <translation id="4567772783389002344">إضافة كلمة</translation> <translation id="4568213207643490790">عذرًا، غير مسموح بتسجيل دخول حسابات Google على هذا الجهاز.</translation> @@ -2395,6 +2415,7 @@ <translation id="4681930562518940301">فتح الصورة الأصلية في علامة تبويب جديدة</translation> <translation id="4682551433947286597">تظهر الخلفيات على شاشة تسجيل الدخول.</translation> <translation id="4684427112815847243">مزامنة كل شيء</translation> +<translation id="4688036121858134881">رقم تعريف السِجلّ المحلي: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4689235506267737042">اختيار إعدادات العرض التوضيحي المفضَّلة</translation> <translation id="4689421377817139245">مزامنة هذه الإشارة المرجعة على جهاز iPhone</translation> <translation id="4690091457710545971"><تم إنشاء أربعة ملفات من خلال برامج Intel Wi-Fi الثابتة وهي كما يلي: csr.lst وfh_regs.lst وradio_reg.lst وmonitor.lst.sysmon. والملفات الثلاثة الأولى هي ملفات ثنائية تحتوي على عمليات تفريغ للسجلّات وهي لا تحتوي على أي معلومات شخصية أو معلومات تحديد هوية الجهاز، حسب تقييم Intel.وأما الملف الأخير فهو عبارة عن تتبُّع تنفيذ من البرامج الثابتة Intel، وتم تنقيحه للتأكّد من خلوه من أي معلومات شخصية أو معلومات تحديد هوية الجهاز، ولكنه لم يُعرض هنا لكبر حجمه. وتم إنشاء هذه الملفات استجابةً لمشاكل Wi-Fi الأخيرة في جهازك، وستتم مشاركتها مع Intel للمساعدة في تحرّي هذه المشاكل وإصلاحها.></translation> @@ -2579,6 +2600,7 @@ <translation id="4945444280533270988">ميزة Smart Lock مُفعّلة</translation> <translation id="4953689047182316270">الاستجابة لأحداث إمكانية الوصول</translation> <translation id="4953808748584563296">الصورة الرمزية التلقائية البرتقالية</translation> +<translation id="4955710816792587366">اختيار رقم التعريف الشخصي</translation> <translation id="4955814292505481804">سنوي</translation> <translation id="4957949153200969297">يمكنك تفعيل الميزات ذات الصلة بمزامنة <ph name="IDS_SHORT_PRODUCT_NAME" /> فقط.</translation> <translation id="4959262764292427323">يتم حفظ كلمات المرور في حسابك على Google حتى تتمكَّن من استخدامها على أي جهاز.</translation> @@ -2643,6 +2665,7 @@ <translation id="5050042263972837708">اسم المجموعة</translation> <translation id="5052499409147950210">تعديل موقع ويب</translation> <translation id="5053604404986157245">كلمة مرور TPM التي تم إنشاؤها عشوائيًا غير متوفرة. هذا أمر عادي بعد إجراء Powerwash.</translation> +<translation id="5057110919553308744">عند النقر على "الإضافة"</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{يحتوي هذا المجلَّد على إشارة مرجعية واحدة. هل ترغب في حذفه بالتأكيد؟}zero{يحتوي هذا المجلَّد على # إشارة مرجعية. هل ترغب في حذفه بالتأكيد؟}two{يحتوي هذا المجلَّد على إشارتيْن مرجعيتيْن (#). هل ترغب في حذفه بالتأكيد؟}few{يحتوي هذا المجلَّد على # إشارات مرجعية. هل ترغب في حذفه بالتأكيد؟}many{يحتوي هذا المجلَّد على # إشارةً مرجعية. هل ترغب في حذفه بالتأكيد؟}other{يحتوي هذا المجلَّد على # إشارة مرجعية. هل ترغب في حذفه بالتأكيد؟}}</translation> <translation id="5061708541166515394">التباين</translation> <translation id="5062930723426326933">تعذّر تسجيل الدخول، يُرجى الاتصال بالإنترنت وإعادة المحاولة.</translation> @@ -2818,6 +2841,7 @@ <translation id="5315873049536339193">الهوية</translation> <translation id="5316716239522500219">نسخ الشاشات</translation> <translation id="5317780077021120954">حفظ</translation> +<translation id="5318819489018851358">المشاركة مع نظام التشغيل Linux</translation> <translation id="5319359161174645648">توصي Google باستخدام Chrome</translation> <translation id="5319566035256672173">لن يتلقى هذا الجهاز آخر تحديثات البرامج بعد الآن. يُرجى العمل على الترقية.</translation> <translation id="532247166573571973">قد يتعذر الوصول إلى الخادم. حاول مرة أخرى.</translation> @@ -3158,6 +3182,7 @@ <translation id="5804241973901381774">الأذونات</translation> <translation id="580571955903695899">إعادة الترتيب بحسب العنوان</translation> <translation id="5807290661599647102">تعيين قفل شاشة</translation> +<translation id="5811750797187914944">اكتمل الإعداد</translation> <translation id="5814126672212206791">نوع الاتصال</translation> <translation id="5815645614496570556">عنوان X.400</translation> <translation id="5816434091619127343">تغييرات الطابعة المطلوبة تجعل الطابعة غير قابلة للاستخدام.</translation> @@ -3195,6 +3220,7 @@ <translation id="5855773610748894548">عفوًا، حدث خطأ في الوحدة الآمنة.</translation> <translation id="5856721540245522153">تفعيل ميزات تصحيح الأخطاء</translation> <translation id="5857090052475505287">مجلد جديد</translation> +<translation id="5858490737742085133">Terminal</translation> <translation id="585979798156957858">مفتاح Meta الخارجي</translation> <translation id="5860033963881614850">إيقاف</translation> <translation id="5860209693144823476">علامة التبويب 3</translation> @@ -3217,6 +3243,7 @@ <translation id="5882919346125742463">الشبكات المعروفة</translation> <translation id="5884474295213649357">علامة التبويب هذه متصلة بجهاز USB.</translation> <translation id="5885324376209859881">إدارة إعدادات الوسائط...</translation> +<translation id="5886009770935151472">إصبع 1</translation> <translation id="5889282057229379085">أقصى عدد من المراجع المصدقة المتوسطة (CA): <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">إعادة التشغيل</translation> <translation id="5895187275912066135">تاريخ الإصدار</translation> @@ -3301,6 +3328,7 @@ <translation id="6025215716629925253">تتبع التكديس</translation> <translation id="6026047032548434446">هل تريد تثبيت التطبيق؟</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - تم توصيل جهاز USB</translation> +<translation id="6028117231645531007">إضافة بصمة الإصبع</translation> <translation id="6029027682598229313">تم تثبيت نظام التشغيل Linux بنجاح.</translation> <translation id="6029587122245504742">الأبطأ</translation> <translation id="6032912588568283682">نظام الملفات</translation> @@ -3315,6 +3343,7 @@ <translation id="6042308850641462728">المزيد</translation> <translation id="6043317578411397101">يشارك <ph name="APP_NAME" /> علامة تبويب متصفح Chrome من خلال <ph name="TAB_NAME" />.</translation> <translation id="6044805581023976844">يشارك <ph name="APP_NAME" /> علامة تبويب متصفح Chrome والصوت من خلال <ph name="TAB_NAME" />.</translation> +<translation id="6047938872139769630">يمكنك استخدام رقم التعريف الشخصي لفتح قفل جهازك عند تسجيل الخروج.</translation> <translation id="6049004884579590341">الضغط مع الاستمرار على |<ph name="ACCELERATOR" />| للخروج من وضع ملء الشاشة</translation> <translation id="6049065490165456785">صور من الكاميرا الداخلية</translation> <translation id="6051354611314852653">عفوًا! تعذّر النظام في السماح بالدخول إلى واجهة برمجة التطبيقات على هذا الجهاز.</translation> @@ -3337,6 +3366,7 @@ <translation id="6075907793831890935">تبادل البيانات مع الجهاز المسمى <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">تضمين لقطة الشاشة هذه</translation> <translation id="6077131872140550515">إزالة من الشبكات المُفضلة</translation> +<translation id="6077189836672154517">نصائح وتحديثات حول <ph name="DEVICE_TYPE" /></translation> <translation id="6078323886959318429">إضافة اختصار</translation> <translation id="6078752646384677957">الرجاء التحقق من الميكروفون ومستويات الصوت.</translation> <translation id="6080515710685820702">هل تستخدم جهاز كمبيوتر مشتركًا؟ جرِّب فتح نافذة للتصفُّح المتخفي.</translation> @@ -3386,6 +3416,7 @@ <translation id="6144938890088808325">ساعدنا في تحسين أجهزة Chromebook</translation> <translation id="6146563240635539929">فيديوهات</translation> <translation id="6147020289383635445">تعذّرت معاينة الطباعة.</translation> +<translation id="6148052338549899048">لا تتوفَّر أجهزة مؤهلة. <ph name="LINK_BEGIN" />مزيد من المعلومات.<ph name="LINK_END" /></translation> <translation id="614940544461990577">جرّب:</translation> <translation id="6150853954427645995">لحفظ هذا الملف للاستخدام بلا إنترنت، عاود الاتصال بالإنترنت، وانقر بزر الماوس الأيمن على الملف، ثم حدد الخيار <ph name="OFFLINE_CHECKBOX_NAME" />.</translation> <translation id="6151323131516309312">اضغط على <ph name="SEARCH_KEY" /> للبحث في الموقع <ph name="SITE_NAME" /></translation> @@ -3406,6 +3437,7 @@ <translation id="6169040057125497443">الرجاء التحقق من الميكروفون.</translation> <translation id="6169666352732958425">تعذر إرسال سطح المكتب.</translation> <translation id="6171948306033499786">إيقاف الطباعة مؤقتًا</translation> +<translation id="6173623053897475761">كتابة رقم التعريف الشخصي مرة أخرى</translation> <translation id="6175314957787328458">المعرّف الفريد العمومي لنطاق Microsoft</translation> <translation id="6176043333338857209">سيُفعَّل البلوتوث مؤقتًا للاتصال مع مفتاح الأمان.</translation> <translation id="6178664161104547336">تحديد شهادة</translation> @@ -3595,11 +3627,13 @@ <translation id="6456394469623773452">جيدة</translation> <translation id="6456631036739229488">تم تغيير هاتف Smart Lock. أدخل كلمة مرورك لتحديث Smart Lock. وفي المرة القادمة، سيلغي هاتفك قفل جهاز <ph name="DEVICE_TYPE" />. أوقف تشغيل Smart Lock في الإعدادات.</translation> <translation id="645705751491738698">متابعة منع تشغيل جافا سكريبت</translation> +<translation id="6458701200018867744">تعذَّر التحميل (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">استخدام التحديد للبحث</translation> <translation id="6459799433792303855">تم نقل نافذة نشطة إلى شاشة عرض أخرى.</translation> <translation id="6460601847208524483">البحث عن التالي</translation> <translation id="6463795194797719782">ت&عديل</translation> <translation id="6466988389784393586">ف&تح كل الإشارات المرجعية</translation> +<translation id="6467304607960172345">تحسين الفيديوهات بملء الشاشة</translation> <translation id="6468485451923838994">الخطوط</translation> <translation id="6472207088655375767">كلمة المرور لمرة واحدة (OTP)</translation> <translation id="6472893788822429178">عرض زر الصفحة الرئيسية</translation> @@ -3735,7 +3769,7 @@ <translation id="6664237456442406323">للأسف، تمت تهيئة جهاز الكمبيوتر باستخدام معرف جهاز غير صحيح. وهذا يمنع تحديث نظام التشغيل Chrome بأحدث إصلاحات الأمان، وقد يكون جهاز الكمبيوتر <ph name="BEGIN_BOLD" />عرضة للهجمات الضارة<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">حدث خطأ ما أثناء فتح ملفك الشخصي. يُرجى الخروج ثم إعادة تسجيل الدخول.</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> -<translation id="6674412557034343536">إيقاف المؤقّت</translation> +<translation id="6674412557034343536">إيقاف الموقّت</translation> <translation id="667517062706956822">هل تريد أن يترجم Google هذه الصفحة من <ph name="SOURCE_LANGUAGE" /> إلى <ph name="TARGET_LANGUAGE" />؟</translation> <translation id="6675665718701918026">الإشارة إلى الأجهزة المتصلة</translation> <translation id="6678717876183468697">عنوان URL للاستعلام</translation> @@ -3775,6 +3809,7 @@ <translation id="6725206449694821596">بروتوكول الطباعة على الإنترنت (IPP)</translation> <translation id="6727005317916125192">الجزء السابق</translation> <translation id="6732801395666424405">لم يتم تحميل الشهادات</translation> +<translation id="6732900235521116609">تتعذَّر إزالة الاختصار</translation> <translation id="6735304988756581115">عرض ملفات تعريف الارتباط وبيانات الموقع الأخرى...</translation> <translation id="6736045498964449756">عفوًا، كلمتا المرور غير متطابقتين!</translation> <translation id="6736243959894955139">العنوان</translation> @@ -3858,6 +3893,7 @@ <translation id="6860427144121307915">فتح في علامة تبويب</translation> <translation id="6862635236584086457">جميع الملفات المحفوظة في هذا المجلد يتم الاحتفاظ بنسخة احتياطية منها تلقائيًا على الإنترنت</translation> <translation id="6865313869410766144">الملء التلقائي من البيانات</translation> +<translation id="6865708901122695652">سجلّات أحداث WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">درجة حرارة الألوان</translation> <translation id="6870888490422746447">اختيار تطبيق للمشاركة في:</translation> <translation id="6871644448911473373">مستجيب OCSP: <ph name="LOCATION" /></translation> @@ -3902,6 +3938,7 @@ <translation id="694592694773692225">تم حظر إعادة التوجيه في هذه الصفحة.</translation> <translation id="6949306908218145636">وضع إشارة مرجعية على الصفحات المفتوحة...</translation> <translation id="6950627417367801484">استعادة التطبيقات</translation> +<translation id="6950943362443484797">سنعمل على تثبيت هذا التطبيق من أجلك</translation> <translation id="6951153907720526401">معالجات الدفع</translation> <translation id="6955446738988643816">فحص النوافذ المنبثقة</translation> <translation id="6957231940976260713">اسم الخدمة</translation> @@ -3937,6 +3974,7 @@ <translation id="6998711733709403587">تم تحديد <ph name="SELCTED_FOLDERS_COUNT" /> من المجلدات</translation> <translation id="6998793565256476099">تسجيل الجهاز لمؤتمر الفيديو</translation> <translation id="7000347579424117903">تضمين مفتاحي Ctrl، أو Alt، أو مفتاح البحث</translation> +<translation id="700203306553508933">حفظ البطاقات لاستخدام Google Pay</translation> <translation id="7002055706763150362">لإعداد Smart Lock في Chromebook، يحتاج Google للتأكد من هويتك، اكتب كلمة المرور للبدء.</translation> <translation id="7002454948392136538">اختيار مدير لهذا المستخدم الذي يخضع للإشراف</translation> <translation id="7003339318920871147">قواعد بيانات الويب</translation> @@ -3984,6 +4022,7 @@ <translation id="706626672220389329">حدث خطأ في تحميل المشاركة. تم تحميل المشاركة المُحدّدة من قبل.</translation> <translation id="7066944511817949584">تعذّر الاتصال بـ "<ph name="DEVICE_NAME" />".</translation> <translation id="7067725467529581407">عدم عرض هذا مرةً أخرى.</translation> +<translation id="7070484045139057854">يمكن أن يؤدي ذلك إلى قراءة بيانات موقع الويب وتغييرها</translation> <translation id="7072010813301522126">اسم الاختصار</translation> <translation id="707392107419594760">تحديد لوحة المفاتيح:</translation> <translation id="7075513071073410194">PKCS #1 MD5 مع تشفير RSA</translation> @@ -4113,6 +4152,7 @@ <translation id="7256710573727326513">فتح في علامة تبويب</translation> <translation id="725758059478686223">خدمة الطباعة</translation> <translation id="7257666756905341374">قراءة البيانات التي نسختها ولصقتها</translation> +<translation id="7258697411818564379">تمت إضافة رقم التعريف الشخصي</translation> <translation id="7260764918845374269">لكي يظهر مفتاح الأمان، يجب أن تكون في وضع الإقران. اضغط على الزر في مفتاح الأمان لمدة لا تقل عن 5 ثوانٍ.</translation> <translation id="7262004276116528033">يستضيف <ph name="SAML_DOMAIN" /> خدمة تسجيل الدخول هذه.</translation> <translation id="7268365133021434339">إغلاق علامات التبويب</translation> @@ -4163,7 +4203,7 @@ <translation id="7339898014177206373">نافذة جديدة</translation> <translation id="7340431621085453413"><ph name="FULLSCREEN_ORIGIN" /> في وضع ملء الشاشة الآن.</translation> <translation id="7340650977506865820">يشارك موقع الويب شاشتك.</translation> -<translation id="7341834142292923918">تريد الوصول إلى موقع الويب هذا</translation> +<translation id="7341834142292923918">تريد الإضافة الوصول إلى موقع الويب هذا</translation> <translation id="7345706641791090287">تأكيد كلمة المرور</translation> <translation id="7346909386216857016">موافق، حسنًا</translation> <translation id="7347751611463936647">لاستخدام هذه الإضافة، اكتب "<ph name="EXTENSION_KEYWORD" />"، ثم TAB، ثم الأمر أو البحث.</translation> @@ -4260,6 +4300,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" /> × <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">هل نسيت كلمة المرور القديمة؟</translation> <translation id="7497215489070763236">شهادة CA للخادم</translation> +<translation id="7497981768003291373">ليست لديك أي سجلَّات نصية WebRTC تم التقاطها مؤخرًا.</translation> <translation id="7502658306369382406">عنوان IPv6</translation> <translation id="7503191893372251637">نوع شهادات Netscape</translation> <translation id="7503821294401948377">تعذر تحميل رمز '<ph name="ICON" />' لإجراء المتصفح.</translation> @@ -4303,6 +4344,7 @@ <translation id="7564847347806291057">إنهاء العملية</translation> <translation id="7566118625369982896">إدارة روابط تطبيق Play</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">وضع إصبعك</translation> <translation id="756809126120519699">بيانات Chrome التي تم محوها</translation> <translation id="7568790562536448087">تحديث</translation> <translation id="7571643774869182231">لا تتوفر سعة تخزين كافية لإجراء التحديث</translation> @@ -4465,6 +4507,7 @@ <ph name="LINE_BREAK2" /> حاول تحديد عدد صور أقل.</translation> <translation id="782590969421016895">استخدام الصفحات الحالية</translation> +<translation id="7826346148677309647">يمكنك العثور على المزيد من التطبيقات لجهازك في "متجر Play".</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />ميزات تصحيح الأخطاء<ph name="END_H3" /> <ph name="BR" /> يمكنك تفعيل ميزات تصحيح الأخطاء على جهازك المزوَّد بنظام تشغيل Chrome لتثبيت رمز مُخصَّص واختباره على جهازك. سيسمح لك هذا بـ:<ph name="BR" /> @@ -4661,6 +4704,7 @@ <translation id="8059417245945632445">&فحص الأجهزة</translation> <translation id="8063235345342641131">الصورة الرمزية التلقائية الخضراء</translation> <translation id="8064671687106936412">المفتاح:</translation> +<translation id="8065485338434000013">يمكن استخدام بعض بطاقاتك على هذا الجهاز فقط</translation> <translation id="806812017500012252">إعادة الترتيب بحسب العنوان</translation> <translation id="8068253693380742035">المس لتسجيل الدخول</translation> <translation id="8069615408251337349">الطباعة السحابية من Google</translation> @@ -4738,6 +4782,7 @@ <translation id="8191453843330043793">محلل وكيل V8</translation> <translation id="8193175696669055101">طراز الجهاز</translation> <translation id="8195027750202970175">الحجم على القرص</translation> +<translation id="8198323535106903877">سنعمل على تثبيت <ph name="NUMBER_OF_APPS" /> من هذه التطبيقات من أجلك</translation> <translation id="8199300056570174101">خصائص الشبكة (الخدمة) والجهاز</translation> <translation id="8200772114523450471">استئناف</translation> <translation id="8202160505685531999">يُرجى إعادة إدخال كلمة المرور لتحديث ملف <ph name="DEVICE_TYPE" /> الشخصي.</translation> @@ -4957,7 +5002,6 @@ <translation id="8557930019681227453">البيان</translation> <translation id="8559694214572302298">أداة فك تشفير الصور</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">قراءة المزيد</translation> <translation id="8565650234829130278">محاولة الرجوع إلى الإصدار السابق من التطبيق.</translation> <translation id="8569002732135253578">يتم الآن طباعة <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">لم يتم العثور على أي وجهات</translation> @@ -4987,7 +5031,7 @@ <translation id="8620765578342452535">تهيئة اتصالات الشبكة</translation> <translation id="8624205858755890468">يعمل على تفعيل "المساعد" لعرض الإجراءات والتطبيقات والمعلومات ذات الصلة.</translation> <translation id="862542460444371744">&الإضافات</translation> -<translation id="8626219642120025691">تم الانتهاء من المؤقّت</translation> +<translation id="8626219642120025691">تم الانتهاء من الموقّت</translation> <translation id="8627151598708688654">تحديد مصدر</translation> <translation id="862727964348362408">معلقة</translation> <translation id="862750493060684461">ذاكرة التخزين المؤقت للغة CSS</translation> @@ -5070,6 +5114,8 @@ <translation id="8716931980467311658">هل تريد حذف جميع تطبيقات نظام التشغيل Linux والبيانات الواردة في مجلد ملفات نظام التشغيل Linux من جهاز <ph name="DEVICE_TYPE" /> هذا؟</translation> <translation id="8719653885894320876">تعذّر تنزيل <ph name="PLUGIN_NAME" /></translation> <translation id="8723829621484579639">التصفح المتخفي للإطارات الفرعية لـ: <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">عندما ترى هذا الرمز، استخدم بصمة الإصبع لتحديد الهوية أو للموافقة على عمليات الشراء.</translation> +<translation id="8724409975248965964">تمت إضافة بصمة الإصبع</translation> <translation id="8724859055372736596">&عرض في المجلد</translation> <translation id="8725066075913043281">أعد المحاولة</translation> <translation id="8725178340343806893">المفضّلة/الإشارات</translation> @@ -5150,6 +5196,7 @@ <translation id="8838770651474809439">هامبورجر</translation> <translation id="883911313571074303">إضافة تعليق توضيحي على الصورة</translation> <translation id="8845001906332463065">الحصول على مساعدة</translation> +<translation id="8846132060409673887">قراءة نموذج هذا الكمبيوتر والشركة المصنِّعة</translation> <translation id="8846141544112579928">جارٍ البحث عن لوحة المفاتيح...</translation> <translation id="8847988622838149491">USB</translation> <translation id="8859057652521303089">حدد لغتك:</translation> @@ -5285,7 +5332,7 @@ <translation id="9050666287014529139">عبارة المرور</translation> <translation id="9052208328806230490">لقد سجّلت طابعاتك في <ph name="CLOUD_PRINT_NAME" /> باستخدام الحساب <ph name="EMAIL" /></translation> <translation id="9052404922357793350">متابعة الحظر</translation> -<translation id="9053091947372579468">يتضمن جهازك ترخيصًا لـ Chrome، ولكن اسم المستخدم لديك غير مرتبط بوحدة تحكّم المشرف. يُرجى إنشاء حساب على وحدة تحكّم المشرف لمتابعة التسجيل. ملاحظة: إذا اختَرت استخدام نطاقك الخاص لإنشاء حساب جديد على وحدة تحكّم المشرف، عليك أيضًا إكمال إثبات ملكية النطاق بعد الاشتراك. https://g.co/ChromeEnterpriseAccount</translation> +<translation id="9053091947372579468">يتضمن جهازك ترخيصًا لـ Chrome، ولكن اسم المستخدم لديك غير مرتبط بوحدة تحكّم المشرف. يُرجى إنشاء حساب على وحدة تحكّم المشرف لمتابعة التسجيل. ملاحظة: إذا اختَرت استخدام نطاقك الخاص لإنشاء حساب جديد على وحدة تحكّم المشرف، عليك أيضًا إنهاء إثبات ملكية النطاق بعد الاشتراك. https://g.co/ChromeEnterpriseAccount</translation> <translation id="9053893665344928494">تذكَّر اختياري</translation> <translation id="9055636786322918818">فرض تشفير RC4: يؤدي استخدام هذا الخيار إلى زيادة المخاطر، لأن رموز RC4 غير آمنة.</translation> <translation id="9056034633062863292">جارٍ تحديث جهاز Chromebox...</translation> @@ -5363,6 +5410,7 @@ <translation id="9161070040817969420">الإطارات الفرعية لـ: <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">إرسال بيانات النظام. يُرسِل هذا الجهاز حاليًا بيانات التشخيص وبيانات استخدام التطبيق والجهاز تلقائيًا إلى Google. ويفرض المالك هذا الإعداد. وفي حال تفعيل "نشاط ويب وتطبيقات" إضافي، سيتم حفظ هذه المعلومات مع حسابك حتى تتمكَّن من إدارتها في "نشاطي". <ph name="BEGIN_LINK1" />مزيد من المعلومات<ph name="END_LINK1" /></translation> <translation id="916607977885256133">نافذة ضمن النافذة</translation> +<translation id="9168436347345867845">تنفيذ ذلك لاحقًا</translation> <translation id="9169496697824289689">عرض اختصارات لوحة المفاتيح</translation> <translation id="9169931577761441333">إضافة تطبيق <ph name="APP_NAME" /> إلى الشاشة الرئيسية</translation> <translation id="9170848237812810038">&إلغاء</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb index b6d9bd36..80a7e12c 100644 --- a/chrome/app/resources/generated_resources_bg.xtb +++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -1510,7 +1510,6 @@ <translation id="3285322247471302225">Нов &раздел</translation> <translation id="3288047731229977326">Разширенията, които се изпълняват в режим за програмисти, могат да навредят на компютъра ви. Ако не сте програмист, за по-голяма безопасност трябва да деактивирате изпълнението им в този режим.</translation> <translation id="3289856944988573801">За да проверите за актуализации, моля, използвайте Ethernet или Wi-Fi.</translation> -<translation id="3292421191230118801">Продължете да преглеждате на своя Chromebook сайтовете, които сте отворили от мобилното си устройство</translation> <translation id="32939749466444286">Контейнерът за Linux не стартира. Моля, опитайте отново.</translation> <translation id="3294437725009624529">Гост</translation> <translation id="329838636886466101">Поправяне</translation> @@ -4961,7 +4960,6 @@ <translation id="8557930019681227453">Манифест</translation> <translation id="8559694214572302298">Декодиране на изображения</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Продължете да четете</translation> <translation id="8565650234829130278">Бе направен опит за понижаване на приложението.</translation> <translation id="8569002732135253578">„<ph name="DOCUMENT_NAME" />“ се отпечатва</translation> <translation id="8569682776816196752">Няма намерени местоназначения</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb index baf8400..e1deccd 100644 --- a/chrome/app/resources/generated_resources_bn.xtb +++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -880,7 +880,7 @@ <translation id="2307462900900812319">নেটওয়ার্ক কনফিগার করুন</translation> <translation id="230927227160767054">এই পৃষ্ঠাটি একটি পরিষেবা নিয়ন্ত্রক ইনস্টল করতে চায়৷</translation> <translation id="2309620859903500144">এই সাইটটি আপনার মোশন এবং লাইট সেন্সর অ্যাক্সেস করতে পারবে না।</translation> -<translation id="2315414688463285945">Linux কনফিগার করতে সমস্যা হচ্ছে। আবার চেষ্টা করুন।</translation> +<translation id="2315414688463285945">Linux ফাইল কনফিগার করতে সমস্যা হচ্ছে। আবার চেষ্টা করুন।</translation> <translation id="2315821125498993513">ফোনের সাথে কানেক্ট করা যায়নি। <ph name="LINK_BEGIN" />আরও জানুন।<ph name="LINK_END" /></translation> <translation id="2316129865977710310">না, ধন্যবাদ</translation> <translation id="2317842250900878657"><ph name="PROGRESS_PERCENT" />% হয়েছে</translation> @@ -1514,7 +1514,6 @@ <translation id="3285322247471302225">নতুন &ট্যাব</translation> <translation id="3288047731229977326">ডেভেলপার মোডে চলমান এক্সটেনশানগুলি আপনার কম্পিউটারের ক্ষতি করতে পারে৷ যদি আপনি একজন ডেভেলপার না হন, তবে সুরক্ষিত থাকার জন্য আপনার এই এক্সটেনশানগুলিকে ডেভেলপার মোডে চালানো অক্ষম করা উচিৎ৷</translation> <translation id="3289856944988573801">আপডেটগুলি পরীক্ষা করার জন্য, দয়া করে Ethernet বা ওয়াই-ফাই ব্যবহার করুন৷</translation> -<translation id="3292421191230118801">মোবাইল থেকে আপনার Chromebook-এ সাইটগুলি আবার দেখা শুরু করুন</translation> <translation id="32939749466444286">Linux কন্টেনারটি শুরু হয়নি। আবার চেষ্টা করুন।</translation> <translation id="3294437725009624529">অতিথি</translation> <translation id="329838636886466101">মেরামত</translation> @@ -2480,7 +2479,7 @@ <translation id="4821935166599369261">&প্রোফাইলিং সক্ষমিত</translation> <translation id="4823484602432206655">ব্যবহারকারী এবং ডিভাইস সেটিংস পড়ুন ও পরিবর্তন করুন</translation> <translation id="4823651846660089135">ডিভাইস শুধুমাত্র পঠনযোগ্য</translation> -<translation id="4823955295535347797">আপনার স্ক্রিন চালু থাকাকালীন "OK Google" বলে যেকোনও সময়ে আপনার অ্যাসিস্ট্যান্ট অ্যাক্সেস করুন।</translation> +<translation id="4823955295535347797">আপনার স্ক্রিন চালু থাকাকালীন "হ্যালো Google" বলে যেকোনও সময়ে আপনার অ্যাসিস্ট্যান্ট অ্যাক্সেস করুন।</translation> <translation id="4828937774870308359">অস্ট্রেলীয়</translation> <translation id="4829768588131278040">পিন সেট আপ করুন</translation> <translation id="4830502475412647084">OS আপডেট ইনস্টল করা হচ্ছে</translation> @@ -2828,7 +2827,7 @@ <translation id="532776649628038357">আমি রাজি</translation> <translation id="532943162177641444">এই ডিভাইসে ব্যবহার করার জন্য মোবাইল হটস্পট সেট আপ করতে আপনার <ph name="PHONE_NAME" /> এ বিজ্ঞপ্তিটির উপরে ক্লিক করুন।</translation> <translation id="5329858601952122676">&মুছুন</translation> -<translation id="5329945517224105597">আপনার অ্যাসিস্ট্যান্ট আপনার স্ক্রিনে যা রয়েছে সেই বিষয়ে আরও সম্পর্কিত সাজেশন এবং নির্দিষ্ট অ্যাকশন প্রস্তাব করতে পারে। আপনি অ্যাসিস্ট্যান্ট সেটিংসে এটি পরিবর্তন করতে পারেন</translation> +<translation id="5329945517224105597">আপনার অ্যাসিস্ট্যান্ট স্ক্রিনে যা রয়েছে সেই বিষয়ে আরও সম্পর্কিত সাজেশন এবং নির্দিষ্ট অ্যাকশন প্রস্তাব করতে পারে। আপনি অ্যাসিস্ট্যান্ট সেটিংসে এটি পরিবর্তন করতে পারেন</translation> <translation id="5330145655348521461">এই ফাইলগুলি একটি আলাদা ডেস্কটপে খোলা রয়েছে৷ এটিকে দেখতে <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) এ সরান৷</translation> <translation id="5330512191124428349">তথ্য পান</translation> <translation id="5331069282670671859">এই বিভাগে আপনার কোনও শংসাপত্র নেই</translation> @@ -3083,7 +3082,7 @@ <ph name="LINE_BREAKS" /> আর্কাইভ বা ভার্চুয়াল ডিস্কের সমস্ত ফাইল বন্ধ করে আবার চেষ্টা করুন।</translation> <translation id="5687326903064479980">সময় অঞ্চল</translation> -<translation id="568824803367507355">"Ok Google" শনাক্তকরণ</translation> +<translation id="568824803367507355">"হ্যালো Google" শনাক্তকরণ</translation> <translation id="5689516760719285838">লোকেশন</translation> <translation id="56907980372820799">ডেটা লিঙ্ক করুন</translation> <translation id="5691511426247308406">পরিবারিক</translation> @@ -3547,7 +3546,7 @@ <translation id="6395423953133416962"><ph name="BEGIN_LINK1" />সিস্টেমের তথ্য<ph name="END_LINK1" /> এবং <ph name="BEGIN_LINK2" />মেট্রিক্স<ph name="END_LINK2" /> পাঠান</translation> <translation id="6397094776139756010">সিঙ্ক এবং নিজের মতো সাজিয়ে নেওয়ার বিকল্পগুলি</translation> <translation id="6397592254427394018">ছ্দ্মবেশী উইন্ডোতে &সকল বুকমার্ক খুলুন</translation> -<translation id="639777613761517128">$1-ব্যবহার করে ফাইল খুলতে আগে সেগুলি Linux ফাইল ফোল্ডারে কপি করুন।</translation> +<translation id="639777613761517128">$1 ব্যবহার করে ফাইল খুলতে আগে সেটিকে Linux ফাইল ফোল্ডারে কপি করুন।</translation> <translation id="6398715114293939307">Google Play স্টোর সরান</translation> <translation id="6398765197997659313">পূর্ণ স্ক্রীণ বন্ধ করুন</translation> <translation id="6399774419735315745">গুপ্তচর</translation> @@ -4957,7 +4956,6 @@ <translation id="8557930019681227453">ম্যানিফেস্ট</translation> <translation id="8559694214572302298">ছবি সঙ্কেতমোচক</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">পড়তে থাকুন</translation> <translation id="8565650234829130278">অ্যাপ্লিকেশন ডাউনগ্রেড করার প্রয়াস করেছেন৷</translation> <translation id="8569002732135253578">এখন <ph name="DOCUMENT_NAME" /> প্রিন্ট করা হচ্ছে</translation> <translation id="8569682776816196752">কোনো গন্তব্যস্থল পাওয়া যায়নি</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb index 689faa12..aa24d79 100644 --- a/chrome/app/resources/generated_resources_ca.xtb +++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -1512,7 +1512,6 @@ <translation id="3285322247471302225">Pes&tanya nova</translation> <translation id="3288047731229977326">Les extensions que funcionen amb el mode de desenvolupador poden malmetre el vostre ordinador. Si no sou desenvolupador, hauríeu de desactivar aquestes extensions per continuar protegit.</translation> <translation id="3289856944988573801">Per comprovar si hi ha actualitzacions, feu servir Ethernet o Wi-Fi.</translation> -<translation id="3292421191230118801">Reprèn la visualització de llocs web des del mòbil a Chromebook</translation> <translation id="32939749466444286">El contenidor de Linux no s'ha iniciat. Torna-ho a provar.</translation> <translation id="3294437725009624529">Convidat</translation> <translation id="329838636886466101">Repara</translation> @@ -4958,7 +4957,6 @@ <translation id="8557930019681227453">Fitxer de manifest</translation> <translation id="8559694214572302298">Descodificador d'imatges</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Continua llegint</translation> <translation id="8565650234829130278">S'ha intentat canviar a una versió anterior de l'aplicació.</translation> <translation id="8569002732135253578">S'està imprimint <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">No s'ha trobat cap destinació</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb index da35cbe..2714bd5 100644 --- a/chrome/app/resources/generated_resources_cs.xtb +++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -75,7 +75,7 @@ <translation id="1114202307280046356">Diamant</translation> <translation id="1114335938027186412">Váš počítač obsahuje bezpečnostní zařízení TPM (Trusted Platform Module), jehož pomocí je do systému Chrome OS implementováno mnoho důležitých bezpečnostních funkcí. Další informace najdete v centru nápovědy k Chromebookům: https://support.google.com/chromebook/?p=tpm</translation> <translation id="1114525161406758033">Při zavření víka přejít do režimu spánku</translation> -<translation id="1115324527092594775">Nastavení lepší spolupráce</translation> +<translation id="1115324527092594775">Nastavení funkce Better Together</translation> <translation id="1116694919640316211">Informace</translation> <translation id="1116779635164066733">Toto nastavení je vynucováno rozšířením <ph name="NAME" />.</translation> <translation id="111844081046043029">Jste si jisti, že chcete opustit tuto stránku?</translation> @@ -1513,7 +1513,6 @@ <translation id="3285322247471302225">Nová kar&ta</translation> <translation id="3288047731229977326">Rozšíření spuštěná v režimu pro vývojáře mohou poškodit počítač. Pokud nejste vývojář, měli byste s ohledem na svou bezpečnost rozšíření spuštěná v tomto režimu deaktivovat.</translation> <translation id="3289856944988573801">Chcete-li zkontrolovat dostupnost aktualizací, použijte síť Ethernet nebo Wi-Fi.</translation> -<translation id="3292421191230118801">Pokračujte na Chromebooku ve čtení webů z mobilu</translation> <translation id="32939749466444286">Kontejner systému Linux se nespustil. Zkuste to znovu.</translation> <translation id="3294437725009624529">Host</translation> <translation id="329838636886466101">Opravit</translation> @@ -2527,7 +2526,7 @@ <translation id="4880520557730313061">Automatická oprava</translation> <translation id="4880827082731008257">Hledat v historii</translation> <translation id="4881695831933465202">Otevřít</translation> -<translation id="4882312758060467256">Má přístup k této síti</translation> +<translation id="4882312758060467256">Má přístup k tomuto webu</translation> <translation id="4882473678324857464">Přejít do záložek</translation> <translation id="4882831918239250449">Nastavte, jak se má vaše historie procházení používat k personalizaci Vyhledávání, reklam a dalších služeb</translation> <translation id="4883178195103750615">Exportovat záložky do souboru HTML...</translation> @@ -4955,7 +4954,6 @@ <translation id="8557930019681227453">Manifest</translation> <translation id="8559694214572302298">Dekodér obrázků</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Pokračovat ve čtení</translation> <translation id="8565650234829130278">Došlo k pokusu o převod aplikace na nižší verzi.</translation> <translation id="8569002732135253578">Tiskne se dokument <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">Žádné cíle nebyly nalezeny</translation> @@ -5106,7 +5104,7 @@ <translation id="8775404590947523323">Úpravy se ukládají automaticky.<ph name="BREAKS" />Chcete-li zachovat kopii původního obrázku, zrušte zaškrtnutí políčka Přepsat originál.</translation> <translation id="8777628254805677039">heslo uživatele root</translation> <translation id="8780443667474968681">Hlasové vyhledávání bylo vypnuto.</translation> -<translation id="878068003854005405">Začněte tím, že umístíte prst na snímač.</translation> +<translation id="878068003854005405">Začněte tím, že položíte prst na snímač.</translation> <translation id="878069093594050299">Tento certifikát byl ověřen pro následující použití:</translation> <translation id="8781980678064919987">Při zavření víka vypnout</translation> <translation id="8782565991310229362">Spouštění aplikací pro režim veřejného terminálu bylo zrušeno.</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb index 2cfd9b3..d9fe8f4e 100644 --- a/chrome/app/resources/generated_resources_da.xtb +++ b/chrome/app/resources/generated_resources_da.xtb
@@ -1108,7 +1108,7 @@ <translation id="2660779039299703961">Hændelse</translation> <translation id="266079277508604648">Der kan ikke oprettes forbindelse til printeren. Tjek, at printeren er tændt og tilsluttet din Chromebook via Wi-Fi eller USB.</translation> <translation id="2661146741306740526">16 x 9</translation> -<translation id="2662876636500006917">Chromes netbutik</translation> +<translation id="2662876636500006917">Chrome Webshop</translation> <translation id="2663302507110284145">Sprog</translation> <translation id="2665394472441560184">Tilføj et nyt ord</translation> <translation id="2665717534925640469">Denne side vises nu i fuld skærm og har deaktiveret din musemarkør.</translation> @@ -1511,7 +1511,6 @@ <translation id="3285322247471302225">Ny &fane</translation> <translation id="3288047731229977326">Udvidelser, der kører i udviklertilstand, kan skade din computer. Hvis du ikke er udvikler, skal du deaktivere udvidelserne, der kører i udviklertilstand, af hensyn til sikkerheden.</translation> <translation id="3289856944988573801">Du kan søge efter opdateringer via Ethernet eller Wi-Fi.</translation> -<translation id="3292421191230118801">Genoptag visning af websites fra din mobilenhed på din Chromebook</translation> <translation id="32939749466444286">Linux-containeren startede ikke. Prøv igen.</translation> <translation id="3294437725009624529">Gæst</translation> <translation id="329838636886466101">Reparer</translation> @@ -2537,7 +2536,7 @@ <translation id="48838266408104654">&Jobliste</translation> <translation id="4883898390143004266">Hjælp apps med at finde placeringer. Brug Googles placeringstjeneste til at forbedre placeringer i apps. Google kan med jævne mellemrum indsamle placeringsdata og bruge oplysningerne anonymt til at gøre placeringen mere nøjagtig og forbedre placeringsbaserede tjenester. <ph name="BEGIN_LINK1" />Få flere oplysninger<ph name="END_LINK1" /></translation> <translation id="4884740091792292473"><ph name="BEGIN_PARAGRAPH1" />Sikkerhedskopiér til Google Drev. Du kan til enhver tid nemt gendanne dine data eller skifte til en anden enhed. Din backup omfatter appdata.<ph name="END_PARAGRAPH1" /> - <ph name="BEGIN_PARAGRAPH2" />Appdata kan være alle former for data, som en app har gemt (baseret på udviklerens indstillinger). Det kan bl.a. være potentielt følsomme data som f.eks. kontaktpersoner, beskeder og billeder.<ph name="END_PARAGRAPH2" /> + <ph name="BEGIN_PARAGRAPH2" />Appdata kan være alle former for data, som en app har gemt (baseret på udviklerens indstillinger). Det kan bl.a. være potentielt følsomme data som f.eks. kontakter, beskeder og billeder.<ph name="END_PARAGRAPH2" /> <ph name="BEGIN_PARAGRAPH3" />Sikkerhedskopierede data tæller ikke med i din kvote for Drev-lagerplads.<ph name="END_PARAGRAPH3" /> <ph name="BEGIN_PARAGRAPH4" />Du kan deaktivere denne tjeneste i Indstillinger.<ph name="END_PARAGRAPH4" /></translation> <translation id="4884987973312178454">6x</translation> @@ -4066,7 +4065,7 @@ <translation id="7186088072322679094">Behold på værktøjslinjen</translation> <translation id="7187428571767585875">Registreringsposter, der skal fjernes eller ændres:</translation> <translation id="7189234443051076392">Sørg for, at der er nok ledig plads på din enhed</translation> -<translation id="7189965711416741966">Fingeraftryk er tilføjet.</translation> +<translation id="7189965711416741966">Fingeraftrykket er tilføjet.</translation> <translation id="7191159667348037">Ukendt printer (USB)</translation> <translation id="7191454237977785534">Gem fil som</translation> <translation id="7193374945610105795">Der er ikke gemt nogen adgangskoder til <ph name="ORIGIN" /></translation> @@ -4959,7 +4958,6 @@ <translation id="8557930019681227453">Manifest</translation> <translation id="8559694214572302298">Værktøj til afkodning af billeder</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Læs videre</translation> <translation id="8565650234829130278">Forsøgte at nedgradere appen.</translation> <translation id="8569002732135253578"><ph name="DOCUMENT_NAME" /> udskrives nu</translation> <translation id="8569682776816196752">Der blev ikke fundet nogen destinationer</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb index b944099..a5dbfba 100644 --- a/chrome/app/resources/generated_resources_de.xtb +++ b/chrome/app/resources/generated_resources_de.xtb
@@ -1509,7 +1509,6 @@ <translation id="3285322247471302225">Neuer &Tab</translation> <translation id="3288047731229977326">Erweiterungen im Entwicklermodus können auf Ihrem Computer Schaden anrichten. Wenn Sie kein Entwickler sind, sollten Sie diese Erweiterungen im Entwicklermodus deaktivieren, um sicher zu sein.</translation> <translation id="3289856944988573801">Verwenden Sie Ethernet oder WLAN zur Suche nach Updates.</translation> -<translation id="3292421191230118801">Auf Mobilgeräten geöffnete Websites weiter auf meinem Chromebook ansehen</translation> <translation id="32939749466444286">Der Linux-Container konnte nicht gestartet werden. Bitte versuchen Sie es noch einmal.</translation> <translation id="3294437725009624529">Gast</translation> <translation id="329838636886466101">Reparieren</translation> @@ -4958,7 +4957,6 @@ <translation id="8557930019681227453">Manifest</translation> <translation id="8559694214572302298">Bild-Decodierer</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Weiterlesen</translation> <translation id="8565650234829130278">Sie haben versucht, ein Downgrade der App auszuführen.</translation> <translation id="8569002732135253578"><ph name="DOCUMENT_NAME" /> wird gedruckt</translation> <translation id="8569682776816196752">Keine Ziele gefunden</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb index 738f3e04..66ae681b 100644 --- a/chrome/app/resources/generated_resources_el.xtb +++ b/chrome/app/resources/generated_resources_el.xtb
@@ -1513,7 +1513,6 @@ <translation id="3285322247471302225">Νέα &Καρτέλα</translation> <translation id="3288047731229977326">Οι επεκτάσεις που εκτελούνται σε λειτουργία προγραμματιστή μπορούν να βλάψουν τον υπολογιστή σας. Εάν δεν είστε προγραμματιστής, θα πρέπει να απενεργοποιήσετε αυτές τις επεκτάσεις που εκτελούνται σε λειτουργία προγραμματιστή για να διατηρήσετε την ασφάλειά σας.</translation> <translation id="3289856944988573801">Για να ελέγξετε για ενημερώσεις, χρησιμοποιήστε δίκτυο Ethernet ή Wi-Fi.</translation> -<translation id="3292421191230118801">Συνέχιση προβολής ιστοτόπων από κινητό στο Chromebook</translation> <translation id="32939749466444286">Το κοντέινερ Linux δεν εκκινήθηκε. Δοκιμάστε ξανά.</translation> <translation id="3294437725009624529">Επισκέπτης</translation> <translation id="329838636886466101">Επισκευή</translation> @@ -4962,7 +4961,6 @@ <translation id="8557930019681227453">Μανιφέστο</translation> <translation id="8559694214572302298">Εργαλείο αποκωδικοποίησης εικόνων</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Συνέχεια ανάγνωσης</translation> <translation id="8565650234829130278">Έγινε προσπάθεια υποβάθμισης της εφαρμογής.</translation> <translation id="8569002732135253578">Αυτήν τη στιγμή γίνεται εκτύπωση του εγγράφου <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">Δεν βρέθηκαν προορισμοί</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb index 512ee9e..cbced50 100644 --- a/chrome/app/resources/generated_resources_en-GB.xtb +++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -1522,7 +1522,6 @@ <translation id="3285322247471302225">New &Tab</translation> <translation id="3288047731229977326">Extensions running in developer mode can harm your computer. If you're not a developer, you should disable these extensions running in developer mode to stay safe.</translation> <translation id="3289856944988573801">To check for updates, please use Ethernet or Wi-Fi.</translation> -<translation id="3292421191230118801">Resume viewing sites from mobile on your Chromebook</translation> <translation id="32939749466444286">The Linux container didn't start. Please try again.</translation> <translation id="3294437725009624529">Guest</translation> <translation id="329703603001918157">Can’t edit shortcut</translation> @@ -5006,7 +5005,6 @@ <translation id="8557930019681227453">Manifest</translation> <translation id="8559694214572302298">Image Decoder</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Continue reading</translation> <translation id="8565650234829130278">Attempted to downgrade app.</translation> <translation id="8569002732135253578">Now printing <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">No destinations found</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb index ed4fff999..f733131 100644 --- a/chrome/app/resources/generated_resources_es-419.xtb +++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -75,7 +75,7 @@ <translation id="1114202307280046356">Diamante</translation> <translation id="1114335938027186412">La computadora contiene un dispositivo de seguridad del Módulo de plataforma segura (TPM) que se usa para implementar varias funciones clave de seguridad en el Sistema operativo Chrome. Para obtener más información, visita el Centro de ayuda de Chromebook: https://support.google.com/chromebook/?p=tpm.</translation> <translation id="1114525161406758033">Suspender cuando se cierre la tapa</translation> -<translation id="1115324527092594775">Configura "Mejor juntos"</translation> +<translation id="1115324527092594775">Configura Better Together</translation> <translation id="1116694919640316211">Acerca de</translation> <translation id="1116779635164066733">La extensión "<ph name="NAME" />" administra esta configuración.</translation> <translation id="111844081046043029">¿Estás seguro de que deseas abandonar esta página?</translation> @@ -1510,7 +1510,6 @@ <translation id="3285322247471302225">Nueva pes&taña en</translation> <translation id="3288047731229977326">Las extensiones que se ejecutan en modo de programador pueden dañar tu computadora. Si no eres programador, debes inhabilitar las extensiones que se ejecutan en modo de programador para mantenerte protegido.</translation> <translation id="3289856944988573801">Para comprobar si hay actualizaciones, utiliza una conexión Ethernet o Wi-Fi.</translation> -<translation id="3292421191230118801">Mira en la Chromebook los sitios web que tengas en dispositivos móviles</translation> <translation id="32939749466444286">No se inició el contenedor de Linux. Vuelve a intentarlo.</translation> <translation id="3294437725009624529">Invitado</translation> <translation id="329838636886466101">Reparar</translation> @@ -4959,7 +4958,6 @@ <translation id="8557930019681227453">Manifiesto</translation> <translation id="8559694214572302298">Decodificador de imágenes</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Seguir leyendo</translation> <translation id="8565650234829130278">Se ha intentado instalar una versión anterior de la aplicación.</translation> <translation id="8569002732135253578">Se está imprimiendo <ph name="DOCUMENT_NAME" /> ahora</translation> <translation id="8569682776816196752">No se encontró ningún destino.</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb index c711e56..a0392c20 100644 --- a/chrome/app/resources/generated_resources_es.xtb +++ b/chrome/app/resources/generated_resources_es.xtb
@@ -67,7 +67,7 @@ <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="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> +<translation id="1103523840287552314">Traducir siempre del <ph name="LANGUAGE" /></translation> <translation id="1108600514891325577">&Detener</translation> <translation id="1110155001042129815">Esperar</translation> <translation id="1112420131909513020">La pestaña en segundo plano está usando el Bluetooth</translation> @@ -1513,7 +1513,6 @@ <translation id="3285322247471302225">Nueva &pestaña</translation> <translation id="3288047731229977326">Las extensiones que se ejecutan en modo de desarrollador pueden causar daños en el ordenador. Si no eres desarrollador, debes inhabilitar esas extensiones para mantener protegido tu ordenador.</translation> <translation id="3289856944988573801">Para comprobar si hay actualizaciones, utiliza una conexión Ethernet o Wi-Fi.</translation> -<translation id="3292421191230118801">Sigue leyendo en tu Chromebook los sitios web que tengas en el móvil</translation> <translation id="32939749466444286">El contenedor de Linux no se ha iniciado. Inténtalo de nuevo.</translation> <translation id="3294437725009624529">Invitado</translation> <translation id="329838636886466101">Reparar</translation> @@ -1961,7 +1960,7 @@ <translation id="3936390757709632190">&Abrir audio en una pestaña nueva</translation> <translation id="3936925983113350642">La contraseña que selecciones será necesaria para restaurar este certificado más adelante. Guárdala en un lugar seguro.</translation> <translation id="3937640725563832867">Nombre alternativo del emisor del certificado</translation> -<translation id="3937734102568271121">Traducir siempre el <ph name="LANGUAGE" /></translation> +<translation id="3937734102568271121">Traducir siempre del <ph name="LANGUAGE" /></translation> <translation id="3940233957883229251">Habilitar repetición automática</translation> <translation id="3941357410013254652">ID de canal</translation> <translation id="3941565636838060942">Para ocultar el acceso a este programa, debes desinstalarlo utilizando la función <ph name="CONTROL_PANEL_APPLET_NAME" /> del Panel de control. @@ -2052,7 +2051,7 @@ <translation id="4077917118009885966">Los anuncios están bloqueados en este sitio web</translation> <translation id="4079799245038595838">Se ha enviado una notificación a tu teléfono. Sigue las indicaciones para confirmar que eres tú.</translation> <translation id="4081242589061676262">No se ha podido enviar el archivo.</translation> -<translation id="4084682180776658562">Marcador</translation> +<translation id="4084682180776658562">Añadir a marcadores</translation> <translation id="4084835346725913160">Cerrar <ph name="TAB_NAME" /></translation> <translation id="4085298594534903246">Se ha bloqueado JavaScript en esta página.</translation> <translation id="4087089424473531098">Se ha creado la extensión: @@ -2470,7 +2469,7 @@ <translation id="4801956050125744859">Conservar las dos versiones</translation> <translation id="4804818685124855865">Desvincular</translation> <translation id="4807098396393229769">Titular de la tarjeta</translation> -<translation id="4808667324955055115">Ventanas emergentes bloqueadas</translation> +<translation id="4808667324955055115">Pop-ups bloqueados</translation> <translation id="480990236307250886">Abrir página de inicio</translation> <translation id="4812632551187706935">No se ha podido iniciar la conexión</translation> <translation id="4813136279048157860">Mis imágenes</translation> @@ -4956,7 +4955,6 @@ <translation id="8557930019681227453">Archivo de manifiesto</translation> <translation id="8559694214572302298">Decodificador de imágenes</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Seguir leyendo</translation> <translation id="8565650234829130278">Se ha intentado instalar una versión anterior de la aplicación.</translation> <translation id="8569002732135253578">Imprimiendo <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">No se ha encontrado ningún destino.</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb index 4f9376d..73fc37e 100644 --- a/chrome/app/resources/generated_resources_et.xtb +++ b/chrome/app/resources/generated_resources_et.xtb
@@ -247,6 +247,7 @@ <translation id="1358741672408003399">Õigekiri ja grammatika</translation> <translation id="1361164813881551742">Käsitsi lisamine</translation> <translation id="1361655923249334273">Kasutamata</translation> +<translation id="1361872463926621533">Esita käivitamisel heli</translation> <translation id="1363028406613469049">Rada</translation> <translation id="1367951781824006909">Vali fail</translation> <translation id="1368265273904755308">Teata probleemist</translation> @@ -570,6 +571,7 @@ <translation id="1817310072033858383">Funktsiooni Smart Lock seadistamine seadme <ph name="DEVICE_TYPE" /> jaoks</translation> <translation id="1817871734039893258">Microsofti failitaaste</translation> <translation id="1818007989243628752">Kustuta kasutaja <ph name="USERNAME" /> parool</translation> +<translation id="1818913467757368489">Logi üleslaadimine on pooleli.</translation> <translation id="1819721979226826163">Puudutage valikuid Rakenduse märguanded > Google Play teenused.</translation> <translation id="1826516787628120939">Kontrollimine</translation> <translation id="1828378091493947763">Seda pistikprogrammi selles seadmes ei toetata</translation> @@ -618,11 +620,13 @@ <translation id="1890674179660343635"><span>ID: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">Ava täisekraanil</translation> <translation id="189358972401248634">Teised keeled</translation> +<translation id="1894591787927543791">Salvestage kaart Google Pay kasutamiseks</translation> <translation id="1895658205118569222">Sulgemine</translation> <translation id="1895934970388272448">Protsessi lõpetamiseks peate kinnitama registreerimise oma printeris. Vaadake kohe.</translation> <translation id="1897762215429052132">Võrguühenduse, keele, klaviatuuripaigutuse seadistamine …</translation> <translation id="1901303067676059328">Vali &kõik</translation> <translation id="1902576642799138955">Kehtivusperiood</translation> +<translation id="1904518222538904133">Üht kaartidest saab kasutada ainult selles seadmes</translation> <translation id="1905375423839394163">Chromebooki seadme nimi</translation> <translation id="1905710495812624430">Katsete maksimaalne arv on ületatud.</translation> <translation id="1909880997794698664">Kas soovite kindlasti jätta seadme jäädavalt kioskirežiimile?</translation> @@ -659,6 +663,7 @@ <translation id="1962969542251276847">Lukusta ekraan</translation> <translation id="1963227389609234879">Eemalda kõik</translation> <translation id="1965624977906726414">Pole erilubasid.</translation> +<translation id="1969654639948595766">WebRTC tekstilogid (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">Videorežiim aktiveeriti</translation> <translation id="197288927597451399">Jäta alles</translation> <translation id="1974043046396539880">CRL-i jaotuspunktid</translation> @@ -802,6 +807,7 @@ <translation id="2190069059097339078">WiFi mandaadi hankija</translation> <translation id="219008588003277019">Omakliendi moodul: <ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(tühi)</translation> +<translation id="2191223688506386601">Veel üks asi</translation> <translation id="2192505247865591433">Allikas:</translation> <translation id="2193365732679659387">Usaldusväärsuse seaded</translation> <translation id="2195729137168608510">Meilikaitse</translation> @@ -1025,6 +1031,7 @@ <translation id="2534460670861217804">Turvaline HTTP-puhverserver</translation> <translation id="253557089021624350">Säilitamise loend</translation> <translation id="2538361623464451692">Sünkroonimine on keelatud</translation> +<translation id="2539876824180063438">Liigutage veidi oma nimetissõrme, et lisada sõrmejälje eri osad.</translation> <translation id="2541002089857695151">Kas optimeerida täisekraanil ülekandmiseks?</translation> <translation id="2542049655219295786">Google'i tabel</translation> <translation id="2544853746127077729">Võrk lükkas autentimissertifikaadi tagasi</translation> @@ -1258,7 +1265,9 @@ <translation id="287286579981869940">Lisa <ph name="PROVIDER_NAME" />...</translation> <translation id="2874343608108773609">Selleks et hankida paroolid kõikidesse oma seadmetesse, logige Chrome'i sisse.</translation> <translation id="2875698561019555027">(Chrome'i vealehed)</translation> +<translation id="2876336351874743617">2. sõrm</translation> <translation id="288042212351694283">Juurdepääs teie Universal 2nd Factori seadmetele</translation> +<translation id="2881076733170862447">Laiendusel klõpsamisel</translation> <translation id="2881966438216424900">Viimati kasutatud:</translation> <translation id="2882943222317434580">Teenus <ph name="IDS_SHORT_PRODUCT_NAME" /> taaskäivitatakse ja lähtestatakse hetke pärast</translation> <translation id="2885378588091291677">Tegumihaldur</translation> @@ -1444,6 +1453,7 @@ <translation id="3154429428035006212">Üle ühe kuu võrguühenduseta</translation> <translation id="3156531245809797194">Chrome'i kasutamiseks logige sisse</translation> <translation id="3157931365184549694">Taasta</translation> +<translation id="3158033540161634471">Sõrmejälje seadistamine</translation> <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> @@ -1513,9 +1523,10 @@ <translation id="3285322247471302225">Uus &vaheleht</translation> <translation id="3288047731229977326">Arendaja režiimis töötavad laiendused võivad teie arvutit kahjustada. Kui te pole arendaja, peaksite turvalisuse säilitamiseks nende laienduste käitamise arendaja režiimis keelama.</translation> <translation id="3289856944988573801">Kasutage värskenduste otsimiseks Etherneti või WiFi-ühendust.</translation> -<translation id="3292421191230118801">Jätkake Chromebookis mobiilseadmes avatud saitide vaatamist</translation> <translation id="32939749466444286">Linuxi konteiner ei käivitunud. Proovige uuesti.</translation> <translation id="3294437725009624529">Külaline</translation> +<translation id="329703603001918157">Otseteed ei saa muuta</translation> +<translation id="3297951628821704004">Eemalda konto sellest seadmest</translation> <translation id="329838636886466101">Paranda</translation> <translation id="3298789223962368867">Sisestati vale URL.</translation> <translation id="32991397311664836">Seadmed:</translation> @@ -1682,6 +1693,7 @@ <translation id="3534879087479077042">Kes on valvatav kasutaja?</translation> <translation id="3538066758857505094">Viga Linuxi desinstallimisel. Proovige uuesti.</translation> <translation id="354060433403403521">Vahelduvvooluadapter</translation> +<translation id="354068948465830244">Laiendus võib lugeda ja muuta saidiandmeid</translation> <translation id="3541661933757219855">Peitmiseks vajutage klahve Ctrl + Alt + / või paoklahvi Esc</translation> <translation id="3543393733900874979">Värskendamine ebaõnnestus (viga: <ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">X9.62 ECDSA allkiri SHA-512-ga</translation> @@ -1727,6 +1739,7 @@ <translation id="3606712892509067288">Eemalda teenusest Better Together</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">Kasutaja pildi eelvaade</translation> +<translation id="3609446736023031597">Hankige Play poe rakenduste kohta värskeimaid uudiseid ja soovitusi</translation> <translation id="3609785682760573515">Sünkroonimine ...</translation> <translation id="3609895557594655134">Lisa Androidi VPN-i …</translation> <translation id="361106536627977100">Flashi andmed</translation> @@ -1759,6 +1772,7 @@ <translation id="3645372836428131288">Liigutage veidi sõrme, et sõrmejälje teine osa jäädvustada</translation> <translation id="3648348069317717750">Tuvastati <ph name="USB_DEVICE_NAME" /></translation> <translation id="3649138363871392317">Foto jäädvustati</translation> +<translation id="3650845953328929506">Logi üleslaadimine on ootel.</translation> <translation id="3650952250015018111">Andke rakendusele „<ph name="APP_NAME" />” juurdepääs:</translation> <translation id="3651488188562686558">WiFi-ühenduse katkestamine</translation> <translation id="3652817283076144888">Lähtestamine</translation> @@ -1910,6 +1924,7 @@ <translation id="3856800405688283469">Ajavööndi valimine</translation> <translation id="3857228364945137633">Proovige funktsiooni Smart Lock, et avada oma seade <ph name="DEVICE_TYPE" /> paroolita, kui teie telefon on läheduses.</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation> +<translation id="3857807444929313943">Tõstke sõrm andurilt ja seejärel puudutage uuesti</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: sünkroonimine on peatatud</translation> <translation id="3860381078714302691">Tere tulemast teenusesse Hangouts Meet!</translation> <translation id="3861241522664181545">Leht on peatatud.</translation> @@ -1928,6 +1943,7 @@ <translation id="3873315167136380065">Selle sisselülitamiseks <ph name="BEGIN_LINK" />lähtestage sünkroonimine<ph name="END_LINK" />, et eemaldada oma sünkroonimisparool</translation> <translation id="3878840326289104869">Jälgitava kasutaja loomine</translation> <translation id="3879748587602334249">Allalaadimishaldur</translation> +<translation id="3885455691202481064">Puudutage andurit nimetissõrmega. Andur asub Chromebooki vasakus ülanurgas.</translation> <translation id="3888550877729210209">Märkmete tegemine rakendusega <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3892414795099177503">Lisa OpenVPN/L2TP …</translation> <translation id="3893536212201235195">Juurdepääsetavuse seadete lugemine ja muutmine</translation> @@ -1980,6 +1996,7 @@ <translation id="3950820424414687140">Sisselogimine</translation> <translation id="3954354850384043518">Pooleli</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertsi)</translation> +<translation id="3954953195017194676">Teil pole ühtegi hiljuti jäädvustatud WebRTC sündmuselogi.</translation> <translation id="3955193568934677022">Luba saitidel esitada kaitstud sisu (soovitatav)</translation> <translation id="3956702100721821638">Google Playga ei õnnestunud ühendada</translation> <translation id="3958088479270651626">Järjehoidjate ja seadete importimine</translation> @@ -2233,6 +2250,7 @@ <translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation> <translation id="4408599188496843485">A&bi</translation> <translation id="4409697491990005945">Veerised</translation> +<translation id="4410545552906060960">Kasutage seadme avamiseks parooli asemel numbrit (PIN-kood). Hiljem PIN-koodi seadistamiseks avage jaotis Seaded.</translation> <translation id="4411578466613447185">Koodi allkirjastaja</translation> <translation id="4412698727486357573">Abikeskus</translation> <translation id="44141919652824029">Kas lubate rakendusel „<ph name="APP_NAME" />” hankida ühendatud USB-seadmete loendi?</translation> @@ -2324,8 +2342,10 @@ <translation id="4555769855065597957">Vari</translation> <translation id="4556110439722119938">Teie järjehoidjad, ajalugu, paroolid ja muud seaded sünkroonitakse teie Google'i kontoga, et saaksite neid kasutada kõigis oma seadmetes</translation> <translation id="4558426062282641716">Automaatse käivitamise loa taotlus</translation> +<translation id="4558491878126948419">Võimaldab teil hankida seadme <ph name="DEVICE_TYPE" /> nõuandeid ja Google'i toodetega seotud uudiseid ning saata tagasisidet. Võite tellimuse igal ajal tühistada.</translation> <translation id="4559617833001311418">Saidil on juurdepääs teie liikumis- või valgusanduritele.</translation> <translation id="4562155214028662640">Lisa sõrmejälg</translation> +<translation id="4563880231729913339">3. sõrm</translation> <translation id="4565377596337484307">Peida parool</translation> <translation id="4567772783389002344">Lisa sõna</translation> <translation id="4568213207643490790">Kahjuks ei ole Google'i kontod selles seadmes lubatud.</translation> @@ -2400,6 +2420,7 @@ <translation id="4681930562518940301">Ava &algkujutis uuel vahelehel</translation> <translation id="4682551433947286597">Taustapildid kuvatakse sisselogimisekraanil.</translation> <translation id="4684427112815847243">Sünkrooni kõik</translation> +<translation id="4688036121858134881">Kohaliku logi ID: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4689235506267737042">Demoeelistuste valimine</translation> <translation id="4689421377817139245">Sünkroonige see järjehoidja oma iPhone'iga</translation> <translation id="4690091457710545971"><Inteli WiFi püsivara lõi neli faili: csr.lst, fh_regs.lst, radio_reg.lst, monitor.lst.sysmon. Esimesed kolm on binaarfailid, mis sisaldavad registritõmmiseid, ja Intel kinnitab, et need ei hõlma isiklikke andmeid ega seadme tuvastamist võimaldavat teavet. Viimane fail on Inteli püsivara käivitusjälg, kust on eemaldatud kõik isiklikud ja seadme andmed, ent fail on siin kuvamiseks liiga suur. Need failid loodi seadmes hiljuti esinenud WiFi probleemide tõttu ning neid jagatakse Inteliga, et hõlbustada probleemide veaotsingut.></translation> @@ -2530,7 +2551,7 @@ <translation id="4880520557730313061">Automaatparandus</translation> <translation id="4880827082731008257">Otsi ajaloost</translation> <translation id="4881695831933465202">Ava</translation> -<translation id="4882312758060467256">Laiendil on juurdepääs sellele saidile</translation> +<translation id="4882312758060467256">Laiendusel on juurdepääs sellele saidile</translation> <translation id="4882473678324857464">Fookus järjehoidjatele</translation> <translation id="4882831918239250449">Juhtige, kuidas teie sirvimisajalugu kasutatakse otsingu, reklaamide ja muu isikupärastamiseks</translation> <translation id="4883178195103750615">Järjehoidjate eksportimine HTML-faili ...</translation> @@ -2584,6 +2605,7 @@ <translation id="4945444280533270988">Smart Lock on sisse lülitatud</translation> <translation id="4953689047182316270">Juurdepääsetavuse sündmustele vastamine</translation> <translation id="4953808748584563296">Oranž vaikeavatar</translation> +<translation id="4955710816792587366">Valige PIN-kood</translation> <translation id="4955814292505481804">Aastane</translation> <translation id="4957949153200969297">Lubage ainult funktsioonid, mis on seotud teenuse <ph name="IDS_SHORT_PRODUCT_NAME" /> sünkroonimisega</translation> <translation id="4959262764292427323">Paroolid salvestatakse teie Google'i kontole, et saaksite neid kasutada mis tahes seadmes</translation> @@ -2649,6 +2671,7 @@ <translation id="5050042263972837708">Grupi nimi</translation> <translation id="5052499409147950210">Saidi muutmine</translation> <translation id="5053604404986157245">Juhuslikult loodud TPM-i parool pole saadaval. See on pärast Powerwashi tavapärane.</translation> +<translation id="5057110919553308744">Laiendusel klõpsamisel</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{Kaust sisaldab järjehoidjat. Kas soovite kindlasti selle kustutada?}other{Kaust sisaldab # järjehoidjat. Kas soovite kindlasti selle kustutada?}}</translation> <translation id="5061708541166515394">Kontrast</translation> <translation id="5062930723426326933">Sisselogimine ebaõnnestus. Looge ühendus Internetiga ja proovige uuesti.</translation> @@ -2824,6 +2847,7 @@ <translation id="5315873049536339193">Identiteet</translation> <translation id="5316716239522500219">Kuvarite peegeldamine</translation> <translation id="5317780077021120954">Salvesta</translation> +<translation id="5318819489018851358">Jaga Linuxiga</translation> <translation id="5319359161174645648">Google soovitab Chrome'i</translation> <translation id="5319566035256672173">See seade ei saa enam tarkvaravärskendusi. Kaaluge üleminekut uuemale versioonile.</translation> <translation id="532247166573571973">Serveriga ei pruugi ühendust saada. Proovige hiljem uuesti.</translation> @@ -3164,6 +3188,7 @@ <translation id="5804241973901381774">Load</translation> <translation id="580571955903695899">Järjesta pealkirja alusel uuesti</translation> <translation id="5807290661599647102">Seadista ekraanilukk</translation> +<translation id="5811750797187914944">Valmis</translation> <translation id="5814126672212206791">Ühenduse tüüp</translation> <translation id="5815645614496570556">X.400 aadress</translation> <translation id="5816434091619127343">Nõutud printeri muudatuste korral ei saaks printerit kasutada.</translation> @@ -3201,6 +3226,7 @@ <translation id="5855773610748894548">Vabandust! Turvamooduli viga.</translation> <translation id="5856721540245522153">Silumisfunktsioonide lubamine</translation> <translation id="5857090052475505287">Uus kaust</translation> +<translation id="5858490737742085133">Terminal</translation> <translation id="585979798156957858">Väline metaklahv</translation> <translation id="5860033963881614850">Väljas</translation> <translation id="5860209693144823476">Vahekaart 3</translation> @@ -3223,6 +3249,7 @@ <translation id="5882919346125742463">Teadaolevad võrgud</translation> <translation id="5884474295213649357">See vaheleht on ühendatud USB-seadmega.</translation> <translation id="5885324376209859881">Meediaseadete haldamine ...</translation> +<translation id="5886009770935151472">1. sõrm</translation> <translation id="5889282057229379085">Vahe CA-de maksimaalne arv: <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">Taaskäivitamine</translation> <translation id="5895187275912066135">Väljastamiskuupäev</translation> @@ -3307,6 +3334,7 @@ <translation id="6025215716629925253">Virna jälg</translation> <translation id="6026047032548434446">Kas soovite rakenduse installida?</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – USB-seade on ühendatud</translation> +<translation id="6028117231645531007">Lisa sõrmejälg</translation> <translation id="6029027682598229313">Linuxi installimine lõpetati.</translation> <translation id="6029587122245504742">Kõige aeglasem</translation> <translation id="6032912588568283682">Failisüsteem</translation> @@ -3321,6 +3349,7 @@ <translation id="6042308850641462728">Rohkem</translation> <translation id="6043317578411397101">Rakendus <ph name="APP_NAME" /> jagab Chrome'i vahelehte vahelehega <ph name="TAB_NAME" />.</translation> <translation id="6044805581023976844">Rakendus <ph name="APP_NAME" /> jagab Chrome'i vahelehte ja heli vahelehega <ph name="TAB_NAME" />.</translation> +<translation id="6047938872139769630">PIN-kood võimaldab seadme avada siis, kui olete välja logitud</translation> <translation id="6049004884579590341">Täisekraanilt väljumiseks vajutage pikalt klahvi |<ph name="ACCELERATOR" />|</translation> <translation id="6049065490165456785">Foto sisemisest kaamerast</translation> <translation id="6051354611314852653">Vabandust! Süsteemil ei õnnestunud saada sellele seadmele API juurdepääsu.</translation> @@ -3343,6 +3372,7 @@ <translation id="6075907793831890935">Vaheta andmeid seadmega <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Lisa see ekraanipilt</translation> <translation id="6077131872140550515">Eemalda eelistatud võrkude hulgast</translation> +<translation id="6077189836672154517">Nõuanded ja värskendused seadmes <ph name="DEVICE_TYPE" /></translation> <translation id="6078323886959318429">Otsetee lisamine</translation> <translation id="6078752646384677957">Kontrollige mikrofoni ja helitasemeid.</translation> <translation id="6080515710685820702">Kas kasutate jagatud arvutit? Proovige avada inkognito aken.</translation> @@ -3392,6 +3422,7 @@ <translation id="6144938890088808325">Aidake meil Chromebooke täiustada</translation> <translation id="6146563240635539929">Videod</translation> <translation id="6147020289383635445">Prindi eelvaade nurjus.</translation> +<translation id="6148052338549899048">Sobilikke seadmeid ei ole. <ph name="LINK_BEGIN" />Vaadake lisateavet.<ph name="LINK_END" /></translation> <translation id="614940544461990577">Proovige järgmist.</translation> <translation id="6150853954427645995">Kui soovite salvestada faili võrguühenduseta kasutamiseks, minge uuesti veebi, paremklõpsake failil ja tehke valik <ph name="OFFLINE_CHECKBOX_NAME" />.</translation> <translation id="6151323131516309312">Vajutage <ph name="SEARCH_KEY" />, et otsida <ph name="SITE_NAME" />-st</translation> @@ -3411,6 +3442,7 @@ <translation id="6169040057125497443">Kontrollige mikrofoni.</translation> <translation id="6169666352732958425">Töölauda ei saa üle kanda.</translation> <translation id="6171948306033499786">Peata printimine</translation> +<translation id="6173623053897475761">Sisestage PIN-kood uuesti</translation> <translation id="6175314957787328458">Microsofti domeeni GUID</translation> <translation id="6176043333338857209">Bluetooth lülitatakse ajutiselt sisse, et teie turvavõtmega suhelda</translation> <translation id="6178664161104547336">Sertifikaadi valimine</translation> @@ -3600,11 +3632,13 @@ <translation id="6456394469623773452">Hea</translation> <translation id="6456631036739229488">Smart Locki telefoni muudeti. Funktsiooni Smart Lock värskendamiseks sisestage oma parool. Järgmisel korral avab teie seadme <ph name="DEVICE_TYPE" /> telefon. Funktsiooni Smart Lock saate välja lülitada menüüs Seaded.</translation> <translation id="645705751491738698">Jätka JavaScripti blokeerimist</translation> +<translation id="6458701200018867744">Üleslaadimine nurjus (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Kasuta otsimiseks valikut</translation> <translation id="6459799433792303855">Aktiivne aken teisaldati teisele ekraanile.</translation> <translation id="6460601847208524483">Otsi järgmine</translation> <translation id="6463795194797719782">&Muuda</translation> <translation id="6466988389784393586">&Ava kõik järjehoidjad</translation> +<translation id="6467304607960172345">Optimeeri täisekraanrežiimis videoid</translation> <translation id="6468485451923838994">Fondid</translation> <translation id="6472207088655375767">Ühekordne parool</translation> <translation id="6472893788822429178">Kuva nupp Avaleht</translation> @@ -3780,6 +3814,7 @@ <translation id="6725206449694821596">Interneti prindiprotokoll (IPP)</translation> <translation id="6727005317916125192">Eelmine paan</translation> <translation id="6732801395666424405">Sertifikaate ei laaditud</translation> +<translation id="6732900235521116609">Otseteed ei saa eemaldada</translation> <translation id="6735304988756581115">Kuva küpsisefaile ja muid saidi andmeid...</translation> <translation id="6736045498964449756">Paroolid ei kattu.</translation> <translation id="6736243959894955139">Aadress</translation> @@ -3863,6 +3898,7 @@ <translation id="6860427144121307915">Ava vahekaardil</translation> <translation id="6862635236584086457">Kõik sellesse kausta salvestatud failid varundatakse võrgus automaatselt</translation> <translation id="6865313869410766144">Automaattäitmise vormiandmed</translation> +<translation id="6865708901122695652">WebRTC sündmuselogid (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">Värvitemperatuur</translation> <translation id="6870888490422746447">Valige rakendus, mille kaudu jagada:</translation> <translation id="6871644448911473373">OCSP vastaja: <ph name="LOCATION" /></translation> @@ -3907,6 +3943,7 @@ <translation id="694592694773692225">Ümbersuunamine on sellel lehel blokeeritud.</translation> <translation id="6949306908218145636">Lisa avatud lehed järjehoidjasse ...</translation> <translation id="6950627417367801484">Rakenduste taastamine</translation> +<translation id="6950943362443484797">Installime rakenduse teie eest</translation> <translation id="6951153907720526401">Maksetöötlejad</translation> <translation id="6955446738988643816">Uuri hüpikut</translation> <translation id="6957231940976260713">Teenuse nimi</translation> @@ -3942,6 +3979,7 @@ <translation id="6998711733709403587">Valitud on <ph name="SELCTED_FOLDERS_COUNT" /> kausta</translation> <translation id="6998793565256476099">Registreeri seade videokonverentsi kasutamiseks</translation> <translation id="7000347579424117903">Kaasake Ctrl, Alt või otsinguklahv</translation> +<translation id="700203306553508933">Salvesta kaardid Google Pay kasutamiseks</translation> <translation id="7002055706763150362">Funktsiooni Smart Lock Chromebookile seadistamiseks vajab Google kinnitust, et see olete teie. Alustamiseks sisestage oma parool.</translation> <translation id="7002454948392136538">Valige valvatavale kasutajale haldur.</translation> <translation id="7003339318920871147">Veebiandmebaasid</translation> @@ -3989,6 +4027,7 @@ <translation id="706626672220389329">Viga jagatava üksuse ühendamisel. Määratud jagatav üksus on juba ühendatud.</translation> <translation id="7066944511817949584">Seadmega „<ph name="DEVICE_NAME" />” ei saanud ühendust luua.</translation> <translation id="7067725467529581407">Ära seda kunagi enam näita.</translation> +<translation id="7070484045139057854">Laiendus võib lugeda ja muuta saidiandmeid</translation> <translation id="7072010813301522126">Otsetee nimi</translation> <translation id="707392107419594760">Vali klaviatuur:</translation> <translation id="7075513071073410194">PKCS 1 MD5 koos RSA krüpteerimisega</translation> @@ -4118,6 +4157,7 @@ <translation id="7256710573727326513">Ava vahekaardil</translation> <translation id="725758059478686223">Printimisteenus</translation> <translation id="7257666756905341374">Kopeeritud ja kleebitud andmete lugemine</translation> +<translation id="7258697411818564379">PIN-kood on lisatud</translation> <translation id="7260764918845374269">Turvavõtme nägemiseks peab see olema sidumisrežiimis. Vajutage ja hoidke võtmel olevat nuppu all vähemalt viis sekundit.</translation> <translation id="7262004276116528033">Sisselogimisteenust hostib <ph name="SAML_DOMAIN" /></translation> <translation id="7268365133021434339">Sule vahelehed</translation> @@ -4265,6 +4305,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">Kas unustasite oma vana parooli?</translation> <translation id="7497215489070763236">Serveri CA-sertifikaat</translation> +<translation id="7497981768003291373">Teil pole ühtegi hiljuti jäädvustatud WebRTC tekstilogi.</translation> <translation id="7502658306369382406">IPv6 aadress</translation> <translation id="7503191893372251637">Netscape'i sertifikaadi tüüp</translation> <translation id="7503821294401948377">Brauseri toimingu jaoks ei õnnestunud laadida ikooni <ph name="ICON" />.</translation> @@ -4307,6 +4348,7 @@ <translation id="7564847347806291057">Lõpeta toiming</translation> <translation id="7566118625369982896">Play rakenduse linkide haldamine</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">Asetage sõrm andurile</translation> <translation id="756809126120519699">Chrome'i andmed kustutati</translation> <translation id="7568790562536448087">Värskendamine</translation> <translation id="7571643774869182231">Värskendamiseks pole piisavalt salvestusruumi</translation> @@ -4469,6 +4511,7 @@ <ph name="LINE_BREAK2" /> Valige vähem fotosid.</translation> <translation id="782590969421016895">Kasuta praegusi lehti</translation> +<translation id="7826346148677309647">Play poest leiate oma seadme jaoks rohkem rakendusi.</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" /> @@ -4665,6 +4708,7 @@ <translation id="8059417245945632445">&Seadmete kontrollimine</translation> <translation id="8063235345342641131">Roheline vaikeavatar</translation> <translation id="8064671687106936412">Võti:</translation> +<translation id="8065485338434000013">Teatud kaarte saab kasutada ainult selles seadmes</translation> <translation id="806812017500012252">Järjesta pealkirja alusel uuesti</translation> <translation id="8068253693380742035">Puudutage sisselogimiseks</translation> <translation id="8069615408251337349">Google'i pilvprintimine</translation> @@ -4742,6 +4786,7 @@ <translation id="8191453843330043793">V8 puhverserveri lahendaja</translation> <translation id="8193175696669055101">Seadme mudel</translation> <translation id="8195027750202970175">Maht kettal</translation> +<translation id="8198323535106903877">Installime need <ph name="NUMBER_OF_APPS" /> rakendust teie eest</translation> <translation id="8199300056570174101">Võrk (teenus) ja seadme atribuudid</translation> <translation id="8200772114523450471">Taasta</translation> <translation id="8202160505685531999">Sisestage oma seadme <ph name="DEVICE_TYPE" /> profiili värskendamiseks parool uuesti.</translation> @@ -4865,7 +4910,7 @@ <translation id="8413385045638830869">Esmalt küsi (soovitatav)</translation> <translation id="8418445294933751433">&Kuva vahelehena</translation> <translation id="8419098111404128271">Päringu „<ph name="SEARCH_TEXT" />” otsingutulemused</translation> -<translation id="8419368276599091549">Tere tulemast kasutama <ph name="DEVICE_TYPE" />i!</translation> +<translation id="8419368276599091549">Tere tulemast seadme <ph name="DEVICE_TYPE" /> kasutajaks!</translation> <translation id="8420060421540670057">Kuva Google Docsi failid</translation> <translation id="8424039430705546751">alla</translation> <translation id="8425213833346101688">Muuda</translation> @@ -4962,7 +5007,6 @@ <translation id="8557930019681227453">Manifest</translation> <translation id="8559694214572302298">Pildi dekodeerija</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Jätkake lugemist</translation> <translation id="8565650234829130278">Üritas rakenduse üle viia vanemale versioonile.</translation> <translation id="8569002732135253578">Dokumenti <ph name="DOCUMENT_NAME" /> prinditakse</translation> <translation id="8569682776816196752">Sihtkohti ei leitud</translation> @@ -5075,6 +5119,8 @@ <translation id="8716931980467311658">Kas kustutada seadme <ph name="DEVICE_TYPE" /> kaustast Linuxi failid kõik Linuxi rakendused ja andmed?</translation> <translation id="8719653885894320876">Pistikprogrammi <ph name="PLUGIN_NAME" /> allalaadimine ebaõnnestus</translation> <translation id="8723829621484579639">Inkognito alamraamid: <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">Kui näete seda ikooni, kasutage tuvastamiseks või ostude kinnitamiseks oma sõrmejälge.</translation> +<translation id="8724409975248965964">Sõrmejälg on lisatud</translation> <translation id="8724859055372736596">&Kuva kaustas</translation> <translation id="8725066075913043281">Proovi uuesti</translation> <translation id="8725178340343806893">Lemmikud/järjehoidjad</translation> @@ -5155,6 +5201,7 @@ <translation id="8838770651474809439">Hamburger</translation> <translation id="883911313571074303">Lisa kujutisele märkused</translation> <translation id="8845001906332463065">Otsige abi</translation> +<translation id="8846132060409673887">Arvuti tootja ja mudeli andmete lugemine</translation> <translation id="8846141544112579928">Klaviatuuri otsimine ...</translation> <translation id="8847988622838149491">USB</translation> <translation id="8859057652521303089">Valige keel:</translation> @@ -5368,6 +5415,7 @@ <translation id="9161070040817969420">Alamraamid: <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">Saatke süsteemi andmeid. See seade saadab Google'ile praegu diagnostika- ja kasutusandmeid. Selle seade on jõustanud omanik. Kui lülitasite sisse rohkem veebi- ja rakendustegevusi, salvestatakse see teave teie kontole, et saaksite seda hallata jaotises Minu tegevused. <ph name="BEGIN_LINK1" />Lisateave<ph name="END_LINK1" /></translation> <translation id="916607977885256133">Pilt pildis</translation> +<translation id="9168436347345867845">Teen seda hiljem</translation> <translation id="9169496697824289689">Kuva klaviatuuri otseteed</translation> <translation id="9169931577761441333">Lisa <ph name="APP_NAME" /> avaekraanile</translation> <translation id="9170848237812810038">&Võta tagasi</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb index 797be04..e866e02 100644 --- a/chrome/app/resources/generated_resources_fa.xtb +++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -247,6 +247,7 @@ <translation id="1358741672408003399">املا و گرامر</translation> <translation id="1361164813881551742">افزودن دستی</translation> <translation id="1361655923249334273">استفاده نشده</translation> +<translation id="1361872463926621533">پخش صدا هنگام شروع به کار</translation> <translation id="1363028406613469049">تراک</translation> <translation id="1367951781824006909">انتخاب یک فایل</translation> <translation id="1368265273904755308">گزارش مشکل</translation> @@ -567,6 +568,7 @@ <translation id="1817310072033858383">راهاندازی Smart Lock برای <ph name="DEVICE_TYPE" /></translation> <translation id="1817871734039893258">بازیابی فایل Microsoft</translation> <translation id="1818007989243628752">گذرواژه مربوط به <ph name="USERNAME" /> حذف شود</translation> +<translation id="1818913467757368489">بارگذاری گزارش درحال انجام است.</translation> <translation id="1819721979226826163">روی «اعلانهای برنامه > خدمات Google Play» ضربه بزنید.</translation> <translation id="1826516787628120939">در حال بررسی</translation> <translation id="1828378091493947763">این افزایه در این دستگاه پشتیبانی نمیشود</translation> @@ -615,11 +617,13 @@ <translation id="1890674179660343635"><span>شناسه: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">باز کردن تمام صفحه</translation> <translation id="189358972401248634">زبانهای دیگر</translation> +<translation id="1894591787927543791">ذخیره کارت برای استفاده از Google Pay</translation> <translation id="1895658205118569222">بسته شدن</translation> <translation id="1895934970388272448">برای تکمیل این فرآیند باید ثبت را در چاپگرتان تأیید کنید - اکنون آن را بررسی نمایید.</translation> <translation id="1897762215429052132">راهاندازی اتصال شبکه، زبان، طرحبندی صفحهکلید…</translation> <translation id="1901303067676059328">انتخاب &همه</translation> <translation id="1902576642799138955">مدت اعتبار</translation> +<translation id="1904518222538904133">فقط یکی از کارتها را میتوان در این دستگاه استفاده کرد</translation> <translation id="1905375423839394163">نام دستگاه Chromebook</translation> <translation id="1905710495812624430">به حداکثر تعداد مجاز تلاش رسیدهاید.</translation> <translation id="1909880997794698664">آیا مطمئن هستید که میخواهید این دستگاه را برای همیشه در حالت کیوسک نگه دارید؟</translation> @@ -656,6 +660,7 @@ <translation id="1962969542251276847">صفحه قفل</translation> <translation id="1963227389609234879">حذف همه</translation> <translation id="1965624977906726414">مجوز خاصی ندارد.</translation> +<translation id="1969654639948595766">گزارشهای نوشتاری WebRTC (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">به حالت فیلمبرداری وارد شد</translation> <translation id="197288927597451399">ادامه دادن</translation> <translation id="1974043046396539880">نقاط توزیع CRL</translation> @@ -799,6 +804,7 @@ <translation id="2190069059097339078">گیرنده اعتبارنامههای WiFi</translation> <translation id="219008588003277019">ماژول Native Client: <ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(خالی)</translation> +<translation id="2191223688506386601">آخرین نکته</translation> <translation id="2192505247865591433">از:</translation> <translation id="2193365732679659387">تنظیمات اطمینان</translation> <translation id="2195729137168608510">محافظت از ایمیل</translation> @@ -1022,6 +1028,7 @@ <translation id="2534460670861217804">پروکسی HTTP امن</translation> <translation id="253557089021624350">شمارش استفاده</translation> <translation id="2538361623464451692">همگامسازی غیرفعال شد</translation> +<translation id="2539876824180063438">اندکی انگشت سبابه خود را حرکت دهید تا قسمتهای متفاوت اثرانگشتتان اضافه شود.</translation> <translation id="2541002089857695151">ارسال محتوای تمامصفحه بهینهسازی شود؟</translation> <translation id="2542049655219295786">جدول Google </translation> <translation id="2544853746127077729">گواهینامه راستیآزمایی توسط شبکه رد شد</translation> @@ -1254,7 +1261,9 @@ <translation id="287286579981869940">افزودن <ph name="PROVIDER_NAME" />...</translation> <translation id="2874343608108773609">برای اینکه گذرواژههایتان را در همه دستگاهها دریافت کنید، به سیستم Chrome وارد شوید.</translation> <translation id="2875698561019555027">(صفحههای خطای Chrome)</translation> +<translation id="2876336351874743617">انگشت ۲</translation> <translation id="288042212351694283">دسترسی به دستگاههای Universal 2nd Factor شما</translation> +<translation id="2881076733170862447">وقتی روی افزونه کلیک میکنید</translation> <translation id="2881966438216424900">آخرین دسترسی:</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> راهاندازی مجدد و به صورت لحظهای بازنشانی میشود</translation> <translation id="2885378588091291677">مدیر فعالیتها</translation> @@ -1440,6 +1449,7 @@ <translation id="3154429428035006212">آفلاین برای مدت بیش از یک ماه</translation> <translation id="3156531245809797194">برای استفاده از Chrome، لطفاً به سیستم وارد شوید</translation> <translation id="3157931365184549694">بازیابی</translation> +<translation id="3158033540161634471">ثبت اثرانگشت</translation> <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (پشتیبانگیریشده در سختافزار)</translation> <translation id="316125635462764134">حذف برنامه</translation> <translation id="3161522574479303604">همه زبانها</translation> @@ -1509,9 +1519,10 @@ <translation id="3285322247471302225">&برگه جدید</translation> <translation id="3288047731229977326">افزونههایی که در حالت برنامهنوبس اجرا میشوند میتوانند به رایانه شما آسیب برسانند. اگر برنامهنویس نیستید، باید این برنامههای افزودنی را که در حالت برنامهنویس اجرا میشوند غیرفعال کنید تا ایمن بمانید.</translation> <translation id="3289856944988573801">برای بررسی موارد بهروز لطفاً از کابل شبکه یا Wi-Fi استفاده کنید.</translation> -<translation id="3292421191230118801">ازسرگیری مشاهده سایتها از دستگاه همراه در Chromebook</translation> <translation id="32939749466444286">محتوی Linux شروع نشد. لطفاً دوباره امتحان کنید.</translation> <translation id="3294437725009624529">مهمان</translation> +<translation id="329703603001918157">ویرایش میانبر ممکن نیست</translation> +<translation id="3297951628821704004">برداشتن حساب از این دستگاه</translation> <translation id="329838636886466101">اصلاح</translation> <translation id="3298789223962368867">نشانی وب نامعتبری وارد شده است.</translation> <translation id="32991397311664836">دستگاهها:</translation> @@ -1678,6 +1689,7 @@ <translation id="3534879087479077042">کاربر نظارتشده چیست؟</translation> <translation id="3538066758857505094">هنگام حذف نصب Linux خطایی روی داد. لطفاً دوباره امتحان کنید.</translation> <translation id="354060433403403521">آداپتور AC</translation> +<translation id="354068948465830244">میتواند دادههای سایت را بخواند و تغییر دهد</translation> <translation id="3541661933757219855">Ctrl+Alt+/ یاEscape را برای مخفی کردن تایپ کنید</translation> <translation id="3543393733900874979">بهروزرسانی انجام نشد (خطا: <ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">امضای X9.62 ECDSA با SHA-512</translation> @@ -1723,6 +1735,7 @@ <translation id="3606712892509067288">حذف از Better Together</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">پیشنمایش تصویر کاربر</translation> +<translation id="3609446736023031597">دریافت جدیدترین بهروزرسانیها و توصیهها درباره برنامههای «فروشگاه Play»</translation> <translation id="3609785682760573515">در حال همگامسازی...</translation> <translation id="3609895557594655134">افزودن به Android VPN...</translation> <translation id="361106536627977100">دادههای فلاش</translation> @@ -1755,6 +1768,7 @@ <translation id="3645372836428131288">انگشتتان را کمی حرکت دهید تا بخش دیگری از اثرانگشت ثبت شود.</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> شناسایی شد</translation> <translation id="3649138363871392317">عکس گرفته شد</translation> +<translation id="3650845953328929506">بارگذاری گزارش درانتظار انجام است.</translation> <translation id="3650952250015018111">اجازه به «<ph name="APP_NAME" />» برای دسترسی به:</translation> <translation id="3651488188562686558">قطع اتصال Wi-Fi</translation> <translation id="3652817283076144888">مقداردهی اولیه</translation> @@ -1906,6 +1920,7 @@ <translation id="3856800405688283469">انتخاب منطقه زمانی</translation> <translation id="3857228364945137633">وقتی تلفنتان در اطرافتان است، برای باز کردن قفل <ph name="DEVICE_TYPE" /> بدون استفاده از گذرواژه، Smart Lock را امتحان کنید.</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation> +<translation id="3857807444929313943">بردارید و سپس دوباره لمس کنید</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: همگامسازی موقتاً متوقف شد</translation> <translation id="3860381078714302691">به Hangouts Meet خوش آمدید</translation> <translation id="3861241522664181545">صفحه موقتاً متوقف شد.</translation> @@ -1924,6 +1939,7 @@ <translation id="3873315167136380065">برای روشن کردن این گزینه، <ph name="BEGIN_LINK" />همگامسازی را بازنشانی کنید<ph name="END_LINK" /> تا عبارت عبور همگامسازی حذف شود</translation> <translation id="3878840326289104869">ایجاد کاربر نظارت شده</translation> <translation id="3879748587602334249">مدیریت بارگیری</translation> +<translation id="3885455691202481064">حسگر را با انگشت سبابه خود لمس کنید. حسگر در سمت راست بالای دستگاه Chromebook قرار دارد.</translation> <translation id="3888550877729210209">یادداشتبرداری با <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3892414795099177503">افزودن OpenVPN / L2TP…</translation> <translation id="3893536212201235195">خواندن و تغییر تنظیمات دسترسپذیری شما</translation> @@ -1976,6 +1992,7 @@ <translation id="3950820424414687140">ورود به سیستم</translation> <translation id="3954354850384043518">درحال انجام</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> هرتز)</translation> +<translation id="3954953195017194676">هیچ گزارش وقایع WebRTC که اخیراً ثبت شده باشد ندارید.</translation> <translation id="3955193568934677022">به سایتها اجازه داده شود محتوای محافظتشده پخش کنند (توصیه میشود)</translation> <translation id="3956702100721821638">دسترسی به Google Play موفق نبود</translation> <translation id="3958088479270651626">وارد کردن نشانکها و تنظیمات</translation> @@ -2229,6 +2246,7 @@ <translation id="4405117686468554883">*.jpeg، *.jpg، *.png</translation> <translation id="4408599188496843485">را&هنما</translation> <translation id="4409697491990005945">حاشیهها</translation> +<translation id="4410545552906060960">برای باز کردن قفل دستگاه، بهجای گذرواژه از شماره (پین) استفاده کنید. برای تنظیم پین در فرصتی دیگر، به «تنظیمات» بروید.</translation> <translation id="4411578466613447185">امضا کننده کد</translation> <translation id="4412698727486357573">مرکز راهنمایی</translation> <translation id="44141919652824029">به <ph name="APP_NAME" /> اجازه داده شود تا فهرست دستگاههای USB متصل را دریافت کند؟</translation> @@ -2320,8 +2338,10 @@ <translation id="4555769855065597957">سایه</translation> <translation id="4556110439722119938">نشانکها، سابقه، گذرواژهها و سایر تنظیمات در حساب Google شما همگامسازی میشوند تا بتوانید از آنها در همه دستگاههایتان استفاده کنید.</translation> <translation id="4558426062282641716">مجوز راهاندازی خودکار لازم است</translation> +<translation id="4558491878126948419">نکتهها و بهروزرسانیهای <ph name="DEVICE_TYPE" /> درباره محصولات Google دریافت کنید و بازخوردتان را همرسانی کنید. هر زمان خواستید اشتراک را لغو کنید.</translation> <translation id="4559617833001311418">این سایت به حسگرهای نور یا حرکت دستگاهتان دسترسی دارد.</translation> <translation id="4562155214028662640">افزودن اثر انگشت</translation> +<translation id="4563880231729913339">انگشت ۳</translation> <translation id="4565377596337484307">عدم نمایش گذرواژه</translation> <translation id="4567772783389002344">افزودن واژه</translation> <translation id="4568213207643490790">متأسفیم، حسابهای Google در این دستگاه مجاز نیستند.</translation> @@ -2396,6 +2416,7 @@ <translation id="4681930562518940301">باز کردن &تصویر اصلی در برگه جدید</translation> <translation id="4682551433947286597">تصاویر پسزمینه در صفحه ورود به سیستم نمایان میشوند.</translation> <translation id="4684427112815847243">همگامسازی همه</translation> +<translation id="4688036121858134881">شناسه گزارش محلی: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4689235506267737042">انتخاب تنظیمات برگزیده حالت نمایشی</translation> <translation id="4689421377817139245">این نشانک را در iPhone خود همگامسازی کنید</translation> <translation id="4690091457710545971"><سفتافزار Wi-Fi Intel چهار فایل ایجاد میکند: csr.lst، fh_regs.lst، radio_reg.lst، monitor.lst.sysmon. سه فایل اول فایلهای دودویی حاوی رونوشتهای ثبت هستند و Intel تصریح کرده این فایلها حاوی اطلاعات شخصی یا اطلاعات هویتی دستگاه نیست. فایل آخر ردیابی اجرا از سفتافزار Intel است؛ هرگونه اطلاعات شخصی یا هویتی دستگاه از این فایل حذف شده اما برای نمایش در اینجا بسیار حجیم است. این فایلها جهت رفع مشکلات اخیر Wi-Fi در دستگاهتان ایجاد شده است و با Intel همرسانی خواهد شد تا به عیبیابی این مشکلات کمک کند.></translation> @@ -2580,6 +2601,7 @@ <translation id="4945444280533270988">Smart Lock روشن است</translation> <translation id="4953689047182316270">پاسخ دادن به رویدادهای مربوط به دسترسپذیری</translation> <translation id="4953808748584563296">چهرهنمای پیشفرض نارنجی</translation> +<translation id="4955710816792587366">پین خودتان را انتخاب کنید</translation> <translation id="4955814292505481804">سالانه</translation> <translation id="4957949153200969297">فقط ویژگیهای مربوط به همگامسازی <ph name="IDS_SHORT_PRODUCT_NAME" /> فعال میشود</translation> <translation id="4959262764292427323">گذرواژهها در حساب Google شما ذخیره میشود تا بتوانید در همه دستگاههایتان از آنها استفاده کنید</translation> @@ -2645,6 +2667,7 @@ <translation id="5050042263972837708">نام گروه</translation> <translation id="5052499409147950210">ویرایش سایت</translation> <translation id="5053604404986157245">گذرواژه TPM، که به صورت تصادفی ایجاد میشود، در دسترس نیست. پس از Powerwash این اتفاق عادی است.</translation> +<translation id="5057110919553308744">وقتی روی افزونه کلیک میکنید</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{این پوشه حاوی نشانک است. مطمئنید که میخواهید آن را حذف کنید؟}one{این پوشه حاوی # نشانک است. مطمئنید که میخواهید آن را حذف کنید؟}other{این پوشه حاوی # نشانک است. مطمئنید که میخواهید آن را حذف کنید؟}}</translation> <translation id="5061708541166515394">کنتراست</translation> <translation id="5062930723426326933">ورود به سیستم انجام نشد، لطفاً به اینترنت متصل شوید و دوباره امتحان کنید.</translation> @@ -2820,6 +2843,7 @@ <translation id="5315873049536339193">هویت</translation> <translation id="5316716239522500219">بازتاب مانیتورها</translation> <translation id="5317780077021120954">ذخیره</translation> +<translation id="5318819489018851358">همرسانی با Linux</translation> <translation id="5319359161174645648">Google، Chrome را توصیه میکند</translation> <translation id="5319566035256672173">این دستگاه دیگر آخرین بهروزرسانیهای نرمافزار را دریافت نمیکند. لطفاً برای ارتقا دادن دستگاه اقدام کنید.</translation> <translation id="532247166573571973">ممکن است سرور در دسترس نباشد. بعداً دوباره امتحان کنید.</translation> @@ -3160,6 +3184,7 @@ <translation id="5804241973901381774">مجوزها</translation> <translation id="580571955903695899">ترتیب مجدد براساس عنوان</translation> <translation id="5807290661599647102">تنظیم «قفل صفحه»</translation> +<translation id="5811750797187914944">همه چیز آماده است</translation> <translation id="5814126672212206791">نوع اتصال</translation> <translation id="5815645614496570556">آدرس X.400</translation> <translation id="5816434091619127343">تغییرات درخواستی باعث میشود چاپگر غیرقابل استفاده شود.</translation> @@ -3197,6 +3222,7 @@ <translation id="5855773610748894548">وای، خطای مدول امن.</translation> <translation id="5856721540245522153">فعال کردن ویژگیهای رفع اشکال</translation> <translation id="5857090052475505287">پوشهٔ جدید</translation> +<translation id="5858490737742085133">پایانه</translation> <translation id="585979798156957858">فراداده خارجی</translation> <translation id="5860033963881614850">خاموش</translation> <translation id="5860209693144823476">برگه ۳</translation> @@ -3219,6 +3245,7 @@ <translation id="5882919346125742463">شبکههای شناختهشده</translation> <translation id="5884474295213649357">این برگه به دستگاه USB متصل است.</translation> <translation id="5885324376209859881">مدیریت تنظیمات رسانه...</translation> +<translation id="5886009770935151472">انگشت ۱</translation> <translation id="5889282057229379085">حداکثر تعداد CA های متوسط: <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">راهاندازی مجدد</translation> <translation id="5895187275912066135">تاریخ صدور</translation> @@ -3303,6 +3330,7 @@ <translation id="6025215716629925253">ردیابی پشتهای</translation> <translation id="6026047032548434446">برنامه نصب شود؟</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - دستگاه USB متصل است</translation> +<translation id="6028117231645531007">افزودن اثر انگشت</translation> <translation id="6029027682598229313">نصب Linux کامل شد.</translation> <translation id="6029587122245504742">آهستهترین</translation> <translation id="6032912588568283682">سیستم فایل</translation> @@ -3317,6 +3345,7 @@ <translation id="6042308850641462728">بیشتر</translation> <translation id="6043317578411397101"><ph name="APP_NAME" /> در حال اشتراکگذاری یک برگه Chrome با <ph name="TAB_NAME" /> است.</translation> <translation id="6044805581023976844"><ph name="APP_NAME" /> درحال اشتراکگذاری یک برگه Chrome و صوت با <ph name="TAB_NAME" /> است.</translation> +<translation id="6047938872139769630">میتوانید وقتی از سیستم خارج شدهاید، برای باز کردن قفل دستگاه از پین استفاده کنید</translation> <translation id="6049004884579590341">برای خروج از حالت تمام صفحه، |<ph name="ACCELERATOR" />| را فشار دهید و نگهدارید</translation> <translation id="6049065490165456785">عکس از دوربین داخلی</translation> <translation id="6051354611314852653">متأسفیم! سیستم نتوانست دسترسی API را برای این دستگاه راستیآزمایی کند.</translation> @@ -3339,6 +3368,7 @@ <translation id="6075907793831890935">تبادل داده با دستگاهی به نام <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">اضافه کردن این عکس صفحهنمایش</translation> <translation id="6077131872140550515">برداشتن از شبکههای برگزیده</translation> +<translation id="6077189836672154517">نکتهها و بهروزرسانیها درباره <ph name="DEVICE_TYPE" /></translation> <translation id="6078323886959318429">افزودن میانبر</translation> <translation id="6078752646384677957">لطفاً میکروفون و میزان صدا را بررسی کنید.</translation> <translation id="6080515710685820702">از رایانه مشترکی استفاده میکنید؟ پنجره ناشناس را امتحان کنید.</translation> @@ -3388,6 +3418,7 @@ <translation id="6144938890088808325">در بهبود بخشیدن دستگاههای Chromebook به ما کمک کنید</translation> <translation id="6146563240635539929">ویدیو</translation> <translation id="6147020289383635445">پیشنمایش چاپ کار نمیکند.</translation> +<translation id="6148052338549899048">دستگاه واجد شرایطی وجود ندارد. <ph name="LINK_BEGIN" />بیشتر بدانید.<ph name="LINK_END" /></translation> <translation id="614940544461990577">این موارد را امتحان کنید:</translation> <translation id="6150853954427645995">برای ذخیره این فایل جهت استفاده آفلاین، دوباره انلاین شوید، روی فایل کلیک راست کنید و گزینه <ph name="OFFLINE_CHECKBOX_NAME" /> را انتخاب کنید.</translation> <translation id="6151323131516309312"><ph name="SEARCH_KEY" /> را فشار دهید تا <ph name="SITE_NAME" /> جستجو شود</translation> @@ -3407,6 +3438,7 @@ <translation id="6169040057125497443">لطفاً میکروفون را بررسی کنید.</translation> <translation id="6169666352732958425">ارسال محتوای میز کار امکانپذیر نیست.</translation> <translation id="6171948306033499786">توقف موقت چاپ</translation> +<translation id="6173623053897475761">پین خود را دوباره تایپ کنید</translation> <translation id="6175314957787328458">GUID دامنه Microsoft</translation> <translation id="6176043333338857209">بلوتوث، برای ارتباط با کلید امنیتیتان، موقتاً روشن میشود</translation> <translation id="6178664161104547336">انتخاب گواهی</translation> @@ -3596,11 +3628,13 @@ <translation id="6456394469623773452">عالی</translation> <translation id="6456631036739229488">تلفن Smart Lock تغییر کرد. برای بهروزرسانی Smart Lock، گذرواژهتان را وارد کنید. دفعه بعد، تلفنتان قفل <ph name="DEVICE_TYPE" /> را باز میکند. در «تنظیمات»، Smart Lock را خاموش کنید.</translation> <translation id="645705751491738698">ادامه مسدودکردن جاوا اسکریپت</translation> +<translation id="6458701200018867744">بارگذاری انجام نشد (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">استفاده از انتخاب برای یافتن</translation> <translation id="6459799433792303855">پنجره فعال به نمایشگر دیگری منتقل شد.</translation> <translation id="6460601847208524483">یافتن بعدی</translation> <translation id="6463795194797719782">&ویرایش</translation> <translation id="6466988389784393586">&باز کردن همه نشانکها</translation> +<translation id="6467304607960172345">بهینهسازی ویدیوهای تمامصفحه</translation> <translation id="6468485451923838994">قلمها</translation> <translation id="6472207088655375767">OTP</translation> <translation id="6472893788822429178">نمایش دکمه صفحه اصلی</translation> @@ -3776,6 +3810,7 @@ <translation id="6725206449694821596">پروتکل چاپ اینترنتی (IPP)</translation> <translation id="6727005317916125192">چارچوب قبلی</translation> <translation id="6732801395666424405">گواهیها بارگیری نشدند</translation> +<translation id="6732900235521116609">برداشتن میانبر ممکن نیست</translation> <translation id="6735304988756581115">نمایش کوکیها و دیگر دادههای سایت...</translation> <translation id="6736045498964449756">اوه، گذرواژهها مطابقت ندارند.</translation> <translation id="6736243959894955139">آدرس</translation> @@ -3859,6 +3894,7 @@ <translation id="6860427144121307915">باز کردن در یک برگه</translation> <translation id="6862635236584086457">از همه فایلهای ذخیره شده در این پوشه بهصورت خودکار و آنلاین نسخهٔ پشتیبان تهیه میشود</translation> <translation id="6865313869410766144">تکمیل خودکار دادههای فرم</translation> +<translation id="6865708901122695652">گزارش وقایع WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">دمای رنگ</translation> <translation id="6870888490422746447">انتخاب برنامهای برای اشتراکگذاری در:</translation> <translation id="6871644448911473373">پاسخگوی OCSP: <ph name="LOCATION" /></translation> @@ -3903,6 +3939,7 @@ <translation id="694592694773692225">در این صفحه، هدایت کردن مسدود شده است.</translation> <translation id="6949306908218145636">نشانکگذاری صفحههای باز...</translation> <translation id="6950627417367801484">بازیابی برنامهها</translation> +<translation id="6950943362443484797">آن برنامه را برایتان نصب میکنیم</translation> <translation id="6951153907720526401">کنترلکنندههای پرداخت</translation> <translation id="6955446738988643816">بازرسی پنجره بازشو</translation> <translation id="6957231940976260713">نام سرویس</translation> @@ -3938,6 +3975,7 @@ <translation id="6998711733709403587"><ph name="SELCTED_FOLDERS_COUNT" /> پوشه انتخاب شد</translation> <translation id="6998793565256476099">ثبتنام دستگاه برای برگزاری کنفرانس ویدیویی</translation> <translation id="7000347579424117903">باید شامل Ctrl، Alt یا Search باشد</translation> +<translation id="700203306553508933">ذخیره کارتها برای استفاده از Google Pay</translation> <translation id="7002055706763150362">برای تنظیم «Smart Lock برای Chromebook»، Google باید مطمئن شود این شما هستید—برای شروع به کار، گذرواژهتان را وارد کنید.</translation> <translation id="7002454948392136538">انتخاب مدیر برای این کاربر نظارتشده</translation> <translation id="7003339318920871147">پایگاههای داده وب</translation> @@ -3985,6 +4023,7 @@ <translation id="706626672220389329">هنگام نشاندن دستگاه ذخیرهسازی متصل به شبکه خطایی روی داد. دستگاه ذخیرهسازی مشخصشده قبلاً نشانده شده است.</translation> <translation id="7066944511817949584">اتصاله به "<ph name="DEVICE_NAME" />" ناموفق بود.</translation> <translation id="7067725467529581407">هرگز دوباره نشان داده نشود.</translation> +<translation id="7070484045139057854">میتواند دادههای سایت را بخواند و تغییر دهد</translation> <translation id="7072010813301522126">نام میانبر</translation> <translation id="707392107419594760">صفحهکلید خود را انتخاب کنید:</translation> <translation id="7075513071073410194">PKCS #1 MD5 با رمزگذاری RSA</translation> @@ -4114,6 +4153,7 @@ <translation id="7256710573727326513">باز کردن در برگه</translation> <translation id="725758059478686223">سرویس چاپ</translation> <translation id="7257666756905341374">خواندن دادههایی که کپی و جایگذاری میکنید</translation> +<translation id="7258697411818564379">پین اضافه شد</translation> <translation id="7260764918845374269">برای دیدن کلید امنیتیتان، باید درحالت مرتبطسازی باشید. دکمهٔ روی کلید امنیتی را حداقل ۵ ثانیه فشار دهید و نگهدارید.</translation> <translation id="7262004276116528033">این خدمات ورود به سیستم توسط <ph name="SAML_DOMAIN" /> میزبانی شده است</translation> <translation id="7268365133021434339">بستن برگهها</translation> @@ -4261,6 +4301,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">گذرواژه قدیمیتان را فراموش کردید؟</translation> <translation id="7497215489070763236">گواهینامه مرکز صدور گواهی سرور</translation> +<translation id="7497981768003291373">هیچ گزارش نوشتاری WebRTC که اخیراً ثبت شده باشد ندارید.</translation> <translation id="7502658306369382406">نشانی IPv6</translation> <translation id="7503191893372251637">نوع گواهی Netscape</translation> <translation id="7503821294401948377">بارگیری نماد "<ph name="ICON" />" برای عملکرد مرورگر ممکن نیست.</translation> @@ -4303,6 +4344,7 @@ <translation id="7564847347806291057">پایان دادن به فرایند</translation> <translation id="7566118625369982896">مدیریت پیوندهای برنامه Play</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">انگشتتان را بگذارید</translation> <translation id="756809126120519699">دادههای Chrome پاک شد</translation> <translation id="7568790562536448087">در حال بهروزرسانی</translation> <translation id="7571643774869182231">فضای ذخیرهسازی برای بهروزرسانی کافی نیست</translation> @@ -4464,6 +4506,7 @@ <ph name="LINE_BREAK2" /> عکسهای کمتری انتخاب کنید.</translation> <translation id="782590969421016895">استفاده از صفحات فعلی</translation> +<translation id="7826346148677309647">در «فروشگاه Play» میتوانید برنامههای بیشتری برای دستگاهتان پیدا کنید.</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />ویژگیهای رفع اشکال<ph name="END_H3" /> <ph name="BR" /> میتوانید برای نصب و آزمایش کد سفارشی در دستگاهتان، ویژگیهای رفع اشکال را در دستگاه دارای سیستمعامل Chrome فعال کنید. با این کار میتوانید:<ph name="BR" /> @@ -4661,6 +4704,7 @@ <translation id="8059417245945632445">&بازرسی دستگاهها</translation> <translation id="8063235345342641131">چهرهنمای پیشفرض سبز</translation> <translation id="8064671687106936412">کلید:</translation> +<translation id="8065485338434000013">فقط برخی از کارتهایتان را میتوان در این دستگاه استفاده کرد</translation> <translation id="806812017500012252">ترتیب مجدد براساس عنوان</translation> <translation id="8068253693380742035">برای ورود به سیستم لمس کنید</translation> <translation id="8069615408251337349">Google Cloud Print</translation> @@ -4738,6 +4782,7 @@ <translation id="8191453843330043793">تحلیلگر پراکسی V8</translation> <translation id="8193175696669055101">مدل دستگاه</translation> <translation id="8195027750202970175">اندازه روی دیسک</translation> +<translation id="8198323535106903877"><ph name="NUMBER_OF_APPS" /> برنامه را برایتان نصب میکنیم</translation> <translation id="8199300056570174101">مشخصات دستگاه و شبکه (سرویس)</translation> <translation id="8200772114523450471">ازسرگیری</translation> <translation id="8202160505685531999">لطفاً برای بهروزرسانی نمایه <ph name="DEVICE_TYPE" /> خود، گذرواژهتان را دوباره وارد کنید.</translation> @@ -4957,7 +5002,6 @@ <translation id="8557930019681227453">مانیفست</translation> <translation id="8559694214572302298">کدگشای تصویر</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">ادامه مطلب</translation> <translation id="8565650234829130278">برای پایینتر آوردن نسخه برنامه تلاش کرد.</translation> <translation id="8569002732135253578">درحال چاپ <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">مقصدی یافت نشد</translation> @@ -5070,6 +5114,8 @@ <translation id="8716931980467311658">آیا همه برنامههای Linux و دادههای موجود در پوشه فایلهای Linux این <ph name="DEVICE_TYPE" /> حذف شود؟</translation> <translation id="8719653885894320876"><ph name="PLUGIN_NAME" /> بارگیری نشد</translation> <translation id="8723829621484579639">قابهای فرعی ناشناس برای: <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">وقتی این نماد را میبینید، از اثر انگشتتان برای شناسایی یا تأیید خریدها استفاده کنید.</translation> +<translation id="8724409975248965964">اثر انگشت اضافه شد</translation> <translation id="8724859055372736596">&نمایش در پوشه</translation> <translation id="8725066075913043281">سعی مجدد</translation> <translation id="8725178340343806893">موارد دلخواه/نشانکها</translation> @@ -5150,6 +5196,7 @@ <translation id="8838770651474809439">همبرگر</translation> <translation id="883911313571074303">حاشیهنویسی تصویر</translation> <translation id="8845001906332463065">دریافت راهنمایی</translation> +<translation id="8846132060409673887">خواندن سازنده و مدل این رایانه</translation> <translation id="8846141544112579928">در حال جستجو برای صفحهکلید...</translation> <translation id="8847988622838149491">USB</translation> <translation id="8859057652521303089">انتخاب زبان:</translation> @@ -5363,6 +5410,7 @@ <translation id="9161070040817969420">قابهای فرعی برای: <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">ارسال دادههای سیستم. درحالحاضر این دستگاه دادههای عیبیابی و میزان استفاده دستگاه و برنامه را بهطور خودکار به Google ارسال میکند. این تنظیم توسط مالک اعمال میشود. اگر «فعالیت وب و برنامه» تکمیلی را روشن کرده باشید، این اطلاعات در حسابتان ذخیره خواهد شد تا بتوانید آنها را در «فعالیت من» مدیریت کنید. <ph name="BEGIN_LINK1" />بیشتر بدانید<ph name="END_LINK1" /></translation> <translation id="916607977885256133">تصویر در تصویر</translation> +<translation id="9168436347345867845">بعداً انجام شود</translation> <translation id="9169496697824289689">مشاهده میانبرهای صفحهکلید</translation> <translation id="9169931577761441333"><ph name="APP_NAME" /> را به صفحه اصلی اضافه کنید</translation> <translation id="9170848237812810038">&واگرد</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb index 6e7834d..9655a2b 100644 --- a/chrome/app/resources/generated_resources_fi.xtb +++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -1514,7 +1514,6 @@ <translation id="3285322247471302225">Uusi välileh&ti</translation> <translation id="3288047731229977326">Kehittäjätilassa olevat laajennukset voivat vahingoittaa tietokonettasi. Jos et ole kehittäjä, poista kehittäjätilassa olevat laajennukset käytöstä varmuuden vuoksi.</translation> <translation id="3289856944988573801">Tarkista päivitykset Ethernetin tai Wi-Fin kautta.</translation> -<translation id="3292421191230118801">Jatka mobiililaitteella avattujen sivustojen katselua Chromebookilla</translation> <translation id="32939749466444286">Linux-säilö ei käynnistynyt. Yritä uudelleen.</translation> <translation id="3294437725009624529">Vieras</translation> <translation id="329838636886466101">Korjaa</translation> @@ -4960,7 +4959,6 @@ <translation id="8557930019681227453">Luettelo</translation> <translation id="8559694214572302298">Kuvien dekoodaaja</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Jatka lukemista</translation> <translation id="8565650234829130278">Sovelluksesta on jo asennettu uudempi versio.</translation> <translation id="8569002732135253578"><ph name="DOCUMENT_NAME" /> tulostetaan</translation> <translation id="8569682776816196752">Kohteita ei löytynyt</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb index c5d7ef2..e694af1 100644 --- a/chrome/app/resources/generated_resources_fil.xtb +++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -247,6 +247,7 @@ <translation id="1358741672408003399">Spelling and Grammar</translation> <translation id="1361164813881551742">Idagdag nang Manual</translation> <translation id="1361655923249334273">Hindi nagamit</translation> +<translation id="1361872463926621533">Magpatugtog sa startup</translation> <translation id="1363028406613469049">Track</translation> <translation id="1367951781824006909">Pumili ng isang file</translation> <translation id="1368265273904755308">Mag-ulat ng isyu</translation> @@ -570,6 +571,7 @@ <translation id="1817310072033858383">Mag-set up ng Smart Lock para sa iyong <ph name="DEVICE_TYPE" /></translation> <translation id="1817871734039893258">Microsoft File Recovery</translation> <translation id="1818007989243628752">I-delete ang password para sa <ph name="USERNAME" /></translation> +<translation id="1818913467757368489">I-log ang isinasagawang pag-upload.</translation> <translation id="1819721979226826163">I-tap ang Mga notification ng app > Mga serbisyo ng Google Play.</translation> <translation id="1826516787628120939">Sinusuri</translation> <translation id="1828378091493947763">Hindi sinusuportahan ang plugin na ito para sa device na ito</translation> @@ -618,11 +620,13 @@ <translation id="1890674179660343635"><span>ID: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">Buksan sa buong screen</translation> <translation id="189358972401248634">Iba pang mga wika</translation> +<translation id="1894591787927543791">I-save ang card para magamit ang Google Pay</translation> <translation id="1895658205118569222">Shutdown</translation> <translation id="1895934970388272448">Dapat mong kumpirmahin ang pagpaparehistro sa iyong printer upang tapusin ang prosesong ito - tingnan ito ngayon.</translation> <translation id="1897762215429052132">I-setup ang koneksyon sa network, wika, layout ng keyboard...</translation> <translation id="1901303067676059328">Piliin ang &lahat</translation> <translation id="1902576642799138955">Takdang Petsa ng Pagkakabisa</translation> +<translation id="1904518222538904133">1 sa iyong mga card ang magagamit lang sa device na ito</translation> <translation id="1905375423839394163">Pangalan ng Chromebook device</translation> <translation id="1905710495812624430">Nalampasan na ang maximum na pinapahintulutang bilang ng pagsubok</translation> <translation id="1909880997794698664">Sigurado ka bang gusto mong permanenteng panatilihin sa kiosk mode ang device na ito?</translation> @@ -659,6 +663,7 @@ <translation id="1962969542251276847">Screen ng Lock</translation> <translation id="1963227389609234879">Alisin lahat</translation> <translation id="1965624977906726414">Walang espesyal na pahintulot.</translation> +<translation id="1969654639948595766">Mga log ng text sa WebRTC (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">Nailagay sa video mode</translation> <translation id="197288927597451399">Panatilihin</translation> <translation id="1974043046396539880">Mga Punto ng Pagbabahagi ng CRL</translation> @@ -802,6 +807,7 @@ <translation id="2190069059097339078">Pangkuha ng mga Kredensyal ng WiFi</translation> <translation id="219008588003277019">Module ng Native Client: <ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(walang laman)</translation> +<translation id="2191223688506386601">Isang bagay na lang</translation> <translation id="2192505247865591433">Mula:</translation> <translation id="2193365732679659387">Mga setting ng pagtitiwala</translation> <translation id="2195729137168608510">Proteksyon sa Email</translation> @@ -1025,6 +1031,7 @@ <translation id="2534460670861217804">Secure na HTTP Proxy</translation> <translation id="253557089021624350">Bilang ng keepalive</translation> <translation id="2538361623464451692">Naka-disable ang pag-sync</translation> +<translation id="2539876824180063438">Bahagya mong igalaw ang iyong hintuturo para maidagdag ang lahat ng iba't ibang bahagi ng fingerprint mo.</translation> <translation id="2541002089857695151">I-optimize ang fullscreen na pag-cast?</translation> <translation id="2542049655219295786">Talahanayan ng Google</translation> <translation id="2544853746127077729">Tinanggihan ng network ang certificate sa pagpapatunay</translation> @@ -1258,7 +1265,9 @@ <translation id="287286579981869940">Magdagdag ng <ph name="PROVIDER_NAME" />...</translation> <translation id="2874343608108773609">Upang mailagay ang iyong mga password sa lahat ng device mo, mag-sign in sa Chrome.</translation> <translation id="2875698561019555027">(Mga page ng error sa Chrome)</translation> +<translation id="2876336351874743617">Daliri 2</translation> <translation id="288042212351694283">Ina-access ang iyong mga Universal 2nd Factor device</translation> +<translation id="2881076733170862447">Kapag Iki-click Mo ang Extension</translation> <translation id="2881966438216424900">Huling na-access:</translation> <translation id="2882943222317434580">Magre-restart at magre-reset ang <ph name="IDS_SHORT_PRODUCT_NAME" /> sa ilang sandali</translation> <translation id="2885378588091291677">Task Manager</translation> @@ -1444,6 +1453,7 @@ <translation id="3154429428035006212">Offline nang mahigit sa isang buwan</translation> <translation id="3156531245809797194">Upang magamit ang Chrome, mag-sign in</translation> <translation id="3157931365184549694">Ipanumbalik</translation> +<translation id="3158033540161634471">I-set up ang iyong fingerprint</translation> <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> @@ -1513,9 +1523,10 @@ <translation id="3285322247471302225">Bagong &Tab</translation> <translation id="3288047731229977326">Ang mga extension na tumatakbo sa developer mode ay maaaring makapinsala sa iyong computer. Kung hindi ka isang developer, dapat mong i-disable ang mga extension na tumatakbo sa developer mode upang manatiling ligtas.</translation> <translation id="3289856944988573801">Upang tumingin ng mga update, mangyaring gumamit ng Ethernet o Wi-Fi.</translation> -<translation id="3292421191230118801">Ipagpatuloy sa iyong Chromebook ang pagtingin sa mga site mula sa mobile</translation> <translation id="32939749466444286">Hindi nalunsad ang Linux container. Pakisubukang muli.</translation> <translation id="3294437725009624529">Bisita</translation> +<translation id="329703603001918157">Hindi ma-edit ang shortcut</translation> +<translation id="3297951628821704004">Alisin ang account sa device na ito</translation> <translation id="329838636886466101">Ayusin</translation> <translation id="3298789223962368867">Di-wastong URL ang ipinasok.</translation> <translation id="32991397311664836">Mga Device:</translation> @@ -1682,6 +1693,7 @@ <translation id="3534879087479077042">Ano ang isang pinangangasiwaang user?</translation> <translation id="3538066758857505094">Nagkaroon ng error sa pag-uninstall sa Linux. Pakisubukang muli.</translation> <translation id="354060433403403521">AC adapter</translation> +<translation id="354068948465830244">Mari-read at mababago nito ang data ng site</translation> <translation id="3541661933757219855">I-type ang Ctrl+Alt+/ o Escape upang itago</translation> <translation id="3543393733900874979">Nabigo ang pag-update (error: <ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">X9.62 ECDSA Signature na may SHA-512</translation> @@ -1727,6 +1739,7 @@ <translation id="3606712892509067288">Alisin sa Better Together</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">Preview ng larawan ng user</translation> +<translation id="3609446736023031597">Matanggap ang mga pinakabagong update at rekomendasyon sa mga Play Store app</translation> <translation id="3609785682760573515">Nagsi-sync...</translation> <translation id="3609895557594655134">Magdagdag ng Android VPN...</translation> <translation id="361106536627977100">Data sa flash</translation> @@ -1759,6 +1772,7 @@ <translation id="3645372836428131288">Gumalaw nang bahagya para mag-capture ng ibang bahagi ng fingerprint.</translation> <translation id="3648348069317717750">Natukoy ang <ph name="USB_DEVICE_NAME" /></translation> <translation id="3649138363871392317">Na-capture ang larawan</translation> +<translation id="3650845953328929506">Nakabinbin ang pag-upload ng log.</translation> <translation id="3650952250015018111">Payagan ang "<ph name="APP_NAME" />" na ma-access ang:</translation> <translation id="3651488188562686558">Idiskonekta sa Wi-Fi</translation> <translation id="3652817283076144888">Sinisimulan</translation> @@ -1910,6 +1924,7 @@ <translation id="3856800405688283469">Pumili ng timezone</translation> <translation id="3857228364945137633">Subukan ang Smart Lock upang i-unlock ang iyong <ph name="DEVICE_TYPE" /> nang walang password kapag nasa malapit ang telepono mo.</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation> +<translation id="3857807444929313943">Iangat, pagkatapos ay pindutin muli</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: Na-pause ang pag-sync</translation> <translation id="3860381078714302691">Welcome sa Hangouts Meet</translation> <translation id="3861241522664181545">Na-pause ang page.</translation> @@ -1928,6 +1943,7 @@ <translation id="3873315167136380065">Para i-on ito, <ph name="BEGIN_LINK" />i-reset ang pag-sync<ph name="END_LINK" /> para alisin ang iyong passphrase sa pag-sync</translation> <translation id="3878840326289104869">Gumagawa ng pinangangasiwaang user</translation> <translation id="3879748587602334249">Download manager</translation> +<translation id="3885455691202481064">Pindutin ang sensor gamit ang iyong hintuturo. Nasa kaliwang bahagi ito sa itaas ng Chromebook mo.</translation> <translation id="3888550877729210209">Nagtatala gamit ang <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3892414795099177503">Idagdag ang OpenVPN / L2TP...</translation> <translation id="3893536212201235195">Basahin at baguhin ang iyong mga setting ng accessibility</translation> @@ -1980,6 +1996,7 @@ <translation id="3950820424414687140">Mag-sign in</translation> <translation id="3954354850384043518">Kasalukuyang isinasagawa</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz)</translation> +<translation id="3954953195017194676">Wala kang kamakailang nakuhang log ng event ng WebRTC.</translation> <translation id="3955193568934677022">Pahintulutan ang mga site na mag-play ng pinoprotektahang content (inirerekomenda)</translation> <translation id="3956702100721821638">Hindi maabot ang Google Play</translation> <translation id="3958088479270651626">I-import ang mga bookmark at setting</translation> @@ -2233,6 +2250,7 @@ <translation id="4405117686468554883">*.jpeg, *.jpg, at *.png</translation> <translation id="4408599188496843485">T&ulong</translation> <translation id="4409697491990005945">Mga Margin</translation> +<translation id="4410545552906060960">Gumamit ng numero (PIN) sa halip na password para i-unlock ang iyong device. Para maitakda ang PIN mo sa ibang pagkakataon, pumunta sa Mga Setting.</translation> <translation id="4411578466613447185">Code Signer</translation> <translation id="4412698727486357573">Help center</translation> <translation id="44141919652824029">Payagan ang "<ph name="APP_NAME" />" na makuha ang listahan ng iyong mga naka-attach na USB device?</translation> @@ -2324,8 +2342,10 @@ <translation id="4555769855065597957">Shadow</translation> <translation id="4556110439722119938">Masi-sync ang iyong mga bookmark, history, mga password at iba pang mga setting sa iyong Google Account upang magamit mo ang mga ito sa lahat ng iyong device</translation> <translation id="4558426062282641716">Hiniling ang pahintulot sa awtomatikong paglulunsad</translation> +<translation id="4558491878126948419">Makatanggap ng mga tip sa <ph name="DEVICE_TYPE" /> at update tungkol sa mga produkto ng Google at magbahagi ng feedback. Mag-unsubscribe anumang oras.</translation> <translation id="4559617833001311418">Ina-access ng site na ito ang iyong sensor ng paggalaw o liwanag.</translation> <translation id="4562155214028662640">Magdagdag ng Fingerprint</translation> +<translation id="4563880231729913339">Daliri 3</translation> <translation id="4565377596337484307">Itago ang password</translation> <translation id="4567772783389002344">Magdagdag ng salita</translation> <translation id="4568213207643490790">Paumanhin, hindi pinapayagan ang mga Google account sa device na ito.</translation> @@ -2400,6 +2420,7 @@ <translation id="4681930562518940301">Buksan ang or&ihinal na larawan sa bagong tab</translation> <translation id="4682551433947286597">Lumalabas ang mga wallpaper sa Screen sa Pag-sign in.</translation> <translation id="4684427112815847243">I-sync lahat</translation> +<translation id="4688036121858134881">Local log ID: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4689235506267737042">Piliin ang mga kagustuhan mo sa demo</translation> <translation id="4689421377817139245">I-sync ang bookmark na ito sa iyong iPhone</translation> <translation id="4690091457710545971"><Apat na file na ginawa ng Intel Wi-Fi firmware: csr.lst, fh_regs.lst, radio_reg.lst, monitor.lst.sysmon. Ang unang tatlo ay mga binary file na may mga dump sa pagpaparehistro at iginiit ng Intel na walang personal na impormasyon o impormasyong nakakapagpakilala sa device. Ang panghuling file ay isang execution trace mula sa Intel firmware; tinanggalan ito ng anumang personal na impormasyon o impormasyong nakakapagpakilala sa device, ngunit masyado itong malaki para maipakita rito. Nagawa ang mga file na ito bilang tugon sa mga kamakailang naging problema sa Wi-Fi sa iyong device, at ibabahagi ito sa Intel para makatulong sa pag-troubleshoot ng mga problemang ito.></translation> @@ -2584,6 +2605,7 @@ <translation id="4945444280533270988">Naka-on ang Smart Lock</translation> <translation id="4953689047182316270">Tumugon sa Mga Kaganapan ng Pagiging Naa-access</translation> <translation id="4953808748584563296">Default na orange na avatar</translation> +<translation id="4955710816792587366">Piliin ang iyong PIN</translation> <translation id="4955814292505481804">Taunan</translation> <translation id="4957949153200969297">Ang mga feature lang na nauugnay sa <ph name="IDS_SHORT_PRODUCT_NAME" /> Sync ang ie-enable</translation> <translation id="4959262764292427323">Sine-save ang mga password sa iyong Google Account para magamit mo ang mga ito sa anumang device</translation> @@ -2649,6 +2671,7 @@ <translation id="5050042263972837708">Pangalan ng pangkat</translation> <translation id="5052499409147950210">I-edit ang site</translation> <translation id="5053604404986157245">Hindi available ang random na nabuong TPM password. Normal ito pagkatapos ng Powerwash.</translation> +<translation id="5057110919553308744">Kapag iki-click mo ang extension</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{Naglalaman ng bookmark ang folder na ito. Sigurado ka bang gusto mo itong i-delete?}one{Naglalaman ng # bookmark ang folder na ito. Sigurado ka bang gusto mo itong i-delete?}other{Naglalaman ng # na bookmark ang folder na ito. Sigurado ka bang gusto mo itong i-delete?}}</translation> <translation id="5061708541166515394">Contrast</translation> <translation id="5062930723426326933">Nabigo ang pag-sign in, mangyaring kumonekta sa internet at subukan ulit.</translation> @@ -2824,6 +2847,7 @@ <translation id="5315873049536339193">Pagkatao</translation> <translation id="5316716239522500219">I-mirror ang mga monitor</translation> <translation id="5317780077021120954">I-save</translation> +<translation id="5318819489018851358">Ibahagi sa Linux</translation> <translation id="5319359161174645648">Inirerekomenda ng Google ang Chrome</translation> <translation id="5319566035256672173">Hindi na matatanggap ng device na ito ang mga pinakabagong update sa software. Pag-isipang mag-upgrade.</translation> <translation id="532247166573571973">Maaaring hindi makakonekta sa server. Subukang muli sa ibang pagkakataon.</translation> @@ -3164,6 +3188,7 @@ <translation id="5804241973901381774">Mga Pahintulot</translation> <translation id="580571955903695899">Muling Ayusin ayon sa Pamagat</translation> <translation id="5807290661599647102">Magtakda ng Lock ng Screen</translation> +<translation id="5811750797187914944">Handa na ang lahat</translation> <translation id="5814126672212206791">Uri ng koneksyon</translation> <translation id="5815645614496570556">Address na X.400</translation> <translation id="5816434091619127343">Magiging hindi magagamit ang printer dahil sa mga hiniling na pagbabago sa printer.</translation> @@ -3201,6 +3226,7 @@ <translation id="5855773610748894548">Oops, nagkaroon ng error sa secure na module.</translation> <translation id="5856721540245522153">I-enable ang mga feature para sa pagde-debug</translation> <translation id="5857090052475505287">Bagong Folder</translation> +<translation id="5858490737742085133">Terminal</translation> <translation id="585979798156957858">External na Meta</translation> <translation id="5860033963881614850">Naka-off</translation> <translation id="5860209693144823476">Tab 3</translation> @@ -3223,6 +3249,7 @@ <translation id="5882919346125742463">Mga Kilalang Network</translation> <translation id="5884474295213649357">Nakakonekta ang tab na ito sa isang USB device.</translation> <translation id="5885324376209859881">Pamahalaan ang mga setting ng media...</translation> +<translation id="5886009770935151472">Daliri 1</translation> <translation id="5889282057229379085">Maximum na bilang ng intermediate CAs: <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">I-restart</translation> <translation id="5895187275912066135">Ibinigay Noong</translation> @@ -3307,6 +3334,7 @@ <translation id="6025215716629925253">Stack Trace</translation> <translation id="6026047032548434446">I-install ang App?</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - May nakakonektang USB device</translation> +<translation id="6028117231645531007">Magdagdag ng fingerprint</translation> <translation id="6029027682598229313">Tapos nang i-install ang Linux.</translation> <translation id="6029587122245504742">Pinakamabagal</translation> <translation id="6032912588568283682">System ng file</translation> @@ -3321,6 +3349,7 @@ <translation id="6042308850641462728">Higit pa</translation> <translation id="6043317578411397101">Nagbabahagi ang <ph name="APP_NAME" /> ng tab ng Chrome sa <ph name="TAB_NAME" />.</translation> <translation id="6044805581023976844">Nagbabahagi ang <ph name="APP_NAME" /> ng tab ng Chrome at audio sa <ph name="TAB_NAME" />.</translation> +<translation id="6047938872139769630">Maaari kang gumamit ng PIN para i-unlock ang iyong device kapag nag-sign out</translation> <translation id="6049004884579590341">I-press nang matagal ang |<ph name="ACCELERATOR" />| upang lumabas sa full screen</translation> <translation id="6049065490165456785">Larawan mula sa panloob na camera</translation> <translation id="6051354611314852653">Oops! Nabigong pahintulutan ng system ang pag-access sa API para sa device na ito.</translation> @@ -3343,6 +3372,7 @@ <translation id="6075907793831890935">Makipagpalit ng data sa device na pinangalanang <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Isama ang screenshot na ito</translation> <translation id="6077131872140550515">Alisin mula sa mga gustong network</translation> +<translation id="6077189836672154517">Mga tip at update sa <ph name="DEVICE_TYPE" /></translation> <translation id="6078323886959318429">Magdagdag ng shortcut</translation> <translation id="6078752646384677957">Pakisuri ang mga antas ng iyong mikropono at audio.</translation> <translation id="6080515710685820702">Gumagamit ng nakabahaging computer? Subukang magbukas ng incognito window.</translation> @@ -3392,6 +3422,7 @@ <translation id="6144938890088808325">Tulungan kaming pahusayin ang Mga Chromebook</translation> <translation id="6146563240635539929">Mga Video</translation> <translation id="6147020289383635445">Nabigo ang preview ng pag-print.</translation> +<translation id="6148052338549899048">Walang kwalipikadong device. <ph name="LINK_BEGIN" />Matuto pa.<ph name="LINK_END" /></translation> <translation id="614940544461990577">Subukang:</translation> <translation id="6150853954427645995">Upang i-save ang file na ito para sa offline na paggamit, mag-online muli, i-right click ang file at piliin ang opsyong <ph name="OFFLINE_CHECKBOX_NAME" />.</translation> <translation id="6151323131516309312">Pindutin <ph name="SEARCH_KEY" /> upang maghanap <ph name="SITE_NAME" /></translation> @@ -3411,6 +3442,7 @@ <translation id="6169040057125497443">Pakisuri ang iyong mikropono.</translation> <translation id="6169666352732958425">Hindi ma-cast ang desktop.</translation> <translation id="6171948306033499786">I-pause ang pag-print</translation> +<translation id="6173623053897475761">I-type muli ang iyong PIN</translation> <translation id="6175314957787328458">Microsoft Domain GUID</translation> <translation id="6176043333338857209">Pansamantalang io-on ang Bluetooth para makipag-ugnayan sa iyong security key</translation> <translation id="6178664161104547336">Pumili ng certificate</translation> @@ -3600,11 +3632,13 @@ <translation id="6456394469623773452">Maayos</translation> <translation id="6456631036739229488">Pinalitan ang telepono ng Smart Lock. Ilagay ang iyong password upang i-update ang Smart Lock. Sa susunod, ia-unlock ng telepono mo ang iyong <ph name="DEVICE_TYPE" />. I-off ang Smart Lock sa Mga Setting.</translation> <translation id="645705751491738698">Magpatuloy sa pagharang ng JavaScript</translation> +<translation id="6458701200018867744">Hindi na-upload (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Use Selection for Find</translation> <translation id="6459799433792303855">Inilipat ang aktibong window sa ibang display.</translation> <translation id="6460601847208524483">Find Next</translation> <translation id="6463795194797719782">&Mag-edit</translation> <translation id="6466988389784393586">&Buksan Ang Lahat ng Bookmark</translation> +<translation id="6467304607960172345">I-optimize ang mga fullscreen na video</translation> <translation id="6468485451923838994">Mga Font</translation> <translation id="6472207088655375767">OTP</translation> <translation id="6472893788822429178">Ipakita ang button na Home</translation> @@ -3780,6 +3814,7 @@ <translation id="6725206449694821596">Internet Printing Protocol (IPP)</translation> <translation id="6727005317916125192">Nakaraang pane</translation> <translation id="6732801395666424405">Hindi na-load ang mga certificate</translation> +<translation id="6732900235521116609">Hindi maalis ang shortcut</translation> <translation id="6735304988756581115">Magpakita ng cookies at iba pang data ng site...</translation> <translation id="6736045498964449756">Whoops, hindi tumutugma ang mga password!</translation> <translation id="6736243959894955139">Address</translation> @@ -3863,6 +3898,7 @@ <translation id="6860427144121307915">Buksan sa isang Tab</translation> <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="6865708901122695652">Mga log ng event ng WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">Temperatura ng kulay</translation> <translation id="6870888490422746447">Pumili ng app na pagbabahagian:</translation> <translation id="6871644448911473373">OCSP Responder: <ph name="LOCATION" /></translation> @@ -3907,6 +3943,7 @@ <translation id="694592694773692225">Na-block ang pag-redirect sa page na ito.</translation> <translation id="6949306908218145636">I-bookmark ang Mga Nakabukas na Pahina...</translation> <translation id="6950627417367801484">I-restore ang mga app</translation> +<translation id="6950943362443484797">Ii-install namin ang app na iyon para sa iyo</translation> <translation id="6951153907720526401">Mga Tagapangasiwa ng Pagbabayad</translation> <translation id="6955446738988643816">Siyasatin ang Popup</translation> <translation id="6957231940976260713">Pangalan ng serbisyo</translation> @@ -3942,6 +3979,7 @@ <translation id="6998711733709403587"><ph name="SELCTED_FOLDERS_COUNT" /> (na) folder ang napili</translation> <translation id="6998793565256476099">Magpatala ng device para sa pakikipagkumperensya gamit ang video</translation> <translation id="7000347579424117903">Isama ang Ctrl, Alt, o Search</translation> +<translation id="700203306553508933">Mag-save ng mga card para magamit ang Google Pay</translation> <translation id="7002055706763150362">Upang i-set up ang Smart Lock para sa Chromebook, kailangang matiyak ng Google na ikaw ito—i-type ang iyong password upang makapagsimula.</translation> <translation id="7002454948392136538">Piliin ang manager para sa pinangangasiwaang user na ito</translation> <translation id="7003339318920871147">Mga database ng web</translation> @@ -3989,6 +4027,7 @@ <translation id="706626672220389329">Nagka-error sa pag-mount ng share. Naka-mount na ang isinaad na share.</translation> <translation id="7066944511817949584">Nabigong kumonekta sa "<ph name="DEVICE_NAME" />".</translation> <translation id="7067725467529581407">Huwag na itong ipakitang muli.</translation> +<translation id="7070484045139057854">Mari-read at Mababago Nito ang Data ng Site</translation> <translation id="7072010813301522126">Pangalan ng shortcut</translation> <translation id="707392107419594760">Piliin ang iyong keyboard:</translation> <translation id="7075513071073410194">PKCS #1 MD5 na May RSA Encryption</translation> @@ -4118,6 +4157,7 @@ <translation id="7256710573727326513">Buksan sa isang tab</translation> <translation id="725758059478686223">Serbisyo sa Pag-print</translation> <translation id="7257666756905341374">Basahin ang data na iyong kinokopya at pine-paste</translation> +<translation id="7258697411818564379">Naidagdag ang iyong PIN</translation> <translation id="7260764918845374269">Para makita ang iyong security key, kailangang nasa pairing mode ito. Pindutin ang button sa iyong key sa loob ng hindi bababa sa 5 segundo.</translation> <translation id="7262004276116528033">Hino-host ng <ph name="SAML_DOMAIN" /> ang serbisyo sa pag-sign in</translation> <translation id="7268365133021434339">Isara ang Mga Tab</translation> @@ -4265,6 +4305,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">Nakalimutan mo ba ang iyong dating password?</translation> <translation id="7497215489070763236">CA certificate ng server</translation> +<translation id="7497981768003291373">Wala kang kamakailang nakuhang log ng text ng WebRTC.</translation> <translation id="7502658306369382406">IPv6 address</translation> <translation id="7503191893372251637">Uri ng Netscape Certificate</translation> <translation id="7503821294401948377">Maaaring hindi mai-load ang icon na '<ph name="ICON" />' para sa pagkilos ng browser.</translation> @@ -4307,6 +4348,7 @@ <translation id="7564847347806291057">Tapusin ang proseso</translation> <translation id="7566118625369982896">Pamahalaan ang mga link ng app sa Play</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">Itapat ang iyong daliri</translation> <translation id="756809126120519699">Na-clear ang data ng Chrome</translation> <translation id="7568790562536448087">Ina-update</translation> <translation id="7571643774869182231">Hindi sapat ang storage para sa update</translation> @@ -4469,6 +4511,7 @@ <ph name="LINE_BREAK2" /> Subukang pumili ng mas kaunting larawan.</translation> <translation id="782590969421016895">Gamitin ang mga kasalukuyang page</translation> +<translation id="7826346148677309647">Makakakita ka ng higit pang app para sa iyong device sa Play Store.</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />Mga Feature ng Pag-debug<ph name="END_H3" /> <ph name="BR" /> Maaari mong i-enable ang mga feature ng pag-debug sa iyong Chrome OS Device para ma-install at masubukan ang custom na code sa device mo. Magbibigay-daan ito sa iyo na:<ph name="BR" /> @@ -4665,6 +4708,7 @@ <translation id="8059417245945632445">&Inspeksyunin ang mga device</translation> <translation id="8063235345342641131">Default na berdeng avatar</translation> <translation id="8064671687106936412">Key:</translation> +<translation id="8065485338434000013">Ang ilan sa iyong mga card ay magagamit lang sa device na ito</translation> <translation id="806812017500012252">Muling ayusin ayon sa pamagat</translation> <translation id="8068253693380742035">Pindutin upang mag-sign in</translation> <translation id="8069615408251337349">Google Cloud Print</translation> @@ -4742,6 +4786,7 @@ <translation id="8191453843330043793">Panglutas ng Proxy ng V8</translation> <translation id="8193175696669055101">Modelo ng device</translation> <translation id="8195027750202970175">Sukat sa disk</translation> +<translation id="8198323535106903877">Ii-install namin ang <ph name="NUMBER_OF_APPS" /> (na) app iyon para sa iyo</translation> <translation id="8199300056570174101">Mga property ng Network (Serbisyo) at Device</translation> <translation id="8200772114523450471">Resume</translation> <translation id="8202160505685531999">Mangyaring ilagay muli ang iyong password upang i-update ang iyong profile sa <ph name="DEVICE_TYPE" />.</translation> @@ -4962,7 +5007,6 @@ <translation id="8557930019681227453">Manifest</translation> <translation id="8559694214572302298">Pang-decode ng Larawan</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Magpatuloy sa Pagbabasa</translation> <translation id="8565650234829130278">Tinangkang i-downgrade ang app.</translation> <translation id="8569002732135253578">Pini-print ngayon ang <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">Walang nahanap na mga destinasyon</translation> @@ -5075,6 +5119,8 @@ <translation id="8716931980467311658">I-delete sa <ph name="DEVICE_TYPE" /> na ito ang lahat ng Linux application at data sa iyong folder ng mga Linux file?</translation> <translation id="8719653885894320876">Hindi na-download ang <ph name="PLUGIN_NAME" /></translation> <translation id="8723829621484579639">Mga incognito subframe para sa: <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">Kapag nakita mo ang icon na ito, gamitin ang iyong fingerprint para sa pagkakakilanlan o para aprubahan ang mga pagbili.</translation> +<translation id="8724409975248965964">Naidagdag ang fingerprint</translation> <translation id="8724859055372736596">&Ipakita sa Folder</translation> <translation id="8725066075913043281">Muling subukan</translation> <translation id="8725178340343806893">Mga Paborito/Bookmark</translation> @@ -5155,6 +5201,7 @@ <translation id="8838770651474809439">Hamburger</translation> <translation id="883911313571074303">I-annotate ang larawan</translation> <translation id="8845001906332463065">Humingi ng tulong</translation> +<translation id="8846132060409673887">I-read ang manufacturer at modelo ng computer na ito</translation> <translation id="8846141544112579928">Naghahanap ng keyboard...</translation> <translation id="8847988622838149491">USB</translation> <translation id="8859057652521303089">Piliin ang iyong wika:</translation> @@ -5369,6 +5416,7 @@ <translation id="9161070040817969420">Mga subframe para sa: <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">Magpadala ng data ng system. Kasalukuyang awtomatikong nagpapadala sa Google ang device na ito ng diagnostic at data ng paggamit sa device at app. Ang may-ari ang nagpapatupad sa setting na ito. Kung in-on mo ang karagdagang Aktibidad sa Web at App, iso-store ang impormasyong ito sa iyong account para mapamahalaan mo ito sa Aking Aktibidad. <ph name="BEGIN_LINK1" />Matuto Pa<ph name="END_LINK1" /></translation> <translation id="916607977885256133">Picture in Picture</translation> +<translation id="9168436347345867845">Gawin ito sa ibang pagkakataon</translation> <translation id="9169496697824289689">Tingnan ang mga keyboard shortcut</translation> <translation id="9169931577761441333">Idagdag ang <ph name="APP_NAME" /> sa Home screen</translation> <translation id="9170848237812810038">&I-undo</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb index e7bdd61..6cf08d3 100644 --- a/chrome/app/resources/generated_resources_fr.xtb +++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -1513,7 +1513,6 @@ <translation id="3285322247471302225">Nouvel ongle&t</translation> <translation id="3288047731229977326">Les extensions exécutées en mode développeur peuvent nuire à votre ordinateur. Si vous n'êtes pas un développeur, nous vous recommandons de désactiver celles-ci afin d'assurer la sécurité de votre ordinateur.</translation> <translation id="3289856944988573801">Pour rechercher des mises à jour, veuillez utiliser une connexion Ethernet ou Wi-Fi.</translation> -<translation id="3292421191230118801">Poursuivre la visite des sites consultés sur mobile, sur votre Chromebook</translation> <translation id="32939749466444286">Impossible de démarrer le conteneur Linux. Veuillez réessayer.</translation> <translation id="3294437725009624529">Invité</translation> <translation id="329838636886466101">Réparer</translation> @@ -4962,7 +4961,6 @@ <translation id="8557930019681227453">Manifeste</translation> <translation id="8559694214572302298">Décodage d'images</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Poursuivre la lecture</translation> <translation id="8565650234829130278">Tentative de passage à une version antérieure de l'application.</translation> <translation id="8569002732135253578">Impression de "<ph name="DOCUMENT_NAME" />"…</translation> <translation id="8569682776816196752">Aucun emplacement de destination trouvé.</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb index 48c132a..a508eeb 100644 --- a/chrome/app/resources/generated_resources_gu.xtb +++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -1503,7 +1503,6 @@ <translation id="3285322247471302225">નવું &ટૅબ</translation> <translation id="3288047731229977326">વિકાસકર્તા મોડમાં ચાલી રહેલા એક્સટેન્શન્સ તમારા કમ્પ્યુટરને નુકસાન પહોંચાડી શકે છે. જો તમે વિકાસકર્તા નથી, તો તમે સુરક્ષિત રહેવા માટે વિકાસકર્તા મોડમાં ચાલી રહેલા આ એક્સ્ટેન્શન્સને અક્ષમ કરવા જોઈએ.</translation> <translation id="3289856944988573801">અપડેટ્સ તપાસવા માટે, કૃપા કરીને ઇથરનેટ અથવા Wi-Fi નો ઉપયોગ કરો.</translation> -<translation id="3292421191230118801">તમારી Chromebook પર મોબાઇલમાંથી સાઇટ જોવાનું ફરી શરૂ કરો</translation> <translation id="32939749466444286">Linux કન્ટેનર શરૂ થયું નથી. કૃપા કરીને ફરી પ્રયાસ કરો.</translation> <translation id="3294437725009624529">અતિથિ</translation> <translation id="329838636886466101">સુધારો</translation> @@ -4935,7 +4934,6 @@ <translation id="8557930019681227453">સ્પષ્ટ</translation> <translation id="8559694214572302298">છબી ડીકોડર</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">વાંચન ચાલુ રાખો</translation> <translation id="8565650234829130278">એપ્લિકેશનને ડાઉનગ્રેડ કરવાનો પ્રયાસ કર્યો</translation> <translation id="8569002732135253578">હમણાં <ph name="DOCUMENT_NAME" /> છાપી રહ્યાં છીએ</translation> <translation id="8569682776816196752">કોઈ ગંતવ્યો મળ્યાં નથી</translation> @@ -4965,7 +4963,7 @@ <translation id="8620765578342452535">નેટવર્ક કનેક્શન્સ ગોઠવો</translation> <translation id="8624205858755890468">સહાયક તમને સંબંધિત માહિતી, ઍપ અને ક્રિયાઓ બતાવે તે ચાલુ કરે છે.</translation> <translation id="862542460444371744">&એક્સ્ટેન્શન્સ</translation> -<translation id="8626219642120025691">ટાઇમર લગાવ્યું</translation> +<translation id="8626219642120025691">ટાઇમર પૂરું થયું</translation> <translation id="8627151598708688654">સ્રોત પસંદ કરો</translation> <translation id="862727964348362408">સસ્પેન્ડેડ</translation> <translation id="862750493060684461">CSS કેશ</translation> @@ -5262,7 +5260,7 @@ <translation id="9050666287014529139">પાસફ્રેઝ</translation> <translation id="9052208328806230490">તમે એકાઉન્ટ <ph name="EMAIL" /> નો ઉપયોગ કરીને, તમારા પ્રિંટર્સને <ph name="CLOUD_PRINT_NAME" /> સાથે નોંધાવ્યા છે</translation> <translation id="9052404922357793350">બ્લૉક કરવાનું ચાલુ રાખો</translation> -<translation id="9053091947372579468">તમારા ઉપકરણમાં Chrome માટેનું લાઇસન્સ છે, પણ તમારું વપરાશકર્તા નામ વ્યવસ્થા કન્સોલ સાથે સંકળાયેલ નથી. નોંધણી પ્રક્રિયા ચાલુ રાખવા માટે કૃપા કરીને વ્યવસ્થા કન્સોલ એકાઉન્ટ બનાવો. નોંધ: જો તમે નવું વ્યવસ્થા કન્સોલ એકાઉન્ટ બનાવવા માટે તમારા પોતાના ડોમેનની પસંદગી કરશો, સાઇનઅપ પછી તમારે ડોમેનની ચકાસણી પૂરી કરવી પણ જરૂરી છે. https://g.co/ChromeEnterpriseAccount</translation> +<translation id="9053091947372579468">તમારા ઉપકરણમાં Chrome માટેનું લાઇસન્સ છે, પણ તમારું વપરાશકર્તા નામ વ્યવસ્થા કન્સોલ સાથે સંકળાયેલ નથી. નોંધણી પ્રક્રિયા ચાલુ રાખવા માટે કૃપા કરીને વ્યવસ્થા કન્સોલ એકાઉન્ટ બનાવો. નોંધ: જો તમે નવું વ્યવસ્થા કન્સોલ એકાઉન્ટ બનાવવા માટે તમારા પોતાના ડોમેનની પસંદગી કરશો, તો સાઇન અપ પછી તમારે ડોમેનની ચકાસણી પૂરી કરવી પણ જરૂરી છે. https://g.co/ChromeEnterpriseAccount</translation> <translation id="9053893665344928494">મારી પસંદગી યાદ રાખો</translation> <translation id="9055636786322918818">RC4 એન્ક્રિપ્શન લાગુ કરો. આનાથી વિકલ્પનો ઉપયોગ કરવાનું તમારું જોખમ વધે છે, કારણ કે RC4 સાઇફર અસુરક્ષિત હોય છે.</translation> <translation id="9056034633062863292">Chromebox અપડેટ કરી રહ્યાં છે</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb index 72088961..13c3655 100644 --- a/chrome/app/resources/generated_resources_hi.xtb +++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -1513,7 +1513,6 @@ <translation id="3285322247471302225">नया &टैब</translation> <translation id="3288047731229977326">डेवलपर मोड में चलने वाले एक्सटेंशन आपके कंप्यूटर को नुकसान पहुंचा सकते हैं. अगर आप डेवलपर नहीं हैं तो, सुरक्षित रहने के लिए आपको डेवलपर मोड मे चलने वाले इन एक्सटेंशन को बंद कर देना चाहिए.</translation> <translation id="3289856944988573801">अपडेट की जाँच करने के लिए, कृपया Ethernet या वाई-फ़ाई उपयोग करें.</translation> -<translation id="3292421191230118801">अपने Chromebook पर मोबाइल से साइट देखना फिर से शुरू करें</translation> <translation id="32939749466444286">Linux कंटेनर शुरू नहीं हुआ. कृपया फिर से कोशिश करें.</translation> <translation id="3294437725009624529">अतिथि</translation> <translation id="329838636886466101">ठीक करें</translation> @@ -1756,7 +1755,7 @@ <translation id="363903084947548957">इनपुट का अगला तरीका</translation> <translation id="3640214691812501263"><ph name="USER_NAME" /> के लिए "<ph name="EXTENSION_NAME" />" को जोड़ें?</translation> <translation id="3644896802912593514">चौड़ाई</translation> -<translation id="3645372836428131288">फ़िंगरप्रिंट के अलग हिस्से को कैप्चर करने के लिए धीरे से हिलाएं</translation> +<translation id="3645372836428131288">फ़िंगरप्रिंट के अलग हिस्से को कैप्चर करने के लिए उंगली धीरे से हिलाएं</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> का पता चला</translation> <translation id="3649138363871392317">फ़ोटो को कैप्चर किया गया था</translation> <translation id="3650952250015018111">"<ph name="APP_NAME" />" को इन्हें एक्सेस करने की मंज़ूरी दें:</translation> @@ -1779,7 +1778,7 @@ <translation id="3678156199662914018">एक्सटेंशन: <ph name="EXTENSION_NAME" /></translation> <translation id="3681311097828166361">आपके फ़ीडबैक के लिए धन्यवाद. आप अब ऑफ़लाइन हैं और आपकी रिपोर्ट बाद में भेज दी जाएगी.</translation> <translation id="3683023058278427253">हमें आपके डोमेन के लिए एक से अधिक प्रकार के लाइसेंस मिले हैं. कृपया जारी रखने के लिए एक को चुनें.</translation> -<translation id="3683524264665795342"><ph name="APP_NAME" /> स्क्रीन साझाकरण अनुरोध</translation> +<translation id="3683524264665795342"><ph name="APP_NAME" /> स्क्रीन शेयर करने का अनुरोध</translation> <translation id="3685122418104378273">मोबाइल डेटा का उपयोग करते समय, Google डिस्क समन्वयन डिफ़ॉल्ट रूप से अक्षम रहता है.</translation> <translation id="368789413795732264">फ़ाइल में लिखने का प्रयास करते समय कोई गड़बड़ी आई: <ph name="ERROR_TEXT" />.</translation> <translation id="3688507211863392146">आपके द्वारा ऐप्लिकेशन में खोली गईं फ़ाइलों और फ़ोल्डर में लिखें</translation> @@ -2750,7 +2749,7 @@ <translation id="5227808808023563348">पिछला टेक्स्ट ढूंढें</translation> <translation id="5228076606934445476">इस डिवाइस में कुछ गलत है. इस गड़बड़ी को ठीक के लिए आपको डिवाइस को रीबूट करना होगा और फिर से प्रयास करना होगा.</translation> <translation id="5229189185761556138">इनपुट विधियां प्रबंधित करें</translation> -<translation id="5230516054153933099">खिड़की</translation> +<translation id="5230516054153933099">विंडो</translation> <translation id="5233019165164992427">NaCl डीबग पोर्ट</translation> <translation id="5233231016133573565">प्रक्रिया आईडी</translation> <translation id="5233638681132016545">नया टैब</translation> @@ -4960,7 +4959,6 @@ <translation id="8557930019681227453">मेनिफेस्ट</translation> <translation id="8559694214572302298">चित्र डीकोडर</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">पढ़ना जारी रखें</translation> <translation id="8565650234829130278">ऐप्स को डाउनग्रेड करने का प्रयास किया गया.</translation> <translation id="8569002732135253578"><ph name="DOCUMENT_NAME" /> को अब प्रिंट किया जा रहा है</translation> <translation id="8569682776816196752">कोई गंतव्य नहीं मिला</translation> @@ -5288,7 +5286,7 @@ <translation id="9050666287014529139">पासफ़्रेज़</translation> <translation id="9052208328806230490">आपने अपने प्रिंटर को खाता <ph name="EMAIL" /> का उपयोग करके <ph name="CLOUD_PRINT_NAME" /> के साथ पंजीकृत किया है </translation> <translation id="9052404922357793350">ब्लॉक करना जारी रखें</translation> -<translation id="9053091947372579468">आपके डिवाइस में Chrome लाइसेंस शामिल है, लेकिन आपका उपयोगकर्ता नाम Admin console से जुड़ा हुआ नहीं है. नामांकन के साथ आगे बढ़ने के लिए कृपया एक एडमिन कंसोल खाता बनाएं. नोट: अगर आप एक नया एडमिन कंसोल खाता बनाने के लिए अपने डोमेन का इस्तेमाल करना चुनते हैं, तो आपको साइन अप के बाद डोमेन की पुष्टि भी पूरी करनी होगी. https://g.co/ChromeEnterpriseAccount</translation> +<translation id="9053091947372579468">आपके डिवाइस में Chrome लाइसेंस शामिल है, लेकिन आपका उपयोगकर्ता नाम एडमिन कंसोल से जुड़ा हुआ नहीं है. नामांकन के साथ आगे बढ़ने के लिए कृपया एक एडमिन कंसोल खाता बनाएं. नोट: अगर आप एक नया एडमिन कंसोल खाता बनाने के लिए अपने डोमेन का इस्तेमाल करना चुनते हैं, तो आपको साइन अप के बाद डोमेन की पुष्टि भी पूरी करनी होगी. https://g.co/ChromeEnterpriseAccount</translation> <translation id="9053893665344928494">मेरी पसंद याद रखें</translation> <translation id="9055636786322918818">RC4 सुरक्षा लागू करें. इस विकल्प का इस्तेमाल करने से आपका खतरा बढ़ जाता है, क्योंकि RC4 सिफ़र असुरक्षित होते हैं.</translation> <translation id="9056034633062863292">Chromebox अपडेट करना</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb index 7b02bfa3..2c25ae3c 100644 --- a/chrome/app/resources/generated_resources_hr.xtb +++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -75,7 +75,7 @@ <translation id="1114202307280046356">Dijamant</translation> <translation id="1114335938027186412">Vaše računalo sadrži sigurnosni uređaj Trusted Platform Module (TPM) koji se upotrebljava za primjenu mnogih važnih sigurnosnih značajki u OS-u Chrome. Posjetite Chromebookov centar za pomoć da biste saznali više: https://support.google.com/chromebook/?p=tpm</translation> <translation id="1114525161406758033">Prijeđi u mirovanje kada se zatvori poklopac</translation> -<translation id="1115324527092594775">Postavljanje Kombiniranja prednosti</translation> +<translation id="1115324527092594775">Postavljanje značajke Better Together</translation> <translation id="1116694919640316211">O opcijama</translation> <translation id="1116779635164066733">Tom postavkom upravlja proširenje "<ph name="NAME" />".</translation> <translation id="111844081046043029">Jeste li sigurni da želite zatvoriti ovu stranicu?</translation> @@ -247,6 +247,7 @@ <translation id="1358741672408003399">Pravopis i gramatika</translation> <translation id="1361164813881551742">Dodaj ručno</translation> <translation id="1361655923249334273">Nekorišteno</translation> +<translation id="1361872463926621533">Reproduciraj zvuk pri pokretanju</translation> <translation id="1363028406613469049">Zvučni zapis</translation> <translation id="1367951781824006909">Odaberite datoteku</translation> <translation id="1368265273904755308">Prijava problema</translation> @@ -570,6 +571,7 @@ <translation id="1817310072033858383">Postavite Smart Lock za <ph name="DEVICE_TYPE" /></translation> <translation id="1817871734039893258">Microsoftovo obnavljanje datoteke</translation> <translation id="1818007989243628752">Izbrišite zaporku za <ph name="USERNAME" /></translation> +<translation id="1818913467757368489">Prijenos zapisnika u tijeku.</translation> <translation id="1819721979226826163">Dodirnite Obavijesti aplikacije > Google Play usluge.</translation> <translation id="1826516787628120939">Provjera</translation> <translation id="1828378091493947763">Ovaj dodatak nije podržan na ovom uređaju</translation> @@ -618,11 +620,13 @@ <translation id="1890674179660343635"><span>ID: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">Otvori cijeli zaslon</translation> <translation id="189358972401248634">Drugi jezici</translation> +<translation id="1894591787927543791">Spremite karticu da biste upotrebljavali Google Pay</translation> <translation id="1895658205118569222">Isključivanje</translation> <translation id="1895934970388272448">Morate potvrditi registraciju na pisaču da biste dovršili proces. Provjerite ga odmah.</translation> <translation id="1897762215429052132">Postavljanje mrežne veze, jezika, rasporeda tipkovnice...</translation> <translation id="1901303067676059328">Odaberi &sve</translation> <translation id="1902576642799138955">Rok valjanosti</translation> +<translation id="1904518222538904133">Jedna vaša kartica može se upotrebljavati samo na ovom uređaju</translation> <translation id="1905375423839394163">Naziv Chromebook uređaja</translation> <translation id="1905710495812624430">Premašen je maksimalan dopušteni broj pokušaja.</translation> <translation id="1909880997794698664">Jeste li sigurni da želite trajno zadržati ovaj uređaj u načinu kioska?</translation> @@ -659,6 +663,7 @@ <translation id="1962969542251276847">Zaključaj zaslon</translation> <translation id="1963227389609234879">Ukloni sve</translation> <translation id="1965624977906726414">Nema posebne dozvole.</translation> +<translation id="1969654639948595766">WebRTC tekstni zapisnici (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">Ušli ste u način videozapisa</translation> <translation id="197288927597451399">Zadrži</translation> <translation id="1974043046396539880">CRL distribucijske točke</translation> @@ -802,6 +807,7 @@ <translation id="2190069059097339078">Dohvaćanje vjerodajnica za Wi-Fi</translation> <translation id="219008588003277019">Modul Native Client: <ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(prazno)</translation> +<translation id="2191223688506386601">Još samo jedna stvar</translation> <translation id="2192505247865591433">Šalje:</translation> <translation id="2193365732679659387">Postavke pouzdanosti</translation> <translation id="2195729137168608510">Zaštita e-pošte</translation> @@ -1025,6 +1031,7 @@ <translation id="2534460670861217804">Sigurni HTTP proxy</translation> <translation id="253557089021624350">Broj aktivnosti održavanja</translation> <translation id="2538361623464451692">Onemogućena je sinkronizacija</translation> +<translation id="2539876824180063438">Lagano pomičite kažiprst da biste dodali različite dijelove otiska prsta.</translation> <translation id="2541002089857695151">Želite li optimizirati emitiranje na cijelom zaslonu?</translation> <translation id="2542049655219295786">Googleova tablica</translation> <translation id="2544853746127077729">Mreža je odbila certifikat za autentifikaciju</translation> @@ -1258,7 +1265,9 @@ <translation id="287286579981869940">Dodaj davatelja usluge <ph name="PROVIDER_NAME" />...</translation> <translation id="2874343608108773609">Da biste imali svoje zaporke na svim svojim uređajima, prijavite se u Chrome.</translation> <translation id="2875698561019555027">(Chromeove stranice pogrešaka)</translation> +<translation id="2876336351874743617">Drugi prst</translation> <translation id="288042212351694283">Pristupite svojim Universal 2nd Factor uređajima</translation> +<translation id="2881076733170862447">Kada kliknete proširenje</translation> <translation id="2881966438216424900">Posljednji pristup:</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> će se odmah ponovo pokrenuti i vratiti na zadano</translation> <translation id="2885378588091291677">Upravitelj zadataka</translation> @@ -1444,6 +1453,7 @@ <translation id="3154429428035006212">Izvan mreže više od mjesec dana</translation> <translation id="3156531245809797194">Da biste upotrebljavali Chrome, prijavite se</translation> <translation id="3157931365184549694">Vrati</translation> +<translation id="3158033540161634471">Postavljanje otiska prsta</translation> <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> @@ -1513,9 +1523,10 @@ <translation id="3285322247471302225">Nova &kartica</translation> <translation id="3288047731229977326">Proširenja pokrenuta u načinu rada razvojnog programera mogu naštetiti vašem računalu. Ako niste razvojni programer, trebali biste onemogućiti proširenja koja su pokrenuta u načinu rada razvojnog programera radi svoje zaštite.</translation> <translation id="3289856944988573801">Da biste provjerili ima li ažuriranja, upotrijebite Ethernet ili Wi-Fi.</translation> -<translation id="3292421191230118801">Nastavite pregledavati web-lokacije s mobilnog uređaja na Chromebooku</translation> <translation id="32939749466444286">Linuxov spremnik nije se pokrenuo. Pokušajte ponovo.</translation> <translation id="3294437725009624529">Gost</translation> +<translation id="329703603001918157">Uređivanje prečaca nije moguće</translation> +<translation id="3297951628821704004">Ukloni račun s uređaja</translation> <translation id="329838636886466101">Popravak</translation> <translation id="3298789223962368867">Unesen je nevažeći URL.</translation> <translation id="32991397311664836">Uređaji:</translation> @@ -1682,6 +1693,7 @@ <translation id="3534879087479077042">Što je nadzirani korisnik?</translation> <translation id="3538066758857505094">Došlo je do pogreške prilikom deinstaliranja Linuxa. Pokušajte ponovo.</translation> <translation id="354060433403403521">Punjač</translation> +<translation id="354068948465830244">Može čitati i mijenjati podatke web-lokacije</translation> <translation id="3541661933757219855">Pritisnite Ctrl+Alt+/ ili Escape za skrivanje</translation> <translation id="3543393733900874979">Neuspješno ažuriranje (pogreška: <ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">X9.62 ECDSA potpis uz SHA-512</translation> @@ -1727,6 +1739,7 @@ <translation id="3606712892509067288">Uklonite iz značajke Better Together</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">Pregled korisnikove slike</translation> +<translation id="3609446736023031597">Šalji najnovija ažuriranja i preporuke o aplikacijama u Trgovini Play</translation> <translation id="3609785682760573515">Sinkronizacija...</translation> <translation id="3609895557594655134">Dodaj Android VPN...</translation> <translation id="361106536627977100">Podaci Flasha</translation> @@ -1759,6 +1772,7 @@ <translation id="3645372836428131288">Lagano pomaknite prst da biste snimili različite dijelove otiska prsta.</translation> <translation id="3648348069317717750">Otkriven je uređaj <ph name="USB_DEVICE_NAME" /></translation> <translation id="3649138363871392317">Fotografija je snimljena</translation> +<translation id="3650845953328929506">Prijenos zapisnika na čekanju.</translation> <translation id="3650952250015018111">Dopusti aplikaciji "<ph name="APP_NAME" />" da pristupi:</translation> <translation id="3651488188562686558">prekinuti vezu s Wi-Fi-jem</translation> <translation id="3652817283076144888">Inicijalizacija</translation> @@ -1910,6 +1924,7 @@ <translation id="3856800405688283469">Odaberite vremensku zonu</translation> <translation id="3857228364945137633">Isprobajte Smart Lock i otključavajte svoj <ph name="DEVICE_TYPE" /> bez zaporke kada je vaš telefon u blizini.</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation> +<translation id="3857807444929313943">Podignite i ponovo dodirnite</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: sinkronizacija je pauzirana</translation> <translation id="3860381078714302691">Dobro došli u Hangouts Meet</translation> <translation id="3861241522664181545">Stranica je pauzirana.</translation> @@ -1928,6 +1943,7 @@ <translation id="3873315167136380065">Da biste uključili tu postavku, <ph name="BEGIN_LINK" />poništite sinkronizaciju<ph name="END_LINK" /> radi uklanjanja vaše šifre za sinkronizaciju</translation> <translation id="3878840326289104869">Izrada nadziranog korisnika</translation> <translation id="3879748587602334249">Upravitelj preuzimanja</translation> +<translation id="3885455691202481064">Kažiprstom dodirnite senzor u gornjem lijevom kutu Chromebooka.</translation> <translation id="3888550877729210209">Izrada bilježaka pomoću aplikacije <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3892414795099177503">Dodaj OpenVPN/L2TP...</translation> <translation id="3893536212201235195">čitati i mijenjati vaše postavke pristupačnosti</translation> @@ -1980,6 +1996,7 @@ <translation id="3950820424414687140">Prijava</translation> <translation id="3954354850384043518">U tijeku</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> herca)</translation> +<translation id="3954953195017194676">Nemate nedavno snimljenih WebRTC zapisnika događaja.</translation> <translation id="3955193568934677022">Web-lokacije mogu reproducirati zaštićeni sadržaj (preporučeno)</translation> <translation id="3956702100721821638">Nije moguće pristupiti Google Playu</translation> <translation id="3958088479270651626">Uvoz oznaka i postavki</translation> @@ -2233,6 +2250,7 @@ <translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation> <translation id="4408599188496843485">P&omoć</translation> <translation id="4409697491990005945">Margine</translation> +<translation id="4410545552906060960">Umjesto zaporkom, uređaj možete otključavati brojem (PIN-om). PIN možete postaviti kasnije u Postavkama.</translation> <translation id="4411578466613447185">Potpisnik koda</translation> <translation id="4412698727486357573">Centar za pomoć</translation> <translation id="44141919652824029">Dopustiti aplikaciji "<ph name="APP_NAME" />" pristup popisu vaših spojenih USB uređaja?</translation> @@ -2324,8 +2342,10 @@ <translation id="4555769855065597957">Sjena</translation> <translation id="4556110439722119938">Vaše oznake, povijest, zaporke i ostale postavke sinkronizirat će se s vašim Google računom kako biste ih mogli upotrebljavati na svim svojim uređajima.</translation> <translation id="4558426062282641716">Zatraženo je dopuštenje za automatsko pokretanje</translation> +<translation id="4558491878126948419">Saznajte savjete za <ph name="DEVICE_TYPE" /> i novosti o Googleovim proizvodima te dijelite povratne informacije. Pretplatu možete otkazati kad god želite.</translation> <translation id="4559617833001311418">Ova web-lokacija pristupa vašim senzorima pokreta ili svjetla.</translation> <translation id="4562155214028662640">Dodaj otisak prsta</translation> +<translation id="4563880231729913339">Treći prst</translation> <translation id="4565377596337484307">Sakrij zaporku</translation> <translation id="4567772783389002344">Dodaj riječ</translation> <translation id="4568213207643490790">Google računi nisu dopušteni na ovom uređaju.</translation> @@ -2400,6 +2420,7 @@ <translation id="4681930562518940301">Otvori izvornu sl&iku na novoj kartici</translation> <translation id="4682551433947286597">Pozadine se prikazuju na zaslonu za prijavu.</translation> <translation id="4684427112815847243">Sinkroniziraj sve</translation> +<translation id="4688036121858134881">Lokalni ID zapisnika: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4689235506267737042">Odaberite svoje demo-postavke</translation> <translation id="4689421377817139245">Sinkronizirajte ovu oznaku sa svojim iPhoneom</translation> <translation id="4690091457710545971"><Četiri datoteke koje je generirala Intelova oprema za Wi-Fi: csr.lst, fh_regs.lst, radio_reg.lst, monitor.lst.sysmon. Prve su tri datoteke binarne i sadrže ispis registra, a Intel potvrđuje da ne sadrže osobne podatke ni podatke za identifikaciju uređaja. Zadnja je datoteka zapis izvedbe Intelove opreme; iz nje su izbrisani svi osobni podaci i podaci za identifikaciju uređaja, no prevelika je da bi se prikazala ovdje. Te su datoteke generirane zbog nedavnih poteškoća s Wi-Fi-jem na vašem uređaju i podijelit će se s Intelom radi rješavanja tih problema.></translation> @@ -2584,6 +2605,7 @@ <translation id="4945444280533270988">Smart Lock uključen</translation> <translation id="4953689047182316270">Odgovori na događaje pristupačnosti</translation> <translation id="4953808748584563296">Zadani narančasti avatar</translation> +<translation id="4955710816792587366">Odaberite PIN</translation> <translation id="4955814292505481804">Godišnji</translation> <translation id="4957949153200969297">Omogući samo značajke vezane uz <ph name="IDS_SHORT_PRODUCT_NAME" /> sinkronizaciju</translation> <translation id="4959262764292427323">Zaporke se spremaju na vaš Google račun kako biste ih mogli upotrebljavati na bilo kojem uređaju</translation> @@ -2649,6 +2671,7 @@ <translation id="5050042263972837708">Naziv grupe</translation> <translation id="5052499409147950210">Uređivanje web-lokacije</translation> <translation id="5053604404986157245">Nasumično generirana TPM zaporka nije dostupna. To je uobičajeno nakon primjene funkcije Powerwash.</translation> +<translation id="5057110919553308744">Kada kliknete proširenje</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{Mapa sadrži oznaku. Jeste li sigurni da je želite izbrisati?}one{Mapa sadrži # oznaku. Jeste li sigurni da je želite izbrisati?}few{Mapa sadrži # oznake. Jeste li sigurni da je želite izbrisati?}other{Mapa sadrži # oznaka. Jeste li sigurni da je želite izbrisati?}}</translation> <translation id="5061708541166515394">Kontrast</translation> <translation id="5062930723426326933">Prijava nije uspjela. Povežite se s internetom i pokušajte ponovo.</translation> @@ -2824,6 +2847,7 @@ <translation id="5315873049536339193">Identitet</translation> <translation id="5316716239522500219">Zrcalni monitori</translation> <translation id="5317780077021120954">Spremi</translation> +<translation id="5318819489018851358">Dijeli s Linuxom</translation> <translation id="5319359161174645648">Google preporučuje Chrome</translation> <translation id="5319566035256672173">Ovaj uređaj više neće primati najnovija ažuriranja softvera. Savjetujemo vam nadogradnju.</translation> <translation id="532247166573571973">Poslužitelj možda nije dostupan. Pokušajte ponovo kasnije.</translation> @@ -3164,6 +3188,7 @@ <translation id="5804241973901381774">Dozvoljeno</translation> <translation id="580571955903695899">Poredaj ponovo po naslovu</translation> <translation id="5807290661599647102">Postavi Smart Lock</translation> +<translation id="5811750797187914944">Sve je spremno</translation> <translation id="5814126672212206791">Vrsta veze</translation> <translation id="5815645614496570556">X.400 adresa</translation> <translation id="5816434091619127343">Tražene izmjene pisača učinile bi pisač neupotrebljivim.</translation> @@ -3201,6 +3226,7 @@ <translation id="5855773610748894548">Ups, pogreška sigurnog modula.</translation> <translation id="5856721540245522153">Omogućivanje značajki za otklanjanje pogrešaka</translation> <translation id="5857090052475505287">Nova mapa</translation> +<translation id="5858490737742085133">Terminal</translation> <translation id="585979798156957858">Vanjska meta tipka</translation> <translation id="5860033963881614850">Isključeno</translation> <translation id="5860209693144823476">Kartica 3</translation> @@ -3223,6 +3249,7 @@ <translation id="5882919346125742463">Poznate mreže</translation> <translation id="5884474295213649357">Kartica je povezana s USB uređajem.</translation> <translation id="5885324376209859881">Upravljanje postavkama medija...</translation> +<translation id="5886009770935151472">Prvi prst</translation> <translation id="5889282057229379085">Maksimalni broj srednjih CA-ova: <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">Ponovno pokreni</translation> <translation id="5895187275912066135">Izdano</translation> @@ -3307,6 +3334,7 @@ <translation id="6025215716629925253">Trag stoga</translation> <translation id="6026047032548434446">Želite li instalirati aplikaciju?</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – USB uređaj povezan</translation> +<translation id="6028117231645531007">Dodaj otisak prsta</translation> <translation id="6029027682598229313">Dovršena je instalacija Linuxa.</translation> <translation id="6029587122245504742">Najsporije</translation> <translation id="6032912588568283682">Datotečni sustav</translation> @@ -3321,6 +3349,7 @@ <translation id="6042308850641462728">Više</translation> <translation id="6043317578411397101"><ph name="APP_NAME" /> dijeli Chromeovu karticu s karticom <ph name="TAB_NAME" />.</translation> <translation id="6044805581023976844"><ph name="APP_NAME" /> dijeli Chromeovu karticu i zvuk s karticom <ph name="TAB_NAME" />.</translation> +<translation id="6047938872139769630">Za otključavanje uređaja dok ste odjavljeni možete upotrebljavati PIN</translation> <translation id="6049004884579590341">Pritisnite i zadržite |<ph name="ACCELERATOR" />| da biste napustili prikaz na cijelom zaslonu</translation> <translation id="6049065490165456785">Fotografija iz internog fotoaparata</translation> <translation id="6051354611314852653">Ups! Sustav nije uspio autorizirati pristup API-ja za ovaj uređaj.</translation> @@ -3343,6 +3372,7 @@ <translation id="6075907793831890935">razmjenjivati podatke s uređajem naziva <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Uključi ovu snimku zaslona</translation> <translation id="6077131872140550515">Ukloni iz preferiranih</translation> +<translation id="6077189836672154517">Savjeti i novosti za <ph name="DEVICE_TYPE" /></translation> <translation id="6078323886959318429">Dodaj prečac</translation> <translation id="6078752646384677957">Provjerite mikrofon i glasnoću zvuka.</translation> <translation id="6080515710685820702">Upotrebljavate dijeljeno računalo? Preporučujemo vam da radite u anonimnom prozoru.</translation> @@ -3392,6 +3422,7 @@ <translation id="6144938890088808325">Pomozite nam poboljšati Chromebook</translation> <translation id="6146563240635539929">Videozapisi</translation> <translation id="6147020289383635445">Pregled ispisa neuspješan.</translation> +<translation id="6148052338549899048">Nema uređaja koji ispunjavaju uvjete. <ph name="LINK_BEGIN" />Saznajte više.<ph name="LINK_END" /></translation> <translation id="614940544461990577">Pokušajte sljedeće:</translation> <translation id="6150853954427645995">Da biste spremili tu datoteku za izvanmrežnu upotrebu, ponovo se povežite s internetom, kliknite datoteku desnom tipkom i odaberite opciju <ph name="OFFLINE_CHECKBOX_NAME" />.</translation> <translation id="6151323131516309312">Pritisnite <ph name="SEARCH_KEY" />da biste pretražili <ph name="SITE_NAME" /></translation> @@ -3411,6 +3442,7 @@ <translation id="6169040057125497443">Provjerite mikrofon.</translation> <translation id="6169666352732958425">Emitiranje radne površine nije moguće.</translation> <translation id="6171948306033499786">Pauziraj ispis</translation> +<translation id="6173623053897475761">Ponovo unesite PIN</translation> <translation id="6175314957787328458">Microsoft Domain GUID</translation> <translation id="6176043333338857209">Bluetooth će se privremeno uključiti radi komunikacije sa sigurnosnim ključem</translation> <translation id="6178664161104547336">Odabir certifikata</translation> @@ -3600,11 +3632,13 @@ <translation id="6456394469623773452">Solidan</translation> <translation id="6456631036739229488">Promijenjen je telefon Smart Locka. Unesite zaporku da biste ažurirali Smart Lock. Sljedeći će put telefon otključati vaš <ph name="DEVICE_TYPE" />. Smart Lock isključite u Postavkama.</translation> <translation id="645705751491738698">Nastavi blokirati JavaScript</translation> +<translation id="6458701200018867744">Prijenos nije uspio (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Koristi odabir za traženje</translation> <translation id="6459799433792303855">Aktivni prozor premješten je na drugi zaslon.</translation> <translation id="6460601847208524483">Traži sljedeće</translation> <translation id="6463795194797719782">&Uredi</translation> <translation id="6466988389784393586">&Otvaranje svih oznaka</translation> +<translation id="6467304607960172345">Optimiziraj videozapise na cijelom zaslonu</translation> <translation id="6468485451923838994">Fontovi</translation> <translation id="6472207088655375767">OTP</translation> <translation id="6472893788822429178">Pokaži gumb početne stranice</translation> @@ -3780,6 +3814,7 @@ <translation id="6725206449694821596">Internet Printing Protocol (IPP)</translation> <translation id="6727005317916125192">Prethodno okno</translation> <translation id="6732801395666424405">Certifikati se nisu učitali</translation> +<translation id="6732900235521116609">Nije moguće ukloniti prečac</translation> <translation id="6735304988756581115">Prikaži kolačiće i ostale podatke o web-lokaciji...</translation> <translation id="6736045498964449756">Ups, zaporke se ne podudaraju!</translation> <translation id="6736243959894955139">Adresa</translation> @@ -3863,6 +3898,7 @@ <translation id="6860427144121307915">Otvori u kartici</translation> <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="6865708901122695652">WebRTC zapisnici događaja (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">Temperatura boje</translation> <translation id="6870888490422746447">Odaberite aplikaciju za dijeljenje:</translation> <translation id="6871644448911473373">OCSP odgovaratelj: <ph name="LOCATION" /></translation> @@ -3907,6 +3943,7 @@ <translation id="694592694773692225">Preusmjeravanje je blokirano na ovoj stranici.</translation> <translation id="6949306908218145636">Označavanje otvorenih stranica...</translation> <translation id="6950627417367801484">Vrati aplikacije</translation> +<translation id="6950943362443484797">Instalirat ćemo tu aplikaciju za vas</translation> <translation id="6951153907720526401">Rukovatelji plaćanjem</translation> <translation id="6955446738988643816">Provjeri skočni prozor</translation> <translation id="6957231940976260713">Naziv usluge</translation> @@ -3942,6 +3979,7 @@ <translation id="6998711733709403587">Broj odabranih mapa: <ph name="SELCTED_FOLDERS_COUNT" /></translation> <translation id="6998793565256476099">Registriranje uređaja za videokonferencije</translation> <translation id="7000347579424117903">Mora sadržavati Ctrl, Alt ili Search</translation> +<translation id="700203306553508933">Spremite kartice da biste upotrebljavali Google Pay</translation> <translation id="7002055706763150362">Za postavljanje Smart Locka za Chromebook Google treba provjeriti jeste li to zaista vi. Upišite zaporku da biste započeli.</translation> <translation id="7002454948392136538">Odaberite upravitelja za tog nadziranog korisnika</translation> <translation id="7003339318920871147">Web-baze podataka</translation> @@ -3989,6 +4027,7 @@ <translation id="706626672220389329">Pogreška pri učitavanju dijeljenja. Navedeno dijeljenje već je učitano.</translation> <translation id="7066944511817949584">Povezivanje s uređajem "<ph name="DEVICE_NAME" />" nije uspjelo.</translation> <translation id="7067725467529581407">Ne prikazuj mi to više.</translation> +<translation id="7070484045139057854">Može čitati i mijenjati podatke web-lokacije</translation> <translation id="7072010813301522126">Naziv prečaca</translation> <translation id="707392107419594760">Odaberite svoju tipkovnicu:</translation> <translation id="7075513071073410194">PKCS br. 1 MD5 s RSA enkripcijom</translation> @@ -4118,6 +4157,7 @@ <translation id="7256710573727326513">Otvori na kartici</translation> <translation id="725758059478686223">Usluga ispisa</translation> <translation id="7257666756905341374">čitati podatke koje kopirate i lijepite</translation> +<translation id="7258697411818564379">Vaš je PIN dodan</translation> <translation id="7260764918845374269">Da bi bio vidljiv, sigurnosni ključ mora biti u načinu uparivanja. Pritisnite i zadržite tipku na ključu najmanje 5 sekundi.</translation> <translation id="7262004276116528033">Tu uslugu prijave hostira <ph name="SAML_DOMAIN" /></translation> <translation id="7268365133021434339">Zatvori kartice</translation> @@ -4265,6 +4305,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">Jeste li zaboravili staru zaporku?</translation> <translation id="7497215489070763236">CA certifikat poslužitelja</translation> +<translation id="7497981768003291373">Nemate nedavno snimljenih WebRTC tekstnih zapisnika.</translation> <translation id="7502658306369382406">IPv6 adresa</translation> <translation id="7503191893372251637">Vrsta Netscape certifikata</translation> <translation id="7503821294401948377">Nije uspjelo učitavanje ikone "<ph name="ICON" />" za radnju preglednika.</translation> @@ -4307,6 +4348,7 @@ <translation id="7564847347806291057">Završi proces</translation> <translation id="7566118625369982896">Upravljaj vezama aplikacije Play</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">Stavite prst na senzor</translation> <translation id="756809126120519699">Chromeovi su podaci izbrisani</translation> <translation id="7568790562536448087">Ažuriranje stavke</translation> <translation id="7571643774869182231">Nema dovoljno prostora za pohranu za ažuriranje</translation> @@ -4469,6 +4511,7 @@ <ph name="LINE_BREAK2" /> Pokušajte odabrati manje fotografija.</translation> <translation id="782590969421016895">Upotrijebi trenutačne stranice</translation> +<translation id="7826346148677309647">Više aplikacija za svoj uređaj možete pronaći u Trgovini Play.</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />Značajke za otklanjanje pogrešaka<ph name="END_H3" /> <ph name="BR" /> Na uređaju s OS-om Chrome možete omogućiti značajke za otklanjanje pogrešaka kako biste instalirali i testirali prilagođeni kôd na uređaju. To će vam omogućiti sljedeće:<ph name="BR" /> @@ -4665,6 +4708,7 @@ <translation id="8059417245945632445">&Provjeri uređaje</translation> <translation id="8063235345342641131">Zadani zeleni avatar</translation> <translation id="8064671687106936412">Ključ:</translation> +<translation id="8065485338434000013">Neke vaše kartice mogu se upotrebljavati samo na ovom uređaju</translation> <translation id="806812017500012252">Poredaj po naslovu</translation> <translation id="8068253693380742035">Dodirnite za prijavu</translation> <translation id="8069615408251337349">Google Cloud Print</translation> @@ -4742,6 +4786,7 @@ <translation id="8191453843330043793">Razrješavanje V8 proxyja</translation> <translation id="8193175696669055101">Model uređaja</translation> <translation id="8195027750202970175">Veličina na disku</translation> +<translation id="8198323535106903877">Instalirat ćemo te aplikacije za vas (njih <ph name="NUMBER_OF_APPS" />)</translation> <translation id="8199300056570174101">Svojstva mreže (usluge) i uređaja</translation> <translation id="8200772114523450471">Nastavi</translation> <translation id="8202160505685531999">Ponovo unesite zaporku da biste ažurirali svoj profil na uređaju <ph name="DEVICE_TYPE" />.</translation> @@ -4962,7 +5007,6 @@ <translation id="8557930019681227453">Manifest</translation> <translation id="8559694214572302298">Dekodiranje slika</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Nastavite čitati</translation> <translation id="8565650234829130278">Pokušaj vraćanja aplikacije na stariju verziju.</translation> <translation id="8569002732135253578">Ispisuje se <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">Nije pronađeno nijedno odredište</translation> @@ -5075,6 +5119,8 @@ <translation id="8716931980467311658">Želite li s ovog <ph name="DEVICE_TYPE" /> uređaja izbrisati sve Linuxove aplikacije i podatke u svojoj mapi Linux datoteke?</translation> <translation id="8719653885894320876">Preuzimanje dodatka <ph name="PLUGIN_NAME" /> nije uspjelo</translation> <translation id="8723829621484579639">Anonimni podokviri za: <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">Kada se prikaže ta ikona, upotrijebite otisak prsta da biste se identificirali ili odobrili kupnju.</translation> +<translation id="8724409975248965964">Otisak prsta dodan</translation> <translation id="8724859055372736596">&Prikaži u mapi</translation> <translation id="8725066075913043281">Pokušajte ponovo</translation> <translation id="8725178340343806893">Favoriti/oznake</translation> @@ -5155,6 +5201,7 @@ <translation id="8838770651474809439">Hamburger</translation> <translation id="883911313571074303">Dodaj napomenu slici</translation> <translation id="8845001906332463065">Zatražite pomoć</translation> +<translation id="8846132060409673887">Čitanje proizvođača i modela računala</translation> <translation id="8846141544112579928">Traženje tipkovnice...</translation> <translation id="8847988622838149491">USB</translation> <translation id="8859057652521303089">Odaberite svoj jezik:</translation> @@ -5368,6 +5415,7 @@ <translation id="9161070040817969420">Podokviri za: <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">Slanje podataka o uređaju. Trenutačno uređaj automatski šalje dijagnostičke podatke te podatke o upotrebi uređaja i aplikacija Googleu. Tu je postavku nametnuo vlasnik. Ako ste uključili dodatnu Aktivnost na webu i u aplikacijama, ti će se podaci pohranjivati na vašem računu, pa možete upravljati njima na stranici Moja aktivnost. <ph name="BEGIN_LINK1" />Saznajte više<ph name="END_LINK1" /></translation> <translation id="916607977885256133">Slika u slici</translation> +<translation id="9168436347345867845">Učinite to kasnije</translation> <translation id="9169496697824289689">Prikaz tipkovnih prečaca</translation> <translation id="9169931577761441333">Dodajte <ph name="APP_NAME" /> na početni zaslon</translation> <translation id="9170848237812810038">&Poništi</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb index 4ab52fa..13459da 100644 --- a/chrome/app/resources/generated_resources_hu.xtb +++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -247,6 +247,7 @@ <translation id="1358741672408003399">Helyesírás és nyelvhelyesség</translation> <translation id="1361164813881551742">Hozzáadás manuálisan</translation> <translation id="1361655923249334273">Nem használt</translation> +<translation id="1361872463926621533">Hang lejátszása indításkor</translation> <translation id="1363028406613469049">Szám</translation> <translation id="1367951781824006909">Válasszon egy fájlt</translation> <translation id="1368265273904755308">Probléma bejelentése</translation> @@ -570,6 +571,7 @@ <translation id="1817310072033858383">A Smart Lock beállítása a következőhöz: <ph name="DEVICE_TYPE" /></translation> <translation id="1817871734039893258">Microsoft - fájlhelyreállítás</translation> <translation id="1818007989243628752"><ph name="USERNAME" /> jelszavának törlése</translation> +<translation id="1818913467757368489">A napló feltöltése folyamatban van.</translation> <translation id="1819721979226826163">Koppintson az Alkalmazásértesítések > Google Play-szolgáltatások menüpontra.</translation> <translation id="1826516787628120939">Ellenőrzés</translation> <translation id="1828378091493947763">Ez a beépülő modul nem támogatott ezen az eszközön</translation> @@ -618,11 +620,13 @@ <translation id="1890674179660343635"><span>Azonosító: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">Megnyitás teljes képernyőn</translation> <translation id="189358972401248634">Más nyelvek</translation> +<translation id="1894591787927543791">Kártya mentése a Google Pay használatához</translation> <translation id="1895658205118569222">Kikapcsolás</translation> <translation id="1895934970388272448">A folyamat befejezéséhez meg kell erősítenie a regisztrációt a nyomtatón – nézze meg most!</translation> <translation id="1897762215429052132">Hálózati kapcsolat, nyelv és billentyűzetkiosztás beállítása…</translation> <translation id="1901303067676059328">Össz&es kiválasztása</translation> <translation id="1902576642799138955">Érvényesség időtartama</translation> +<translation id="1904518222538904133">A kártyái közül egy csak ezen az eszközön használható</translation> <translation id="1905375423839394163">A Chromebook eszköz neve</translation> <translation id="1905710495812624430">Elérte az engedélyezett kísérletek maximális számát.</translation> <translation id="1909880997794698664">Biztosan állandó kioszk módban szeretné tartani ezt az eszközt?</translation> @@ -659,6 +663,7 @@ <translation id="1962969542251276847">Képernyő lezárása</translation> <translation id="1963227389609234879">Összes eltávolítása</translation> <translation id="1965624977906726414">Nem rendelkezik speciális engedélyekkel.</translation> +<translation id="1969654639948595766">Szöveges WebRTC-naplók (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">Videó mód bekapcsolva</translation> <translation id="197288927597451399">Megőrzés</translation> <translation id="1974043046396539880">Tanúsítvány-visszavonási lista (CRL) terjesztési pontjai</translation> @@ -802,6 +807,7 @@ <translation id="2190069059097339078">Wi-Fi hitelesítési adatok lekérője</translation> <translation id="219008588003277019">Natív kliensmodul: <ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(üres)</translation> +<translation id="2191223688506386601">Az utolsó dolog</translation> <translation id="2192505247865591433">Innen:</translation> <translation id="2193365732679659387">Bizalmi beállítások</translation> <translation id="2195729137168608510">E-mail védelem</translation> @@ -1025,6 +1031,7 @@ <translation id="2534460670861217804">Biztonságos HTTP-proxy</translation> <translation id="253557089021624350">Életben tartási számláló</translation> <translation id="2538361623464451692">Szinkronizálás letiltva</translation> +<translation id="2539876824180063438">Óvatosan mozgassa mutatóujját a teljes ujjlenyomat rögzítéséhez.</translation> <translation id="2541002089857695151">Optimalizálja a teljes képernyős átküldést?</translation> <translation id="2542049655219295786">Google-tábla</translation> <translation id="2544853746127077729">A hálózat elutasította a hitelesítési tanúsítványt</translation> @@ -1259,7 +1266,9 @@ <translation id="287286579981869940"><ph name="PROVIDER_NAME" /> hozzáadása...</translation> <translation id="2874343608108773609">Ha az összes eszközén szeretné elérni könyvjelzőit, jelentkezzen be a Chrome-ba.</translation> <translation id="2875698561019555027">(Chrome-hibaoldalak)</translation> +<translation id="2876336351874743617">2. ujj</translation> <translation id="288042212351694283">U2F (Universal 2nd Factor) eszközökhöz való hozzáférés</translation> +<translation id="2881076733170862447">Amikor a bővítményre kattint</translation> <translation id="2881966438216424900">Utolsó hozzáférés ideje:</translation> <translation id="2882943222317434580">A(z) <ph name="IDS_SHORT_PRODUCT_NAME" /> rövidesen újraindul, és alapállapotba áll</translation> <translation id="2885378588091291677">Feladatkezelő</translation> @@ -1445,6 +1454,7 @@ <translation id="3154429428035006212">Több mint egy hónapja offline</translation> <translation id="3156531245809797194">A Chrome használatához jelentkezzen be</translation> <translation id="3157931365184549694">Visszaállítás</translation> +<translation id="3158033540161634471">Az ujjlenyomat beállítása</translation> <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> @@ -1514,9 +1524,10 @@ <translation id="3285322247471302225">Új lap</translation> <translation id="3288047731229977326">A fejlesztői módban futó bővítmények kárt okozhatnak számítógépén. Ha Ön nem fejlesztő, akkor a biztonság kedvéért kapcsolja ki a fejlesztői módban futó bővítményeket.</translation> <translation id="3289856944988573801">Kérjük, frissítések kereséséhez Ethernetet vagy Wi-Fit használjon.</translation> -<translation id="3292421191230118801">Mobilon olvasott webhelyek megtekintésének folytatása a Chromebookon</translation> <translation id="32939749466444286">A Linux-tároló elindítása nem sikerült. Próbálja újra.</translation> <translation id="3294437725009624529">Vendég</translation> +<translation id="329703603001918157">Nem sikerül szerkeszteni a parancsikont</translation> +<translation id="3297951628821704004">Fiók eltávolítása az eszközről</translation> <translation id="329838636886466101">Javítás</translation> <translation id="3298789223962368867">A megadott URL érvénytelen.</translation> <translation id="32991397311664836">Eszközök:</translation> @@ -1683,6 +1694,7 @@ <translation id="3534879087479077042">Mi az a felügyelt felhasználó?</translation> <translation id="3538066758857505094">Hiba történt a Linux eltávolítása során. Próbálja újra.</translation> <translation id="354060433403403521">Tápadapter</translation> +<translation id="354068948465830244">Olvashatja és módosíthatja a webhelyadatokat</translation> <translation id="3541661933757219855">Az elrejtéshez nyomja meg a Ctrl+Alt+/ billentyűkombinációt vagy az Escape billentyűt</translation> <translation id="3543393733900874979">A frissítés sikertelen (hiba: <ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">X9.62 ECDSA aláírás a következővel: SHA-512</translation> @@ -1728,6 +1740,7 @@ <translation id="3606712892509067288">Eltávolítás a Better Together szolgáltatásból</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">Felhasználói kép előnézete</translation> +<translation id="3609446736023031597">Kérem a legújabb híreket és ajánlásokat a Play Áruház alkalmazásaival kapcsolatban</translation> <translation id="3609785682760573515">Szinkronizálás...</translation> <translation id="3609895557594655134">Android VPN hozzáadása…</translation> <translation id="361106536627977100">Flash-adatok</translation> @@ -1760,6 +1773,7 @@ <translation id="3645372836428131288">Óvatosan mozgassa ujját az ujjlenyomat újabb részének rögzítéséhez.</translation> <translation id="3648348069317717750">A rendszer <ph name="USB_DEVICE_NAME" /> eszközt észlelt</translation> <translation id="3649138363871392317">Egy fotó készült</translation> +<translation id="3650845953328929506">Függőben lévő naplófeltöltés.</translation> <translation id="3650952250015018111">A következőhöz való hozzáférés engedélyezése a(z) „<ph name="APP_NAME" />” számára:</translation> <translation id="3651488188562686558">Wi-Fi-kapcsolat bontása</translation> <translation id="3652817283076144888">Inicializálás…</translation> @@ -1911,6 +1925,7 @@ <translation id="3856800405688283469">Időzóna kiválasztása</translation> <translation id="3857228364945137633">Próbálja ki, hogyan oldhatja fel <ph name="DEVICE_TYPE" /> eszközét jelszó használata nélkül a Smart Lock funkció használatával, ha a telefonja a közelében van.</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation> +<translation id="3857807444929313943">Emelje fel, majd érintse újra</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: a szinkronizálás szünetel</translation> <translation id="3860381078714302691">Üdvözli a Hangouts Meet!</translation> <translation id="3861241522664181545">Az oldal szüneteltetve.</translation> @@ -1929,6 +1944,7 @@ <translation id="3873315167136380065">Ennek bekapcsolásához <ph name="BEGIN_LINK" />állítsa alaphelyzetbe a szinkronizálást<ph name="END_LINK" />, hogy eltávolíthassa az összetett szinkronizálási jelszót</translation> <translation id="3878840326289104869">Felügyelt felhasználó létrehozása</translation> <translation id="3879748587602334249">Letöltéskezelő</translation> +<translation id="3885455691202481064">Érintse meg az érzékelőt mutatóujjával. Az érzékelő a Chromebook bal felső sarkában található.</translation> <translation id="3888550877729210209">Jegyzetek készítése a(z) <ph name="LOCK_SCREEN_APP_NAME" /> alkalmazással</translation> <translation id="3892414795099177503">OpenVPN/L2TP hozzáadása…</translation> <translation id="3893536212201235195">Hozzáférhetőségi beállításainak olvasása és módosítása</translation> @@ -1980,6 +1996,7 @@ <translation id="3950820424414687140">Bejelentkezés</translation> <translation id="3954354850384043518">Folyamatban</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz)</translation> +<translation id="3954953195017194676">Nincsenek mostanában rögzített WebRTC-eseménynaplói.</translation> <translation id="3955193568934677022">Engedélyezi a webhelyek számára a védett tartalmak lejátszását (ajánlott)</translation> <translation id="3956702100721821638">Nem sikerült a Google Play elérése</translation> <translation id="3958088479270651626">Könyvjelzők és beállítások importálása</translation> @@ -2233,6 +2250,7 @@ <translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation> <translation id="4408599188496843485">&Súgó</translation> <translation id="4409697491990005945">Margók</translation> +<translation id="4410545552906060960">Szám (PIN-kód) használata jelszó helyett az eszköz feloldására. A PIN-kód később történő beállításához lépjen a Beállítások ponthoz.</translation> <translation id="4411578466613447185">Kód aláírója</translation> <translation id="4412698727486357573">Súgó</translation> <translation id="44141919652824029">Engedélyezi a(z) „<ph name="APP_NAME" />” számára, hogy hozzáférjen a csatlakoztatott USB-eszközeinek listájához?</translation> @@ -2324,8 +2342,10 @@ <translation id="4555769855065597957">Árnyék</translation> <translation id="4556110439722119938">A böngésző szinkronizálni fogja a könyvjelzőket, az előzményeket, a jelszavakat és az egyéb beállításokat Google-fiókjával, hogy bármelyik eszközén hozzájuk férjen.</translation> <translation id="4558426062282641716">Automatikus indítási engedély kérelmezve</translation> +<translation id="4558491878126948419">Tippeket kaphat a(z) <ph name="DEVICE_TYPE" /> eszközről, és friss híreket olvashat a Google-termékekkel kapcsolatban, emellett visszajelzést is küldhet. Bármikor leiratkozhat.</translation> <translation id="4559617833001311418">Ez a webhely hozzáfér az Ön mozgás- vagy fényérzékelőihez.</translation> <translation id="4562155214028662640">Ujjlenyomat hozzáadása</translation> +<translation id="4563880231729913339">3. ujj</translation> <translation id="4565377596337484307">Jelszó elrejtése</translation> <translation id="4567772783389002344">Szó hozzáadása</translation> <translation id="4568213207643490790">Sajnáljuk, a Google-fiók jelenleg nem engedélyezett ezen az eszközön.</translation> @@ -2400,6 +2420,7 @@ <translation id="4681930562518940301">Az eredeti &kép megnyitása új lapon</translation> <translation id="4682551433947286597">A háttérképek a bejelentkezési képernyőn jelennek meg.</translation> <translation id="4684427112815847243">Minden szinkronizálása</translation> +<translation id="4688036121858134881">Napló helyi azonosítója: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4689235506267737042">A demóbeállítások kiválasztása</translation> <translation id="4689421377817139245">Szinkronizálja ezt a könyvjelzőt iPhone eszközével</translation> <translation id="4690091457710545971"><Négy, az Intel Wi-Fi firmware által generált fájl: csr.lst, fh_regs.lst, radio_reg.lst, monitor.lst.sysmon. Az első három bináris fájl, melyek regisztertartalmakat tárolnak. Az Intel biztosítja, hogy nincs bennük eszköz- és személyazonosításra alkalmas adat. Az utolsó fájl végrehajtási lánc az Intel firmware-ből; mentes az eszköz- és személyazonosításra alkalmas adatoktól, de túl nagy ahhoz, hogy itt szerepeljen. Ezek a fájlok azért jöttek létre, mert eszközén az elmúlt időszakban Wi-Fi-vel kapcsolatos problémák adódtak. A probléma megoldása érdekében a rendszer megosztja a fájlokat az Intellel.></translation> @@ -2584,6 +2605,7 @@ <translation id="4945444280533270988">Smart Lock bekapcsolva</translation> <translation id="4953689047182316270">Válasz kisegítő lehetőségekkel kapcsolatos eseményekre</translation> <translation id="4953808748584563296">Alapértelmezett narancssárga avatar</translation> +<translation id="4955710816792587366">PIN-kód kiválasztása</translation> <translation id="4955814292505481804">Éves</translation> <translation id="4957949153200969297">Kizárólag a következő szolgáltatással kapcsolatos funkciókat engedélyezze: <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="4959262764292427323">A jelszavakat Google-fiókjába mentjük, hogy bármelyik eszközén használhassa őket</translation> @@ -2649,6 +2671,7 @@ <translation id="5050042263972837708">Csoport neve</translation> <translation id="5052499409147950210">Webhely szerkesztése</translation> <translation id="5053604404986157245">Nem áll rendelkezésre véletlenszerűen generált TPM jelszó. Powerwash után ez normális.</translation> +<translation id="5057110919553308744">Amikor a bővítményre kattint</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{Ebben a mappában van egy könyvjelző. Biztosan törli?}other{Ebben a mappában van # könyvjelző. Biztosan törli őket?}}</translation> <translation id="5061708541166515394">Kontraszt</translation> <translation id="5062930723426326933">A bejelentkezés nem sikerült. Kérjük, kapcsolódjon az internethez, majd próbálja újra.</translation> @@ -2825,6 +2848,7 @@ <translation id="5315873049536339193">Azonosítás</translation> <translation id="5316716239522500219">Monitorok tükrözése</translation> <translation id="5317780077021120954">Mentés</translation> +<translation id="5318819489018851358">Megosztás a Linuxszal</translation> <translation id="5319359161174645648">A Google a Chrome-ot ajánlja</translation> <translation id="5319566035256672173">Az eszköz a továbbiakban nem kapja meg a legújabb szoftverfrissítéseket. Fontolja meg újabb eszköz beszerzését.</translation> <translation id="532247166573571973">Lehet, hogy nem áll rendelkezésre a szerver. Próbálja újra később.</translation> @@ -3166,6 +3190,7 @@ <translation id="5804241973901381774">Engedélyek</translation> <translation id="580571955903695899">Rendezés cím alapján</translation> <translation id="5807290661599647102">Képernyőzár beállítása</translation> +<translation id="5811750797187914944">Minden kész</translation> <translation id="5814126672212206791">Csatlakozás típusa</translation> <translation id="5815645614496570556">X.400 cím</translation> <translation id="5816434091619127343">A kívánt nyomtatómódosítások használhatatlanná tehetik a nyomtatót.</translation> @@ -3203,6 +3228,7 @@ <translation id="5855773610748894548">Hoppá! Biztonsági modult érintő hiba történt.</translation> <translation id="5856721540245522153">Hibakeresési funkciók bekapcsolása</translation> <translation id="5857090052475505287">Új mappa</translation> +<translation id="5858490737742085133">Terminál</translation> <translation id="585979798156957858">Külső meta</translation> <translation id="5860033963881614850">Kikapcsolva</translation> <translation id="5860209693144823476">3. lap</translation> @@ -3225,6 +3251,7 @@ <translation id="5882919346125742463">Ismert hálózatok</translation> <translation id="5884474295213649357">Ez a lap USB-eszközhöz csatlakozik.</translation> <translation id="5885324376209859881">Médiabeállítások kezelése...</translation> +<translation id="5886009770935151472">1. ujj</translation> <translation id="5889282057229379085">A köztes tanúsítványkibocsátók maximális száma: <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">Újraindítás</translation> <translation id="5895187275912066135">Kiállítva</translation> @@ -3309,6 +3336,7 @@ <translation id="6025215716629925253">Veremkivonat</translation> <translation id="6026047032548434446">Telepíti az alkalmazást?</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – USB-eszköz csatlakoztatva</translation> +<translation id="6028117231645531007">Ujjlenyomat hozzáadása</translation> <translation id="6029027682598229313">Sikeresen befejeződött a Linux telepítése.</translation> <translation id="6029587122245504742">Leglassabb</translation> <translation id="6032912588568283682">Fájlrendszer</translation> @@ -3323,6 +3351,7 @@ <translation id="6042308850641462728">Hosszabban</translation> <translation id="6043317578411397101">A(z) <ph name="APP_NAME" /> megosztja a Chrome egy lapját a következővel: <ph name="TAB_NAME" />.</translation> <translation id="6044805581023976844">A(z) <ph name="APP_NAME" /> megosztja a Chrome egy lapját és a hangot a következővel: <ph name="TAB_NAME" />.</translation> +<translation id="6047938872139769630">A PIN-kód használatával feloldhatja az eszközt akkor is, amikor kijelentkezett</translation> <translation id="6049004884579590341">Tartsa lenyomva a(z) |<ph name="ACCELERATOR" />| gombot a teljes képernyős mód elhagyásához</translation> <translation id="6049065490165456785">Fotó a belső kamerával</translation> <translation id="6051354611314852653">Hoppá! A rendszer nem tudta hitelesíteni az eszköz API-hozzáférését.</translation> @@ -3345,6 +3374,7 @@ <translation id="6075907793831890935">Adatok cseréje a(z) <ph name="HOSTNAME" /> nevű eszközzel</translation> <translation id="6076448957780543068">A képernyőkép csatolása</translation> <translation id="6077131872140550515">Eltávolítás az előnyben részesített hálózatokból</translation> +<translation id="6077189836672154517">Tippek és frissítések <ph name="DEVICE_TYPE" /> eszközökre</translation> <translation id="6078323886959318429">Parancsikon hozzáadása</translation> <translation id="6078752646384677957">Ellenőrizze a mikrofont és a hangerőt.</translation> <translation id="6080515710685820702">Közös használatú számítógépet használ? Nyisson inkognitóablakot.</translation> @@ -3394,6 +3424,7 @@ <translation id="6144938890088808325">Segítsen nekünk a Chromebookok továbbfejlesztésében</translation> <translation id="6146563240635539929">Videók</translation> <translation id="6147020289383635445">A nyomtatási előnézet létrehozása nem sikerült.</translation> +<translation id="6148052338549899048">Nincsenek jogosult eszközök. <ph name="LINK_BEGIN" />További információ.<ph name="LINK_END" /></translation> <translation id="614940544461990577">Próbálja ki a következőket:</translation> <translation id="6150853954427645995">Ha menteni szeretné ezt a fájlt offline használatra, menjen fel újra az online felületre, kattintson jobb gombbal a fájlra, és jelölje be a(z) <ph name="OFFLINE_CHECKBOX_NAME" /> lehetőséget.</translation> <translation id="6151323131516309312">Nyomja meg a(z) <ph name="SEARCH_KEY" /> gombot a(z) <ph name="SITE_NAME" /> kereséshez</translation> @@ -3413,6 +3444,7 @@ <translation id="6169040057125497443">Ellenőrizze a mikrofont.</translation> <translation id="6169666352732958425">Nem lehet átküldeni az asztalt.</translation> <translation id="6171948306033499786">A nyomtatás szüneteltetése</translation> +<translation id="6173623053897475761">Írja be újra a PIN-kódját</translation> <translation id="6175314957787328458">Microsoft Domain GUID</translation> <translation id="6176043333338857209">A Bluetooth ideiglenesen bekapcsolódik, hogy kommunikálhasson a biztonsági hardverkulccsal</translation> <translation id="6178664161104547336">Tanúsítvány kiválasztása</translation> @@ -3602,11 +3634,13 @@ <translation id="6456394469623773452">Jó</translation> <translation id="6456631036739229488">A Smart Lock funkcióval használt telefon megváltozott. Adja meg jelszavát a Smart Lock frissítéséhez. Legközelebb a telefonnal oldhatja fel <ph name="DEVICE_TYPE" /> eszköze lezárását. A Smart Lock funkciót a Beállításokban kapcsolhatja ki.</translation> <translation id="645705751491738698">A JavaScript letiltásának fenntartása</translation> +<translation id="6458701200018867744">A feltöltés sikertelen (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Keresés a kijelölésben</translation> <translation id="6459799433792303855">Aktív ablak áthelyezve másik kijelzőre.</translation> <translation id="6460601847208524483">Következő keresése</translation> <translation id="6463795194797719782">&Szerkesztés</translation> <translation id="6466988389784393586">&Az összes könyvjelző megnyitása</translation> +<translation id="6467304607960172345">A teljes képernyős videók optimalizálása</translation> <translation id="6468485451923838994">Betűtípusok</translation> <translation id="6472207088655375767">Egyszer használatos jelszó</translation> <translation id="6472893788822429178">A „kezdőoldal” gomb megjelenítése</translation> @@ -3782,6 +3816,7 @@ <translation id="6725206449694821596">Internetes nyomtatási protokoll (IPP)</translation> <translation id="6727005317916125192">Előző ablaktábla</translation> <translation id="6732801395666424405">A tanúsítványok betöltése nem történt meg</translation> +<translation id="6732900235521116609">A parancsikon nem távolítható el</translation> <translation id="6735304988756581115">Cookie-k és egyéb webhelyadatok megjelenítése...</translation> <translation id="6736045498964449756">Hoppá! A jelszavak nem egyeznek.</translation> <translation id="6736243959894955139">Cím</translation> @@ -3865,6 +3900,7 @@ <translation id="6860427144121307915">Megnyitás lapon</translation> <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="6865708901122695652">WebRTC-eseménynaplók (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">Színhőmérséklet</translation> <translation id="6870888490422746447">Alkalmazás kiválasztása és megosztása itt:</translation> <translation id="6871644448911473373">OCSP válaszadó: <ph name="LOCATION" /></translation> @@ -3909,6 +3945,7 @@ <translation id="694592694773692225">Átirányítás letiltva ezen az oldalon.</translation> <translation id="6949306908218145636">Megnyitott oldalak felvétele a könyvjelzők közé...</translation> <translation id="6950627417367801484">Alkalmazások visszaállítása</translation> +<translation id="6950943362443484797">Telepíteni fogjuk ezt az alkalmazást Önnek</translation> <translation id="6951153907720526401">Fizetéskezelők</translation> <translation id="6955446738988643816">Pop-up vizsgálata</translation> <translation id="6957231940976260713">Szolgáltatás neve</translation> @@ -3944,6 +3981,7 @@ <translation id="6998711733709403587"><ph name="SELCTED_FOLDERS_COUNT" /> kiválasztott mappa</translation> <translation id="6998793565256476099">Eszköz felvétele a videokonferenciába</translation> <translation id="7000347579424117903">Használja a Ctrl, az Alt vagy a Keresés gombok egyikét</translation> +<translation id="700203306553508933">Kártyák mentése a Google Pay használatához</translation> <translation id="7002055706763150362">A Smart Lock Chromebookhoz rendszer beállításához a Google-nak meg kell bizonyosodnia arról, hogy Ön akarja ezt végrehajtani: a kezdéshez írja be jelszavát.</translation> <translation id="7002454948392136538">Felettes kiválasztása a felügyelt felhasználóhoz</translation> <translation id="7003339318920871147">Internetes adatbázisok</translation> @@ -3991,6 +4029,7 @@ <translation id="706626672220389329">Hiba történt a megosztott tároló csatlakoztatása során. Az adott megosztott tároló már csatlakoztatva van.</translation> <translation id="7066944511817949584">Nem sikerült csatlakozni a(z) "<ph name="DEVICE_NAME" />" eszközhöz.</translation> <translation id="7067725467529581407">Ne jelenjen meg többé.</translation> +<translation id="7070484045139057854">Olvashatja és módosíthatja a webhelyadatokat</translation> <translation id="7072010813301522126">Gyorsparancs neve</translation> <translation id="707392107419594760">Válassza ki billentyűzetét:</translation> <translation id="7075513071073410194">PKCS #1 MD5 RSA titkosítással</translation> @@ -4120,6 +4159,7 @@ <translation id="7256710573727326513">Megnyitás lapon</translation> <translation id="725758059478686223">Nyomtatási szolgáltatás</translation> <translation id="7257666756905341374">Az Ön által másolt és beillesztett adatok olvasása</translation> +<translation id="7258697411818564379">PIN-kód beállítva</translation> <translation id="7260764918845374269">A biztonsági hardverkulcsot csak akkor láthatja, ha párosítási módban van. Tartsa nyomva legalább 5 másodpercig a biztonsági hardverkulcson található gombot.</translation> <translation id="7262004276116528033">Ezt a bejelentkezési szolgáltatást a(z) <ph name="SAML_DOMAIN" /> biztosítja</translation> <translation id="7268365133021434339">Lapok bezárása</translation> @@ -4267,6 +4307,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">Elfelejtette régi jelszavát?</translation> <translation id="7497215489070763236">Szerver CA tanúsítványa</translation> +<translation id="7497981768003291373">Nincsenek mostanában rögzített szöveges WebRTC-naplói.</translation> <translation id="7502658306369382406">IPv6-cím</translation> <translation id="7503191893372251637">Netscape-tanúsítvány típusa</translation> <translation id="7503821294401948377">Nem sikerült a(z) '<ph name="ICON" />' ikon betöltése a böngészőművelethez.</translation> @@ -4309,6 +4350,7 @@ <translation id="7564847347806291057">Folyamat leállítása</translation> <translation id="7566118625369982896">Play-alkalmazáslinkek kezelése</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">Helyezze az ujját a megfelelő helyre</translation> <translation id="756809126120519699">Chrome-adatok törölve</translation> <translation id="7568790562536448087"> frissítése</translation> <translation id="7571643774869182231">A frissítés telepítéséhez nincs elegendő tárhely</translation> @@ -4471,6 +4513,7 @@ <ph name="LINE_BREAK2" /> Próbálkozzon kevesebb fotó kiválasztásával.</translation> <translation id="782590969421016895">Jelenlegi oldalak használata</translation> +<translation id="7826346148677309647">További alkalmazásokat találhat eszközéhez a Play Áruházban.</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />Hibakeresési funkciók<ph name="END_H3" /> <ph name="BR" /> Chrome OS-t futtató eszközén engedélyezheti a hibakeresési funkciókat, melyekkel egyéni kódot telepíthet és tesztelhet az eszközén. Az alábbiakra van lehetősége:<ph name="BR" /> @@ -4667,6 +4710,7 @@ <translation id="8059417245945632445">&Eszközök vizsgálata</translation> <translation id="8063235345342641131">Alapértelmezett zöld avatar</translation> <translation id="8064671687106936412">Kulcs:</translation> +<translation id="8065485338434000013">Néhány kártyát csak ezen az eszközön lehet használni</translation> <translation id="806812017500012252">Rendezés cím alapján</translation> <translation id="8068253693380742035">Érintse meg a bejelentkezéshez</translation> <translation id="8069615408251337349">Google Cloud Print</translation> @@ -4744,6 +4788,7 @@ <translation id="8191453843330043793">V8 Proxy Resolver</translation> <translation id="8193175696669055101">Eszköz modellje</translation> <translation id="8195027750202970175">Lemezen elfoglalt méret</translation> +<translation id="8198323535106903877">Telepítjük Önnek ezt a(z) <ph name="NUMBER_OF_APPS" /> alkalmazást</translation> <translation id="8199300056570174101">Hálózati (szolgáltatási) és eszköztulajdonságok</translation> <translation id="8200772114523450471">Folytatás</translation> <translation id="8202160505685531999"><ph name="DEVICE_TYPE" />-profilja frissítéséhez adja meg újra jelszavát.</translation> @@ -4963,7 +5008,6 @@ <translation id="8557930019681227453">Jegyzék</translation> <translation id="8559694214572302298">Képdekóder</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Olvasás folytatása</translation> <translation id="8565650234829130278">Megpróbálta alacsonyabb verzióra váltani az alkalmazást.</translation> <translation id="8569002732135253578">Nyomtatás folyamatban: <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">Nem található célhely</translation> @@ -5076,6 +5120,8 @@ <translation id="8716931980467311658">Törli a Linux-fájlok mappájában található összes Linux-alkalmazást és -adatot erről az eszközről (<ph name="DEVICE_TYPE" />)?</translation> <translation id="8719653885894320876">A(z) <ph name="PLUGIN_NAME" /> letöltése sikertelen volt</translation> <translation id="8723829621484579639">Inkognitó subframe a következőhöz: <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">Ha ezt az ikont látja, akkor ujjlenyomata használatával azonosítsa magát vagy engedélyezze a vásárlást.</translation> +<translation id="8724409975248965964">Ujjlenyomat hozzáadva</translation> <translation id="8724859055372736596">&Megjelenítés mappában</translation> <translation id="8725066075913043281">Újrapróbálás</translation> <translation id="8725178340343806893">Kedvencek/könyvjelzők</translation> @@ -5156,6 +5202,7 @@ <translation id="8838770651474809439">Hamburger</translation> <translation id="883911313571074303">Megjegyzés fűzése a képhez</translation> <translation id="8845001906332463065">Súgó</translation> +<translation id="8846132060409673887">A számítógép gyártójának és típusának elolvasása</translation> <translation id="8846141544112579928">Billentyűzet keresése…</translation> <translation id="8847988622838149491">USB</translation> <translation id="8859057652521303089">Nyelv kiválasztása:</translation> @@ -5369,6 +5416,7 @@ <translation id="9161070040817969420">Subframe-ek a következőhöz: <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">Rendszeradatok küldése. Ez az eszköz jelenleg diagnosztikai, továbbá eszköz- és használati adatokat küld automatikusan a Google-nak. Ezt a beállítást kötelezővé tette a tulajdonos. Ha bekapcsolta a további Internetes és alkalmazástevékenységeket, akkor a rendszer tárolja ezeket az információkat a fiókjában, Ön pedig kezelheti őket a Saját tevékenységek között. <ph name="BEGIN_LINK1" />További információ<ph name="END_LINK1" />.</translation> <translation id="916607977885256133">Kép a képben</translation> +<translation id="9168436347345867845">Később</translation> <translation id="9169496697824289689">Billentyűparancsok megtekintése</translation> <translation id="9169931577761441333"><ph name="APP_NAME" /> hozzáadása a kezdőképernyőhöz</translation> <translation id="9170848237812810038">&Visszavonás</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb index f743c89a..215dfb4c 100644 --- a/chrome/app/resources/generated_resources_id.xtb +++ b/chrome/app/resources/generated_resources_id.xtb
@@ -247,6 +247,7 @@ <translation id="1358741672408003399">Ejaan dan Grammar</translation> <translation id="1361164813881551742">Tambahkan Secara Manual</translation> <translation id="1361655923249334273">Tidak digunakan</translation> +<translation id="1361872463926621533">Putar suara saat dimulai</translation> <translation id="1363028406613469049">Lacak</translation> <translation id="1367951781824006909">Pilih file</translation> <translation id="1368265273904755308">Laporkan masalah</translation> @@ -570,6 +571,7 @@ <translation id="1817310072033858383">Siapkan Smart Lock untuk <ph name="DEVICE_TYPE" /></translation> <translation id="1817871734039893258">Microsoft File Recovery</translation> <translation id="1818007989243628752">Hapus sandi untuk <ph name="USERNAME" /></translation> +<translation id="1818913467757368489">Upload log sedang berlangsung.</translation> <translation id="1819721979226826163">Tap Notifikasi aplikasi > Layanan Google Play.</translation> <translation id="1826516787628120939">Memeriksa</translation> <translation id="1828378091493947763">Plugin tidak didukung di perangkat ini</translation> @@ -618,11 +620,13 @@ <translation id="1890674179660343635"><span>ID: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">Buka layar penuh</translation> <translation id="189358972401248634">Bahasa lain</translation> +<translation id="1894591787927543791">Simpan kartu untuk menggunakan Google Pay</translation> <translation id="1895658205118569222">Mati</translation> <translation id="1895934970388272448">Anda harus mengonfirmasi pendaftaran pada printer untuk menyelesaikan proses ini - periksa sekarang.</translation> <translation id="1897762215429052132">Menyiapkan sambungan jaringan, bahasa, tata letak keyboard...</translation> <translation id="1901303067676059328">Pilih semu&a</translation> <translation id="1902576642799138955">Periode Validitas</translation> +<translation id="1904518222538904133">1 kartu Anda hanya dapat digunakan di perangkat ini</translation> <translation id="1905375423839394163">Nama perangkat Chromebook</translation> <translation id="1905710495812624430">Melebihi batas percobaan maksimum yang diizinkan.</translation> <translation id="1909880997794698664">Yakin ingin menyimpan perangkat ini dalam mode kios secara permanen?</translation> @@ -659,6 +663,7 @@ <translation id="1962969542251276847">Kunci Layar</translation> <translation id="1963227389609234879">Hapus Semua</translation> <translation id="1965624977906726414">Tidak memiliki izin khusus.</translation> +<translation id="1969654639948595766">Log teks WebRTC (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">Masuk ke mode video</translation> <translation id="197288927597451399">Tetap Download</translation> <translation id="1974043046396539880">Titik Distribusi CRL</translation> @@ -802,6 +807,7 @@ <translation id="2190069059097339078">Pembuka Kredensial Wi-Fi</translation> <translation id="219008588003277019">Modul Klien Asli: <ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(kosong)</translation> +<translation id="2191223688506386601">Yang terakhir</translation> <translation id="2192505247865591433">Dari:</translation> <translation id="2193365732679659387">Setelan kepercayaan</translation> <translation id="2195729137168608510">Perlindungan Email</translation> @@ -1025,6 +1031,7 @@ <translation id="2534460670861217804">Proxy HTTP Aman</translation> <translation id="253557089021624350">Jumlah aktivitas yang tetap aktif</translation> <translation id="2538361623464451692">Sinkronisasi dinonaktifkan</translation> +<translation id="2539876824180063438">Gerakkan sedikit jari telunjuk untuk menambahkan seluruh bagian sidik jari Anda.</translation> <translation id="2541002089857695151">Optimalkan transmisi layar penuh?</translation> <translation id="2542049655219295786">Tabel Google</translation> <translation id="2544853746127077729">Sertifikat autentikasi ditolak oleh jaringan</translation> @@ -1258,7 +1265,9 @@ <translation id="287286579981869940">Menambahkan <ph name="PROVIDER_NAME" />...</translation> <translation id="2874343608108773609">Untuk mendapatkan sandi di semua perangkat Anda, login ke Chrome.</translation> <translation id="2875698561019555027">(Halaman kesalahan Chrome)</translation> +<translation id="2876336351874743617">Jari 2</translation> <translation id="288042212351694283">Akses perangkat Universal 2nd Factor Anda</translation> +<translation id="2881076733170862447">Saat Anda Mengklik Ekstensi</translation> <translation id="2881966438216424900">Terakhir diakses:</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> akan segera dimulai dan disetel ulang</translation> <translation id="2885378588091291677">Pengelola Tugas</translation> @@ -1444,6 +1453,7 @@ <translation id="3154429428035006212">Offline selama lebih dari satu bulan</translation> <translation id="3156531245809797194">Untuk menggunakan Chrome, harap login</translation> <translation id="3157931365184549694">Pulihkan</translation> +<translation id="3158033540161634471">Siapkan sidik jari Anda</translation> <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> @@ -1513,9 +1523,10 @@ <translation id="3285322247471302225">&Tab Baru</translation> <translation id="3288047731229977326">Ekstensi yang berjalan dalam mode pengembang dapat membahayakan komputer Anda. Jika Anda bukan pengembang, Anda sebaiknya menonaktifkan ekstensi yang berjalan dalam mode pengembang ini agar tetap aman.</translation> <translation id="3289856944988573801">Untuk memeriksa pembaruan, gunakan Ethernet atau Wi-Fi.</translation> -<translation id="3292421191230118801">Lanjutkan melihat situs dari seluler di Chromebook Anda</translation> <translation id="32939749466444286">Container Linux tidak dimulai. Harap coba lagi.</translation> <translation id="3294437725009624529">Tamu</translation> +<translation id="329703603001918157">Tidak dapat mengedit pintasan</translation> +<translation id="3297951628821704004">Hapus akun dari perangkat ini</translation> <translation id="329838636886466101">Perbaiki</translation> <translation id="3298789223962368867">URL yang dimasukkan tidak valid.</translation> <translation id="32991397311664836">Perangkat:</translation> @@ -1682,6 +1693,7 @@ <translation id="3534879087479077042">Apa itu pengguna yang dilindungi?</translation> <translation id="3538066758857505094">Error saat meng-uninstal Linux. Coba lagi.</translation> <translation id="354060433403403521">Adaptor AC</translation> +<translation id="354068948465830244">Ini dapat membaca dan mengubah data situs</translation> <translation id="3541661933757219855">Tekan Ctrl+Alt+/ atau Escape untuk menyembunyikan</translation> <translation id="3543393733900874979">Gagal memperbarui (kesalahan: <ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">Tanda tangan X9.62 ECDSA dengan SHA-512</translation> @@ -1727,6 +1739,7 @@ <translation id="3606712892509067288">Hapus dari Better Together</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">Pratinjau gambar pengguna</translation> +<translation id="3609446736023031597">Dapatkan informasi dan rekomendasi terbaru di aplikasi Play Store</translation> <translation id="3609785682760573515">Menyinkronkan...</translation> <translation id="3609895557594655134">Tambahkan VPN Android...</translation> <translation id="361106536627977100">Data Flash</translation> @@ -1756,9 +1769,10 @@ <translation id="363903084947548957">Metode masukan berikutnya</translation> <translation id="3640214691812501263">Tambahkan "<ph name="EXTENSION_NAME" />" untuk <ph name="USER_NAME" />?</translation> <translation id="3644896802912593514">Lebar</translation> -<translation id="3645372836428131288">Gerakkan jari sedikit untuk menangkap bagian sidik jari yang lain.</translation> +<translation id="3645372836428131288">Gerakkan jari sedikit untuk merekam bagian sidik jari yang lain.</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> terdeteksi</translation> <translation id="3649138363871392317">Foto dijepret</translation> +<translation id="3650845953328929506">Upload log tertunda.</translation> <translation id="3650952250015018111">Izinkan "<ph name="APP_NAME" />" untuk mengakses:</translation> <translation id="3651488188562686558">Putuskan sambungan Wi-Fi</translation> <translation id="3652817283076144888">Memulai</translation> @@ -1910,6 +1924,7 @@ <translation id="3856800405688283469">Pilih zona waktu</translation> <translation id="3857228364945137633">Gunakan Smart Lock untuk membuka kunci <ph name="DEVICE_TYPE" /> Anda tanpa menggunakan sandi saat ponsel berada dalam jangkauan.</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation> +<translation id="3857807444929313943">Angkat, kemudian sentuh lagi</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: Sinkronisasi dijeda</translation> <translation id="3860381078714302691">Selamat datang di Hangouts Meet</translation> <translation id="3861241522664181545">Halaman dijeda.</translation> @@ -1928,6 +1943,7 @@ <translation id="3873315167136380065">Untuk mengaktifkannya, <ph name="BEGIN_LINK" />setel ulang sinkronisasi<ph name="END_LINK" /> untuk menghapus frasa sandi sinkronisasi</translation> <translation id="3878840326289104869">Membuat pengguna yang dilindungi</translation> <translation id="3879748587602334249">Pengelola download</translation> +<translation id="3885455691202481064">Sentuh sensor dengan jari telunjuk Anda, yang berada di bagian kiri atas Chromebook.</translation> <translation id="3888550877729210209">Mencatat dengan <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3892414795099177503">Tambahkan OpenVPN / L2TP...</translation> <translation id="3893536212201235195">Baca dan ubah setelan aksesibilitas Anda</translation> @@ -1980,6 +1996,7 @@ <translation id="3950820424414687140">Masuk</translation> <translation id="3954354850384043518">Sedang berlangsung</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz)</translation> +<translation id="3954953195017194676">Anda tidak memiliki log aktivitas WebRTC yang direkam baru-baru ini.</translation> <translation id="3955193568934677022">Izinkan situs memutar konten yang dilindungi (direkomendasikan)</translation> <translation id="3956702100721821638">Tidak dapat menjangkau Google Play</translation> <translation id="3958088479270651626">Impor bookmark dan setelan</translation> @@ -2233,6 +2250,7 @@ <translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation> <translation id="4408599188496843485">Bantuan</translation> <translation id="4409697491990005945">Margin</translation> +<translation id="4410545552906060960">Gunakan nomor (PIN), bukan sandi, untuk membuka kunci perangkat Anda. Untuk menyetel PIN di lain waktu, buka Setelan.</translation> <translation id="4411578466613447185">Penandatangan Kode</translation> <translation id="4412698727486357573">Pusat bantuan</translation> <translation id="44141919652824029">Izinkan "<ph name="APP_NAME" />" untuk mendapatkan daftar perangkat USB yang terpasang?</translation> @@ -2324,8 +2342,10 @@ <translation id="4555769855065597957">Bayangan</translation> <translation id="4556110439722119938">Bookmark, histori, sandi, dan setelan lainnya akan disinkronkan ke Akun Google agar Anda dapat menggunakannya di semua perangkat</translation> <translation id="4558426062282641716">Diminta izin peluncuran otomatis</translation> +<translation id="4558491878126948419">Dapatkan tips dan info terbaru <ph name="DEVICE_TYPE" /> terkait produk Google dan bagikan masukan. Anda dapat berhenti berlangganan kapan saja.</translation> <translation id="4559617833001311418">Situs ini mengakses sensor gerakan atau sensor cahaya Anda.</translation> <translation id="4562155214028662640">Tambahkan Sidik Jari</translation> +<translation id="4563880231729913339">Jari 3</translation> <translation id="4565377596337484307">Sembunyikan sandi</translation> <translation id="4567772783389002344">Tambahkan kata</translation> <translation id="4568213207643490790">Maaf, akun Google tidak diizinkan di perangkat ini.</translation> @@ -2400,6 +2420,7 @@ <translation id="4681930562518940301">Buka &gambar asli di tab baru</translation> <translation id="4682551433947286597">Wallpaper muncul di Layar Masuk.</translation> <translation id="4684427112815847243">Sinkronkan semua</translation> +<translation id="4688036121858134881">ID log lokal: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4689235506267737042">Pilih preferensi demo</translation> <translation id="4689421377817139245">Sinkronisasikan bookmark ini ke iPhone Anda</translation> <translation id="4690091457710545971"><Empat file dibuat oleh firmware Wi-Fi Intel: csr.lst, fh_regs.lst, radio_reg.lst, monitor.lst.sysmon. Ketiga file pertama adalah file biner yang berisi dump pendaftaran, dan dinyatakan oleh Intel tidak berisi informasi pribadi atau yang mengidentifikasi perangkat. File terakhir adalah pelacakan eksekusi dari firmware Intel; file tersebut telah dibersihkan dari informasi pribadi atau yang mengidentifikasi perangkat, namun terlalu besar untuk ditampilkan di sini. Semua file tersebut dibuat untuk merespons masalah Wi-Fi baru-baru ini di perangkat Anda, dan akan dibagikan kepada Intel untuk membantu memecahkan masalah tersebut.></translation> @@ -2584,6 +2605,7 @@ <translation id="4945444280533270988">Smart Lock aktif</translation> <translation id="4953689047182316270">Merespons Acara Aksesibilitas</translation> <translation id="4953808748584563296">Avatar oranye default</translation> +<translation id="4955710816792587366">Pilih PIN Anda</translation> <translation id="4955814292505481804">Tahunan</translation> <translation id="4957949153200969297">Hanya mengaktifkan fitur yang terkait dengan Sinkronisasi <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="4959262764292427323">Sandi disimpan di Akun Google agar Anda dapat menggunakannya di perangkat mana pun</translation> @@ -2649,6 +2671,7 @@ <translation id="5050042263972837708">Nama grup</translation> <translation id="5052499409147950210">Edit situs</translation> <translation id="5053604404986157245">Sandi TPM yang dibuat secara acak tidak tersedia. Hal ini normal setelah menjalankan Powerwash.</translation> +<translation id="5057110919553308744">Saat Anda mengklik ekstensi</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{Folder ini berisi bookmark. Yakin ingin menghapusnya?}other{Folder ini berisi # bookmark. Yakin ingin menghapusnya?}}</translation> <translation id="5061708541166515394">Kontras</translation> <translation id="5062930723426326933">Gagal masuk, sambungkan ke internet lalu coba lagi.</translation> @@ -2824,6 +2847,7 @@ <translation id="5315873049536339193">identitas</translation> <translation id="5316716239522500219">Cerminkan monitor</translation> <translation id="5317780077021120954">Simpan</translation> +<translation id="5318819489018851358">Bagikan dengan Linux</translation> <translation id="5319359161174645648">Google merekomendasikan Chrome</translation> <translation id="5319566035256672173">Perangkat ini tidak akan lagi menerima update software terbaru. Pertimbangkan untuk mengupgradenya.</translation> <translation id="532247166573571973">Server mungkin tidak dapat dijangkau. Coba lagi nanti.</translation> @@ -3164,6 +3188,7 @@ <translation id="5804241973901381774">Izin</translation> <translation id="580571955903695899">Susun Ulang menurut Judul</translation> <translation id="5807290661599647102">Setel Kunci Layar</translation> +<translation id="5811750797187914944">Semua siap</translation> <translation id="5814126672212206791">Jenis sambungan</translation> <translation id="5815645614496570556">X.400 Address</translation> <translation id="5816434091619127343">Perubahan printer yang diminta akan membuat printer tidak dapat digunakan.</translation> @@ -3201,6 +3226,7 @@ <translation id="5855773610748894548">Maaf, terjadi error pada modul aman.</translation> <translation id="5856721540245522153">Aktifkan fitur debug</translation> <translation id="5857090052475505287">Folder Baru</translation> +<translation id="5858490737742085133">Terminal</translation> <translation id="585979798156957858">Meta Eksternal</translation> <translation id="5860033963881614850">Nonaktif</translation> <translation id="5860209693144823476">Tab 3</translation> @@ -3223,6 +3249,7 @@ <translation id="5882919346125742463">Jaringan yang Dikenal</translation> <translation id="5884474295213649357">Tab ini terhubung dengan perangkat USB.</translation> <translation id="5885324376209859881">Kelola setelan media...</translation> +<translation id="5886009770935151472">Jari 1</translation> <translation id="5889282057229379085">Jumlah maksimum CA perantara: <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">Mulai Ulang</translation> <translation id="5895187275912066135">Diterbitkan Pada</translation> @@ -3307,6 +3334,7 @@ <translation id="6025215716629925253">Pelacakan Tumpukan</translation> <translation id="6026047032548434446">Instal aplikasi?</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - Perangkat USB tersambung</translation> +<translation id="6028117231645531007">Tambahkan sidik jari</translation> <translation id="6029027682598229313">Penginstalan Linux selesai.</translation> <translation id="6029587122245504742">Paling lambat</translation> <translation id="6032912588568283682">Sistem file</translation> @@ -3321,6 +3349,7 @@ <translation id="6042308850641462728">Lainnya</translation> <translation id="6043317578411397101"><ph name="APP_NAME" /> membagikan tab Chrome dengan <ph name="TAB_NAME" />.</translation> <translation id="6044805581023976844"><ph name="APP_NAME" /> membagikan tab Chrome dan audio dengan <ph name="TAB_NAME" />.</translation> +<translation id="6047938872139769630">Anda dapat menggunakan PIN untuk membuka kunci perangkat saat logout</translation> <translation id="6049004884579590341">Tekan dan tahan |<ph name="ACCELERATOR" />| untuk keluar dari layar penuh</translation> <translation id="6049065490165456785">Foto dari kamera internal</translation> <translation id="6051354611314852653">Ups! Sistem gagal memberi otorisasi akses API untuk perangkat ini.</translation> @@ -3343,6 +3372,7 @@ <translation id="6075907793831890935">Menukar data dengan perangkat yang bernama <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Sertakan screenshot ini</translation> <translation id="6077131872140550515">Hapus dari pilihan</translation> +<translation id="6077189836672154517">Tips dan info terbaru tentang <ph name="DEVICE_TYPE" /></translation> <translation id="6078323886959318429">Tambahkan pintasan</translation> <translation id="6078752646384677957">Harap periksa tingkat audio dan mikrofon Anda.</translation> <translation id="6080515710685820702">Menggunakan komputer bersama? Coba buka jendela samaran.</translation> @@ -3392,6 +3422,7 @@ <translation id="6144938890088808325">Bantu kami meningkatkan Chromebook</translation> <translation id="6146563240635539929">Video</translation> <translation id="6147020289383635445">Pratinjau cetak gagal.</translation> +<translation id="6148052338549899048">Tidak ada perangkat yang memenuhi syarat. <ph name="LINK_BEGIN" />Pelajari lebih lanjut<ph name="LINK_END" /></translation> <translation id="614940544461990577">Coba:</translation> <translation id="6150853954427645995">Untuk menyimpan file ini agar dapat digunakan saat offline, sambungkan ke internet, klik kanan file, dan pilih opsi <ph name="OFFLINE_CHECKBOX_NAME" />.</translation> <translation id="6151323131516309312">Tekan <ph name="SEARCH_KEY" /> untuk mencari <ph name="SITE_NAME" /></translation> @@ -3411,6 +3442,7 @@ <translation id="6169040057125497443">Harap periksa mikrofon Anda.</translation> <translation id="6169666352732958425">Tidak dapat mentransmisi desktop.</translation> <translation id="6171948306033499786">Jeda pencetakan</translation> +<translation id="6173623053897475761">Ketik PIN Anda lagi</translation> <translation id="6175314957787328458">Microsoft Domain GUID</translation> <translation id="6176043333338857209">Bluetooth akan diaktifkan untuk sementara untuk berkomunikasi dengan kunci keamanan</translation> <translation id="6178664161104547336">Pilih sertifikat</translation> @@ -3600,11 +3632,13 @@ <translation id="6456394469623773452">Lancar</translation> <translation id="6456631036739229488">Ponsel Smart Lock diubah. Masukkan sandi untuk mengupdate Smart Lock. Lain kali, ponsel akan membuka kunci <ph name="DEVICE_TYPE" /> Anda. Nonaktifkan Smart Lock di Setelan.</translation> <translation id="645705751491738698">Lanjutkan mencekal JavaScript</translation> +<translation id="6458701200018867744">Upload gagal (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Gunakan Pilihan untuk Temukan</translation> <translation id="6459799433792303855">Jendela aktif dipindahkan ke layar lain.</translation> <translation id="6460601847208524483">Temukan Berikutnya</translation> <translation id="6463795194797719782">&Edit</translation> <translation id="6466988389784393586">&Buka Semua Bookmark</translation> +<translation id="6467304607960172345">Optimalkan video layar penuh</translation> <translation id="6468485451923838994">Font</translation> <translation id="6472207088655375767">OTP</translation> <translation id="6472893788822429178">Tampilkan tombol Beranda</translation> @@ -3780,6 +3814,7 @@ <translation id="6725206449694821596">Protokol Pencetakan Internet (IPP)</translation> <translation id="6727005317916125192">Panel sebelumnya</translation> <translation id="6732801395666424405">Sertifikat tidak dimuat</translation> +<translation id="6732900235521116609">Tidak dapat menghapus pintasan</translation> <translation id="6735304988756581115">Tampilkan cookie dan data situs lainnya...</translation> <translation id="6736045498964449756">Aduh, sandi tidak cocok!</translation> <translation id="6736243959894955139">Alamat</translation> @@ -3863,6 +3898,7 @@ <translation id="6860427144121307915">Buka di Tab</translation> <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="6865708901122695652">Log aktivitas WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">Suhu warna</translation> <translation id="6870888490422746447">Pilih aplikasi untuk membagikan:</translation> <translation id="6871644448911473373">Penanggap OCSP: <ph name="LOCATION" /></translation> @@ -3907,6 +3943,7 @@ <translation id="694592694773692225">Pengalihan diblokir di halaman ini.</translation> <translation id="6949306908218145636">Bookmark Halaman Aktif...</translation> <translation id="6950627417367801484">Pulihkan aplikasi</translation> +<translation id="6950943362443484797">Kami akan menginstal aplikasi tersebut untuk Anda</translation> <translation id="6951153907720526401">Penangan Pembayaran</translation> <translation id="6955446738988643816">Periksa Pop-up</translation> <translation id="6957231940976260713">Nama layanan</translation> @@ -3942,6 +3979,7 @@ <translation id="6998711733709403587"><ph name="SELCTED_FOLDERS_COUNT" /> folder dipilih</translation> <translation id="6998793565256476099">Daftarkan perangkat untuk konferensi video</translation> <translation id="7000347579424117903">Sertakan Ctrl, Alt, atau Search</translation> +<translation id="700203306553508933">Simpan kartu untuk menggunakan Google Pay</translation> <translation id="7002055706763150362">Untuk menyiapkan Smart Lock untuk Chromebook, Google perlu memastikan bahwa memang Andalah yang mengaksesnya. Ketik sandi untuk memulai.</translation> <translation id="7002454948392136538">Pilih pengelola untuk pengguna yang dilindungi ini</translation> <translation id="7003339318920871147">Basis data web</translation> @@ -3989,6 +4027,7 @@ <translation id="706626672220389329">Error saat memasang URL berbagi. URL berbagi yang ditentukan sudah dipasang.</translation> <translation id="7066944511817949584">Gagal tersambung ke "<ph name="DEVICE_NAME" />".</translation> <translation id="7067725467529581407">Jangan tampilkan ini lagi.</translation> +<translation id="7070484045139057854">Ini Dapat Membaca dan Mengubah Data Situs</translation> <translation id="7072010813301522126">Nama pintasan</translation> <translation id="707392107419594760">Pilih keyboard Anda:</translation> <translation id="7075513071073410194">PKCS #1 MD5 Dengan Enkripsi RSA</translation> @@ -4118,6 +4157,7 @@ <translation id="7256710573727326513">Buka di tab</translation> <translation id="725758059478686223">Layanan Pencetakan</translation> <translation id="7257666756905341374">Mengakses data yang Anda salin dan tempel</translation> +<translation id="7258697411818564379">PIN Anda ditambahkan</translation> <translation id="7260764918845374269">Kunci keamanan harus berada dalam mode penyambungan jika Anda ingin melihatnya. Tekan tombol di kunci Anda minimal selama 5 detik.</translation> <translation id="7262004276116528033">Layanan masuk ini dihosting oleh <ph name="SAML_DOMAIN" /></translation> <translation id="7268365133021434339">Tutup Tab</translation> @@ -4265,6 +4305,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">Lupa password lama?</translation> <translation id="7497215489070763236">Sertifikat CA server</translation> +<translation id="7497981768003291373">Anda tidak memiliki log teks WebRTC yang direkam baru-baru ini.</translation> <translation id="7502658306369382406">Alamat IPv6</translation> <translation id="7503191893372251637">Netscape Certificate Type</translation> <translation id="7503821294401948377">Tidak dapat memuat ikon '<ph name="ICON" />' untuk tindakan browser.</translation> @@ -4307,6 +4348,7 @@ <translation id="7564847347806291057">Akhiri proses</translation> <translation id="7566118625369982896">Kelola link aplikasi Play</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">Letakkan jari Anda</translation> <translation id="756809126120519699">Data Chrome telah dihapus</translation> <translation id="7568790562536448087">Memperbarui</translation> <translation id="7571643774869182231">Tidak cukup ruang untuk melakukan update</translation> @@ -4469,6 +4511,7 @@ <ph name="LINE_BREAK2" /> Coba pilih lebih sedikit foto.</translation> <translation id="782590969421016895">Gunakan halaman saat ini</translation> +<translation id="7826346148677309647">Anda dapat menemukan aplikasi lainnya untuk perangkat di Play Store.</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />Fitur Debug<ph name="END_H3" /> <ph name="BR" /> Anda dapat mengaktifkan fitur debug di Perangkat Chrome OS untuk menginstal dan menguji kode kustom di perangkat. Tindakan ini memungkinkan Anda untuk:<ph name="BR" /> @@ -4665,6 +4708,7 @@ <translation id="8059417245945632445">&Periksa perangkat</translation> <translation id="8063235345342641131">Avatar hijau default</translation> <translation id="8064671687106936412">Kunci:</translation> +<translation id="8065485338434000013">Sebagian kartu Anda hanya dapat digunakan di perangkat ini</translation> <translation id="806812017500012252">Susun ulang menurut judul</translation> <translation id="8068253693380742035">Sentuh untuk login</translation> <translation id="8069615408251337349">Google Cloud Print</translation> @@ -4742,6 +4786,7 @@ <translation id="8191453843330043793">Pemecah Proxy V8</translation> <translation id="8193175696669055101">Model perangkat</translation> <translation id="8195027750202970175">Ukuran di disk</translation> +<translation id="8198323535106903877">Kami akan menginstal <ph name="NUMBER_OF_APPS" /> aplikasi tersebut untuk Anda</translation> <translation id="8199300056570174101">Properti Perangkat dan Jaringan (Layanan)</translation> <translation id="8200772114523450471">Lanjutkan</translation> <translation id="8202160505685531999">Masukkan kembali sandi untuk memperbarui profil <ph name="DEVICE_TYPE" /> Anda.</translation> @@ -4755,7 +4800,7 @@ <translation id="8214962590150211830">Hapus Orang ini</translation> <translation id="8217399928341212914">Lanjutkan memblokir download otomatis beberapa file</translation> <translation id="8223479393428528563">Untuk menyimpan file ini agar dapat digunakan saat offline, sambungkan ke internet, klik kanan pada file, dan pilih opsi <ph name="OFFLINE_CHECKBOX_NAME" />.</translation> -<translation id="8225753906568652947">Tukarkan penawaran Anda</translation> +<translation id="8225753906568652947">Ambil penawaran</translation> <translation id="8226222018808695353">Terlarang</translation> <translation id="8226619461731305576">Antrean</translation> <translation id="8226742006292257240">Di bawah adalah sandi TPM yang dibuat secara acak yang telah ditetapkan untuk komputer Anda:</translation> @@ -4961,7 +5006,6 @@ <translation id="8557930019681227453">Manifes</translation> <translation id="8559694214572302298">Pendekode Gambar</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Lanjutkan Membaca</translation> <translation id="8565650234829130278">Berusaha menurunkan versi aplikasi.</translation> <translation id="8569002732135253578">Sedang mencetak <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">Tidak ditemukan tujuan</translation> @@ -5074,6 +5118,8 @@ <translation id="8716931980467311658">Hapus semua aplikasi dan data Linux di folder file Linux dari <ph name="DEVICE_TYPE" /> ini?</translation> <translation id="8719653885894320876">Gagal mendownload <ph name="PLUGIN_NAME" /></translation> <translation id="8723829621484579639">Subkerangka mode Penyamaran untuk: <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">Saat melihat ikon ini, gunakan sidik jari untuk identifikasi atau menyetujui pembelian.</translation> +<translation id="8724409975248965964">Sidik jari ditambahkan</translation> <translation id="8724859055372736596">&Tampilkan dalam Folder</translation> <translation id="8725066075913043281">Coba lagi</translation> <translation id="8725178340343806893">Favorit/Bookmark</translation> @@ -5154,6 +5200,7 @@ <translation id="8838770651474809439">Hamburger</translation> <translation id="883911313571074303">Gambar anotasi</translation> <translation id="8845001906332463065">Dapatkan bantuan</translation> +<translation id="8846132060409673887">Membaca produsen dan model komputer ini</translation> <translation id="8846141544112579928">Mencari keyboard...</translation> <translation id="8847988622838149491">USB</translation> <translation id="8859057652521303089">Pilih bahasa Anda:</translation> @@ -5367,6 +5414,7 @@ <translation id="9161070040817969420">Subkerangka untuk: <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">Kirim data sistem. Saat ini, perangkat secara otomatis mengirim data penggunaan perangkat dan aplikasi serta diagnostik ke Google. Setelan ini diterapkan oleh pemilik. Jika Anda mengaktifkan Aktivitas Web & Aplikasi tambahan, informasi ini akan disimpan dalam akun sehingga Anda dapat mengelolanya di Aktivitas Saya. <ph name="BEGIN_LINK1" />Pelajari Lebih Lanjut<ph name="END_LINK1" /></translation> <translation id="916607977885256133">Picture-in-Picture</translation> +<translation id="9168436347345867845">Nanti saja</translation> <translation id="9169496697824289689">Lihat pintasan keyboard</translation> <translation id="9169931577761441333">Tambahkan <ph name="APP_NAME" /> ke layar Utama</translation> <translation id="9170848237812810038">&Urung</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb index 60c14f66..11149125 100644 --- a/chrome/app/resources/generated_resources_it.xtb +++ b/chrome/app/resources/generated_resources_it.xtb
@@ -247,6 +247,7 @@ <translation id="1358741672408003399">Ortografia e grammatica</translation> <translation id="1361164813881551742">Aggiungi manualmente</translation> <translation id="1361655923249334273">Inutilizzato</translation> +<translation id="1361872463926621533">Riproduci suono all'avvio</translation> <translation id="1363028406613469049">Traccia</translation> <translation id="1367951781824006909">Scegli un file</translation> <translation id="1368265273904755308">Consente di segnalare un problema</translation> @@ -570,6 +571,7 @@ <translation id="1817310072033858383">Configura Smart Lock per il tuo dispositivo <ph name="DEVICE_TYPE" /></translation> <translation id="1817871734039893258">Ripristino file Microsoft</translation> <translation id="1818007989243628752">Elimina la password di <ph name="USERNAME" /></translation> +<translation id="1818913467757368489">Caricamento del log in corso.</translation> <translation id="1819721979226826163">Tocca Notifiche app > Google Play Services.</translation> <translation id="1826516787628120939">Verifica in corso...</translation> <translation id="1828378091493947763">Questo plug-in non è supportato sul dispositivo in uso</translation> @@ -618,11 +620,13 @@ <translation id="1890674179660343635"><span>ID: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">Apri a schermo intero</translation> <translation id="189358972401248634">Altre lingue</translation> +<translation id="1894591787927543791">Salva la carta per usare Google Pay</translation> <translation id="1895658205118569222">Chiusura</translation> <translation id="1895934970388272448">Devi confermare la registrazione della stampante per terminare la procedura. Controlla.</translation> <translation id="1897762215429052132">Configura la connessione di rete, la lingua, il layout della tastiera...</translation> <translation id="1901303067676059328">Seleziona &tutto</translation> <translation id="1902576642799138955">Periodo di validità</translation> +<translation id="1904518222538904133">Una delle tue carte può essere usata soltanto su questo dispositivo</translation> <translation id="1905375423839394163">Nome del dispositivo Chromebook</translation> <translation id="1905710495812624430">Numero massimo di tentativi consentiti superato.</translation> <translation id="1909880997794698664">Vuoi mantenere definitivamente questo dispositivo in modalità kiosk?</translation> @@ -659,6 +663,7 @@ <translation id="1962969542251276847">Blocco schermo</translation> <translation id="1963227389609234879">Rimuovi tutto</translation> <translation id="1965624977906726414">Non ha autorizzazioni speciali.</translation> +<translation id="1969654639948595766">Log di testo WebRTC (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">Modalità video attivata</translation> <translation id="197288927597451399">Conserva</translation> <translation id="1974043046396539880">Punti di distribuzione CRL</translation> @@ -802,6 +807,7 @@ <translation id="2190069059097339078">WiFi Credentials Getter</translation> <translation id="219008588003277019">Modulo Native Client: <ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(vuoto)</translation> +<translation id="2191223688506386601">Un'ultima cosa</translation> <translation id="2192505247865591433">Da:</translation> <translation id="2193365732679659387">Impostazioni di attendibilità</translation> <translation id="2195729137168608510">Protezione email</translation> @@ -1025,6 +1031,7 @@ <translation id="2534460670861217804">Proxy HTTP sicuro</translation> <translation id="253557089021624350">Conteggio attività keep-alive</translation> <translation id="2538361623464451692">Sincronizzazione disattivata</translation> +<translation id="2539876824180063438">Sposta leggermente il dito indice per aggiungere le diverse parti dell'impronta.</translation> <translation id="2541002089857695151">Vuoi ottimizzare la trasmissione a schermo intero?</translation> <translation id="2542049655219295786">Tabella Google</translation> <translation id="2544853746127077729">Certificato di autenticazione rifiutato dalla rete</translation> @@ -1257,7 +1264,9 @@ <translation id="287286579981869940">Aggiungi <ph name="PROVIDER_NAME" />...</translation> <translation id="2874343608108773609">Accedi a Chrome per trovare le tue password su tutti i dispositivi.</translation> <translation id="2875698561019555027">(pagine di errore Chrome)</translation> +<translation id="2876336351874743617">Dito 2</translation> <translation id="288042212351694283">Accesso ai tuoi dispositivi Universal 2nd Factor</translation> +<translation id="2881076733170862447">Quando fai clic sull'estensione</translation> <translation id="2881966438216424900">Ultimo accesso:</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> verrà riavviato e ripristinato tra poco</translation> <translation id="2885378588091291677">Task Manager</translation> @@ -1443,6 +1452,7 @@ <translation id="3154429428035006212">Offline per più di un mese</translation> <translation id="3156531245809797194">Accedi per usare Chrome</translation> <translation id="3157931365184549694">Ripristina</translation> +<translation id="3158033540161634471">Imposta la tua impronta</translation> <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> @@ -1512,9 +1522,10 @@ <translation id="3285322247471302225">Nuova &scheda</translation> <translation id="3288047731229977326">Le estensioni in esecuzione in modalità sviluppatore potrebbero danneggiare il computer. Se non sei uno sviluppatore, dovresti disattivare queste estensioni per la tua sicurezza.</translation> <translation id="3289856944988573801">Per verificare la disponibilità di aggiornamenti, utilizza una rete Ethernet o Wi-Fi.</translation> -<translation id="3292421191230118801">Riprendi la visualizzazione dei siti da dispositivi mobili sul tuo Chromebook</translation> <translation id="32939749466444286">Il container Linux non è stato avviato. Riprova.</translation> <translation id="3294437725009624529">Ospite</translation> +<translation id="329703603001918157">Impossibile modificare la scorciatoia</translation> +<translation id="3297951628821704004">Rimuovi account da questo dispositivo</translation> <translation id="329838636886466101">Ripara</translation> <translation id="3298789223962368867">L'URL inserito non è valido.</translation> <translation id="32991397311664836">Dispositivi:</translation> @@ -1679,6 +1690,7 @@ <translation id="3534879087479077042">Che cos'è un utente supervisionato?</translation> <translation id="3538066758857505094">Errore durante la disinstallazione di Linux. Riprova.</translation> <translation id="354060433403403521">Adattatore CA</translation> +<translation id="354068948465830244">Può leggere e cambiare i dati dei siti</translation> <translation id="3541661933757219855">Digita Ctrl+Alt+/ o Esc per nascondere</translation> <translation id="3543393733900874979">Aggiornamento non riuscito (errore: <ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">Firma X9.62 ECDSA con SHA-512</translation> @@ -1724,6 +1736,7 @@ <translation id="3606712892509067288">Rimuovi da Better Together</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">Anteprima immagine utente</translation> +<translation id="3609446736023031597">Ricevi gli ultimi aggiornamenti e consigli relativi alle app del Play Store</translation> <translation id="3609785682760573515">Sincronizzazione in corso...</translation> <translation id="3609895557594655134">Aggiungi VPN Android...</translation> <translation id="361106536627977100">Dati Flash</translation> @@ -1756,6 +1769,7 @@ <translation id="3645372836428131288">Muovi leggermente il dito per acquisire una parte diversa dell'impronta digitale.</translation> <translation id="3648348069317717750">Rilevato dispositivo <ph name="USB_DEVICE_NAME" /></translation> <translation id="3649138363871392317">La foto è stata scattata</translation> +<translation id="3650845953328929506">Caricamento del log in attesa.</translation> <translation id="3650952250015018111">Consenti a "<ph name="APP_NAME" />" di accedere a:</translation> <translation id="3651488188562686558">Disconnessione dalla rete Wi-Fi</translation> <translation id="3652817283076144888">Inizializzazione in corso</translation> @@ -1907,6 +1921,7 @@ <translation id="3856800405688283469">Seleziona il fuso orario</translation> <translation id="3857228364945137633">Prova Smart Lock per sbloccare il tuo dispositivo <ph name="DEVICE_TYPE" /> senza password quando il tuo telefono è nelle vicinanze.</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation> +<translation id="3857807444929313943">Solleva, quindi tocca di nuovo</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: sincronizzazione in pausa</translation> <translation id="3860381078714302691">Benvenuto in Hangouts Meet</translation> <translation id="3861241522664181545">Pagina in pausa.</translation> @@ -1925,6 +1940,7 @@ <translation id="3873315167136380065">Per attivare questa funzione, <ph name="BEGIN_LINK" />reimposta la sincronizzazione<ph name="END_LINK" /> per rimuovere la passphrase di sincronizzazione</translation> <translation id="3878840326289104869">Creazione utente supervisionato in corso</translation> <translation id="3879748587602334249">Gestione dei download</translation> +<translation id="3885455691202481064">Tocca con il dito indice il sensore, che si trova nella parte in alto a sinistra del Chromebook.</translation> <translation id="3888550877729210209">Creazione di appunti con <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3892414795099177503">Aggiungi L2TP/VPN aperta…</translation> <translation id="3893536212201235195">Leggere e modificare le impostazioni di accessibilità</translation> @@ -1977,6 +1993,7 @@ <translation id="3950820424414687140">Accedi</translation> <translation id="3954354850384043518">In corso</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertz)</translation> +<translation id="3954953195017194676">Nessun log eventi WebRTC acquisito di recente.</translation> <translation id="3955193568934677022">Consenti ai siti di riprodurre i contenuti protetti (opzione consigliata)</translation> <translation id="3956702100721821638">Impossibile raggiungere Google Play</translation> <translation id="3958088479270651626">Importa preferiti e impostazioni</translation> @@ -2230,6 +2247,7 @@ <translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation> <translation id="4408599188496843485">G&uida</translation> <translation id="4409697491990005945">Margini</translation> +<translation id="4410545552906060960">Usa un numero (PIN) anziché una password per sbloccare il dispositivo. Per impostare il PIN in un secondo momento, vai alle Impostazioni.</translation> <translation id="4411578466613447185">Certificato di firma del codice</translation> <translation id="4412698727486357573">Centro assistenza</translation> <translation id="44141919652824029">Vuoi consentire a "<ph name="APP_NAME" />" di recuperare l'elenco di dispositivi USB collegati?</translation> @@ -2321,8 +2339,10 @@ <translation id="4555769855065597957">Ombra</translation> <translation id="4556110439722119938">I tuoi preferiti, la cronologia, le password e altre impostazioni verranno sincronizzati con il tuo account Google per consentirti di utilizzarli su tutti i tuoi dispositivi</translation> <translation id="4558426062282641716">Autorizzazione di avvio automatico richiesta</translation> +<translation id="4558491878126948419">Ricevi suggerimenti per <ph name="DEVICE_TYPE" />, aggiornamenti sui prodotti Google e condividi il tuo feedback. Puoi annullare l'iscrizione in qualsiasi momento.</translation> <translation id="4559617833001311418">Questo sito ha accesso ai sensori di movimento o della luce.</translation> <translation id="4562155214028662640">Aggiungi impronta digitale</translation> +<translation id="4563880231729913339">Dito 3</translation> <translation id="4565377596337484307">Nascondi password</translation> <translation id="4567772783389002344">Aggiungi parola</translation> <translation id="4568213207643490790">Spiacenti, gli account Google non sono consentiti su questo dispositivo.</translation> @@ -2397,6 +2417,7 @@ <translation id="4681930562518940301">Apri &originale in nuova scheda</translation> <translation id="4682551433947286597">Gli sfondi vengono visualizzati sulla schermata di accesso.</translation> <translation id="4684427112815847243">Sincronizza tutto</translation> +<translation id="4688036121858134881">ID log locale: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4689235506267737042">Scegli le preferenze relative alle demo</translation> <translation id="4689421377817139245">Sincronizza il preferito con l'iPhone</translation> <translation id="4690091457710545971"><Quattro file generati dal firmware Intel Wi-Fi: csr.lst, fh_regs.lst, radio_reg.lst, monitor.lst.sysmon. I primi tre sono file binari che contengono dump di registro e che, secondo quanto dichiarato da Intel, non contengono informazioni personali o di identificazione del dispositivo. L'ultimo file è una traccia di esecuzione dal firmware Intel, privato di ogni informazione personale o di identificazione del dispositivo, ma troppo grande per essere mostrato qui. Questi file sono stati generati in risposta ai recenti problemi del tuo dispositivo con la rete Wi-Fi e verranno condivisi con Intel per agevolare la risoluzione di tali problemi.></translation> @@ -2581,6 +2602,7 @@ <translation id="4945444280533270988">Smart Lock attivo</translation> <translation id="4953689047182316270">Rispondi agli eventi di accessibilità</translation> <translation id="4953808748584563296">Avatar arancione predefinito</translation> +<translation id="4955710816792587366">Scegli il PIN</translation> <translation id="4955814292505481804">Annuale</translation> <translation id="4957949153200969297">Attiva solo le funzionalità relative alla sincronizzazione di <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="4959262764292427323">Le password vengono salvate nel tuo Account Google affinché tu possa usarle su qualsiasi dispositivo</translation> @@ -2646,6 +2668,7 @@ <translation id="5050042263972837708">Nome del gruppo</translation> <translation id="5052499409147950210">Modifica del sito</translation> <translation id="5053604404986157245">La password TPM generata in modo casuale non è disponibile, ma è normale dopo un Powerwash.</translation> +<translation id="5057110919553308744">Quando fai clic sull'estensione</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{La cartella contiene un preferito. Eliminarla?}other{La cartella contiene # preferiti. Eliminarla?}}</translation> <translation id="5061708541166515394">Contrasto</translation> <translation id="5062930723426326933">Accesso non riuscito, connettiti a Internet e riprova.</translation> @@ -2820,6 +2843,7 @@ <translation id="5315873049536339193">Identità</translation> <translation id="5316716239522500219">Consente di duplicare i monitor</translation> <translation id="5317780077021120954">Salva</translation> +<translation id="5318819489018851358">Condividi con Linux</translation> <translation id="5319359161174645648">Google consiglia Chrome</translation> <translation id="5319566035256672173">Questo dispositivo non riceverà più gli aggiornamenti software più recenti. Prova a eseguire l'upgrade.</translation> <translation id="532247166573571973">Il server potrebbe non essere raggiungibile. Riprova più tardi.</translation> @@ -3160,6 +3184,7 @@ <translation id="5804241973901381774">Autorizzazioni</translation> <translation id="580571955903695899">Riordina per titolo</translation> <translation id="5807290661599647102">Imposta un blocco schermo</translation> +<translation id="5811750797187914944">Fatto</translation> <translation id="5814126672212206791">Tipo di connessione</translation> <translation id="5815645614496570556">Indirizzo X.400</translation> <translation id="5816434091619127343">Le modifiche richieste renderebbero la stampante inutilizzabile.</translation> @@ -3197,6 +3222,7 @@ <translation id="5855773610748894548">Spiacenti, errore del modulo per la sicurezza.</translation> <translation id="5856721540245522153">Attiva funzioni di debug</translation> <translation id="5857090052475505287">Nuova cartella</translation> +<translation id="5858490737742085133">Terminale</translation> <translation id="585979798156957858">Meta esterno</translation> <translation id="5860033963881614850">Off</translation> <translation id="5860209693144823476">Scheda 3</translation> @@ -3219,6 +3245,7 @@ <translation id="5882919346125742463">Reti note</translation> <translation id="5884474295213649357">La scheda è connessa a un dispositivo USB.</translation> <translation id="5885324376209859881">Gestisci impostazioni dei dispositivi multimediali...</translation> +<translation id="5886009770935151472">Dito 1</translation> <translation id="5889282057229379085">Numero massimo di CA intermedie: <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">Riavvia</translation> <translation id="5895187275912066135">Emesso in data</translation> @@ -3303,6 +3330,7 @@ <translation id="6025215716629925253">Analisi dello stack</translation> <translation id="6026047032548434446">Vuoi installare l'app?</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - Dispositivo USB collegato</translation> +<translation id="6028117231645531007">Aggiungi impronta</translation> <translation id="6029027682598229313">Installazione di Linux completata.</translation> <translation id="6029587122245504742">Minima</translation> <translation id="6032912588568283682">File system</translation> @@ -3317,6 +3345,7 @@ <translation id="6042308850641462728">Più</translation> <translation id="6043317578411397101"><ph name="APP_NAME" /> condivide una scheda Chrome con <ph name="TAB_NAME" />.</translation> <translation id="6044805581023976844"><ph name="APP_NAME" /> condivide l'audio e una scheda Chrome con <ph name="TAB_NAME" />.</translation> +<translation id="6047938872139769630">Puoi usare il PIN per sbloccare il dispositivo se non hai eseguito l'accesso</translation> <translation id="6049004884579590341">Tieni premuto |<ph name="ACCELERATOR" />| per uscire dallo schermo intero</translation> <translation id="6049065490165456785">Foto dalla fotocamera interna</translation> <translation id="6051354611314852653">Spiacenti, il sistema non è riuscito ad autorizzare l'accesso API per questo dispositivo.</translation> @@ -3339,6 +3368,7 @@ <translation id="6075907793831890935">Scambio di dati con il dispositivo <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Includi questo screenshot</translation> <translation id="6077131872140550515">Rimuovi dai preferiti</translation> +<translation id="6077189836672154517">Suggerimenti e aggiornamenti relativi a <ph name="DEVICE_TYPE" /></translation> <translation id="6078323886959318429">Aggiungi scorciatoia</translation> <translation id="6078752646384677957">Controlla i livelli audio e del microfono.</translation> <translation id="6080515710685820702">Condividi il computer con altre persone? Prova ad aprire una finestra di navigazione in incognito.</translation> @@ -3388,6 +3418,7 @@ <translation id="6144938890088808325">Aiutaci a migliorare i Chromebook</translation> <translation id="6146563240635539929">Video</translation> <translation id="6147020289383635445">Anteprima di stampa non riuscita.</translation> +<translation id="6148052338549899048">Nessun dispositivo idoneo. <ph name="LINK_BEGIN" />Ulteriori informazioni<ph name="LINK_END" />.</translation> <translation id="614940544461990577">Prova a:</translation> <translation id="6150853954427645995">Se desideri salvare il file per l'utilizzo offline, torna in linea, fai clic con il pulsante destro del mouse sul file e seleziona l'opzione <ph name="OFFLINE_CHECKBOX_NAME" />.</translation> <translation id="6151323131516309312">Premi <ph name="SEARCH_KEY" /> per cercare su <ph name="SITE_NAME" /></translation> @@ -3407,6 +3438,7 @@ <translation id="6169040057125497443">Controlla il microfono.</translation> <translation id="6169666352732958425">Impossibile trasmettere il desktop.</translation> <translation id="6171948306033499786">Metti in pausa la stampa</translation> +<translation id="6173623053897475761">Digita di nuovo il PIN</translation> <translation id="6175314957787328458">GUID di dominio Microsoft</translation> <translation id="6176043333338857209">Il Bluetooth verrà temporaneamente abilitato per comunicare con il tuo token di sicurezza</translation> <translation id="6178664161104547336">Seleziona un certificato</translation> @@ -3596,11 +3628,13 @@ <translation id="6456394469623773452">Accettabile</translation> <translation id="6456631036739229488">Telefono con Smart Lock cambiato. Inserisci la password per aggiornare Smart Lock. La prossima volta potrai usare il tuo telefono per sbloccare il dispositivo <ph name="DEVICE_TYPE" />. Disattiva Smart Lock nelle Impostazioni.</translation> <translation id="645705751491738698">Continua a bloccare JavaScript</translation> +<translation id="6458701200018867744">Caricamento non riuscito (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Utilizza selezione per Trova</translation> <translation id="6459799433792303855">Finestra attiva spostata in un altro schermo.</translation> <translation id="6460601847208524483">Trova successivo</translation> <translation id="6463795194797719782">&Modifica</translation> <translation id="6466988389784393586">&Apri tutti i Preferiti</translation> +<translation id="6467304607960172345">Ottimizza video a schermo intero</translation> <translation id="6468485451923838994">Caratteri</translation> <translation id="6472207088655375767">OTP</translation> <translation id="6472893788822429178">Mostra pulsante Home</translation> @@ -3776,6 +3810,7 @@ <translation id="6725206449694821596">Protocollo di stampa Internet (IPP)</translation> <translation id="6727005317916125192">Riquadro precedente</translation> <translation id="6732801395666424405">Certificati non caricati</translation> +<translation id="6732900235521116609">Impossibile rimuovere la scorciatoia</translation> <translation id="6735304988756581115">Mostra cookie e altri dati dei siti...</translation> <translation id="6736045498964449756">Spiacenti, le password non corrispondono.</translation> <translation id="6736243959894955139">Indirizzo</translation> @@ -3859,6 +3894,7 @@ <translation id="6860427144121307915">Apri in una scheda</translation> <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="6865708901122695652">Log eventi WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">Temperatura di colore</translation> <translation id="6870888490422746447">Scegli un'app per la condivisione:</translation> <translation id="6871644448911473373">Risponditore OCSP: <ph name="LOCATION" /></translation> @@ -3903,6 +3939,7 @@ <translation id="694592694773692225">Reindirizzamento bloccato in questa pagina.</translation> <translation id="6949306908218145636">Aggiungi pagine aperte ai Preferiti...</translation> <translation id="6950627417367801484">Ripristina le app</translation> +<translation id="6950943362443484797">L'app verrà installata automaticamente</translation> <translation id="6951153907720526401">Gestori dei pagamenti</translation> <translation id="6955446738988643816">Ispeziona popup</translation> <translation id="6957231940976260713">Nome servizio</translation> @@ -3938,6 +3975,7 @@ <translation id="6998711733709403587"><ph name="SELCTED_FOLDERS_COUNT" /> cartelle selezionate</translation> <translation id="6998793565256476099">Registra il dispositivo per le videoconferenze</translation> <translation id="7000347579424117903">Includi CTRL, ALT o tasto per la ricerca</translation> +<translation id="700203306553508933">Salva le carte per usare Google Pay</translation> <translation id="7002055706763150362">Per poter configurare Smart Lock per Chromebook, Google deve verificare che l'utente sia tu. Digita la password per iniziare.</translation> <translation id="7002454948392136538">Scegli il gestore di questo utente supervisionato</translation> <translation id="7003339318920871147">Database web</translation> @@ -3985,6 +4023,7 @@ <translation id="706626672220389329">Errore durante il montaggio della condivisione. La condivisione specificata è già montata.</translation> <translation id="7066944511817949584">Impossibile collegarsi a "<ph name="DEVICE_NAME" />".</translation> <translation id="7067725467529581407">Non visualizzare più questo messaggio.</translation> +<translation id="7070484045139057854">Può leggere e cambiare i dati dei siti</translation> <translation id="7072010813301522126">Nome scorciatoia</translation> <translation id="707392107419594760">Seleziona la tastiera:</translation> <translation id="7075513071073410194">PKCS #1 MD5 con crittografia RSA</translation> @@ -4114,6 +4153,7 @@ <translation id="7256710573727326513">Apri in una scheda</translation> <translation id="725758059478686223">Servizio di stampa</translation> <translation id="7257666756905341374">Lettura dei dati copiati e incollati</translation> +<translation id="7258697411818564379">PIN aggiunto</translation> <translation id="7260764918845374269">Per vedere il tuo token di sicurezza, deve trovarsi in modalità di accoppiamento. Tieni premuto il pulsante del token di sicurezza per almeno 5 secondi.</translation> <translation id="7262004276116528033">Questo servizio di accesso è in hosting su <ph name="SAML_DOMAIN" /></translation> <translation id="7268365133021434339">Chiudi schede</translation> @@ -4261,6 +4301,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">Hai dimenticato la vecchia password?</translation> <translation id="7497215489070763236">Certificato CA del server</translation> +<translation id="7497981768003291373">Nessun log di testo WebRTC acquisito di recente.</translation> <translation id="7502658306369382406">Indirizzo IPv6</translation> <translation id="7503191893372251637">Tipo di certificato Netscape</translation> <translation id="7503821294401948377">Impossibile caricare l'icona "<ph name="ICON" />" per l'azione del browser.</translation> @@ -4301,6 +4342,7 @@ <translation id="7564847347806291057">Termina processo</translation> <translation id="7566118625369982896">Gestisci i link dell'app Play</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">Appoggia il dito</translation> <translation id="756809126120519699">Dati di Chrome cancellati</translation> <translation id="7568790562536448087">Aggiornamento</translation> <translation id="7571643774869182231">Spazio di archiviazione insufficiente per eseguire l'aggiornamento</translation> @@ -4463,6 +4505,7 @@ <ph name="LINE_BREAK2" /> Prova a selezionare meno foto.</translation> <translation id="782590969421016895">Usa pagine correnti</translation> +<translation id="7826346148677309647">Puoi trovare altre app per il tuo dispositivo nel Play Store.</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" /> @@ -4659,6 +4702,7 @@ <translation id="8059417245945632445">&Ispeziona dispositivi</translation> <translation id="8063235345342641131">Avatar verde predefinito</translation> <translation id="8064671687106936412">Chiave:</translation> +<translation id="8065485338434000013">Alcune delle tue carte possono essere usate soltanto su questo dispositivo</translation> <translation id="806812017500012252">Riordina per titolo</translation> <translation id="8068253693380742035">Tocca per accedere</translation> <translation id="8069615408251337349">Google Cloud Print</translation> @@ -4736,6 +4780,7 @@ <translation id="8191453843330043793">V8 Proxy Resolver</translation> <translation id="8193175696669055101">Modello dispositivo</translation> <translation id="8195027750202970175">Dimensioni su disco</translation> +<translation id="8198323535106903877">Le <ph name="NUMBER_OF_APPS" /> app verranno installate automaticamente</translation> <translation id="8199300056570174101">Proprietà dispositivo e rete (servizio)</translation> <translation id="8200772114523450471">Riprendi</translation> <translation id="8202160505685531999">Inserisci di nuovo la password per aggiornare il profilo <ph name="DEVICE_TYPE" />.</translation> @@ -4955,7 +5000,6 @@ <translation id="8557930019681227453">Manifest</translation> <translation id="8559694214572302298">Image Decoder</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Continua a leggere</translation> <translation id="8565650234829130278">Hai tentato di eseguire il downgrade dell'applicazione.</translation> <translation id="8569002732135253578">Stampa di <ph name="DOCUMENT_NAME" /> in corso</translation> <translation id="8569682776816196752">Nessuna destinazione trovata</translation> @@ -5068,6 +5112,8 @@ <translation id="8716931980467311658">Vuoi eliminare tutti i dati e le applicazioni Linux della cartella File di Linux da questo dispositivo <ph name="DEVICE_TYPE" />?</translation> <translation id="8719653885894320876">Download di <ph name="PLUGIN_NAME" /> non riuscito</translation> <translation id="8723829621484579639">Frame secondari modalità di navigazione in incognito per: <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">Quando vedi questa icona, usa l'impronta per identificarti o approvare gli acquisti.</translation> +<translation id="8724409975248965964">Impronta aggiunta</translation> <translation id="8724859055372736596">Mo&stra nella cartella</translation> <translation id="8725066075913043281">Riprova</translation> <translation id="8725178340343806893">Preferiti/Segnalibri</translation> @@ -5148,6 +5194,7 @@ <translation id="8838770651474809439">Hamburger</translation> <translation id="883911313571074303">Annota immagine</translation> <translation id="8845001906332463065">Richiedi assistenza</translation> +<translation id="8846132060409673887">Lettura del produttore e del modello di questo computer</translation> <translation id="8846141544112579928">Ricerca tastiera in corso...</translation> <translation id="8847988622838149491">USB</translation> <translation id="8859057652521303089">Seleziona la tua lingua:</translation> @@ -5361,6 +5408,7 @@ <translation id="9161070040817969420">Frame secondari per: <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">Invia dati sul sistema. Questo dispositivo invia automaticamente a Google dati diagnostici e sull'utilizzo delle app e del dispositivo. Questa impostazione viene applicata dal proprietario. Se hai attivato Attività web e app, queste informazioni vengono memorizzate nel tuo account per consentirti di gestirle nella pagina Le mie attività. <ph name="BEGIN_LINK1" />Ulteriori informazioni<ph name="END_LINK1" /></translation> <translation id="916607977885256133">Picture in picture</translation> +<translation id="9168436347345867845">Più tardi</translation> <translation id="9169496697824289689">Visualizza scorciatoie da tastiera</translation> <translation id="9169931577761441333">Aggiungi <ph name="APP_NAME" /> alla schermata Home</translation> <translation id="9170848237812810038">&Annulla</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb index 7413521..7f16f6ef 100644 --- a/chrome/app/resources/generated_resources_iw.xtb +++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -1510,7 +1510,6 @@ <translation id="3285322247471302225">כרטיסייה &חדשה</translation> <translation id="3288047731229977326">תוספים הרצים במצב מפתח יכולים להזיק למחשב שלך. אם אינך מפתח, עליך להשבית את התוספים הרצים במצב מפתח כדי לשמור על ביטחונך.</translation> <translation id="3289856944988573801">כדי לבדוק אם יש עדכונים, השתמש ב-Ethernet או ב-Wi-Fi.</translation> -<translation id="3292421191230118801">חידוש הצפייה באתרים בנייד ב-Chromebook</translation> <translation id="32939749466444286">הקונטיינר של Linux לא הופעל. צריך לנסות שוב.</translation> <translation id="3294437725009624529">אורח</translation> <translation id="329838636886466101">תיקון</translation> @@ -3738,7 +3737,7 @@ <translation id="6664237456442406323">לצערנו, המחשב שלך מוגדר עם זיהוי חומרה פגום. המצב הזה מונע ממערכת ההפעלה של Chrome להתקין את עדכוני האבטחה האחרונים, וייתכן שהמחשב שלך יהיה <ph name="BEGIN_BOLD" />חשוף להתקפות זדוניות<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">משהו השתבש בפתיחת הפרופיל שלך. צא ולאחר מכן היכנס מחדש.</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> -<translation id="6674412557034343536">הפסקת הטיימר</translation> +<translation id="6674412557034343536">stop timer</translation> <translation id="667517062706956822">האם תרצה ש-Google תתרגם דף זה מ<ph name="SOURCE_LANGUAGE" /> ל<ph name="TARGET_LANGUAGE" />?</translation> <translation id="6675665718701918026">התקן הצבעה מחובר</translation> <translation id="6678717876183468697">כתובת אתר של שאילתה</translation> @@ -4956,7 +4955,6 @@ <translation id="8557930019681227453">מניפסט</translation> <translation id="8559694214572302298">מפענח התמונות</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">להמשך קריאה</translation> <translation id="8565650234829130278">בוצע ניסיון לשדרג יישום לאחור.</translation> <translation id="8569002732135253578">המסמך <ph name="DOCUMENT_NAME" /> מודפס עכשיו</translation> <translation id="8569682776816196752">לא נמצאו יעדים</translation> @@ -4986,7 +4984,7 @@ <translation id="8620765578342452535">הגדרת חיבורי רשת</translation> <translation id="8624205858755890468">מאפשר ל-Assistant להציג לך פעולות, אפליקציות ופרטים קשורים.</translation> <translation id="862542460444371744">&תוספים</translation> -<translation id="8626219642120025691">הטיימר סיים</translation> +<translation id="8626219642120025691">פעולת הטיימר הסתיימה</translation> <translation id="8627151598708688654">בחירת מקור</translation> <translation id="862727964348362408">מושעה</translation> <translation id="862750493060684461">מטמון של CSS</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb index e647f9c..b1694490 100644 --- a/chrome/app/resources/generated_resources_ja.xtb +++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -247,6 +247,7 @@ <translation id="1358741672408003399">スペルと文法</translation> <translation id="1361164813881551742">手動で追加</translation> <translation id="1361655923249334273">使用されていない</translation> +<translation id="1361872463926621533">起動時にサウンドを再生する</translation> <translation id="1363028406613469049">トラック</translation> <translation id="1367951781824006909">ファイルを選択</translation> <translation id="1368265273904755308">問題を報告</translation> @@ -570,6 +571,7 @@ <translation id="1817310072033858383"><ph name="DEVICE_TYPE" /> に Smart Lock を設定する</translation> <translation id="1817871734039893258">Microsoft ファイル回復</translation> <translation id="1818007989243628752"><ph name="USERNAME" /> のパスワードを削除します</translation> +<translation id="1818913467757368489">ログをアップロードしています。</translation> <translation id="1819721979226826163">[アプリの通知] > [Google Play 開発者サービス] の順にタップします。</translation> <translation id="1826516787628120939">確認中</translation> <translation id="1828378091493947763">このプラグインはこの端末ではサポートされていません</translation> @@ -618,11 +620,13 @@ <translation id="1890674179660343635"><span>ID: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">全画面表示</translation> <translation id="189358972401248634">その他の言語</translation> +<translation id="1894591787927543791">Google Pay にカードを保存して使用する</translation> <translation id="1895658205118569222">シャットダウン</translation> <translation id="1895934970388272448">この処理を終了するには、プリンタ上で登録を確認する必要があります。今すぐ確認してください。</translation> <translation id="1897762215429052132">ネットワーク接続、言語、キーボード レイアウトの設定...</translation> <translation id="1901303067676059328">すべて選択(&A)</translation> <translation id="1902576642799138955">有効期間</translation> +<translation id="1904518222538904133">この端末でのみ使用できるカードが 1 つあります</translation> <translation id="1905375423839394163">Chromebook デバイス名</translation> <translation id="1905710495812624430">最大試行回数を超えました。</translation> <translation id="1909880997794698664">このデバイスをキオスク モードに固定してもよろしいですか?</translation> @@ -659,6 +663,7 @@ <translation id="1962969542251276847">画面をロック</translation> <translation id="1963227389609234879">すべて削除</translation> <translation id="1965624977906726414">特別な権限はありません。</translation> +<translation id="1969654639948595766">WebRTC テキストログ(<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">動画モードに切り替えました</translation> <translation id="197288927597451399">保存</translation> <translation id="1974043046396539880">CRL 配布ポイント</translation> @@ -802,6 +807,7 @@ <translation id="2190069059097339078">WiFi 認証情報の取得機能</translation> <translation id="219008588003277019">ネイティブ クライアント モジュール: <ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(なし)</translation> +<translation id="2191223688506386601">最後の手順</translation> <translation id="2192505247865591433">取得先:</translation> <translation id="2193365732679659387">信頼の設定</translation> <translation id="2195729137168608510">電子メールの保護</translation> @@ -1025,6 +1031,7 @@ <translation id="2534460670861217804">保護された HTTP プロキシ</translation> <translation id="253557089021624350">キープアライブ カウント</translation> <translation id="2538361623464451692">同期が無効</translation> +<translation id="2539876824180063438">人差し指を少しずつ動かして、指紋のすべての部分を追加します。</translation> <translation id="2541002089857695151">全画面キャストを最適化しますか?</translation> <translation id="2542049655219295786">Google Table</translation> <translation id="2544853746127077729">認証証明書がネットワークによって拒否されました</translation> @@ -1258,7 +1265,9 @@ <translation id="287286579981869940"><ph name="PROVIDER_NAME" /> を追加...</translation> <translation id="2874343608108773609">お使いのどの端末でも同じパスワードを使用するには、Chrome にログインします。</translation> <translation id="2875698561019555027">(Chrome エラーページ)</translation> +<translation id="2876336351874743617">指 2</translation> <translation id="288042212351694283">U2F(Universal 2nd Factor)デバイスにアクセスできませんでした。</translation> +<translation id="2881076733170862447">拡張機能をクリックしたとき</translation> <translation id="2881966438216424900">最終アクセス日:</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> の再起動とリセットを行います</translation> <translation id="2885378588091291677">タスク マネージャ</translation> @@ -1444,6 +1453,7 @@ <translation id="3154429428035006212">1 か月以上オフライン</translation> <translation id="3156531245809797194">Chrome を使用するにはログインしてください</translation> <translation id="3157931365184549694">復元</translation> +<translation id="3158033540161634471">指紋の設定</translation> <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />](ハードウェアにより保護を強化)</translation> <translation id="316125635462764134">アプリを削除</translation> <translation id="3161522574479303604">すべての言語</translation> @@ -1513,9 +1523,10 @@ <translation id="3285322247471302225">新しいタブ(&T)</translation> <translation id="3288047731229977326">デベロッパー モードで実行される拡張機能はパソコンにダメージを与える恐れがあります。デベロッパーでない場合は、安全のため、デベロッパー モードで実行されているこれらの拡張機能を無効にしてください。</translation> <translation id="3289856944988573801">アップデートの有無を確認するには、イーサネットまたは Wi-Fi を使用してください。</translation> -<translation id="3292421191230118801">Chromebook でモバイル接続を使ってサイトの閲覧を再開します</translation> <translation id="32939749466444286">Linux コンテナを起動できませんでした。もう一度お試しください。</translation> <translation id="3294437725009624529">ゲスト</translation> +<translation id="329703603001918157">ショートカットの編集はできません</translation> +<translation id="3297951628821704004">この端末からアカウントを削除</translation> <translation id="329838636886466101">修復</translation> <translation id="3298789223962368867">入力された URL が無効です。</translation> <translation id="32991397311664836">デバイス:</translation> @@ -1682,6 +1693,7 @@ <translation id="3534879087479077042">監視対象ユーザーとは何ですか?</translation> <translation id="3538066758857505094">Linux のアンインストール中にエラーが発生しました。もう一度お試しください。</translation> <translation id="354060433403403521">AC アダプター</translation> +<translation id="354068948465830244">サイトデータの読み取りと変更を行います</translation> <translation id="3541661933757219855">Ctrl+Alt+/ または Esc キーで非表示</translation> <translation id="3543393733900874979">更新できませんでした(エラー: <ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">X9.62 ECDSA 署名(SHA-512)</translation> @@ -1727,6 +1739,7 @@ <translation id="3606712892509067288">Better Together から削除</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">ユーザー画像のプレビュー</translation> +<translation id="3609446736023031597">Play ストアのアプリに関する最新情報やおすすめの情報を受け取る</translation> <translation id="3609785682760573515">同期しています...</translation> <translation id="3609895557594655134">Android VPN を追加...</translation> <translation id="361106536627977100">Flash データ</translation> @@ -1759,6 +1772,7 @@ <translation id="3645372836428131288">指紋の別の部分を登録するため、指を少し移動してください。</translation> <translation id="3648348069317717750">「<ph name="USB_DEVICE_NAME" />」を検出しました</translation> <translation id="3649138363871392317">写真を撮りました</translation> +<translation id="3650845953328929506">ログのアップロードを保留しています。</translation> <translation id="3650952250015018111">「<ph name="APP_NAME" />」のアクセスを許可する:</translation> <translation id="3651488188562686558">Wi-Fi から切断します</translation> <translation id="3652817283076144888">初期化しています</translation> @@ -1910,6 +1924,7 @@ <translation id="3856800405688283469">タイムゾーンを選択</translation> <translation id="3857228364945137633">Smart Lock を使用すると、スマートフォンが近くにあるときに、パスワードを入力しなくても <ph name="DEVICE_TYPE" /> のロックを解除できます。</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation> +<translation id="3857807444929313943">指を放して、もう一度タッチ</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: 同期が一時停止されています</translation> <translation id="3860381078714302691">ハングアウト Meet へようこそ</translation> <translation id="3861241522664181545">ページの読み込みが一時停止されました。</translation> @@ -1928,6 +1943,7 @@ <translation id="3873315167136380065">この設定をオンにするには、<ph name="BEGIN_LINK" />同期をリセット<ph name="END_LINK" />して同期パスフレーズを削除します</translation> <translation id="3878840326289104869">監視対象ユーザーを作成しています</translation> <translation id="3879748587602334249">ダウンロード マネージャ</translation> +<translation id="3885455691202481064">Chromebook の左上にあるセンサーを人差し指でタッチしてください。</translation> <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> でメモをとる</translation> <translation id="3892414795099177503">OpenVPN / L2TP を追加...</translation> <translation id="3893536212201235195">ユーザー補助設定の読み取りと変更</translation> @@ -1980,6 +1996,7 @@ <translation id="3950820424414687140">ログイン</translation> <translation id="3954354850384043518">ダウンロード中</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" />(<ph name="REFRESH_RATE" /> Hz)</translation> +<translation id="3954953195017194676">最近記録された WebRTC イベントログはありません。</translation> <translation id="3955193568934677022">保護されたコンテンツの再生をサイトに許可する(推奨)</translation> <translation id="3956702100721821638">Google Play に接続できませんでした</translation> <translation id="3958088479270651626">ブックマークと設定のインポート</translation> @@ -2233,6 +2250,7 @@ <translation id="4405117686468554883">*.jpeg、*.jpg、*.png</translation> <translation id="4408599188496843485">ヘルプ(&H)</translation> <translation id="4409697491990005945">余白</translation> +<translation id="4410545552906060960">パスワードではなく数字(PIN)を使用して端末のロックを解除することができます。後で PIN を設定する場合は、[設定] に移動してください。</translation> <translation id="4411578466613447185">コードの署名者</translation> <translation id="4412698727486357573">ヘルプセンター</translation> <translation id="44141919652824029">接続された USB デバイスのリストを「<ph name="APP_NAME" />」が取得することを許可しますか?</translation> @@ -2324,8 +2342,10 @@ <translation id="4555769855065597957">シャドウ</translation> <translation id="4556110439722119938">ブックマーク、履歴、パスワード、その他の設定が Google アカウントに同期され、どの端末でも利用できるようになります</translation> <translation id="4558426062282641716">自動起動の許可の要求</translation> +<translation id="4558491878126948419"><ph name="DEVICE_TYPE" /> のヒントや Google の各種サービスの最新情報をお届けします。また、フィードバックも送信できます。登録はいつでも解除できます。</translation> <translation id="4559617833001311418">このサイトはモーション センサーまたは光センサーにアクセスしています。</translation> <translation id="4562155214028662640">指紋を追加</translation> +<translation id="4563880231729913339">指 3</translation> <translation id="4565377596337484307">パスワードを表示しない</translation> <translation id="4567772783389002344">単語を追加</translation> <translation id="4568213207643490790">この端末では Google アカウントをご利用いただけません。</translation> @@ -2400,6 +2420,7 @@ <translation id="4681930562518940301">元の画像を新しいタブで開く(&I)</translation> <translation id="4682551433947286597">壁紙はログイン画面に表示されます。</translation> <translation id="4684427112815847243">すべてを同期する</translation> +<translation id="4688036121858134881">ローカルログ ID は <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" /> です。</translation> <translation id="4689235506267737042">デモ設定の選択</translation> <translation id="4689421377817139245">このブックマークは iPhone と同期できます</translation> <translation id="4690091457710545971"><Intel Wi-Fi ファームウェアにより生成された 4 つのファイル: csr.lst、fh_regs.lst、radio_reg.lst、monitor.lst.sysmon。最初の 3 つはレジスタダンプを含むバイナリ ファイルで、個人情報や端末を特定できる情報を一切含まないことが Intel により表明されています。最後の 1 つは Intel ファームウェアからの実行トレースで、個人情報や端末を特定できる情報は除かれていますが、サイズが大きいためここには表示できません。これらのファイルはご使用の端末で最近発生した Wi-Fi の問題への応答として生成されたもので、問題を調査するために Intel と共有されます。></translation> @@ -2584,6 +2605,7 @@ <translation id="4945444280533270988">Smart Lock がオンになっています</translation> <translation id="4953689047182316270">ユーザー補助機能のイベントへの応答</translation> <translation id="4953808748584563296">デフォルトのオレンジのアバター</translation> +<translation id="4955710816792587366">PIN の選択</translation> <translation id="4955814292505481804">年間</translation> <translation id="4957949153200969297"><ph name="IDS_SHORT_PRODUCT_NAME" /> 同期に関連する機能のみを有効にします</translation> <translation id="4959262764292427323">パスワードは Google アカウントに保存されるため、どの端末からでも使用できます</translation> @@ -2649,6 +2671,7 @@ <translation id="5050042263972837708">グループ名</translation> <translation id="5052499409147950210">サイトの編集</translation> <translation id="5053604404986157245">ランダムに生成された TPM パスワードは使用できません。これは Powerwash 後の通常の動作です。</translation> +<translation id="5057110919553308744">拡張機能をクリックしたとき</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{このフォルダにはブックマークが含まれています。削除してもよろしいですか?}other{このフォルダには # 件のブックマークが含まれています。削除してもよろしいですか?}}</translation> <translation id="5061708541166515394">コントラスト</translation> <translation id="5062930723426326933">ログインできませんでした。インターネットに接続してもう一度お試しください。</translation> @@ -2824,6 +2847,7 @@ <translation id="5315873049536339193">ID</translation> <translation id="5316716239522500219">モニターをミラーリングする</translation> <translation id="5317780077021120954">保存</translation> +<translation id="5318819489018851358">Linux と共有</translation> <translation id="5319359161174645648">Google は Chrome を推奨しています</translation> <translation id="5319566035256672173">この端末では今後、最新のソフトウェア アップデートは受信されません。アップグレードをご検討ください。</translation> <translation id="532247166573571973">サーバーへのアクセスに問題が起こっている可能性があります。しばらくしてからもう一度お試しください。</translation> @@ -3164,6 +3188,7 @@ <translation id="5804241973901381774">権限</translation> <translation id="580571955903695899">タイトルで並べ替え</translation> <translation id="5807290661599647102">画面ロックを設定</translation> +<translation id="5811750797187914944">設定を完了</translation> <translation id="5814126672212206791">接続タイプ</translation> <translation id="5815645614496570556">X.400 アドレス</translation> <translation id="5816434091619127343">リクエストされた変更を行うと、プリンタを使用できなくります。</translation> @@ -3201,6 +3226,7 @@ <translation id="5855773610748894548">セキュア モジュール エラー。</translation> <translation id="5856721540245522153">デバッグ機能を有効にする</translation> <translation id="5857090052475505287">新しいフォルダ</translation> +<translation id="5858490737742085133">ターミナル</translation> <translation id="585979798156957858">外部メタキー</translation> <translation id="5860033963881614850">オフ</translation> <translation id="5860209693144823476">タブ 3</translation> @@ -3223,6 +3249,7 @@ <translation id="5882919346125742463">既知のネットワーク</translation> <translation id="5884474295213649357">このタブは USB デバイスに接続されています。</translation> <translation id="5885324376209859881">メディア設定を管理...</translation> +<translation id="5886009770935151472">指 1</translation> <translation id="5889282057229379085">中間認証局の最大数: <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">再起動</translation> <translation id="5895187275912066135">発行日</translation> @@ -3307,6 +3334,7 @@ <translation id="6025215716629925253">スタック トレース</translation> <translation id="6026047032548434446">アプリをインストールしますか?</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - USB デバイスに接続されています</translation> +<translation id="6028117231645531007">指紋を追加</translation> <translation id="6029027682598229313">Linux のインストールが完了しました。</translation> <translation id="6029587122245504742">最も低速</translation> <translation id="6032912588568283682">ファイル システム</translation> @@ -3321,6 +3349,7 @@ <translation id="6042308850641462728">もっと見る</translation> <translation id="6043317578411397101"><ph name="APP_NAME" /> が <ph name="TAB_NAME" /> の Chrome タブを共有しています。</translation> <translation id="6044805581023976844"><ph name="APP_NAME" /> が <ph name="TAB_NAME" /> の Chrome タブと音声を共有しています。</translation> +<translation id="6047938872139769630">ログアウト時に PIN を使用して端末のロックを解除できます</translation> <translation id="6049004884579590341">全画面表示を終了するには |<ph name="ACCELERATOR" />| キーを押し続けます</translation> <translation id="6049065490165456785">内蔵カメラの写真</translation> <translation id="6051354611314852653">このデバイスの API アクセスを承認できませんでした。</translation> @@ -3343,6 +3372,7 @@ <translation id="6075907793831890935">デバイス <ph name="HOSTNAME" /> とのデータ交換</translation> <translation id="6076448957780543068">このスクリーンショットを含める</translation> <translation id="6077131872140550515">優先ネットワークから削除</translation> +<translation id="6077189836672154517"><ph name="DEVICE_TYPE" /> のヒントや最新情報</translation> <translation id="6078323886959318429">ショートカットを追加</translation> <translation id="6078752646384677957">マイクと音声のレベルを確認してください。</translation> <translation id="6080515710685820702">共有のパソコンをお使いの場合は、シークレット ウィンドウをご活用ください。</translation> @@ -3392,6 +3422,7 @@ <translation id="6144938890088808325">Chromebooks の改善にご協力ください</translation> <translation id="6146563240635539929">動画</translation> <translation id="6147020289383635445">印刷プレビューの表示に失敗しました。</translation> +<translation id="6148052338549899048">対象となる端末はありません。<ph name="LINK_BEGIN" />詳細<ph name="LINK_END" /></translation> <translation id="614940544461990577">次をお試しください:</translation> <translation id="6150853954427645995">このファイルを保存してオフラインで使用できるようにするには、オンラインに戻ってファイルを右クリックし、[<ph name="OFFLINE_CHECKBOX_NAME" />] オプションを選択します。</translation> <translation id="6151323131516309312"><ph name="SEARCH_KEY" /> を押して <ph name="SITE_NAME" /> を検索</translation> @@ -3411,6 +3442,7 @@ <translation id="6169040057125497443">マイクを確認してください。</translation> <translation id="6169666352732958425">デスクトップをキャストできません。</translation> <translation id="6171948306033499786">印刷を一時停止</translation> +<translation id="6173623053897475761">もう一度 PIN を入力してください</translation> <translation id="6175314957787328458">Microsoft ドメイン GUID</translation> <translation id="6176043333338857209">セキュリティ キーとの通信のため、Bluetooth が一時的にオンになります</translation> <translation id="6178664161104547336">証明書の選択</translation> @@ -3600,11 +3632,13 @@ <translation id="6456394469623773452">中程度</translation> <translation id="6456631036739229488">Smart Lock に使用するスマートフォンが変更されました。Smart Lock を更新するにはパスワードを入力してください。次回から、新しいスマートフォンで <ph name="DEVICE_TYPE" /> のロックを解除できます。Smart Lock を無効にするには [設定] で指定します。</translation> <translation id="645705751491738698">Javascript を引き続きブロックする</translation> +<translation id="6458701200018867744">アップロードできませんでした(<ph name="WEBRTC_LOG_UPLOAD_TIME" />)。</translation> <translation id="6459488832681039634">選択部分を検索に使用</translation> <translation id="6459799433792303855">アクティブなウィンドウが別のディスプレイに移動しました。</translation> <translation id="6460601847208524483">次を検索</translation> <translation id="6463795194797719782">編集(&E)</translation> <translation id="6466988389784393586">すべてのブックマークを開く(&O)</translation> +<translation id="6467304607960172345">動画の全画面表示を最適化</translation> <translation id="6468485451923838994">フォント</translation> <translation id="6472207088655375767">OTP</translation> <translation id="6472893788822429178">ホーム ボタンを表示する</translation> @@ -3780,6 +3814,7 @@ <translation id="6725206449694821596">インターネット印刷プロトコル(IPP)</translation> <translation id="6727005317916125192">前のウィンドウ</translation> <translation id="6732801395666424405">証明書が読み込まれていません</translation> +<translation id="6732900235521116609">ショートカットの削除はできません</translation> <translation id="6735304988756581115">Cookie と他のサイトのデータを表示...</translation> <translation id="6736045498964449756">パスワードが一致しません。</translation> <translation id="6736243959894955139">住所</translation> @@ -3863,6 +3898,7 @@ <translation id="6860427144121307915">タブで開く</translation> <translation id="6862635236584086457">このフォルダに保存されているすべてのファイルが自動的にオンラインにバックアップされます。</translation> <translation id="6865313869410766144">自動入力フォームのデータ</translation> +<translation id="6865708901122695652">WebRTC イベントログ(<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">色温度</translation> <translation id="6870888490422746447">共有するアプリを選択してください:</translation> <translation id="6871644448911473373">OCSP レスポンダ: <ph name="LOCATION" /></translation> @@ -3907,6 +3943,7 @@ <translation id="694592694773692225">このページでリダイレクトがブロックされました。</translation> <translation id="6949306908218145636">開いているページをブックマーク...</translation> <translation id="6950627417367801484">アプリを復元</translation> +<translation id="6950943362443484797">このアプリをインストールします</translation> <translation id="6951153907720526401">支払いハンドラ</translation> <translation id="6955446738988643816">ポップアップを検証</translation> <translation id="6957231940976260713">サービス名</translation> @@ -3942,6 +3979,7 @@ <translation id="6998711733709403587"><ph name="SELCTED_FOLDERS_COUNT" /> 個のフォルダを選択しました</translation> <translation id="6998793565256476099">デバイスをビデオ会議用に登録</translation> <translation id="7000347579424117903">Ctrl キー、Alt キー、検索キーのいずれかが必要です</translation> +<translation id="700203306553508933">Google Pay にカードを保存して使用する</translation> <translation id="7002055706763150362">Smart Lock for Chromebook を設定するには、Google に対する本人確認が必要です。開始するにはパスワードを入力してください。</translation> <translation id="7002454948392136538">この監視対象ユーザーの管理者を選択</translation> <translation id="7003339318920871147">ウェブ データベース</translation> @@ -3989,6 +4027,7 @@ <translation id="706626672220389329">共有フォルダのマウントエラー。指定された共有フォルダはすでにマウントされています。</translation> <translation id="7066944511817949584">「<ph name="DEVICE_NAME" />」に接続できませんでした。</translation> <translation id="7067725467529581407">今後このメッセージを表示しない。</translation> +<translation id="7070484045139057854">サイトデータの読み取りと変更を行います</translation> <translation id="7072010813301522126">ショートカット名</translation> <translation id="707392107419594760">キーボードの選択:</translation> <translation id="7075513071073410194">PKCS #1 MD5 with RSA 暗号化</translation> @@ -4118,6 +4157,7 @@ <translation id="7256710573727326513">タブで開く</translation> <translation id="725758059478686223">印刷サービス</translation> <translation id="7257666756905341374">コピー&ペーストするデータの読み取り</translation> +<translation id="7258697411818564379">PIN を追加しました</translation> <translation id="7260764918845374269">セキュリティ キーはペア設定モードのときに表示されます。キーのボタンを 5 秒以上押し続けてください。</translation> <translation id="7262004276116528033">このログイン サービスは <ph name="SAML_DOMAIN" /> でホストされています</translation> <translation id="7268365133021434339">複数のタブを閉じる</translation> @@ -4266,6 +4306,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" />x<ph name="HEIGHT" /></translation> <translation id="7495778526395737099">パスワードを忘れた場合</translation> <translation id="7497215489070763236">サーバーの CA 証明書</translation> +<translation id="7497981768003291373">最近記録された WebRTC テキストログはありません。</translation> <translation id="7502658306369382406">IPv6 アドレス</translation> <translation id="7503191893372251637">Netscape 証明書タイプ</translation> <translation id="7503821294401948377">ブラウザ操作のアイコン「<ph name="ICON" />」を読み込むことができませんでした。</translation> @@ -4308,6 +4349,7 @@ <translation id="7564847347806291057">プロセスを終了</translation> <translation id="7566118625369982896">Play アプリのリンクを管理する</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">指でタッチ</translation> <translation id="756809126120519699">Chrome データの消去完了</translation> <translation id="7568790562536448087">更新中:</translation> <translation id="7571643774869182231">更新に必要な空き容量がありません</translation> @@ -4470,6 +4512,7 @@ <ph name="LINE_BREAK2" /> 写真の選択数を減らしてください。</translation> <translation id="782590969421016895">現在のページを使用</translation> +<translation id="7826346148677309647">Play ストアでは他にもお使いの端末用のアプリを探すことができます。</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />デバッグ機能<ph name="END_H3" /> <ph name="BR" /> Chrome OS デバイスでは、カスタムコードをインストールしてテストする目的でデバッグ機能を有効にできます。デバッグ機能を使うと次のことが可能です。<ph name="BR" /> @@ -4666,6 +4709,7 @@ <translation id="8059417245945632445">デバイスを検証(&I)</translation> <translation id="8063235345342641131">デフォルトの緑のアバター</translation> <translation id="8064671687106936412">キー:</translation> +<translation id="8065485338434000013">この端末でのみ使用できるカードがいくつかあります</translation> <translation id="806812017500012252">タイトルで並べ替え</translation> <translation id="8068253693380742035">タップしてログイン</translation> <translation id="8069615408251337349">Google クラウド プリント</translation> @@ -4743,6 +4787,7 @@ <translation id="8191453843330043793">V8 プロキシ リゾルバ</translation> <translation id="8193175696669055101">デバイスモデル</translation> <translation id="8195027750202970175">ディスク上のサイズ</translation> +<translation id="8198323535106903877">この <ph name="NUMBER_OF_APPS" /> 個のアプリをインストールします</translation> <translation id="8199300056570174101">ネットワーク(サービス)とデバイスのプロパティ</translation> <translation id="8200772114523450471">再開</translation> <translation id="8202160505685531999"><ph name="DEVICE_TYPE" /> のプロフィールを更新するにはパスワードを再入力してください。</translation> @@ -4962,7 +5007,6 @@ <translation id="8557930019681227453">マニフェスト</translation> <translation id="8559694214572302298">イメージ デコーダー</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">読み続ける</translation> <translation id="8565650234829130278">アプリのダウングレードが試行されました。</translation> <translation id="8569002732135253578">「<ph name="DOCUMENT_NAME" />」の印刷中</translation> <translation id="8569682776816196752">送信先が見つかりません</translation> @@ -5075,6 +5119,8 @@ <translation id="8716931980467311658">[Linux ファイル] フォルダのすべての Linux アプリケーションとデータをこの <ph name="DEVICE_TYPE" /> から削除しますか?</translation> <translation id="8719653885894320876"><ph name="PLUGIN_NAME" /> をダウンロードできませんでした</translation> <translation id="8723829621484579639">次のシークレット サブフレーム: <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">このアイコンが表示されているときは、本人確認や購入の承認に指紋認証を使用します。</translation> +<translation id="8724409975248965964">指紋の登録完了</translation> <translation id="8724859055372736596">フォルダを開く(&S)</translation> <translation id="8725066075913043281">やり直し</translation> <translation id="8725178340343806893">お気に入り/ブックマーク</translation> @@ -5155,6 +5201,7 @@ <translation id="8838770651474809439">ハンバーガー</translation> <translation id="883911313571074303">画像に注釈を付ける</translation> <translation id="8845001906332463065">ヘルプ</translation> +<translation id="8846132060409673887">このパソコンのメーカーと機種の情報を取得する</translation> <translation id="8846141544112579928">キーボードを探しています...</translation> <translation id="8847988622838149491">USB</translation> <translation id="8859057652521303089">言語の選択:</translation> @@ -5368,6 +5415,7 @@ <translation id="9161070040817969420">次のサブフレーム: <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">システムデータを送信します。この端末では現在、診断データと端末およびアプリの使用状況データが Google に自動送信されるように設定されています。この設定は所有者によって指定されています。これに加えて [ウェブとアプリのアクティビティ] をオンにすると、この情報がアカウントに保存され、[マイ アクティビティ] で管理できるようになります。<ph name="BEGIN_LINK1" />詳細<ph name="END_LINK1" /></translation> <translation id="916607977885256133">ピクチャー イン ピクチャー</translation> +<translation id="9168436347345867845">後で行う</translation> <translation id="9169496697824289689">キーボード ショートカットの表示</translation> <translation id="9169931577761441333">ホーム画面に <ph name="APP_NAME" /> を追加</translation> <translation id="9170848237812810038">取消(&U)</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb index c1c1f44a..52bed13 100644 --- a/chrome/app/resources/generated_resources_kn.xtb +++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -231,7 +231,7 @@ <translation id="1338776410427958681"><ph name="FOLDER_NAME" /> ಕುಗ್ಗಿಸಿ</translation> <translation id="1338950911836659113">ಅಳಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="1340527397989195812">ಫೈಲ್ಗಳ ಅಪ್ಲಿಕೇಶನ್ ಬಳಸಿಕೊಂಡು ಸಾಧನದಿಂದ ಮಾಧ್ಯಮವನ್ನು ಬ್ಯಾಕಪ್ ಮಾಡಿ.</translation> -<translation id="1341988552785875222">ಪ್ರಸ್ತುತ ವಾಲ್ಪೇಪರ್ ಅನ್ನು '<ph name="APP_NAME" />' ಹೊಂದಿಸಿದೆ. ಬೇರೊಂದು ವಾಲ್ಪೇಪರ್ ಆಯ್ಕಮಾಡುವ ಮೊದಲು ನೀವು '<ph name="APP_NAME" />' ಅಸ್ಥಾಪಿಸಬೇಕಾಗಬಹುದು.</translation> +<translation id="1341988552785875222">ಪ್ರಸ್ತುತ ವಾಲ್ಪೇಪರ್ ಅನ್ನು '<ph name="APP_NAME" />' ಹೊಂದಿಸಿದೆ. ಬೇರೊಂದು ವಾಲ್ಪೇಪರ್ ಆಯ್ಕಮಾಡುವ ಮೊದಲು ನೀವು '<ph name="APP_NAME" />' ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಬೇಕಾಗಬಹುದು.</translation> <translation id="1346748346194534595">ಬಲಕ್ಕೆ</translation> <translation id="1347975661240122359">ಬ್ಯಾಟರಿ <ph name="BATTERY_LEVEL" />% ಪ್ರಮಾಣ ತಲುಪಿದಾಗ ಅಪ್ಡೇಟ್ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ.</translation> <translation id="1351692861129622852"><ph name="FILE_COUNT" /> ಫೈಲ್ಗಳನ್ನು ಆಮದು ಮಾಡಲಾಗುತ್ತಿದೆ...</translation> @@ -754,7 +754,7 @@ <translation id="2126167708562367080">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಸಿಂಕ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ.</translation> <translation id="2127372758936585790">ಕಡಿಮೆ ವಿದ್ಯುತ್ ಚಾರ್ಜರ್</translation> <translation id="212862741129535676">ಆವರ್ತನ ಸ್ಥಿತಿಯ ನೆಲೆಸುವಿಕೆಯ ಪ್ರತಿಶತ</translation> -<translation id="2129825002735785149">ಪ್ಲಗಿನ್ ಅಪ್ಡೇಟ್ ಮಾಡಿ</translation> +<translation id="2129825002735785149">ಪ್ಲಗ್ಇನ್ ಅಪ್ಡೇಟ್ ಮಾಡಿ</translation> <translation id="2131077480075264">"<ph name="APP_NAME" />" ಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ ಏಕೆಂದರೆ ಇದನ್ನು "<ph name="IMPORT_NAME" />" ರಿಂದ ಅನುಮತಿಸಲಾಗುತ್ತಿಲ್ಲ</translation> <translation id="2135456203358955318">ಡಾಕ್ ಮಾಡಿರುವ ವರ್ಧಕ</translation> <translation id="2135787500304447609">&ಪುನರಾರಂಭಿಸು</translation> @@ -942,7 +942,7 @@ <translation id="2423578206845792524">ಇದರಂತೆ ಇಮೇಜ್ ಅನ್ನು ಉ&ಳಿಸಿ...</translation> <translation id="2425665904502185219">ಒಟ್ಟು ಫೈಲ್ನ ಗಾತ್ರ</translation> <translation id="2428510569851653187">ಟ್ಯಾಬ್ ಕ್ರ್ಯಾಶ್ ಆದಾಗ ನೀವೇನು ಮಾಡುತ್ತಿದ್ದಿರಿ ಎಂಬುದನ್ನು ವಿವರಿಸಿ</translation> -<translation id="2431027948063157455">Google ಸಹಾಯಕವನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ, ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation> +<translation id="2431027948063157455">Google ಅಸಿಸ್ಟೆಂಟ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ, ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="2432753757290432042">Linux (ಬೀಟಾ) ಅಪ್ಡೇಟ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ</translation> <translation id="2433452467737464329">ಪುಟವನ್ನು ಸ್ವಯಂ ರಿಫ್ರೆಶ್ ಮಾಡಲು URL ನಲ್ಲಿ ಪ್ರಶ್ನಾವಳಿ ಪ್ಯಾರಾಮೀಟರ್ ಸೇರಿಸಿ: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">ಗೋಚರತೆ</translation> @@ -979,7 +979,7 @@ <translation id="247949520305900375">ಆಡಿಯೊ ಹಂಚಿಕೊಳ್ಳಿ</translation> <translation id="2480868415629598489">ನೀವು ನಕಲಿಸಿದ ಮತ್ತು ಅಂಟಿಸಿದ ಡೇಟಾವನ್ನು ಮಾರ್ಪಡಿಸಿ</translation> <translation id="2482878487686419369">ಸೂಚನೆಗಳು</translation> -<translation id="2485422356828889247">ಅಸ್ಥಾಪಿಸು</translation> +<translation id="2485422356828889247">ಅನ್ಇನ್ಸ್ಟಾಲ್</translation> <translation id="2487067538648443797">ಹೊಸ ಬುಕ್ಮಾರ್ಕ್ ಸೇರಿಸಿ</translation> <translation id="248861575772995840">ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಪತ್ತೆ ಮಾಡಲಾಗಲಿಲ್ಲ. ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಸಾಧನಗಳಲ್ಲಿ ಬ್ಲೂಟೂತ್ ಆನ್ ಆಗಿದೆ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. <a>ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ</a></translation> <translation id="2489918096470125693">&ಫೋಲ್ಡರ್ ಅನ್ನು ಸೇರಿಸಿ...</translation> @@ -1402,7 +1402,7 @@ <translation id="3090819949319990166">ಬಾಹ್ಯ crx ಫೈಲ್ ಅನ್ನು <ph name="TEMP_CRX_FILE" /> ಗೆ ನಕಲಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation> <translation id="3090871774332213558">"<ph name="DEVICE_NAME" />" ಜೋಡಿಸಲಾಗಿದೆ</translation> <translation id="3101709781009526431">ದಿನಾಂಕ ಮತ್ತು ಸಮಯ</translation> -<translation id="310671807099593501">ಬ್ಲೂಟೂತ್ ಅನ್ನು ಸೈಟ್ ಬಳಸುತ್ತಿದೆ</translation> +<translation id="310671807099593501">ಸೈಟ್ ಬ್ಲೂಟೂತ್ ಅನ್ನು ಬಳಸುತ್ತಿದೆ</translation> <translation id="3115128645424181617">ನಿಮ್ಮ ಫೋನ್ ಹುಡುಕಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅದು ಸುಲಭವಾಗಿ ಲಭ್ಯವಿರುತ್ತದೆಯೇ ಮತ್ತು ಬ್ಲೂಟೂತ್ ಆನ್ ಮಾಡಲಾಗಿದೆಯೇ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಕೊಳ್ಳಿ.</translation> <translation id="3115147772012638511">ಕ್ಯಾಶ್ಗಾಗಿ ನಿರೀಕ್ಷಿಸುತ್ತಿದೆ...</translation> <translation id="3118319026408854581"><ph name="PRODUCT_NAME" /> ಸಹಾಯ</translation> @@ -1477,7 +1477,7 @@ <translation id="3232318083971127729">ಮೌಲ್ಯ:</translation> <translation id="3236289833370040187"><ph name="DESTINATION_DOMAIN" /> ಗೆ ಮಾಲೀಕತ್ವವನ್ನು ವರ್ಗಾಯಿಸಲಾಗವುದು.</translation> <translation id="323803881985677942">ವಿಸ್ತರಣೆ ಆಯ್ಕೆಗಳನ್ನು ತೆರೆಯಿರಿ</translation> -<translation id="3241680850019875542">ಪ್ಯಾಕ್ ಮಾಡಲು ವಿಸ್ತರಣೆಯ ಮೂಲ ಡೈರೆಕ್ಟರಿಯನ್ನು ಆಯ್ಕೆಮಾಡಿ. ವಿಸ್ತರಣೆಯನ್ನು ನವೀಕರಿಸಲು, ಮರುಬಳಸಲು ಖಾಸಗಿ ಕೀ ಫೈಲ್ ಅನ್ನು ಕೂಡ ಆಯ್ಕೆಮಾಡಿ.</translation> +<translation id="3241680850019875542">ಪ್ಯಾಕ್ ಮಾಡಲು ವಿಸ್ತರಣೆಯ ಮೂಲ ಡೈರೆಕ್ಟರಿಯನ್ನು ಆಯ್ಕೆಮಾಡಿ. ವಿಸ್ತರಣೆಯನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಲು, ಮರುಬಳಸಲು ಖಾಸಗಿ ಕೀ ಫೈಲ್ ಅನ್ನು ಕೂಡ ಆಯ್ಕೆಮಾಡಿ.</translation> <translation id="3244294424315804309">ಧ್ವನಿ ಮ್ಯೂಟ್ ಮಾಡುವುದನ್ನು ಮುಂದುವರಿಸಿ</translation> <translation id="3245321423178950146">ಅಪರಿಚಿತ ಕಲಾವಿದ</translation> <translation id="3246097286174000800">Smart Lock ಪ್ರಯತ್ನಿಸಿ</translation> @@ -1510,7 +1510,6 @@ <translation id="3285322247471302225">ಹೊಸ &ಟ್ಯಾಬ್</translation> <translation id="3288047731229977326">ಡೆವಲಪರ್ ಮೋಡ್ನಲ್ಲಿ ಚಾಲನೆಯಾಗುವ ವಿಸ್ತರಣೆಗಳು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ಗೆ ಹಾನಿಮಾಡಬಹುದು. ನೀವು ಡೆವಲಪರ್ ಆಗಿರದಿದ್ದರೇ, ಸುರಕ್ಷಿತವಾಗಿರಲು ಡೆವಲಪರ್ ಮೋಡ್ನಲ್ಲಿ ಈ ವಿಸ್ತರಣೆಗಳ ಚಾಲನೆಯನ್ನು ನೀವು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬೇಕು.</translation> <translation id="3289856944988573801">ನವೀಕರಣಗಳಿಗಾಗಿ ಪರಿಶೀಲಿಸಲು, ದಯವಿಟ್ಟು Ethernet ಅಥವಾ ವೈ-ಫೈ ಬಳಸಿ.</translation> -<translation id="3292421191230118801">ನಿಮ್ಮ Chromebook ನಲ್ಲಿ ಮೊಬೈಲ್ನಿಂದ ಸೈಟ್ಗಳನ್ನು ನೋಡುವುದನ್ನು ಪುನರಾರಂಭಿಸಿ</translation> <translation id="32939749466444286">Linux ಕಂಟೇನರ್ ಪ್ರಾರಂಭವಾಗಿಲ್ಲ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="3294437725009624529">ಅತಿಥಿ</translation> <translation id="329838636886466101">ರಿಪೇರ್</translation> @@ -1527,7 +1526,7 @@ <translation id="3308006649705061278">ಸಂಸ್ಥೆ ಘಟಕ (OU)</translation> <translation id="3308116878371095290">ಕುಕ್ಕಿಗಳನ್ನು ಹೊಂದಿಸದಂತೆ ಈ ಪುಟವನ್ನು ತಡೆಗಟ್ಟಲಾಗಿದೆ.</translation> <translation id="3308134619352333507">ಬಟನ್ ಅನ್ನು ಮರೆಮಾಡು</translation> -<translation id="3308852433423051161">Google ಸಹಾಯಕವನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ...</translation> +<translation id="3308852433423051161">Google ಅಸಿಸ್ಟೆಂಟ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ...</translation> <translation id="3312424061798279731">ಸಕ್ರಿಯಗೊಳಿಸಲಾದ ಭಾಷೆಗಳು</translation> <translation id="3313590242757056087">ಯಾವ ವೆಬ್ಸೈಟ್ಗಳನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಬಳಕೆದಾರರು ವೀಕ್ಷಿಸಬಹುದು ಎಂಬುದನ್ನು ಹೊಂದಿಸಲು, ನೀವು <ph name="MANAGEMENT_URL" /> ಗೆ ಭೇಟಿ ನೀಡುವುದರ ಮೂಲಕ ನಿರ್ಬಂಧಗಳು ಮತ್ತು ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದು. @@ -1964,7 +1963,7 @@ <translation id="3940233957883229251">ಸ್ವಯಂ-ಪುನರಾವರ್ತನೆ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> <translation id="3941357410013254652">ಚಾನಲ್ ID</translation> <translation id="3941565636838060942">ಈ ಪ್ರೋಗ್ರಾಂಗೆ ಪ್ರವೇಶವನ್ನು ಮರೆಮಾಡಲು, ನಿಯಂತ್ರಣ ಫಲಕದಲ್ಲಿ <ph name="CONTROL_PANEL_APPLET_NAME" /> ಅನ್ನು ಬಳಸಿಕೊಂಡು - ನೀವದನ್ನು ಅಸ್ಥಾಪಿಸಬೇಕಾಗುತ್ತದೆ. + ನೀವದನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ನೀವು <ph name="CONTROL_PANEL_APPLET_NAME" /> ಪ್ರಾರಂಭಿಸಲು ಬಯಸುವಿರಾ?</translation> <translation id="394183848452296464">ಶಾರ್ಟ್ಕಟ್ ರಚಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ</translation> @@ -2674,7 +2673,7 @@ <translation id="5094721898978802975">ಸಹಕರಿಸುವ ಸ್ಥಳೀಯ ಅಪ್ಲಿಕೇಶನ್ಗಳೊಂದಿಗೆ ಸಂವಹಿಸಿ</translation> <translation id="5097002363526479830">'<ph name="NAME" />' ನೆಟ್ವರ್ಕ್ಗೆ ಸಂಪರ್ಕಿಸಲು ವಿಫಲವಾಗಿದೆ: <ph name="DETAILS" /></translation> <translation id="5099354524039520280">ಮೇಲಕ್ಕೆ</translation> -<translation id="5100114659116077956">ನಿಮಗೆ ಇತ್ತೀಚಿನ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ನೀಡುವ ದೃಷ್ಟಿಯಿಂದ, ನಿಮ್ಮ Chromebox ನವೀಕರಿಸುವ ಅಗತ್ಯವಿದೆ.</translation> +<translation id="5100114659116077956">ನಿಮಗೆ ಇತ್ತೀಚಿನ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ನೀಡುವ ದೃಷ್ಟಿಯಿಂದ, ನಿಮ್ಮ Chromebox ಅಪ್ಡೇಟ್ ಮಾಡಬೇಕಾದ ಅಗತ್ಯವಿದೆ.</translation> <translation id="5101042277149003567">ಎಲ್ಲಾ ಬುಕ್ಮಾರ್ಕ್ಗಳನ್ನು ತೆರೆಯಿರಿ</translation> <translation id="5105855035535475848">ಪಿನ್ ಟ್ಯಾಬ್ಗಳು</translation> <translation id="5108967062857032718">ಸೆಟ್ಟಿಂಗ್ಗಳು - Android ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ತೆಗೆದುಹಾಕಿ</translation> @@ -2754,7 +2753,7 @@ <translation id="5233638681132016545">ಹೊಸ ಟ್ಯಾಬ್</translation> <translation id="5233736638227740678">&ಅಂಟಿಸಿ</translation> <translation id="5234764350956374838">ವಜಾಗೊಳಿಸಿ</translation> -<translation id="5235050375939235066">ಅಪ್ಲಿಕೇಶನ್ ಅಸ್ಥಾಪಿಸುವುದೇ?</translation> +<translation id="5235050375939235066">ಆ್ಯಪ್ ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವುದೇ?</translation> <translation id="5235565664420173924">Better Together</translation> <translation id="5235750401727657667">ಹೊಸ ಟ್ಯಾಬ್ ತೆರೆದಿರುವಾಗ ಬದಲಾಯಿಸಿದ ಪುಟವನ್ನು ನೀವು ನೋಡಿ</translation> <translation id="5238278114306905396">ಅಪ್ಲಿಕೇಶನ್ "<ph name="EXTENSION_NAME" />" ಸ್ವಯಂಚಾಲಿತವಾಗಿ ತೆಗೆದುಹಾಕಲಾಗಿದೆ.</translation> @@ -2900,7 +2899,7 @@ <translation id="5427278936122846523">ಯಾವಾಗಲೂ ಅನುವಾದಿಸು</translation> <translation id="5427459444770871191">&ಪ್ರದಕ್ಷಿಣೆಯಂತೆ ತಿರುಗಿಸಿ</translation> <translation id="542872847390508405">ನೀವು ಒಬ್ಬ ಅತಿಥಿಯಂತೆ ಬ್ರೌಸ್ ಮಾಡುತ್ತಿರುವಿರಿ</translation> -<translation id="5428850089342283580"><ph name="ACCNAME_APP" /> (ನವೀಕರಣವು ಲಭ್ಯವಿದೆ)</translation> +<translation id="5428850089342283580"><ph name="ACCNAME_APP" /> (ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ)</translation> <translation id="5430931332414098647">ತತ್ಕ್ಷಣದ ಟೆಥರಿಂಗ್</translation> <translation id="5431318178759467895">ಬಣ್ಣ</translation> <translation id="5431825016875453137">VPN / L2TP ತೆರೆಯಿರಿ</translation> @@ -3003,7 +3002,7 @@ <translation id="5557991081552967863">ನಿದ್ರೆ ಸಮಯದಲ್ಲಿ ವೈ-ಫೈ ಆನ್ ಇರಿಸಿ</translation> <translation id="5558129378926964177">ಝೂಮ್ &ಇನ್</translation> <translation id="55601339223879446">ಪ್ರದರ್ಶನದ ಒಳಗೆ ನಿಮ್ಮ ಡೆಸ್ಕ್ಟಾಪ್ನ ಎಲ್ಲೆಗಳನ್ನು ಸರಿಹೊಂದಿಸಿ</translation> -<translation id="5562781907504170924">ಈ ಟ್ಯಾಬ್ ಅನ್ನು ಬ್ಲೂಟೂತ್ ಸಾಧನಕ್ಕೆ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ.</translation> +<translation id="5562781907504170924">ಈ ಟ್ಯಾಬ್ ಬ್ಲೂಟೂತ್ ಸಾಧನಕ್ಕೆ ಸಂಪರ್ಕಗೊಂಡಿದೆ.</translation> <translation id="5563234215388768762">Google ಹುಡುಕಾಟ ಮಾಡಿ ಅಥವಾ URL ಟೈಪ್ ಮಾಡಿ</translation> <translation id="5567950944308676169">ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಕೀಯನ್ನು ಪ್ಲಗ್-ಇನ್ ಮಾಡಿ ಮತ್ತು ಅದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> <translation id="5567989639534621706">ಅಪ್ಲಿಕೇಶನ್ ಸಂಗ್ರಹಗಳು</translation> @@ -3133,7 +3132,7 @@ <translation id="5764483294734785780">ಇದರಂತೆ ಆಡಿಯೋ ಉ&ಳಿಸಿ...</translation> <translation id="57646104491463491">ದಿನಾಂಕ ಮಾರ್ಪಡಿಸಿದೆ</translation> <translation id="5764797882307050727">ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಸ್ವಲ್ಪ ಸ್ಥಳಾವಕಾಶ ಮಾಡಿ.</translation> -<translation id="5765425701854290211">ಕ್ಷಮಿಸಿ, ಕೆಲವು ಫೈಲ್ಗಳು ಹಾನಿಗೊಳಗಾಗಿದ್ದವು ಮತ್ತು ಅಪ್ಡೇಟ್ ಪ್ರಕ್ರಿಯೆ ಯಶಸ್ವಿಯಾಗಿರಲಿಲ್ಲ. ನಿಮ್ಮ ಸಿಂಕ್ ಮಾಡಿದ ಫೈಲ್ಗಳು ಸುರಕ್ಷಿತವಾಗಿವೆ.</translation> +<translation id="5765425701854290211">ಕ್ಷಮಿಸಿ, ಕೆಲವು ಫೈಲ್ಗಳು ಹಾನಿಗೊಳಗಾಗಿದ್ದವು ಮತ್ತು ಅಪ್ಡೇಟ್ ಪ್ರಕ್ರಿಯೆ ಯಶಸ್ವಿಯಾಗಿರಲಿಲ್ಲ. ಸಿಂಕ್ ಆಗಿರುವ ನಿಮ್ಮ ಫೈಲ್ಗಳು ಸುರಕ್ಷಿತವಾಗಿವೆ.</translation> <translation id="5765491088802881382">ಯಾವುದೇ ನೆಟ್ವರ್ಕ್ಗಳು ಲಭ್ಯವಿಲ್ಲ</translation> <translation id="5765780083710877561">ವಿವರಣೆ:</translation> <translation id="5771816112378578655">ಸೆಟಪ್ ಪ್ರಗತಿಯಲ್ಲಿದೆ...</translation> @@ -3269,7 +3268,7 @@ <translation id="595959584676692139">ಈ ವಿಸ್ತರಣೆಯನ್ನು ಬಳಸಲು ಪುಟವನ್ನು ಪುನಃ ಲೋಡ್ ಮಾಡಿ</translation> <translation id="5963453369025043595"><ph name="NUM_HANDLES" /> (<ph name="NUM_KILOBYTES_LIVE" /> ಪೀಕ್)</translation> <translation id="5965661248935608907">ನೀವು ಮುಖಪುಟ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ಅಥವಾ ಓಮ್ನಿಬಾಕ್ಸ್ನಿಂದ ಹುಡುಕಿದಾಗ ತೋರಿಸಬೇಕಾದ ಪುಟವನ್ನು ಕೂಡಾ ಇದು ನಿಯಂತ್ರಿಸುತ್ತದೆ.</translation> -<translation id="5971037678316050792">ಬ್ಲೂಟೂತ್ ಅಡಾಪ್ಟರ್ ಸ್ಥಿತಿ ಮತ್ತು ಜೋಡಿಸುವಿಕೆಯನ್ನು ನಿಯಂತ್ರಿಸು</translation> +<translation id="5971037678316050792">ಬ್ಲೂಟೂತ್ ಅಡಾಪ್ಟರ್ ಸ್ಥಿತಿ ಮತ್ತು ಜೋಡಿಸುವಿಕೆಯನ್ನು ನಿಯಂತ್ರಿಸಿ</translation> <translation id="5972017421290582825">MIDI ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ನಿರ್ವಹಿಸಿ...</translation> <translation id="5972708806901999743">ಮೇಲಕ್ಕೆ ಸರಿಸಿ</translation> <translation id="5972826969634861500"><ph name="PRODUCT_NAME" /> ಪ್ರಾರಂಭಿಸು</translation> @@ -3351,7 +3350,7 @@ <translation id="6087960857463881712">ಅದ್ಭುತ ಮುಖ</translation> <translation id="6089481419520884864">ಪುಟವನ್ನು ಶೋಧಿಸು</translation> <translation id="6091761513005122595">ಹಂಚಿಕೆ ಯಶಸ್ವಿಯಾಗಿ ಅಳವಡಿಸಲಾಗಿದೆ.</translation> -<translation id="6093888419484831006">ನವೀಕರಣವನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗುತ್ತಿದೆ...</translation> +<translation id="6093888419484831006">ಅಪ್ಡೇಟ್ ಅನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="6095984072944024315">−</translation> <translation id="6096047740730590436">ಗರಿಷ್ಠಗೊಳಿಸುವಿಕೆಯಲ್ಲಿ ತೆರೆಯಿರಿ</translation> <translation id="6096326118418049043">X.500 ಹೆಸರು</translation> @@ -3567,7 +3566,7 @@ <translation id="6417265370957905582">Google ಸಹಾಯಕ</translation> <translation id="6418160186546245112"><ph name="IDS_SHORT_PRODUCT_NAME" /> ನ ಹಿಂದೆ ಸ್ಥಾಪಿಸಿದ ಆವೃತ್ತಿಗೆ ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತಿದೆ</translation> <translation id="6418481728190846787">ಎಲ್ಲಾ ಅಪ್ಲಿಕೇಶನ್ಗಳ ಪ್ರವೇಶವನ್ನು ಶಾಶ್ವತವಾಗಿ ತೆಗೆಯಿರಿ</translation> -<translation id="6418511932144861495">ಮಹತ್ವದ ಅಪ್ಡೇಟ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ</translation> +<translation id="6418511932144861495">ಮಹತ್ವದ ಅಪ್ಡೇಟ್ ಅನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ</translation> <translation id="6419288379019356534">ಈ ಸಾಧನವನ್ನು <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ನಿರ್ವಹಣೆ ಮಾಡುತ್ತಿದೆ. <ph name="LINE_BREAK" /> ನಿಮ್ಮ <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> ಖಾತೆಗೆ ಸೈನ್ ಇನ್ ಮಾಡುವುದನ್ನು ಮುಂದುವರಿಸುವುದಕ್ಕೆ "ಮುಂದೆ" ಕ್ಲಿಕ್ ಮಾಡಿ.</translation> @@ -3595,7 +3594,7 @@ <translation id="6455264371803474013">ನಿರ್ದಿಷ್ಟ ಸೈಟ್ಗಳಲ್ಲಿ</translation> <translation id="6455894534188563617">&ಹೊಸ ಫೋಲ್ಡರ್</translation> <translation id="6456394469623773452">ಉತ್ಕೃಷ್ಟ</translation> -<translation id="6456631036739229488">Smart Lock ಫೋನ್ ಬದಲಾಯಿಸಲಾಗಿದೆ. Smart Lock ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಲು ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸಿ, ಮುಂದಿನ ಬಾರಿ, ನಿಮ್ಮ ಫೋನ್ ಈ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡುತ್ತದೆ. ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ Smart Lock ಅನ್ನು ಆಫ್ ಮಾಡಿ.</translation> +<translation id="6456631036739229488">Smart Lock ಫೋನ್ ಬದಲಾಯಿಸಲಾಗಿದೆ. Smart Lock ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಲು ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸಿ, ಮುಂದಿನ ಬಾರಿ, ನಿಮ್ಮ ಫೋನ್ ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡುತ್ತದೆ. ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ Smart Lock ಅನ್ನು ಆಫ್ ಮಾಡಿ.</translation> <translation id="645705751491738698">JavaScript ನಿರ್ಬಂಧಿಸುವಿಕೆಯನ್ನು ಮುಂದುವರಿಸಿ</translation> <translation id="6459488832681039634">ಹುಡುಕಲು ಆಯ್ಕೆಯನ್ನು ಬಳಸಿ</translation> <translation id="6459799433792303855">ಮತ್ತೊಂದು ಡಿಸ್ಪ್ಲೇಗೆ ಸಕ್ರಿಯ ವಿಂಡೋವನ್ನು ಸರಿಸಲಾಗಿದೆ.</translation> @@ -4168,7 +4167,7 @@ <translation id="7341834142292923918">ಈ ಸೈಟ್ಗೆ ಪ್ರವೇಶ ಕೋರುತ್ತಿದೆ</translation> <translation id="7345706641791090287">ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಖಚಿತಪಡಿಸಿ</translation> <translation id="7346909386216857016">ಸರಿ, ಅರ್ಥವಾಯಿತು</translation> -<translation id="7347751611463936647">ಈ ವಿಸ್ತರಣೆಯನ್ನು ಬಳಸಲು, "<ph name="EXTENSION_KEYWORD" />" ಅನ್ನು ಟೈಪ್ ಮಾಡಿ, ನಂತರ TAB, ನಂತರ ನಿಮ್ಮ ಆದೇಶ ಅಥವಾ ಹುಡುಕಾಟವನ್ನು ಟೈಪ್ ಮಾಡಿ.</translation> +<translation id="7347751611463936647">ಈ ವಿಸ್ತರಣೆಯನ್ನು ಬಳಸಲು "<ph name="EXTENSION_KEYWORD" />", ಅನ್ನು ಟೈಪ್ ಮಾಡಿ, ನಂತರ TAB, ನಂತರ ನಿಮ್ಮ ಕಮಾಂಡ್ ಅಥವಾ ಹುಡುಕಾಟವನ್ನು ಟೈಪ್ ಮಾಡಿ.</translation> <translation id="7348093485538360975">ಆನ್ ಸ್ಕ್ರೀನ್ ಕೀಬೋರ್ಡ್</translation> <translation id="7352651011704765696">ಯಾವುದೋ ತಪ್ಪು ಸಂಭವಿಸಿದೆ</translation> <translation id="735361434055555355">Linux ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗುತ್ತಿದೆ...</translation> @@ -4240,7 +4239,7 @@ <translation id="7473891865547856676">ಇಲ್ಲ, ಧನ್ಯವಾದಗಳು</translation> <translation id="747459581954555080">ಎಲ್ಲವನ್ನು ಮರುಸಂಗ್ರಹಿಸಿ</translation> <translation id="7475671414023905704">Netscape ಕಳೆದು ಹೋದ ಪಾಸ್ವರ್ಡ್ URL</translation> -<translation id="7476454130948140105"><ph name="BATTERY_PERCENT" /> ಅಪ್ಡೇಟ್ ಮಾಡಲು ಬ್ಯಾಟರಿ ತುಂಬಾ ಕಡಿಮೆ ಇದೆ</translation> +<translation id="7476454130948140105">ಅಪ್ಡೇಟ್ ಮಾಡಲು ಬ್ಯಾಟರಿ <ph name="BATTERY_PERCENT" /> ತುಂಬಾ ಕಡಿಮೆ ಇದೆ</translation> <translation id="7478485216301680444">ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲಾಗುವುದಿಲ್ಲ.</translation> <translation id="7481312909269577407">ಫಾರ್ವರ್ಡ್</translation> <translation id="748138892655239008">ಪ್ರಮಾಣಪತ್ರ ಆಧಾರಿತ ನಿರ್ಬಂಧಗಳು</translation> @@ -4304,7 +4303,7 @@ <translation id="7566723889363720618">F12</translation> <translation id="756809126120519699">Chrome ಡೇಟಾ ತೆರವುಗೊಳಿಸಲಾಗಿದೆ</translation> <translation id="7568790562536448087">ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ</translation> -<translation id="7571643774869182231">ಅಪ್ಡೇಟ್ ಮಾಡಲು ಸಾಕಷ್ಟು ಸ್ಥಳಾವಕಾಶವಿಲ್ಲ</translation> +<translation id="7571643774869182231">ಅಪ್ಡೇಟ್ ಮಾಡಲು ಸಾಕಷ್ಟು ಸಂಗ್ರಹಣೆಯಿಲ್ಲ</translation> <translation id="7573172247376861652">ಬ್ಯಾಟರಿ ಚಾರ್ಜ್</translation> <translation id="7576032389798113292">6x4</translation> <translation id="7576690715254076113">ಹೋಲಿಸಿ ನೋಡು</translation> @@ -4355,12 +4354,12 @@ <translation id="7661451191293163002">ನೋಂದಣಿ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಪಡೆದುಕೊಳ್ಳಲಾಗಲಿಲ್ಲ.</translation> <translation id="7662283695561029522">ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ</translation> <translation id="7663719505383602579">ರಿಸೀವರ್: <ph name="ARC_PROCESS_NAME" /></translation> -<translation id="7664620655576155379">ಬೆಂಬಲಿಸದಿರುವ ಬ್ಲೂಟೂತ್ ಸಾಧನ: "<ph name="DEVICE_NAME" />".</translation> +<translation id="7664620655576155379">ಬೆಂಬಲಿಸದಿರುವ ಬ್ಲೂಟೂತ್ ಸಾಧನ: "<ph name="DEVICE_NAME" />".</translation> <translation id="7665369617277396874">ಖಾತೆಯನ್ನು ಸೇರಿಸು</translation> <translation id="7671130400130574146">ಸಿಸ್ಟಂ ಶೀರ್ಷಿಕೆ ಪಟ್ಟಿ ಮತ್ತು ಅಂಚುಗಳನ್ನು ಬಳಸಿ</translation> <translation id="7672520070349703697"><ph name="PAGE_TITLE" /> ನಲ್ಲಿ <ph name="HUNG_IFRAME_URL" /></translation> <translation id="7676867886086876795">ಯಾವುದೇ ಪಠ್ಯ ಫೀಲ್ಡ್ನಲ್ಲಿ ಡಿಕ್ಟೇಷನ್ ಅನ್ನು ಅನುಮತಿಸಲು ನಿಮ್ಮ ಧ್ವನಿಯನ್ನು Google ಗೆ ಕಳುಹಿಸಿ.</translation> -<translation id="7681095912841365527">ಬ್ಲೂಟೂತ್ ಅನ್ನು ಸೈಟ್ ಬಳಸಬಹುದು</translation> +<translation id="7681095912841365527">ಸೈಟ್ ಬ್ಲೂಟೂತ್ ಅನ್ನು ಬಳಸಬಹುದು</translation> <translation id="7683373461016844951">ಮುಂದುವರಿಸಲು, ಸರಿ ಎಂಬುದನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ. ಆಮೇಲೆ, ನಿಮ್ಮ <ph name="DOMAIN" /> ಇಮೇಲ್ ವಿಳಾಸಕ್ಕಾಗಿ ಹೊಸ ಪ್ರೊಫೈಲ್ ಅನ್ನು ರಚಿಸಲು, ವ್ಯಕ್ತಿಯನ್ನು ಸೇರಿಸಿ ಎಂಬುದನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ.</translation> <translation id="7684212569183643648">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಸ್ಥಾಪಿಸಿದ್ದಾರೆ</translation> <translation id="7684559058815332124">ಕ್ಯಾಪ್ಟಿವ್ ಪೋರ್ಟಲ್ ಲಾಗಿನ್ ಪುಟಕ್ಕೆ ಭೇಟಿ ನೀಡಿ</translation> @@ -4509,7 +4508,7 @@ <translation id="7868378670806575181">{NUM_COOKIES,plural, =1{1 ಕುಕೀ}one{# ಕುಕೀಗಳು}other{# ಕುಕೀಗಳು}}</translation> <translation id="786957569166715433"><ph name="DEVICE_NAME" /> - ಜೋಡಿಸಲಾಗಿದೆ</translation> <translation id="7870730066603611552">ಸೆಟಪ್ ನಂತರ ಸಿಂಕ್ ಆಯ್ಕೆಗಳನ್ನು ಪರಿಶೀಲಿಸಿ</translation> -<translation id="7870790288828963061">ಹೊಸ ಆವೃತ್ತಿಯೊಂದಿಗೆ ಯಾವುದೇ ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಕಂಡುಬಂದಿಲ್ಲ. ನವೀಕರಿಸಲು ಏನೂ ಇಲ್ಲ. ದಯವಿಟ್ಟು USB ಸ್ಟಿಕ್ ತೆಗೆದುಹಾಕಿ.</translation> +<translation id="7870790288828963061">ಹೊಸ ಆವೃತ್ತಿಯೊಂದಿಗೆ ಯಾವುದೇ ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಕಂಡುಬಂದಿಲ್ಲ. ಅಪ್ಡೇಟ್ ಮಾಡಲು ಏನೂ ಇಲ್ಲ. ದಯವಿಟ್ಟು USB ಸ್ಟಿಕ್ ತೆಗೆದುಹಾಕಿ.</translation> <translation id="7874257161694977650">Chrome ಹಿನ್ನೆಲೆಗಳು</translation> <translation id="7877451762676714207">ಅಪರಿಚಿತ ಸರ್ವರ್ ದೋಷ. ದಯವಿಟ್ಟು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ, ಅಥವಾ ಸರ್ವರ್ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation> <translation id="7877680364634660272">ಪ್ರವಾಸ</translation> @@ -4616,7 +4615,7 @@ <translation id="8017335670460187064"><ph name="LABEL" /></translation> <translation id="8017679124341497925">ಶಾರ್ಟ್ಕಟ್ ಅನ್ನು ಎಡಿಟ್ ಮಾಡಲಾಗಿದೆ</translation> <translation id="8018313076035239964">ವೆಬ್ಸೈಟ್ಗಳು ಯಾವ ಮಾಹಿತಿಯನ್ನು ಬಳಸಬಹುದು ಮತ್ತು ಅವುಗಳು ನಿಮಗೆ ಯಾವ ವಿಷಯವನ್ನು ತೋರಿಸಬಹುದು ಎನ್ನುವುದನ್ನು ನಿಯಂತ್ರಿಸಿ</translation> -<translation id="8023801379949507775">ಈಗ ವಿಸ್ತರಣೆಗಳನ್ನು ನವೀಕರಿಸಿ</translation> +<translation id="8023801379949507775">ಈಗ ವಿಸ್ತರಣೆಗಳನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಿ</translation> <translation id="8024483450737722621">Google Play ನಿಂದ ನೀವು ಡೌನ್ಲೋಡ್ ಮಾಡಲಾದ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು Chromebook ನಿಂದ ಅಳಿಸಲಾಗುತ್ತದೆ. <ph name="LINE_BREAKS1" /> ಚಲನಚಿತ್ರಗಳು, ಟಿವಿ ಪ್ರದರ್ಶನಗಳು, ಸಂಗೀತ, ಪುಸ್ತಕಗಳಂತಹ ನೀವು ಖರೀದಿಸಿದ ವಿಷಯವನ್ನು ಅಥವಾ ಇತರ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿನ ಖರೀದಿಗಳನ್ನು ಸಹ ಅಳಿಸಬಹುದು. @@ -4692,7 +4691,7 @@ <translation id="8135557862853121765"><ph name="NUM_KILOBYTES" />K</translation> <translation id="8137331602592933310">"<ph name="FILENAME" />" ಅನ್ನು ನಿಮ್ಮೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಲಾಗಿದೆ. ನೀವು ಅದನ್ನು ಹೊಂದಿಲ್ಲದಿರುವ ಕಾರಣ ನಿಮಗೆ ಅದನ್ನು ಅಳಿಸಲಾಗುವುದಿಲ್ಲ.</translation> <translation id="8137559199583651773">ವಿಸ್ತರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation> -<translation id="8138082791834443598">ಐಚ್ಛಿಕ — ಈ ಸಾಧನಕ್ಕೆ ಸಂಯೋಜಿಸಲು ಹೊಸ ಮಾಹಿತಿಯನ್ನು ನಮೂದಿಸಿ ಅಥವಾ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಮಾಹಿತಿಯನ್ನು ನವೀಕರಿಸಿ.</translation> +<translation id="8138082791834443598">ಐಚ್ಛಿಕ — ಈ ಸಾಧನಕ್ಕೆ ಸಂಯೋಜಿಸಲು ಹೊಸ ಮಾಹಿತಿಯನ್ನು ನಮೂದಿಸಿ ಅಥವಾ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಮಾಹಿತಿಯನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಿ.</translation> <translation id="813913629614996137">ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="8140778357236808512">ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಮೇಲ್ವಿಚಾರಣೆ ಬಳಕೆದಾರರನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳಿ</translation> <translation id="8141725884565838206">ನಿನ್ನ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation> @@ -4780,7 +4779,7 @@ <translation id="8271246892936492311">{COUNT,plural, =1{1 ಬುಕ್ಮಾರ್ಕ್ ಅಳಿಸಲಾಗಿದೆ}one{# ಬುಕ್ಮಾರ್ಕ್ಗಳನ್ನು ಅಳಿಸಲಾಗಿದೆ}other{# ಬುಕ್ಮಾರ್ಕ್ಗಳನ್ನು ಅಳಿಸಲಾಗಿದೆ}}</translation> <translation id="8272443605911821513">"ಹೆಚ್ಚಿನ ಪರಿಕರಗಳು" ಮೆನುನಲ್ಲಿರುವ ‘ವಿಸ್ತರಣೆಗಳು’ಕ್ಲಿಕ್ ಮಾಡುವ ಮೂಲಕ ನಿಮ್ಮ ವಿಸ್ತರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಿ.</translation> <translation id="8274332263553132018">ಫೈಲ್ ಅನ್ನು ಬಿತ್ತರಿಸಿ</translation> -<translation id="8274924778568117936">ಅಪ್ಡೇಟ್ ಅಪ್ಡೇಟ್ ಮುಕ್ತಾಯಗೊಳ್ಳುವವರೆಗೆ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಆಫ್ ಮಾಡಬೇಡಿ. ಸ್ಥಾಪನಾ ಪ್ರಕ್ರಿಯೆ ಪೂರ್ಣಗೊಂಡ ನಂತರ ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಮರುಪ್ರಾರಂಭವಾಗುತ್ತದೆ.</translation> +<translation id="8274924778568117936">ಅಪ್ಡೇಟ್ ಮುಕ್ತಾಯಗೊಳ್ಳುವವರೆಗೆ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಆಫ್ ಮಾಡಬೇಡಿ. ಇನ್ಸ್ಟಾಲೇಶನ್ ಪ್ರಕ್ರಿಯೆ ಪೂರ್ಣಗೊಂಡ ನಂತರ ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಮರುಪ್ರಾರಂಭವಾಗುತ್ತದೆ.</translation> <translation id="8275038454117074363">ಆಮದು</translation> <translation id="8276560076771292512">ಖಾಲಿ ಸಂಗ್ರಹಣೆ ಮತ್ತು ಹಾರ್ಡ್ ಮರುಲೋಡ್</translation> <translation id="8281886186245836920">ಸ್ಕಿಪ್</translation> @@ -4911,7 +4910,7 @@ <translation id="8487678622945914333">ಝೂಮ್ ಇನ್</translation> <translation id="8487693399751278191">ಇದೀಗ ಬುಕ್ಮಾರ್ಕ್ಗಳನ್ನು ಆಮದು ಮಾಡಿ...</translation> <translation id="8487700953926739672">ಆಫ್ಲೈನ್ ಲಭ್ಯವಿದೆ</translation> -<translation id="8490896350101740396">ಈ ಕೆಳಗಿನ ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು "<ph name="UPDATED_APPS" />" ಅಪ್ಡೇಟ್ ಮಾಡಲಾಗಿದೆ. ಅಪ್ಡೇಟ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ದಯವಿಟ್ಟು ಸಾಧನವನ್ನು ರೀಬೂಟ್ ಮಾಡಿ.</translation> +<translation id="8490896350101740396">ಈ ಕೆಳಗಿನ ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು "<ph name="UPDATED_APPS" />" ಅಪ್ಡೇಟ್ ಮಾಡಲಾಗಿದೆ. ಅಪ್ಡೇಟ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ದಯವಿಟ್ಟು ಸಾಧನವನ್ನು ರೀಬೂಟ್ ಮಾಡಿ.</translation> <translation id="8493236660459102203">ಮೈಕ್ರೋಫೋನ್:</translation> <translation id="8496717697661868878">ಈ ಪ್ಲಗಿನ್ ಚಾಲನೆ ಮಾಡು</translation> <translation id="8497219075884839166">ವಿಂಡೋಗಳ ಸೌಲಭ್ಯಗಳು</translation> @@ -4952,7 +4951,6 @@ <translation id="8557930019681227453">ಮ್ಯಾನಿಫೆಸ್ಟ್</translation> <translation id="8559694214572302298">ಚಿತ್ರ ಡಿಕೋಡರ್</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">ಓದುವುದನ್ನು ಮುಂದುವರಿಸಿ</translation> <translation id="8565650234829130278">ಅಪ್ಲಿಕೇಶನ್ ಕೆಳಮಟ್ಟಗೊಳಿಸಲು ಪ್ರಯತ್ನಿಸಲಾಗಿದೆ.</translation> <translation id="8569002732135253578">ಇದೀಗ <ph name="DOCUMENT_NAME" /> ಅನ್ನು ಮುದ್ರಿಸಲಾಗುತ್ತಿದೆ</translation> <translation id="8569682776816196752">ಯಾವುದೇ ಗಮ್ಯಸ್ಥಾನಗಳು ಕಂಡುಬಂದಿಲ್ಲ</translation> @@ -4990,7 +4988,7 @@ <translation id="8630903300770275248">ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರನ್ನು ಆಮದು ಮಾಡು</translation> <translation id="8631032106121706562">ಪೆಟಲ್ಸ್</translation> <translation id="8637542770513281060">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್, ಸುಭದ್ರ ಮಾಡ್ಯೂಲ್ ಅನ್ನು ಹೊಂದಿದೆ. Chrome OS ನಲ್ಲಿ ಹಲವು ಪ್ರಮುಖ ಭದ್ರತಾ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಇದರ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿದುಕೊಳ್ಳಲು Chromebook ಸಹಾಯ ಕೇಂದ್ರಕ್ಕೆ ಭೇಟಿ ನೀಡಿ: https://support.google.com/chromebook/?p=sm</translation> -<translation id="8637688295594795546">ಸಿಸ್ಟಂ ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ. ಡೌನ್ಲೋಡ್ ಮಾಡಲು ತಯಾರಾಗುತ್ತಿದೆ...</translation> +<translation id="8637688295594795546">ಸಿಸ್ಟಂ ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ. ಡೌನ್ಲೋಡ್ ಮಾಡಲು ಸಿದ್ಧಗೊಳ್ಳುತ್ತಿದೆ...</translation> <translation id="8639047128869322042">ಹಾನಿಕಾರಕ ಸಾಫ್ಟ್ವೇರ್ಗಾಗಿ ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="8639963783467694461">ಸ್ವಯಂತುಂಬುವಿಕೆ ಸೆಟ್ಟಿಂಗ್ಗಳು</translation> <translation id="8642171459927087831">ಪ್ರವೇಶ ಟೋಕನ್</translation> @@ -5085,7 +5083,7 @@ <translation id="8749863574775030885">ಅಪರಿಚಿತ ಮಾರಾಟಗಾರರಿಂದ USB ಸಾಧನಗಳನ್ನು ಪ್ರವೇಶಿಸಿ</translation> <translation id="8754200782896249056"><p>ಬೆಂಬಲಿತ ಡೆಸ್ಕ್ಟಾಪ್ ಪರಿಸರದ ಅಡಿಯಲ್ಲಿ <ph name="PRODUCT_NAME" /> ಅನ್ನು ರನ್ ಮಾಡುವಾಗ, ಸಿಸ್ಟಂನ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಆದಾಗ್ಯೂ ನಿಮ್ಮ ಸಿಸ್ಟಂಗೆ ಬೆಂಬಲ ಸಿಗುತ್ತಿಲ್ಲ ಇಲ್ಲವೇ ನಿಮ್ಮ ಸಿಸ್ಟಂ ಕಾನ್ಫಿಗರೇಶನ್ ಪ್ರಾರಂಭಿಸುವಲ್ಲಿ ಸಮಸ್ಯೆ ಇದೆ.</p> - <p>ಆದರೆ ಆದೇಶ ಸಾಲಿನ ಮೂಲಕ ನೀವು ಇನ್ನೂ ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದಾಗಿದೆ. ಫ್ಲ್ಯಾಗ್ಗಳು ಮತ್ತು ಪರಿಸರ ವೇರಿಯಬಲ್ಗಳ ಕುರಿತ ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ ದಯವಿಟ್ಟು <code>ಕೈಪಿಡಿ <ph name="PRODUCT_BINARY_NAME" /> </code> ಅನ್ನು ವೀಕ್ಷಿಸಿ.</p></translation> + <p>ಆದರೆ ಕಮಾಂಡ್ ಸಾಲಿನ ಮೂಲಕ ನೀವು ಇನ್ನೂ ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದಾಗಿದೆ. ಫ್ಲ್ಯಾಗ್ಗಳು ಮತ್ತು ಪರಿಸರ ವೇರಿಯಬಲ್ಗಳ ಕುರಿತ ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ ದಯವಿಟ್ಟು <code>ಕೈಪಿಡಿ <ph name="PRODUCT_BINARY_NAME" /></code> ಅನ್ನು ವೀಕ್ಷಿಸಿ.</p></translation> <translation id="8755376271068075440">&ದೊಡ್ಡದು</translation> <translation id="8756969031206844760">ಪಾಸ್ವರ್ಡ್ ಅಪ್ಡೇಟ್ ಮಾಡುವುದೇ?</translation> <translation id="8757090071857742562">ಡೆಸ್ಕ್ಟಾಪ್ ಬಿತ್ತರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಿಮ್ಮ ಪರದೆ ಹಂಚಿಕೊಳ್ಳುವದನ್ನು ಪ್ರಾರಂಭಿಸಲು ನೀವು ಖಚಿತಪಡಿಸಿರುವಿರಾ ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸಿ.</translation> @@ -5139,7 +5137,7 @@ <translation id="8824701697284169214">&ಪುಟ ಸೇರಿಸು...</translation> <translation id="8827752199525959199">ಇನ್ನಷ್ಟು ಕ್ರಿಯೆಗಳು, <ph name="USERNAME" /> ಅವರಿಗಾಗಿ ಪಾಸ್ವರ್ಡ್ಗಳು <ph name="DOMAIN" /> ನಲ್ಲಿ</translation> <translation id="8828933418460119530">DNS ಹೆಸರು</translation> -<translation id="8830796635868321089">ಪ್ರಸ್ತುತ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ನವೀಕರಣದ ಪರಿಶೀಲನೆ ವಿಫಲಗೊಂಡಿದೆ. ದಯವಿಟ್ಟು ನಿಮ್ಮ <ph name="PROXY_SETTINGS_LINK_START" />ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು<ph name="PROXY_SETTINGS_LINK_END" /> ಹೊಂದಿಸಿ.</translation> +<translation id="8830796635868321089">ಪ್ರಸ್ತುತ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಅಪ್ಡೇಟ್ನ ಪರಿಶೀಲನೆ ವಿಫಲಗೊಂಡಿದೆ. ದಯವಿಟ್ಟು ನಿಮ್ಮ <ph name="PROXY_SETTINGS_LINK_START" />ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು<ph name="PROXY_SETTINGS_LINK_END" /> ಹೊಂದಿಸಿ.</translation> <translation id="8834039744648160717"><ph name="USER_EMAIL" /> ಮೂಲಕ ನೆಟ್ವರ್ಕ್ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ನಿಯಂತ್ರಿಸಲಾಗಿದೆ.</translation> <translation id="8834164572807951958">ಈ ಐಟಂಗಳನ್ನು ನಕಲಿಸಲು '<ph name="DESTINATION_NAME" />' ನ ಸದಸ್ಯರು ಪ್ರವೇಶವನ್ನು ಪಡೆದುಕೊಂಡಿರುತ್ತಾರೆ.</translation> <translation id="8838770651474809439">ಹ್ಯಾಂಬರ್ಗರ್</translation> @@ -5158,7 +5156,7 @@ <translation id="8871551568777368300">ನಿರ್ವಾಹಕರಿಂದ ಪಿನ್ ಮಾಡಲಾಗಿದೆ</translation> <translation id="8871696467337989339">ನೀವು ಬೆಂಬಲಿತವಲ್ಲದ ಕಮಾಂಡ್-ಲೈನ್ ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ಬಳಸುತ್ತಿರುವಿರಿ: <ph name="BAD_FLAG" />. ಸ್ಥಿರತೆ ಮತ್ತು ಸುರಕ್ಷತೆಯು ಹಾನಿಯಾಗುತ್ತದೆ.</translation> <translation id="8871974300055371298">ವಿಷಯ ಸೆಟ್ಟಿಂಗ್ಗಳು</translation> -<translation id="8872155268274985541">ಅಮಾನ್ಯ ಕಿಯೋಸ್ಕ್ ಬಾಹ್ಯ ಅಪ್ಡೇಟ್ ಮ್ಯಾನಿಫೆಸ್ಟ್ ಫೈಲ್ ಕಂಡುಬಂದಿದೆ. ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್ ನವೀಕರಿಸಲು ವಿಫಲವಾಗಿದೆ. ದಯವಿಟ್ಟು USB ಸ್ಟಿಕ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿ.</translation> +<translation id="8872155268274985541">ಅಮಾನ್ಯ ಕಿಯೋಸ್ಕ್ ಬಾಹ್ಯ ಅಪ್ಡೇಟ್ ಮ್ಯಾನಿಫೆಸ್ಟ್ ಫೈಲ್ ಕಂಡುಬಂದಿದೆ. ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್ ಅಪ್ಡೇಟ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ. ದಯವಿಟ್ಟು USB ಸ್ಟಿಕ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿ.</translation> <translation id="8874184842967597500">ಸಂಪರ್ಕಗೊಳಿಸಿಲ್ಲ</translation> <translation id="8876215549894133151">ಸ್ವರೂಪ:</translation> <translation id="8876307312329369159">ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಡೆಮೊ ಸೆಷನ್ನಲ್ಲಿ ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation> @@ -5362,13 +5360,13 @@ <translation id="9169931577761441333"><ph name="APP_NAME" /> ಅನ್ನು ಮುಖಪುಟದ ಪರದೆಗೆ ಸೇರಿಸಿ</translation> <translation id="9170848237812810038">&ರದ್ದುಮಾಡು</translation> <translation id="9170884462774788842">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿನ ಮತ್ತೊಂದು ಪ್ರೋಗ್ರಾಂ Chrome ಕಾರ್ಯನಿರ್ವಹಿಸುವ ವಿಧಾನವನ್ನು ಬದಲಿಸಬಹುದಾದಂತಹ ಥೀಮ್ ಅನ್ನು ಸೇರಿಸಿದೆ.</translation> -<translation id="9173995187295789444">ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳಿಗಾಗಿ ಸ್ಕ್ಯಾನ್ ಮಾಡಲಾಗುತ್ತಿದೆ...</translation> -<translation id="9176611096776448349"><ph name="WINDOW_TITLE" /> - ಬ್ಲೂಟೂತ್ ಸಾಧನ ಸಂಪರ್ಕಪಡಿಸಲಾಗಿದೆ</translation> +<translation id="9173995187295789444">ಬ್ಲೂಟೂತ್ ಸಾಧನಳನ್ನು ಹುಡುಕುವುದಕ್ಕಾಗಿ ಸ್ಕ್ಯಾನ್ ಮಾಡಲಾಗುತ್ತಿದೆ...</translation> +<translation id="9176611096776448349"><ph name="WINDOW_TITLE" /> - ಬ್ಲೂಟೂತ್ ಸಾಧನ ಸಂಪರ್ಕಗೊಂಡಿದೆ</translation> <translation id="9177499212658576372">ನೀವು ಪ್ರಸ್ತುತ <ph name="NETWORK_TYPE" /> ನೆಟ್ವರ್ಕ್ಗೆ ಸಂಪರ್ಕಗೊಂಡಿರುವಿರಿ.</translation> <translation id="9179734824669616955">ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ನಲ್ಲಿ Linux (ಬೀಟಾ) ಹೊಂದಿಸಿ</translation> <translation id="9180281769944411366">ಈ ಪ್ರಕ್ರಿಯೆಯು ಕೆಲವು ನಿಮಿಷಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು. Linux ಕಂಟೇನರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ.</translation> <translation id="9180380851667544951">ನಿಮ್ಮ ಪರದೆಯನ್ನು ಸೈಟ್ ಹಂಚಿಕೊಳ್ಳಬಹುದು</translation> -<translation id="9188441292293901223">ದಯವಿಟ್ಟು ಈ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು Android ಹೊಸ ಆವೃತ್ತಿಗೆ ನಿಮ್ಮ ಫೋನ್ ನವೀಕರಿಸಿ.</translation> +<translation id="9188441292293901223">ದಯವಿಟ್ಟು ಈ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು Android ಹೊಸ ಆವೃತ್ತಿಗೆ ನಿಮ್ಮ ಫೋನ್ ಅಪ್ಡೇಟ್ ಮಾಡಿ.</translation> <translation id="9190063653747922532">L2TP/IPSec + ಪೂರ್ವ ಹಂಚಿತ ಕೀಲಿ</translation> <translation id="920045321358709304"><ph name="SEARCH_ENGINE" /> ಹುಡುಕಿ</translation> <translation id="9201220332032049474">ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಆಯ್ಕೆಗಳು</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb index 1339887..1e3e1f7 100644 --- a/chrome/app/resources/generated_resources_ko.xtb +++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -1513,7 +1513,6 @@ <translation id="3285322247471302225">새 탭(&T)</translation> <translation id="3288047731229977326">개발자 모드로 실행 중인 확장 프로그램은 컴퓨터에 해를 줄 수 있습니다. 개발자가 아닌 경우 컴퓨터를 안전하게 사용하려면 개발자 모드로 실행 중인 확장 프로그램을 사용 중지해야 합니다.</translation> <translation id="3289856944988573801">업데이트를 확인하려면 이더넷 또는 Wi-Fi를 사용하세요.</translation> -<translation id="3292421191230118801">Chromebook에서 모바일 사이트 보기 재개</translation> <translation id="32939749466444286">Linux 컨테이너가 시작되지 않았습니다. 다시 시도해 주세요.</translation> <translation id="3294437725009624529">손님</translation> <translation id="329838636886466101">복구</translation> @@ -4959,7 +4958,6 @@ <translation id="8557930019681227453">매니페스트</translation> <translation id="8559694214572302298">이미지 디코더</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">계속 읽기</translation> <translation id="8565650234829130278">앱을 다운그레이드하려 했습니다.</translation> <translation id="8569002732135253578"><ph name="DOCUMENT_NAME" />을(를) 인쇄 중</translation> <translation id="8569682776816196752">목적지를 찾을 수 없음</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb index 62d819c..45ff450 100644 --- a/chrome/app/resources/generated_resources_lt.xtb +++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -247,6 +247,7 @@ <translation id="1358741672408003399">Rašyba ir gramatika</translation> <translation id="1361164813881551742">Pridėti neautomatiškai</translation> <translation id="1361655923249334273">Nenaudota</translation> +<translation id="1361872463926621533">Leisti garsą paleidžiant</translation> <translation id="1363028406613469049">Takelis</translation> <translation id="1367951781824006909">Pasirinkti failą</translation> <translation id="1368265273904755308">Pranešti apie problemą</translation> @@ -570,6 +571,7 @@ <translation id="1817310072033858383">Funkcijos „Smart Lock“ nustatymas „<ph name="DEVICE_TYPE" />“ įrenginyje</translation> <translation id="1817871734039893258">„Microsoft“ failų atkūrimas</translation> <translation id="1818007989243628752">Ištrinti <ph name="USERNAME" /> slaptažodį</translation> +<translation id="1818913467757368489">Žurnalas įkeliamas.</translation> <translation id="1819721979226826163">Palieskite „Programų pranešimai“ > „Google Play“ paslaugos“.</translation> <translation id="1826516787628120939">Tikrinama</translation> <translation id="1828378091493947763">Šis papildinys šiame įrenginyje nepalaikomas</translation> @@ -618,11 +620,13 @@ <translation id="1890674179660343635"><span>ID: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">Atidaryti visame ekrane</translation> <translation id="189358972401248634">Kitos kalbos</translation> +<translation id="1894591787927543791">Išsaugoti kortelės duomenis norint naudoti „Google Pay“</translation> <translation id="1895658205118569222">Išjungimas</translation> <translation id="1895934970388272448">Kad užbaigtumėte procesą, turite spausdintuve patvirtinti registraciją. Patikrinkite tai dabar.</translation> <translation id="1897762215429052132">Nustatykite tinklo ryšį, kalbą, klaviatūros išdėstymą...</translation> <translation id="1901303067676059328">Pasirinkti &viską</translation> <translation id="1902576642799138955">Galiojimo laikas</translation> +<translation id="1904518222538904133">Šiuo įrenginiu galima naudoti tik vieną iš jūsų kortelių</translation> <translation id="1905375423839394163">„Chromebook“ įrenginio pavadinimas</translation> <translation id="1905710495812624430">Viršytas didžiausias bandymų skaičius.</translation> <translation id="1909880997794698664">Ar tikrai norite šį įrenginį visam laikui nustatyti veikti viešojo terminalo režimu?</translation> @@ -659,6 +663,7 @@ <translation id="1962969542251276847">Užrakinti ekraną</translation> <translation id="1963227389609234879">Pašalinti viską</translation> <translation id="1965624977906726414">Nėra specialių leidimų.</translation> +<translation id="1969654639948595766">„WebRTC“ teksto žurnalai (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">Įjungtas vaizdo įrašo režimas</translation> <translation id="197288927597451399">Palikti</translation> <translation id="1974043046396539880">CRL paskirstymo vietos</translation> @@ -802,6 +807,7 @@ <translation id="2190069059097339078">„Wi-Fi“ prisijungimo duomenų atsisiuntimo priemonė</translation> <translation id="219008588003277019">Vietinio kliento modulis: „<ph name="NEXE_NAME" />“</translation> <translation id="2190355936436201913">(tuščias)</translation> +<translation id="2191223688506386601">Paskutinis dalykas</translation> <translation id="2192505247865591433">Iš:</translation> <translation id="2193365732679659387">Patikimumo nustatymai</translation> <translation id="2195729137168608510">El. pašto apsauga</translation> @@ -1025,6 +1031,7 @@ <translation id="2534460670861217804">Saugus HTTP tarpinis serveris</translation> <translation id="253557089021624350">Aktyvumą palaikančių elementų skaičius</translation> <translation id="2538361623464451692">Sinchronizavimas išjungtas</translation> +<translation id="2539876824180063438">Truputį pajudinkite smilių, kad būtų pridėtos skirtingos kontrolinio kodo dalys.</translation> <translation id="2541002089857695151">Optimizuoti perdavimą viso ekrano režimu?</translation> <translation id="2542049655219295786">„Google“ lentelė</translation> <translation id="2544853746127077729">Autentifikavimo sertifikatą atmetė tinklas</translation> @@ -1258,7 +1265,9 @@ <translation id="287286579981869940">Pridėti „<ph name="PROVIDER_NAME" />“...</translation> <translation id="2874343608108773609">Prisijunkite prie „Chrome“, kad pasiektumėte slaptažodžius visuose įrenginiuose.</translation> <translation id="2875698561019555027">(„Chrome“ klaidų puslapiai)</translation> +<translation id="2876336351874743617">Antras pirštas</translation> <translation id="288042212351694283">Pasiekiami bendrieji 2 veiksnio įrenginiai</translation> +<translation id="2881076733170862447">Spustelėjus plėtinį</translation> <translation id="2881966438216424900">Paskutinį kartą pasiekta:</translation> <translation id="2882943222317434580">„<ph name="IDS_SHORT_PRODUCT_NAME" />“ bus iš karto paleista ir nustatyta iš naujo</translation> <translation id="2885378588091291677">Užduočių tvarkytuvė</translation> @@ -1444,6 +1453,7 @@ <translation id="3154429428035006212">Neprijungta daugiau nei mėnesį</translation> <translation id="3156531245809797194">Jei norite naudoti „Chrome“, prisijunkite</translation> <translation id="3157931365184549694">Atkurti</translation> +<translation id="3158033540161634471">Kontrolinio kodo nustatymas</translation> <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> @@ -1513,9 +1523,10 @@ <translation id="3285322247471302225">Naujas &skirtukas</translation> <translation id="3288047731229977326">Kūrėjo režimu veikiantys plėtiniai gali padaryti žalos kompiuteryje. Jei nesate kūrėjai, turėtumėte išjungti šių plėtinių veikimą kūrėjo režimu, kad išliktumėte saugūs.</translation> <translation id="3289856944988573801">Jei norite tikrinti, ar nėra naujinių, naudokite eternetą arba „Wi-Fi“.</translation> -<translation id="3292421191230118801">Tęsti mobiliajame įrenginyje atidarytų svetainių peržiūrą „Chromebook“ įrenginyje</translation> <translation id="32939749466444286">Nepavyko paleisti „Linux“ sudėtinio rodinio. Bandykite dar kartą.</translation> <translation id="3294437725009624529">Svečias</translation> +<translation id="329703603001918157">Negalima redaguoti sparčiojo klavišo</translation> +<translation id="3297951628821704004">Pašalinti paskyrą iš šio įrenginio</translation> <translation id="329838636886466101">Pataisyti</translation> <translation id="3298789223962368867">Įvestas neteisingas URL.</translation> <translation id="32991397311664836">Įrenginiai:</translation> @@ -1682,6 +1693,7 @@ <translation id="3534879087479077042">Kas yra prižiūrimas naudotojas?</translation> <translation id="3538066758857505094">Pašalinant „Linux“ įvyko klaida. Bandykite dar kartą.</translation> <translation id="354060433403403521">Kintamosios srovės adapteris</translation> +<translation id="354068948465830244">Gali būti skaitomi ir keičiami svetainės duomenys</translation> <translation id="3541661933757219855">Kad paslėptumėte, paspauskite „Ctrl“ + „Alt“+ / arba „Escape“ (grįžimo klavišą)</translation> <translation id="3543393733900874979">Nepavyko atnaujinti (klaida: <ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">X9.62 ECDSA parašas naudojant SHA-512</translation> @@ -1727,6 +1739,7 @@ <translation id="3606712892509067288">Pašalinti iš „Better Together“</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">Naudotojo vaizdo peržiūra</translation> +<translation id="3609446736023031597">Gauti „Play“ parduotuvės programų naujinius ir rekomendacijas</translation> <translation id="3609785682760573515">Sinchronizuojama...</translation> <translation id="3609895557594655134">Pridėti „Android“ VPN...</translation> <translation id="361106536627977100">„Flash“ duomenys</translation> @@ -1759,6 +1772,7 @@ <translation id="3645372836428131288">Truputį pajudinkite pirštą, kad būtų užfiksuota kita kontrolinio kodo dalis.</translation> <translation id="3648348069317717750">Aptiktas „<ph name="USB_DEVICE_NAME" />“</translation> <translation id="3649138363871392317">Nuotrauka buvo užfiksuota</translation> +<translation id="3650845953328929506">Laukiama, kol žurnalas bus įkeltas.</translation> <translation id="3650952250015018111">Leidimas „<ph name="APP_NAME" />“ pasiekti:</translation> <translation id="3651488188562686558">Atsijungti nuo „Wi-Fi“</translation> <translation id="3652817283076144888">Inicijuojama</translation> @@ -1910,6 +1924,7 @@ <translation id="3856800405688283469">Pasirinkti laiko juostą</translation> <translation id="3857228364945137633">Pabandykite naudoti „Smart Lock“, kad atrakintumėte „<ph name="DEVICE_TYPE" />“ be slaptažodžio, kai telefonas yra netoliese.</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation> +<translation id="3857807444929313943">Patraukite ir vėl prilieskite</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: sinchronizavimas pristabdytas</translation> <translation id="3860381078714302691">Sveiki! Tai – „Hangout Meet“</translation> <translation id="3861241522664181545">Puslapis pristabdytas.</translation> @@ -1928,6 +1943,7 @@ <translation id="3873315167136380065">Norėdami tai įjungti <ph name="BEGIN_LINK" />nustatykite sinchronizavimą iš naujo<ph name="END_LINK" />, kad pašalintumėte sinchronizavimo slaptafrazę</translation> <translation id="3878840326289104869">Kuriamas prižiūrimas naudotojas</translation> <translation id="3879748587602334249">Atsisiuntimų tvarkytuvė</translation> +<translation id="3885455691202481064">Palieskite jutiklį smiliumi. Jutiklis yra „Chromebook“ viršuje, kairėje.</translation> <translation id="3888550877729210209">Užrašų kūrimas naudojant „<ph name="LOCK_SCREEN_APP_NAME" />“</translation> <translation id="3892414795099177503">Atidaryti „OpenVPN“ / L2TP...</translation> <translation id="3893536212201235195">Skaityti ir keisti pritaikymo neįgaliesiems nustatymus</translation> @@ -1980,6 +1996,7 @@ <translation id="3950820424414687140">Prisijungti</translation> <translation id="3954354850384043518">Vykdoma</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz)</translation> +<translation id="3954953195017194676">Neturite neseniai užfiksuotų „WebRTC“ įvykių žurnalų.</translation> <translation id="3955193568934677022">Leisti svetainėms paleisti apsaugotą turinį (rekomenduojama)</translation> <translation id="3956702100721821638">Nepavyko pasiekti „Google Play“</translation> <translation id="3958088479270651626">Importuoti žymes ir nustatymus</translation> @@ -2233,6 +2250,7 @@ <translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation> <translation id="4408599188496843485">P&agalba</translation> <translation id="4409697491990005945">Paraštės</translation> +<translation id="4410545552906060960">Naudokite skaičių (PIN kodą) vietoje slaptažodžio įrenginiui atrakinti. Jei norite PIN kodą nustatyti vėliau, eikite į skiltį „Nustatymai“.</translation> <translation id="4411578466613447185">Kodą pasirašanti šalis</translation> <translation id="4412698727486357573">Pagalbos centras</translation> <translation id="44141919652824029">Leisti „<ph name="APP_NAME" />“ gauti prijungtų USB įrenginių sąrašą?</translation> @@ -2324,8 +2342,10 @@ <translation id="4555769855065597957">Šešėlis</translation> <translation id="4556110439722119938">Žymės, istorija, slaptažodžiai ir kiti nustatymai bus sinchronizuojami su „Google“ paskyra, kad galėtumėte juos naudoti visuose įrenginiuose</translation> <translation id="4558426062282641716">Pateikta užklausa dėl leidimo automatiškai paleisti</translation> +<translation id="4558491878126948419">Gaukite „<ph name="DEVICE_TYPE" />“ patarimų, „Google“ produktų naujinius ir bendrinkite atsiliepimus. Atsisakyti prenumeratos galėsite bet kuriuo metu.</translation> <translation id="4559617833001311418">Ši svetainė pasiekia judesio ir šviesos jutiklius.</translation> <translation id="4562155214028662640">Pridėti kontrolinį kodą</translation> +<translation id="4563880231729913339">Trečias pirštas</translation> <translation id="4565377596337484307">Slėpti slaptažodį</translation> <translation id="4567772783389002344">Pridėti žodį</translation> <translation id="4568213207643490790">Deja, „Google“ paskyrų negalima naudoti šiame įrenginyje.</translation> @@ -2400,6 +2420,7 @@ <translation id="4681930562518940301">Atidaryti originalų &vaizdą naujame skirtuke</translation> <translation id="4682551433947286597">Ekrano fonai rodomi prisijungimo ekrane.</translation> <translation id="4684427112815847243">Viską sinchronizuoti</translation> +<translation id="4688036121858134881">Vietinio žurnalo ID: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4689235506267737042">Demonstracinės versijos nuostatų pasirinkimas</translation> <translation id="4689421377817139245">Sinchronizuokite šią žymę „iPhone“ įrenginyje</translation> <translation id="4690091457710545971"><Keturi „Intel“ „Wi-Fi“ programinės aparatinės įrangos sugeneruoti failai: csr.lst, fh_regs.lst, radio_reg.lst, monitor.lst.sysmon. Pirmieji trys yra dvejetainiai failai, kuriuose yra registro išklotinės ir kuriuos „Intel“ įvertino, kad nustatytų, ar nėra asmens ar įrenginį identifikuojančios informacijos. Paskutinis failas yra vykdymo pėdsakas iš „Intel“ programinės aparatinės įrangos. Jame išvalyta visa asmens ar įrenginį identifikuojanti informacija, bet jis per didelis, kad būtų galima čia pateikti. Šie failai sugeneruoti reaguojant į pastarąsias „Wi-Fi“ problemas, susijusias su įrenginiu, ir bus bendrinami su „Intel“, siekiant padėti pašalinti šias triktis.></translation> @@ -2584,6 +2605,7 @@ <translation id="4945444280533270988">„Smart Lock“ įjungta</translation> <translation id="4953689047182316270">Reaguoti į pritaikymo neįgaliesiems įvykius</translation> <translation id="4953808748584563296">Numatytasis oranžinis pseudoportretas</translation> +<translation id="4955710816792587366">PIN kodo pasirinkimas</translation> <translation id="4955814292505481804">Metinė licencija</translation> <translation id="4957949153200969297">Įgalinti tik funkcijas, susijusias su „<ph name="IDS_SHORT_PRODUCT_NAME" />“ sinchronizavimu</translation> <translation id="4959262764292427323">Slaptažodžiai išsaugoti „Google“ paskyroje, todėl galite juos naudoti bet kuriame įrenginyje</translation> @@ -2649,6 +2671,7 @@ <translation id="5050042263972837708">Grupės pavadinimas</translation> <translation id="5052499409147950210">Svetainės redagavimas</translation> <translation id="5053604404986157245">Šis atsitiktiniu būdu sugeneruotas TPM slaptažodis negalimas. Tai įprasta po „Powerwash“ vykdymo.</translation> +<translation id="5057110919553308744">Spustelėjus plėtinį</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{Šiame aplanke yra žymė. Ar tikrai norite ją ištrinti?}one{Šiame aplanke yra # žymė. Ar tikrai norite jas ištrinti?}few{Šiame aplanke yra # žymės. Ar tikrai norite jas ištrinti?}many{Šiame aplanke yra # žymės. Ar tikrai norite jas ištrinti?}other{Šiame aplanke yra # žymių. Ar tikrai norite jas ištrinti?}}</translation> <translation id="5061708541166515394">Kontrastas</translation> <translation id="5062930723426326933">Prisijungiant įvyko klaida. Prisijunkite prie interneto ir bandykite dar kartą.</translation> @@ -2824,6 +2847,7 @@ <translation id="5315873049536339193">Tapatybė</translation> <translation id="5316716239522500219">Dubliuoti monitorius</translation> <translation id="5317780077021120954">Išsaugoti</translation> +<translation id="5318819489018851358">Bendrinimas su „Linux“</translation> <translation id="5319359161174645648">„Google“ rekomenduoja „Chrome“</translation> <translation id="5319566035256672173">Šis įrenginys nebegaus naujausių programinės įrangos naujinių. Galbūt verta naujovinti.</translation> <translation id="532247166573571973">Serveris gali būti nepasiekiamas. Vėliau bandykite dar kartą.</translation> @@ -3165,6 +3189,7 @@ <translation id="5804241973901381774">Leidimai</translation> <translation id="580571955903695899">Pertvarkyti pagal pavadinimą</translation> <translation id="5807290661599647102">Nustatyti ekrano užraktą</translation> +<translation id="5811750797187914944">Viskas nustatyta</translation> <translation id="5814126672212206791">Ryšio tipas</translation> <translation id="5815645614496570556">X.400 adresas</translation> <translation id="5816434091619127343">Atlikus prašomus spausdintuvo pakeitimus, spausdintuvo nebebus galima naudoti.</translation> @@ -3202,6 +3227,7 @@ <translation id="5855773610748894548">Oi, saugaus modulio klaida.</translation> <translation id="5856721540245522153">Įgalinti derinimo funkcijas</translation> <translation id="5857090052475505287">Naujas aplankas</translation> +<translation id="5858490737742085133">Terminalas</translation> <translation id="585979798156957858">Išorinis metaduomenų klavišas</translation> <translation id="5860033963881614850">Išjungta</translation> <translation id="5860209693144823476">3 skirtukas</translation> @@ -3224,6 +3250,7 @@ <translation id="5882919346125742463">Žinomi tinklai</translation> <translation id="5884474295213649357">Šis skirtukas susietas su USB įrenginiu.</translation> <translation id="5885324376209859881">Valdyti medijos nustatymus...</translation> +<translation id="5886009770935151472">Pirmas pirštas</translation> <translation id="5889282057229379085">Didžiausias tarpinių CA skaičius: <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">Paleisti iš naujo</translation> <translation id="5895187275912066135">Išduota</translation> @@ -3308,6 +3335,7 @@ <translation id="6025215716629925253">Dėklo pėdsakas</translation> <translation id="6026047032548434446">Įdiegti programą?</translation> <translation id="6026819612896463875">„<ph name="WINDOW_TITLE" />“ – USB įrenginys prijungtas</translation> +<translation id="6028117231645531007">Pridėti kontrolinį kodą</translation> <translation id="6029027682598229313">„Linux“ įdiegta.</translation> <translation id="6029587122245504742">Lėčiausias</translation> <translation id="6032912588568283682">Failų sistema</translation> @@ -3322,6 +3350,7 @@ <translation id="6042308850641462728">Daugiau</translation> <translation id="6043317578411397101">„<ph name="APP_NAME" />“ bendrina „Chrome“ skirtuką su <ph name="TAB_NAME" />.</translation> <translation id="6044805581023976844">„<ph name="APP_NAME" />“ bendrina „Chrome“ skirtuką ir garsą su <ph name="TAB_NAME" />.</translation> +<translation id="6047938872139769630">Galite naudoti PIN kodą įrenginiui atrakinti, kai esate atsijungę</translation> <translation id="6049004884579590341">Paspauskite ir palaikykite |<ph name="ACCELERATOR" />|, kad išeitumėte iš viso ekrano režimo.</translation> <translation id="6049065490165456785">Vidiniu fotoaparatu daryta nuotrauka</translation> <translation id="6051354611314852653">Oi, sistemai suteikiant prieigą prie šio įrenginio API įvyko klaida.</translation> @@ -3344,6 +3373,7 @@ <translation id="6075907793831890935">Keistis duomenimis su įrenginiu, kurio pavadinimas <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Įtraukti šią ekrano kopiją</translation> <translation id="6077131872140550515">Pašalinti iš pageidaujamų</translation> +<translation id="6077189836672154517">„<ph name="DEVICE_TYPE" />“ patarimai ir naujiniai</translation> <translation id="6078323886959318429">Pridėti spartųjį klavišą</translation> <translation id="6078752646384677957">Patikrinkite mikrofono ir garso lygius.</translation> <translation id="6080515710685820702">Naudojate kompiuterį bendrai? Pabandykite atidaryti inkognito langą.</translation> @@ -3393,6 +3423,7 @@ <translation id="6144938890088808325">Padėkite mums tobulinti „Chromebook“ kompiuterius</translation> <translation id="6146563240635539929">Vaizdo įrašai</translation> <translation id="6147020289383635445">Įvyko spaudinio peržiūros klaida.</translation> +<translation id="6148052338549899048">Nėra tinkamų įrenginių. <ph name="LINK_BEGIN" />Sužinokite daugiau.<ph name="LINK_END" /></translation> <translation id="614940544461990577">Pabandykite atlikti toliau nurodytus veiksmus.</translation> <translation id="6150853954427645995">Jei norite išsaugoti šį failą ir naudoti jį be interneto ryšio, vėl prisijunkite prie interneto, spustelėkite failą dešiniuoju pelės klavišu ir pasirinkite parinktį „<ph name="OFFLINE_CHECKBOX_NAME" />“.</translation> <translation id="6151323131516309312">Spustelėkite <ph name="SEARCH_KEY" />, kad būtų vykdoma paieška <ph name="SITE_NAME" /></translation> @@ -3412,6 +3443,7 @@ <translation id="6169040057125497443">Patikrinkite mikrofoną.</translation> <translation id="6169666352732958425">Nepavyko perduoti stalinio kompiuterio ekrano.</translation> <translation id="6171948306033499786">Pristabdyti spausdinimą</translation> +<translation id="6173623053897475761">Įveskite PIN kodą dar kartą</translation> <translation id="6175314957787328458">„Microsoft“ domeno GUID</translation> <translation id="6176043333338857209">„Bluetooth“ bus laikinai įjungtas, kad būtų galima užmegzti ryšį su saugos raktu</translation> <translation id="6178664161104547336">Pasirinkite sertifikatą</translation> @@ -3601,11 +3633,13 @@ <translation id="6456394469623773452">Geras</translation> <translation id="6456631036739229488">„Smart Lock“ telefonas pakeistas. Įveskite slaptažodį, kad atnaujintumėte „Smart Lock“. Kitą kartą telefonu bus galima atrakinti „<ph name="DEVICE_TYPE" />“. Funkciją „Smart Lock“ galite išjungti „Nustatymų“ skiltyje.</translation> <translation id="645705751491738698">Tęsti „JavaScript“ blokavimą</translation> +<translation id="6458701200018867744">Nepavyko įkelti (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Paieškai naudoti pasirinkimą</translation> <translation id="6459799433792303855">Aktyvus langas perkeltas į kitą ekraną.</translation> <translation id="6460601847208524483">Rasti kitą</translation> <translation id="6463795194797719782">&Redaguoti</translation> <translation id="6466988389784393586">&Atidaryti visas žymes</translation> +<translation id="6467304607960172345">Viso ekrano režimu rodomų vaizdo įrašų optimizavimas</translation> <translation id="6468485451923838994">Šriftai</translation> <translation id="6472207088655375767">Vienk. slaptažodis</translation> <translation id="6472893788822429178">Rodyti mygtuką „Pagrindinis“</translation> @@ -3781,6 +3815,7 @@ <translation id="6725206449694821596">Spausdinimo internetu protokolas (IPP)</translation> <translation id="6727005317916125192">Ankstesnis polangis</translation> <translation id="6732801395666424405">Sertifikatai neįkelti</translation> +<translation id="6732900235521116609">Negalima pašalinti sparčiojo klavišo</translation> <translation id="6735304988756581115">Rodyti slapukus ir kitus svetainės duomenis...</translation> <translation id="6736045498964449756">Oi, slaptažodžiai nesutampa.</translation> <translation id="6736243959894955139">Adresas</translation> @@ -3864,6 +3899,7 @@ <translation id="6860427144121307915">Atidaryti skirtuko lape</translation> <translation id="6862635236584086457">Visų šiame aplanke saugomų failų kopija automatiškai kuriama internete</translation> <translation id="6865313869410766144">Automatinio pildymo formos duomenys</translation> +<translation id="6865708901122695652">„WebRTC“ įvykių žurnalai (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">Spalvų temperatūra</translation> <translation id="6870888490422746447">Pasirinkti programą bendrinti su:</translation> <translation id="6871644448911473373">OCSP atsakiklis: <ph name="LOCATION" /></translation> @@ -3908,6 +3944,7 @@ <translation id="694592694773692225">Peradresavimas užblokuotas šiame puslapyje.</translation> <translation id="6949306908218145636">Pažymėti atidarytus puslapius...</translation> <translation id="6950627417367801484">Atkurti programas</translation> +<translation id="6950943362443484797">Įdiegsime jums šią programą</translation> <translation id="6951153907720526401">Mokėjimų doroklės</translation> <translation id="6955446738988643816">Tikrinti iššokantįjį langą</translation> <translation id="6957231940976260713">Paslaugos pavadinimas</translation> @@ -3943,6 +3980,7 @@ <translation id="6998711733709403587">Pasirinkta aplankų: <ph name="SELCTED_FOLDERS_COUNT" /></translation> <translation id="6998793565256476099">Užregistruoti įrenginį dalyvauti vaizdo konferencijoje</translation> <translation id="7000347579424117903">Naudokite „Ctrl“, „Alt“ arba „Search“</translation> +<translation id="700203306553508933">Išsaugoti kortelių duomenis norint naudoti „Google Pay“</translation> <translation id="7002055706763150362">Kad būtų galima nustatyti „Smart Lock“, skirtą „Chromebook“, „Google“ turi įsitikinti, jog tai jūs. Įveskite slaptažodį, kad pradėtumėte.</translation> <translation id="7002454948392136538">Pasirinkti šio prižiūrimo naudotojo valdytoją</translation> <translation id="7003339318920871147">Žiniatinklio duomenys</translation> @@ -3990,6 +4028,7 @@ <translation id="706626672220389329">Klaida įdedant bendrinamą objektą. Nurodytas bendrinamas objektas jau įdėtas.</translation> <translation id="7066944511817949584">Nepavyko prisijungti prie „<ph name="DEVICE_NAME" />“.</translation> <translation id="7067725467529581407">Niekada daugiau nerodyti.</translation> +<translation id="7070484045139057854">Gali būti skaitomi ir keičiami svetainės duomenys</translation> <translation id="7072010813301522126">Sparčiojo klavišo pavadinimas</translation> <translation id="707392107419594760">Pasirinkite klaviatūrą:</translation> <translation id="7075513071073410194">PKCS Nr. 1 MD5 su RSA šifruote</translation> @@ -4119,6 +4158,7 @@ <translation id="7256710573727326513">Atidaryti skirtuko lape</translation> <translation id="725758059478686223">Spausdinimo paslauga</translation> <translation id="7257666756905341374">Skaityti kopijuojamus ir įklijuojamus duomenis</translation> +<translation id="7258697411818564379">PIN kodas pridėtas</translation> <translation id="7260764918845374269">Kad būtų galima matyti saugos raktą, jame turi būti įjungtas susiejimo režimas. Paspauskite mygtuką ant saugos rakto ir palaikykite bent 5 sekundes.</translation> <translation id="7262004276116528033">Ši prisijungimo paslauga priglobiama <ph name="SAML_DOMAIN" />.</translation> <translation id="7268365133021434339">Uždaryti skirtukus</translation> @@ -4266,6 +4306,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">Pamiršote seną slaptažodį?</translation> <translation id="7497215489070763236">Serverio CA sertifikatas</translation> +<translation id="7497981768003291373">Neturite neseniai užfiksuotų „WebRTC“ teksto žurnalų.</translation> <translation id="7502658306369382406">„IPv6“ adresas</translation> <translation id="7503191893372251637">„Netscape“ sertifikato tipas</translation> <translation id="7503821294401948377">Naršyklės veiksmui įkelti „<ph name="ICON" />“ piktogramos nepavyko.</translation> @@ -4308,6 +4349,7 @@ <translation id="7564847347806291057">Baigti procesą</translation> <translation id="7566118625369982896">„Play“ programų nuorodų tvarkymas</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">Pridėkite pirštą</translation> <translation id="756809126120519699">Išvalyti „Chrome“ duomenys</translation> <translation id="7568790562536448087">Atnaujinama</translation> <translation id="7571643774869182231">Saugykloje nepakanka vietos, kad būtų galima atnaujinti</translation> @@ -4470,6 +4512,7 @@ <ph name="LINE_BREAK2" /> Bandykite pasirinkti mažiau nuotraukų.</translation> <translation id="782590969421016895">Naudoti esamus puslapius</translation> +<translation id="7826346148677309647">Daugiau programų savo įrenginiui galite rasti „Play“ parduotuvėje.</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />Derinimo funkcijos<ph name="END_H3" /> <ph name="BR" /> Galite įgalinti derinimo funkcijas „Chrome“ OS įrenginyje, kad įdiegtumėte ir išbandytumėte tinkintą kodą savo įrenginyje. Tada galėsite atlikti toliau nurodytus veiksmus.<ph name="BR" /> @@ -4666,6 +4709,7 @@ <translation id="8059417245945632445">&Tikrinti įrenginius</translation> <translation id="8063235345342641131">Numatytasis žalias pseudoportretas</translation> <translation id="8064671687106936412">Raktas:</translation> +<translation id="8065485338434000013">Šiuo įrenginiu galima naudoti tik kelias korteles</translation> <translation id="806812017500012252">Rikiuoti pagal pavadinimą</translation> <translation id="8068253693380742035">Palieskite, kad prisijungtumėte</translation> <translation id="8069615408251337349">„Google“ spausdinimas iš debesies</translation> @@ -4743,6 +4787,7 @@ <translation id="8191453843330043793">V8 tarpinio serverio vardų vertimo programa</translation> <translation id="8193175696669055101">Įrenginio modelis</translation> <translation id="8195027750202970175">Diske užimama vieta</translation> +<translation id="8198323535106903877">Įdiegsime jums šias programas (iš viso: <ph name="NUMBER_OF_APPS" />)</translation> <translation id="8199300056570174101">Tinklo (paslaugos) ir įrenginio nuosavybės</translation> <translation id="8200772114523450471">Atnaujinti</translation> <translation id="8202160505685531999">Iš naujo įveskite slaptažodį, kad galėtumėte atnaujinti „<ph name="DEVICE_TYPE" />“ profilį.</translation> @@ -4962,7 +5007,6 @@ <translation id="8557930019681227453">Aprašas</translation> <translation id="8559694214572302298">Vaizdų dekoderis</translation> <translation id="8561853412914299728">„<ph name="TAB_TITLE" />“ <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Skaityti toliau</translation> <translation id="8565650234829130278">Buvo bandoma grąžinti ankstesnę programos versiją.</translation> <translation id="8569002732135253578">Dabar spausdinamas <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">Nerasta paskirties vietų.</translation> @@ -5075,6 +5119,8 @@ <translation id="8716931980467311658">Ištrinti visas „Linux“ programas ir duomenis „Linux“ failų aplanke iš šio „<ph name="DEVICE_TYPE" />“ įrenginio?</translation> <translation id="8719653885894320876">Nepavyko atsisiųsti „<ph name="PLUGIN_NAME" />“</translation> <translation id="8723829621484579639">Inkognito režimo antriniai kadrai, skirti: <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">Kai rodoma ši piktograma, tapatybei nustatyti ar pirkimo operacijai patvirtinti naudokite kontrolinį kodą.</translation> +<translation id="8724409975248965964">Kontrolinis kodas pridėtas</translation> <translation id="8724859055372736596">&Rodyti aplanke</translation> <translation id="8725066075913043281">Bandyti dar kartą</translation> <translation id="8725178340343806893">Adresynas / žymės</translation> @@ -5155,6 +5201,7 @@ <translation id="8838770651474809439">Mėsainis</translation> <translation id="883911313571074303">Komentuoti vaizdą</translation> <translation id="8845001906332463065">Gauti pagalbos</translation> +<translation id="8846132060409673887">Skaityti šio kompiuterio gamintojo ir modelio informaciją</translation> <translation id="8846141544112579928">Ieškoma klaviatūros...</translation> <translation id="8847988622838149491">USB</translation> <translation id="8859057652521303089">Pasirinkite kalbą:</translation> @@ -5368,6 +5415,7 @@ <translation id="9161070040817969420">Antriniai kadrai, skirti: <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">Siųskite sistemos duomenis. Šiuo metu šis įrenginys automatiškai siunčia diagnostikos ir įrenginio bei programų naudojimo duomenis į sistemą „Google“. Šį nustatymą priverstinai taiko savininkas. Jei įjungėte papildomą žiniatinklio ir programų veiklą, ši informacija bus saugoma jūsų paskyroje, kad galėtumėte tvarkyti ją skiltyje „Mano veikla“. <ph name="BEGIN_LINK1" />Sužinokite daugiau<ph name="END_LINK1" /></translation> <translation id="916607977885256133">Vaizdas vaizde</translation> +<translation id="9168436347345867845">Atlikti vėliau</translation> <translation id="9169496697824289689">Peržiūrėti sparčiuosius klavišus</translation> <translation id="9169931577761441333">Pridėkite „<ph name="APP_NAME" />“ prie pagrindinio ekrano</translation> <translation id="9170848237812810038">&Atšaukti</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb index aef78d53aa..be8493f 100644 --- a/chrome/app/resources/generated_resources_lv.xtb +++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -1513,7 +1513,6 @@ <translation id="3285322247471302225">Jauna &cilne</translation> <translation id="3288047731229977326">Paplašinājumi, kas darbojas izstrādātāja režīmā, var kaitēt jūsu datoram. Ja neesat izstrādātājs, drošības nolūkos atspējojiet šos paplašinājumus, kas darbojas izstrādātāja režīmā.</translation> <translation id="3289856944988573801">Lai pārbaudītu, vai ir pieejami atjauninājumi, lūdzu, izmantojiet tīklu Ethernet vai Wi-Fi.</translation> -<translation id="3292421191230118801">Atsāciet mobilajā ierīcē atvērtu vietņu skatīšanu savā Chromebook datorā</translation> <translation id="32939749466444286">Linux konteiners netika startēts. Lūdzu, mēģiniet vēlreiz.</translation> <translation id="3294437725009624529">Viesis</translation> <translation id="329838636886466101">Labot</translation> @@ -4961,7 +4960,6 @@ <translation id="8557930019681227453">Manifests</translation> <translation id="8559694214572302298">Attēlu dekodētājs</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Turpināt lasīt</translation> <translation id="8565650234829130278">Mēģināja atkāpties uz vecāku lietotnes versiju.</translation> <translation id="8569002732135253578">Notiek dokumenta “<ph name="DOCUMENT_NAME" />” drukāšana</translation> <translation id="8569682776816196752">Neatrada nevienu galamērķi.</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb index 27c931a8..34409d0 100644 --- a/chrome/app/resources/generated_resources_ml.xtb +++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -27,7 +27,7 @@ <translation id="1036511912703768636">ഈ USB ഉപകരണങ്ങളിലേതിലേക്കെങ്കിലും ആക്സസ്സുചെയ്യുക</translation> <translation id="1036982837258183574">പൂർണ്ണ സ്ക്രീനിൽ നിന്ന് പുറത്തുകടക്കാൻ |<ph name="ACCELERATOR" />| അമർത്തുക</translation> <translation id="1038168778161626396">എന്സിഫര് മാത്രം</translation> -<translation id="1039337018183941703">ഫയൽ അസാധുവോ കേടായതോവാണ്</translation> +<translation id="1039337018183941703">ഫയൽ അസാധുവോ കേടായതോ ആണ്</translation> <translation id="1042174272890264476">നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ <ph name="SHORT_PRODUCT_NAME" /> എന്നതിന്റെ RLZ ലൈബ്രറി അന്തർനിർമ്മിതവുമാണ്. RLZ, ഒരു നിർദ്ദിഷ്ട പ്രമോഷണൽ കാമ്പെയ്നിലൂടെ ലഭിക്കുന്ന തിരയലുകളും <ph name="SHORT_PRODUCT_NAME" /> ഉപയോഗവും കണക്കാക്കുന്നതിന് അദ്വിതീയമല്ലാത്തതും വ്യക്തിപരമായി തിരിച്ചറിയാനാകാത്തതുമായ ഒരു ടാഗ് നിയുക്തമാക്കുന്നു. ഈ ലേബലുകൾ ചിലസമയത്ത് <ph name="PRODUCT_NAME" /> എന്നതിലെ Google തിരയലിൽ ദൃശ്യമാകുന്നു.</translation> <translation id="1046059554679513793">കഷ്ടം, ഈ നാമം ഇതിനകം തന്നെ ഉപയോഗത്തിലുണ്ട്!</translation> <translation id="1047431265488717055">ലിങ്ക് ടെക്&സ്റ്റ് പകർത്തുക</translation> @@ -56,7 +56,7 @@ <translation id="1076698951459398590">തീം പ്രവർത്തനക്ഷമമാക്കുക</translation> <translation id="1076818208934827215">Microsoft Internet Explorer</translation> <translation id="1079766198702302550">എല്ലായ്പ്പോഴും ക്യാമറ ആക്സസ്സ് തടയുക</translation> -<translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> നിങ്ങളുടെ Chrome ക്രമീകരണം അവരുടെ യഥാർത്ഥ ഡിഫോൾട്ടുകളിലേക്ക് പുനഃസ്ഥാപിക്കാൻ താൽപ്പര്യപ്പെടുന്നു. ഇത് നിങ്ങളുടെ ഹോം പേജ്, പുതിയ ടാബ് പേജ്, തിരയൽ എഞ്ചിൻ എന്നിവ റീസെറ്റുചെയ്യും ഒപ്പം വിപുലീകരണങ്ങൾ പ്രവർത്തനരഹിതമാക്കി എല്ലാ ടാബുകളും അൺപിൻ ചെയ്യും. ഇത് കുക്കികൾ, ഉള്ളടക്കം, സൈറ്റ് വിവരം എന്നിങ്ങനെയുള്ള മറ്റ് താൽക്കാലികവും കാഷെ ചെയ്തതുമായ വിവരവും മായ്ക്കും.</translation> +<translation id="1082398631555931481">നിങ്ങളുടെ Chrome ക്രമീകരണം അവരുടെ യഥാർത്ഥ ഡിഫോൾട്ടുകളിലേക്ക് പുനഃസ്ഥാപിക്കാൻ, <ph name="THIRD_PARTY_TOOL_NAME" /> താൽപ്പര്യപ്പെടുന്നു. ഇത് നിങ്ങളുടെ ഹോം പേജ്, പുതിയ ടാബ് പേജ്, തിരയൽ എഞ്ചിൻ എന്നിവ റീസെറ്റ് ചെയ്യും ഒപ്പം വിപുലീകരണങ്ങൾ പ്രവർത്തനരഹിതമാക്കും എല്ലാ ടാബുകളും അൺപിൻ ചെയ്യും. ഇത് കുക്കികൾ, ഉള്ളടക്കം, സൈറ്റ് വിവരം എന്നിങ്ങനെയുള്ള മറ്റ് താൽക്കാലികവും കാഷെ ചെയ്തതുമായ വിവരവും മായ്ക്കും.</translation> <translation id="1082725763867769612">ഓഫ്ലൈൻ ഫയലുകൾ</translation> <translation id="1084824384139382525">ലിങ്ക് വിലാസങ്ങള് &പകര്ത്തുക</translation> <translation id="1085697365578766383">വെർച്വൽ മെഷീൻ പ്രവർത്തനം തുടങ്ങുന്നതിൽ പിശക്. വീണ്ടും ശ്രമിക്കുക.</translation> @@ -64,7 +64,7 @@ <translation id="1090126737595388931">ഒരു പശ്ചാത്തല ആപ്ലിക്കേഷനുകളും പ്രവർത്തിക്കുന്നില്ല</translation> <translation id="1091767800771861448">ഒഴിവാക്കുന്നതിനായി ESCAPE അമർത്തുക (അനൗദ്യോഗിക നിർമ്മിതകൾക്ക് മാത്രം).</translation> <translation id="1093457606523402488">ദൃശ്യമാകുന്ന നെറ്റ്വർക്കുകൾ:</translation> -<translation id="1094607894174825014">ഇനിപറയുന്നതിൽ അസാധുവായ ഒരു ഓഫ്സെറ്റ് ഉപയോഗിച്ച് എഴുതുക അല്ലെങ്കിൽ വായിക്കുക പ്രവർത്തനം അഭ്യർത്ഥിച്ചു: "<ph name="DEVICE_NAME" />".</translation> +<translation id="1094607894174825014">അസാധുവായ ഒരു ഓഫ്സെറ്റ് ഉപയോഗിച്ചാണ് എഴുതുക അല്ലെങ്കിൽ വായിക്കുക പ്രവർത്തനം അഭ്യർത്ഥിച്ചത്: "<ph name="DEVICE_NAME" />".</translation> <translation id="109758035718544977">സൈറ്റുകൾ അൺമ്യൂട്ട് ചെയ്യുക</translation> <translation id="1097658378307015415">സൈൻ ഇൻ ചെയ്യുന്നതിന് മുമ്പ്, <ph name="NETWORK_ID" /> സജീവമാക്കാൻ അതിഥിയായി പ്രവേശിക്കുക</translation> <translation id="1103523840287552314"><ph name="LANGUAGE" /> എല്ലായ്പ്പോഴും വിവര്ത്തനം ചെയ്യുക </translation> @@ -89,7 +89,7 @@ <translation id="1125550662859510761"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (നേറ്റീവ്) പോലെ തോന്നുന്നു</translation> <translation id="1128109161498068552">MIDI ഉപകരണങ്ങൾ ആക്സസ്സുചെയ്യുന്നതിന് സിസ്റ്റം എക്സ്ക്ലൂസീവ് സന്ദേശങ്ങൾ ഉപയോഗിക്കുന്നതിന് ഒരു സൈറ്റിനെയും അനുവദിക്കരുത്.</translation> <translation id="1128128132059598906">EAP-TTLS</translation> -<translation id="1128591060186966949">തിരയൽ എഞ്ചിൻ എഡിറ്റുചെയ്യുക</translation> +<translation id="1128591060186966949">തിരയൽ എഞ്ചിൻ എഡിറ്റ് ചെയ്യുക</translation> <translation id="1134009406053225289">അദൃശ്യ വിന്ഡോയില് തുറക്കുക</translation> <translation id="1136155683023653803">പാസ്വേഡുകൾ, ബുക്ക്മാർക്കുകൾ, ചരിത്രം എന്നിവയും മറ്റും നിങ്ങളുടെ അക്കൗണ്ടുമായി സമന്വയിപ്പിച്ചിരിക്കുന്നു</translation> <translation id="1137673463384776352"><ph name="APP" /> ആപ്പില് ലിങ്ക് തുറക്കുക</translation> @@ -207,7 +207,7 @@ <translation id="1295794900245526845">സൈൻ ഇൻ ചെയ്യാൻ, <ph name="PASSWORD_MANAGER_BRAND" /> ഉപയോഗിച്ച് സംരക്ഷിച്ച നിങ്ങളുടെ അക്കൗണ്ട് ഉപയോഗിക്കുക</translation> <translation id="1296497012903089238">സർട്ടിഫിക്കറ്റ് തരം</translation> <translation id="1297175357211070620">ഉദ്ദിഷ്ടസ്ഥാനം</translation> -<translation id="1297922636971898492">Google ഡ്രൈവ് ഇപ്പോൾ ലഭ്യമല്ല. Google ഡോക്സ് ലഭ്യമായിക്കഴിഞ്ഞാൽ, അപ്ലോഡുചെയ്യുന്നത് അത് സ്വയമേവ പുനരാരംഭിക്കുന്നതിനിടയാക്കും.</translation> +<translation id="1297922636971898492">Google ഡ്രൈവ് ഇപ്പോൾ ലഭ്യമല്ല. ലഭ്യമായിക്കഴിഞ്ഞാൽ, അപ്ലോഡ് ചെയ്യുന്നത് സ്വമേധയാ പുനരാരംഭിക്കും.</translation> <translation id="1300415640239881824">പരിരക്ഷിത ഉള്ളടക്കത്തിന്റെ മെച്ചപ്പെടുത്തിയ പ്ലേബാക്കിനുള്ള യോഗ്യത നിർണ്ണയിക്കുന്നതിന്, നിങ്ങളുടെ ഉപകരണത്തിന്റെ ഐഡന്റിറ്റി Google പരിശോധിച്ചുറപ്പിക്കണമെന്ന് <ph name="DOMAIN" /> ആവശ്യപ്പെടുന്നു.</translation> <translation id="1300806585489372370">ഈ ക്രമീകരണം മാറ്റാൻ, ആദ്യം <ph name="BEGIN_LINK" />ഐഡന്റിഫയര് ഓണാക്കുക<ph name="END_LINK" /></translation> <translation id="1302227299132585524">Apple ഇവന്റുകളിൽ നിന്നുള്ള JavaScript അനുവദിക്കുക</translation> @@ -234,7 +234,7 @@ <translation id="1331977651797684645">ഇത് എന്റെ പ്രൊഫൈലായിരുന്നു.</translation> <translation id="1338776410427958681"><ph name="FOLDER_NAME" /> ചുരുക്കുക</translation> <translation id="1338950911836659113">ഇല്ലാതാക്കുന്നു...</translation> -<translation id="1340527397989195812">ഫയലുകളുടെ അപ്ലിക്കേഷൻ ഉപയോഗിച്ച് ഉപകരണത്തിൽ നിന്നും മീഡിയ ബാക്കപ്പുചെയ്യുക.</translation> +<translation id="1340527397989195812">Files അപ്ലിക്കേഷൻ ഉപയോഗിച്ച് ഉപകരണത്തിൽ നിന്നും മീഡിയ ബാക്കപ്പ് ചെയ്യുക.</translation> <translation id="1341988552785875222">നിലവിലുള്ള വാൾപേപ്പർ സജ്ജീകരിച്ചത് '<ph name="APP_NAME" />' ആണ്. മറ്റൊരു വാൾപേപ്പർ തിരഞ്ഞെടുക്കുന്നതിന് മുമ്പ് നിങ്ങൾ '<ph name="APP_NAME" />' അൺഇൻസ്റ്റാൾ ചെയ്യേണ്ടിവന്നേക്കാം.</translation> <translation id="1346748346194534595">ശരി</translation> <translation id="1347975661240122359">ബാറ്ററി ചാർജ് <ph name="BATTERY_LEVEL" /> ശതമാനമാകുമ്പോൾ അപ്ഡേറ്റ് ആരംഭിക്കും.</translation> @@ -300,7 +300,7 @@ <translation id="1430915738399379752">അച്ചടിക്കുക</translation> <translation id="1432581352905426595">തിരയൽ എഞ്ചിനുകൾ മാനേജുചെയ്യുക</translation> <translation id="1433811987160647649">ആക്സസ് ചെയ്യുന്നതിന് മുമ്പ് ചോദിക്കുക</translation> -<translation id="1434696352799406980">ഇത് നിങ്ങളുടെ ആരംഭ പേജ്, പുതിയ ടാബ് പേജ്, തിരയൽ എഞ്ചിൻ, പിൻ ചെയ്ത ടാബുകൾ എന്നിവ റീസെറ്റുചെയ്യും. ഒപ്പം ഇത് എല്ലാ വിപുലീകരണങ്ങളെയും പ്രവർത്തനരഹിതമാക്കുകയും കുക്കികൾ പോലുള്ള താൽക്കാലിക ഡാറ്റ മായ്ക്കുകയും ചെയ്യും. നിങ്ങളുടെ ബുക്ക്മാർക്കുകൾ, ചരിത്രം, സംരക്ഷിച്ച പാസ്വേഡുകൾ എന്നിവ മായ്ക്കില്ല.</translation> +<translation id="1434696352799406980">ഇത് നിങ്ങളുടെ ആരംഭ പേജ്, പുതിയ ടാബ് പേജ്, തിരയൽ എഞ്ചിൻ, പിൻ ചെയ്ത ടാബുകൾ എന്നിവ റീസെറ്റ് ചെയ്യും. ഒപ്പം ഇത് എല്ലാ വിപുലീകരണങ്ങളെയും പ്രവർത്തനരഹിതമാക്കുകയും കുക്കികൾ പോലുള്ള താൽക്കാലിക ഡാറ്റ മായ്ക്കുകയും ചെയ്യും. നിങ്ങളുടെ ബുക്ക്മാർക്കുകൾ, ചരിത്രം, സംരക്ഷിച്ച പാസ്വേഡുകൾ എന്നിവ മായ്ക്കില്ല.</translation> <translation id="1434886155212424586">ഹോംപേജ് പുതിയ ടാബ് പേജാണ്</translation> <translation id="1436671784520050284">സജ്ജീകരിക്കുന്നത് തുടരുക</translation> <translation id="1436784010935106834">നീക്കംചെയ്തു</translation> @@ -308,7 +308,7 @@ <translation id="1442392616396121389">റൂട്ടിംഗ് പ്രിഫിക്സ്</translation> <translation id="144283815522798837"><ph name="NUMBER_OF_ITEMS_SELECTED" /> തിരഞ്ഞെടുത്തു</translation> <translation id="1444628761356461360">ഈ ക്രമീകരണം നിയന്ത്രിക്കുന്നത്, ഉപകരണത്തിന്റെ ഉടമയായ <ph name="OWNER_EMAIL" /> ആണ്.</translation> -<translation id="144518587530125858">തീമിനായി '<ph name="IMAGE_PATH" />' ലോഡുചെയ്യാന് കഴിഞ്ഞില്ല.</translation> +<translation id="144518587530125858">തീമിനായി '<ph name="IMAGE_PATH" />' ലോഡ് ചെയ്യാനായില്ല.</translation> <translation id="1451375123200651445">വെബ്പേജ്, ഒരൊറ്റ ഫയൽ</translation> <translation id="1451917004835509682">സൂപ്പർവൈസുചെയ്ത വ്യക്തിയെ ചേർക്കുക</translation> <translation id="1454223536435069390">സ്ക്രീൻഷോട്ടെടുക്കുക</translation> @@ -349,7 +349,7 @@ <translation id="1507246803636407672">&നിരസിക്കുക</translation> <translation id="1508491105858779599">ഉപകരണം അൺലോക്കുചെയ്യാൻ വിരലടയാള സെൻസറിൽ നിങ്ങളുടെ വിരൽ വയ്ക്കുക.</translation> <translation id="1509281256533087115">USB വഴി ഏതൊരു <ph name="DEVICE_NAME_AND_VENDOR" /> ഉപകരണത്തെയും ആക്സസ്സ് ചെയ്യുക</translation> -<translation id="150962533380566081">PUK അസാധുവാണ്.</translation> +<translation id="150962533380566081">അസാധുവായ PUK.</translation> <translation id="1510030919967934016">നിങ്ങളുടെ സ്ഥാനം ട്രാക്കുചെയ്യുന്നതില് നിന്നും ഈ പേജിനെ തടഞ്ഞു.</translation> <translation id="1510238584712386396">ലോഞ്ചർ</translation> <translation id="1510785804673676069">നിങ്ങൾ ഒരു പ്രോക്സി സെർവർ ഉപയോഗിക്കുകയാണെങ്കിൽ, പ്രോക്സി സെർവർ പ്രവർത്തനക്ഷമമാണെന്ന് ഉറപ്പുവരുത്തുന്നതിന് നിങ്ങളുടെ പ്രോക്സി ക്രമീകരണങ്ങൾ പരിശോധിക്കുകയോ നിങ്ങളുടെ നെറ്റ്വർക്ക് അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുകയോ ചെയ്യുക. നിങ്ങൾ ഉപയോഗിക്കുന്നത് ഒരു പ്രോക്സി സെർവറാണെന്ന് കരുതുന്നില്ലെങ്കിൽ, നിങ്ങളുടെ <ph name="LINK_START" />പ്രോക്സി ക്രമീകരണങ്ങൾ<ph name="LINK_END" /> ക്രമീകരിക്കുക.</translation> @@ -520,7 +520,7 @@ <translation id="1753905327828125965">കൂടുതൽ സന്ദര്ശിച്ചത്</translation> <translation id="1754582516739637364">മെമ്മറി നില</translation> <translation id="1756681705074952506">ഇന്പുട്ട് രീതി</translation> -<translation id="175772926354468439">തീം പ്രാപ്തമാക്കുക</translation> +<translation id="175772926354468439">തീം പ്രവർത്തനക്ഷമമാക്കുക</translation> <translation id="1758018619400202187">EAP-TLS</translation> <translation id="17584710573359123">Chrome വെബ് സ്റ്റോറിൽ കാണുക</translation> <translation id="1763046204212875858">അപ്ലിക്കേഷന് കുറുക്കുവഴികള് സൃഷ്ടിക്കുക</translation> @@ -996,7 +996,7 @@ <translation id="2499747912851752301">പാസ്വേഡുകൾ എക്സ്പോർട്ട് ചെയ്യുന്നു...</translation> <translation id="2500471369733289700">നിങ്ങളുടെ സ്വകാര്യത സംരക്ഷിക്കുന്നതിനായി ബ്ലോക്കുചെയ്തു</translation> <translation id="2501173422421700905">സര്ട്ടിഫിക്കറ്റ് തടഞ്ഞിരിക്കുന്നു</translation> -<translation id="2501278716633472235">പിന്നിലേക്ക് പോകുക</translation> +<translation id="2501278716633472235">പിന്നോട്ട് പോകുക</translation> <translation id="2501797496290880632">ഒരു കുറുക്കുവഴി ടൈപ്പുചെയ്യുക</translation> <translation id="2502441965851148920">സ്വയമേവയുള്ള അപ്ഡേറ്റുകൾ പ്രവർത്തനക്ഷമമാക്കി. സ്വമേധയാ ഉള്ള അപ്ഡേറ്റുകൾ നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്റർ പ്രവർത്തനരഹിതമാക്കി.</translation> <translation id="2505324914378689427">{SCREEN_INDEX,plural, =1{സ്ക്രീൻ #}other{സ്ക്രീൻ #}}</translation> @@ -1215,7 +1215,7 @@ <translation id="2807517655263062534">നിങ്ങൾ ഡൗൺലോഡ് ചെയ്യുന്ന ഫയലുകൾ ഇവിടെ ദൃശ്യമാകും</translation> <translation id="2809586584051668049">ഒപ്പം <ph name="NUMBER_ADDITIONAL_DISABLED" /> എണ്ണം കൂടി</translation> <translation id="281133045296806353">നിലവിലുള്ള ബ്രൗസിംഗ് സെഷനില് പുതിയ വിന്ഡോ സൃഷ്ടിച്ചു.</translation> -<translation id="2812944337881233323">സൈൻ ഔട്ട് ചെയ്ത്, വീണ്ടും ആരംഭിക്കുന്നത് പരീക്ഷിച്ചുനോക്കൂ</translation> +<translation id="2812944337881233323">സൈൻ ഔട്ട് ചെയ്ത്, വീണ്ടും ആരംഭിക്കുന്നത് പരീക്ഷിക്കുക</translation> <translation id="2812989263793994277">ചിത്രങ്ങളൊന്നും കാണിക്കരുത്</translation> <translation id="2814489978934728345">ഈ പേജ് ലോഡ് ചെയ്യുന്നത് നിര്ത്തുക</translation> <translation id="281504910091592009">നിങ്ങളുടെ <ph name="BEGIN_LINK" />Google അക്കൗണ്ടിൽ<ph name="END_LINK" /> സംരക്ഷിച്ച പാസ്വേഡുകൾ കാണുക, മാനേജ് ചെയ്യുക</translation> @@ -1510,7 +1510,6 @@ <translation id="3285322247471302225">പുതിയ &ടാബ്</translation> <translation id="3288047731229977326">ഡെവലപ്പർ മോഡിൽ പ്രവർത്തിക്കുന്ന വിപുലീകരണങ്ങൾ നിങ്ങളുടെ കമ്പ്യൂട്ടർ കേടുവരുത്താനിടയുണ്ട്. നിങ്ങൾ ഒരു ഡെവലപ്പർ അല്ലെങ്കിൽ, സുരക്ഷിതമായി തുടരാൻ ഡെവലപ്പർ മോഡിൽ പ്രവർത്തിക്കുന്ന ഈ വിപുലീകരണങ്ങൾ പ്രവർത്തനരഹിതമാക്കണം.</translation> <translation id="3289856944988573801">അപ്ഡേറ്റുകൾക്കായി പരിശോധിക്കാൻ, ഇതർനെറ്റ് അല്ലെങ്കിൽ Wi-Fi ഉപയോഗിക്കുക.</translation> -<translation id="3292421191230118801">മൊബൈലിൽ നിങ്ങൾ സന്ദർശിച്ച സൈറ്റുകൾ കാണുന്നത് Chromebook-ൽ പുനരാരംഭിക്കുക</translation> <translation id="32939749466444286">Linux കണ്ടെയ്നർ ആരംഭിച്ചില്ല. വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="3294437725009624529">അതിഥി</translation> <translation id="329838636886466101">റിപ്പയർ ചെയ്യുക</translation> @@ -1737,7 +1736,7 @@ <translation id="3623574769078102674">സൂപ്പർവൈസ് ചെയ്ത ഈ ഉപയോക്താവിനെ <ph name="MANAGER_EMAIL" /> നിയന്ത്രിക്കും.</translation> <translation id="3624567683873126087">ഉപകരണം അൺലോക്ക് ചെയ്ത് Google അക്കൗണ്ടിലേക്ക് സൈൻ ഇൻ ചെയ്യുക</translation> <translation id="3625258641415618104">സ്ക്രീൻഷോട്ടുകൾ പ്രവർത്തനരഹിതമാക്കി</translation> -<translation id="3625481642044239431">തെറ്റായ ഫയലാണ് തിരഞ്ഞെടുത്ത്. വീണ്ടും ശ്രമിക്കുക.</translation> +<translation id="3625481642044239431">അസാധുവായ ഫയൽ തിരഞ്ഞെടുത്തു. വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="3625870480639975468">സൂം പുനഃസജ്ജമാക്കുക</translation> <translation id="3626281679859535460">മിഴിവ്</translation> <translation id="3627320433825461852">1 മിനിറ്റിൽ താഴെ ശേഷിക്കുന്നു</translation> @@ -1799,7 +1798,7 @@ <translation id="3711895659073496551">താൽക്കാലികമായി നിർത്തുക</translation> <translation id="3712217561553024354">നിങ്ങളുടെ Google അക്കൗണ്ടുള്ളതും മൊബൈല് ഡാറ്റാ കണക്ഷൻ ഉള്ളതുമായ മറ്റ് ഉപകരണങ്ങളെ കണ്ടെത്തുന്നതിന് ഈ ഉപകരണത്തെ അനുവദിക്കുക</translation> <translation id="3712897371525859903">പേജ് &ഇതുപോലെ സംരക്ഷിക്കുക...</translation> -<translation id="371300529209814631">പിന്നിലേക്ക്/മുമ്പോട്ട്</translation> +<translation id="371300529209814631">പിന്ന /മുമ്പോട്ട്</translation> <translation id="3714633008798122362">വെബ് കലണ്ടർ</translation> <translation id="3719826155360621982">ഹോംപേജ്</translation> <translation id="3720996970802414353">ഏതുവിധേനയും മാറുക</translation> @@ -1819,7 +1818,7 @@ <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" /> തുറക്കണോ?</translation> <translation id="3741158646617793859"><ph name="DEVICE_NAME" />, ഇപ്പോൾ അഡ്മിൻ കൺസോളിൽ ദൃശ്യമാകും</translation> -<translation id="3741243925913727067">Google ഡ്രൈവിലേക്ക് നിങ്ങളുടെ മീഡിയ ഉപകരണത്തിന്റെ ഫോട്ടോകളും വീഡിയോകളും ബാക്കപ്പുചെയ്യുക.</translation> +<translation id="3741243925913727067">Google ഡ്രൈവിലേക്ക് നിങ്ങളുടെ മീഡിയ ഉപകരണത്തിന്റെ ഫോട്ടോകളും വീഡിയോകളും ബാക്കപ്പ് ചെയ്യുക.</translation> <translation id="3742055079367172538">സ്ക്രീൻഷോട്ട് എടുത്തു</translation> <translation id="3742666961763734085">ആ പേരിലുള്ള ഒരു ഓർഗനൈസേഷണൽ യൂണിറ്റ് കണ്ടെത്താനായില്ല. വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="3744111561329211289">പശ്ചാത്തല സമന്വയിപ്പിക്കൽ</translation> @@ -1878,7 +1877,7 @@ <translation id="3817579325494460411">നൽകിയിട്ടില്ല</translation> <translation id="3819752733757735746">ആക്സസ്സ് മാറുക (ഒന്നോ രണ്ടോ തവണ മാറുന്നതിലൂടെ കമ്പ്യൂട്ടർ നിയന്ത്രിക്കുക)</translation> <translation id="3819800052061700452">&പൂര്ണ്ണ സ്ക്രീന്</translation> -<translation id="3820172043799983114">പിൻ നമ്പർ തെറ്റാണ്.</translation> +<translation id="3820172043799983114">അസാധുവായ പിൻ നമ്പർ.</translation> <translation id="3820749202859700794">SECG എലിപ്റ്റിക് കർവ് secp521r1 (NIST P-521 എന്നും അറിയപ്പെടുന്നു)</translation> <translation id="3822559385185038546">ഈ പ്രോക്സി നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്റർ നടപ്പിലാക്കിയതാണ്</translation> <translation id="3827306204503227641">അൺസാൻഡ്ബോക്സ് ചെയ്ത പ്ലഗ്-ഇന്നുകൾ അനുവദിക്കുന്നത് തുടരുക</translation> @@ -1995,7 +1994,7 @@ <translation id="3981760180856053153">അസാധുവായ സംരക്ഷിക്കല് തരം നല്കി.</translation> <translation id="3983586614702900908">അജ്ഞാത വെണ്ടറിൽ നിന്നുള്ള ഉപകരണങ്ങൾ</translation> <translation id="3984159763196946143">ഡെമോ മോഡ് ആരംഭിക്കാനായില്ല</translation> -<translation id="3985261842049607969">Google ഡ്രൈവിലേക്ക് ബാക്കപ്പ് ചെയ്യുക. എളുപ്പത്തിൽ നിങ്ങളുടെ ഡാറ്റ പുനസ്ഥാപിക്കുക അല്ലെങ്കിൽ ഏതുസമയത്തും ഉപകരണം സ്വിച്ച് ചെയ്യുക. നിങ്ങളുടെ ബാക്കപ്പിൽ ആപ്പ് ഡാറ്റയും ഉൾപ്പെടുന്നു. <ph name="BEGIN_LINK1" />കൂടുതലറിയുക<ph name="END_LINK1" /></translation> +<translation id="3985261842049607969">Google ഡ്രൈവിലേക്ക് ബാക്കപ്പ് ചെയ്യുക. എളുപ്പത്തിൽ നിങ്ങളുടെ ഡാറ്റ പുനസ്ഥാപിക്കുക അല്ലെങ്കിൽ ഏതുസമയത്തും ഉപകരണം മാറ്റുക. നിങ്ങളുടെ ബാക്കപ്പിൽ ആപ്പ് ഡാറ്റയും ഉൾപ്പെടുന്നു. <ph name="BEGIN_LINK1" />കൂടുതലറിയുക<ph name="END_LINK1" /></translation> <translation id="3987348946546879621">ഡാറ്റ ലാഭിച്ചു</translation> <translation id="3987938432087324095">ക്ഷമിക്കണം, അത് മനസ്സിലായില്ല.</translation> <translation id="3988996860813292272">സമയ മേഖല തിരഞ്ഞെടുക്കുക</translation> @@ -2028,7 +2027,7 @@ <translation id="4042264909745389898">Google Chrome OS നിബന്ധനകൾ</translation> <translation id="4042863763121826131">{NUM_PAGES,plural, =1{പേജിൽ നിന്ന് പുറത്തുകടക്കുക}other{പേജുകളിൽ നിന്ന് പുറത്തുകടക്കുക}}</translation> <translation id="4044612648082411741">നിങ്ങളുടെ സർട്ടിഫിക്കറ്റ് പാസ്വേഡ് നൽകുക</translation> -<translation id="404493185430269859">സ്ഥിര തിരയൽ എൻജിൻ</translation> +<translation id="404493185430269859">ഡിഫോൾട്ട് തിരയൽ എഞ്ചിൻ</translation> <translation id="4047112090469382184">ഇതെങ്ങനെ സുരക്ഷിതമാകും</translation> <translation id="4051049974203704184">സ്ക്രീനിൽ എന്താണുള്ളതെന്ന വിവരം നേടുക</translation> <translation id="4052120076834320548">ചെറുത്</translation> @@ -2534,10 +2533,10 @@ <translation id="4883436287898674711">എല്ലാ <ph name="WEBSITE_1" /> സൈറ്റുകളും</translation> <translation id="48838266408104654">&ടാസ്ക് മാനേജര്</translation> <translation id="4883898390143004266">ലൊക്കേഷൻ കണ്ടെത്താൻ ആപ്പുകളെ സഹായിക്കുക. ആപ്പുകൾക്കായി ലൊക്കേഷൻ മെച്ചപ്പെടുത്താൻ സഹായിക്കുന്നതിന് Google-ന്റെ ലൊക്കേഷൻ സേവനം ഉപയോഗിക്കുക. Google, നിശ്ചിത കാലയളവുകളിൽ ലൊക്കേഷൻ ഡാറ്റ ശേഖരിക്കുകയും, ലൊക്കേഷൻ കൃത്യതയും ലൊക്കേഷൻ അധിഷ്ഠിത സേവനങ്ങളും മെച്ചപ്പെടുത്താൻ, വ്യക്തിവിവരങ്ങൾ എടുത്ത് നീക്കിക്കൊണ്ട് ഈ ഡാറ്റ ഉപയോഗിക്കുകയും ചെയ്തേക്കാം. <ph name="BEGIN_LINK1" />കൂടുതൽ അറിയുക<ph name="END_LINK1" /></translation> -<translation id="4884740091792292473"><ph name="BEGIN_PARAGRAPH1" />Google ഡ്രൈവിലേക്ക് ബാക്കപ്പ് ചെയ്യുക. എളുപ്പത്തിൽ നിങ്ങളുടെ ഡാറ്റ പുനസ്ഥാപിക്കുക അല്ലെങ്കിൽ ഏതുസമയത്തും ഉപകരണം സ്വിച്ച് ചെയ്യുക. നിങ്ങളുടെ ബാക്കപ്പിൽ ആപ്പ് ഡാറ്റയും ഉൾപ്പെടുന്നു.<ph name="END_PARAGRAPH1" /> +<translation id="4884740091792292473"><ph name="BEGIN_PARAGRAPH1" />Google ഡ്രൈവിലേക്ക് ബാക്കപ്പ് ചെയ്യുക. എളുപ്പത്തിൽ നിങ്ങളുടെ ഡാറ്റ പുനസ്ഥാപിക്കുക അല്ലെങ്കിൽ ഏതുസമയത്തും ഉപകരണം മാറ്റുക. നിങ്ങളുടെ ബാക്കപ്പിൽ ആപ്പ് ഡാറ്റയും ഉൾപ്പെടുന്നു.<ph name="END_PARAGRAPH1" /> <ph name="BEGIN_PARAGRAPH2" />ആപ്പ് വിവരങ്ങൾ എന്നത് കോൺടാക്റ്റുകൾ, സന്ദേശങ്ങൾ, ഫോട്ടോകൾ എന്നിവ പോലുള്ള രഹസ്യസ്വഭാവമുള്ളതാകാൻ സാധ്യതയുള്ള വിവരങ്ങൾ ഉൾപ്പെടെ ആപ്പ് സംരക്ഷിച്ചിട്ടുള്ള ഏതൊരു വിവരവും (ഡെവലപ്പർ ക്രമീകരണം അടിസ്ഥാനമാക്കി) ആകാം.<ph name="END_PARAGRAPH2" /> <ph name="BEGIN_PARAGRAPH3" />ബാക്കപ്പ് ഡാറ്റയും നിങ്ങളുടെ ഡ്രൈവ് സ്റ്റോറേജ് ക്വാട്ടയും വെവ്വേറെയായിരിക്കും.<ph name="END_PARAGRAPH3" /> - <ph name="BEGIN_PARAGRAPH4" />ക്രമീകരണത്തിൽ നിങ്ങൾക്ക് ഈ സേവനം ഓഫാക്കാവുന്നതാണ്.<ph name="END_PARAGRAPH4" /></translation> + <ph name="BEGIN_PARAGRAPH4" />ക്രമീകരണത്തിൽ നിങ്ങൾക്ക് ഈ സേവനം ഓഫാക്കാവുന്നതാണ്.<ph name="END_PARAGRAPH4" /></translation> <translation id="4884987973312178454">6x</translation> <translation id="4885705234041587624">MSCHAPv2</translation> <translation id="4887424188275796356">സിസ്റ്റം വ്യൂവർ ഉപയോഗിച്ച് തുറക്കുക</translation> @@ -2550,7 +2549,7 @@ <translation id="489985760463306091">ദോഷകരമായ സോഫ്റ്റ്വയർ നീക്കംചെയ്യുന്നത് പൂർത്തിയാക്കാൻ, നിങ്ങളുടെ കമ്പ്യൂട്ടർ പുനരാരംഭിക്കുക</translation> <translation id="4900392736118574277">നിങ്ങളുടെ ആരംഭ പേജിനെ <ph name="URL" /> എന്നതിലേക്ക് മാറ്റിയിരിക്കുന്നു.</translation> <translation id="490074449735753175">സ്പെല്ലിംഗ് പിശകുകള് പരിഹരിക്കുന്നതിന് ഒരു വെബ് സേവനം ഉപയോഗിക്കുക</translation> -<translation id="49027928311173603">സെർവറിൽ നിന്നും ഡൗൺലോഡുചെയ്ത നയം അസാധുവാണ്: <ph name="VALIDATION_ERROR" />.</translation> +<translation id="49027928311173603">സെർവറിൽ നിന്നും ഡൗൺലോഡ് ചെയ്ത നയം അസാധുവാണ്: <ph name="VALIDATION_ERROR" />.</translation> <translation id="4905417359854579806"><ph name="FILE_COUNT" /> ബാക്കപ്പ് ചെയ്യാൻ തയ്യാറാണ്</translation> <translation id="4907161631261076876">അപകടകരമാകാൻ ഇടയുള്ളതിനാൽ ഈ ഫയൽ സാധാരണ ഡൗൺലോഡ് ചെയ്യാറില്ല.</translation> <translation id="4907306957610201395">അനുമതി വിഭാഗം</translation> @@ -2688,7 +2687,7 @@ <translation id="5117930984404104619">സന്ദർശിച്ച URL-കൾ അടക്കം വിപുലീകരണങ്ങളുടെ പ്രവർത്തനരീതി നിരീക്ഷിക്കുക</translation> <translation id="5119173345047096771">Mozilla Firefox</translation> <translation id="5121130586824819730">നിങ്ങളുടെ ഹാർഡ് ഡിസ്ക് നിറഞ്ഞു. മറ്റൊരു ലൊക്കേഷനിലേക്ക് സംരക്ഷിക്കുകയോ ഹാർഡ് ഡിസ്കിൽ കൂടുതൽ ഇടം സൃഷ്ടിക്കുകയോ ചെയ്യുക.</translation> -<translation id="5125751979347152379">URL അസാധുവാണ്.</translation> +<translation id="5125751979347152379">അസാധുവായ URL.</translation> <translation id="5127881134400491887">നെറ്റ്വർക്ക് കണക്ഷനുകൾ നിയന്ത്രിക്കുക</translation> <translation id="512903556749061217">അറ്റാച്ചുചെയ്തു</translation> <translation id="5133483819862530305">സൂര്യോദയം മുതൽ അസ്തമയം വരെ</translation> @@ -2861,7 +2860,7 @@ <translation id="5370819323174483825">&വീണ്ടും ലോഡുചെയ്യുക</translation> <translation id="5372529912055771682">വിതരണം ചെയ്ത എൻറോൾമെന്റ് മോഡിനെ ഈ ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിന്റെ പതിപ്പ് പിന്തുണയ്ക്കുന്നില്ല. പുതിയ പതിപ്പിലാണ് നിങ്ങൾ പ്രവർത്തിക്കുന്നതെന്ന് ഉറപ്പുവരുത്തി വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="5374359983950678924">ചിത്രം മാറ്റുക</translation> -<translation id="5376169624176189338">പുറകിലേക്ക് പോകാൻ ക്ലിക്കുചെയ്യുക, ചരിത്രം കാണാൻ ഹോൾഡുചെയ്യുക</translation> +<translation id="5376169624176189338">തിരികെ പോകാൻ ക്ലിക്ക് ചെയ്യുക, ചരിത്രം കാണാൻ ഹോൾഡ് ചെയ്യുക</translation> <translation id="5376931455988532197">ഫയല് വളരെ വലുതാണ്</translation> <translation id="537813040452600081">ഈ വിൻഡോയിൽ നിങ്ങൾ കാണുന്ന പേജുകൾ സൈൻ ഔട്ട് ചെയ്ത ശേഷം ബ്രൗസർ ചരിത്രത്തിൽ ദൃശ്യമാകില്ല, ഒപ്പം കുക്കികൾ പോലുള്ള മറ്റ് തെളിവുകൾ കമ്പ്യൂട്ടറിൽ അവശേഷിപ്പിക്കുകയുമില്ല. നിങ്ങൾ ഡൗൺലോഡ് ചെയ്യുന്ന ഫയലുകളും സൃഷ്ടിക്കുന്ന ബുക്ക്മാർക്കുകളും സംരക്ഷിക്കപ്പെടില്ല.</translation> <translation id="5379140238605961210">മൈക്രോഫോൺ ആക്സസ്സ് തടയുന്നത് തുടരുക</translation> @@ -2915,7 +2914,7 @@ <translation id="5445400788035474247">10x</translation> <translation id="5446983216438178612">ഓർഗനൈസേഷന്റെ സർട്ടിഫിക്കറ്റുകൾ കാണിക്കുക</translation> <translation id="5448293924669608770">ക്ഷമിക്കണം, സൈൻ ഇൻ ചെയ്യുമ്പോൾ എന്തോ തെറ്റായി സംഭവിച്ചു</translation> -<translation id="5449551289610225147">പാസ്വേഡ് അസാധുവാണ്</translation> +<translation id="5449551289610225147">അസാധുവായ പാസ്വേഡ്</translation> <translation id="5449588825071916739">എല്ലാ ടാബുകളും ബുക്ക്മാര്ക്ക് ചെയ്യുക</translation> <translation id="5449716055534515760">വി&ന്ഡോ അടയ്ക്കുക</translation> <translation id="5451285724299252438">പേജ് പരിധി വാചകപ്പെട്ടി</translation> @@ -3276,7 +3275,7 @@ <translation id="5976160379964388480">മറ്റുള്ളവര്</translation> <translation id="5978264784700053212">സന്ദേശ കേന്ദ്രം</translation> <translation id="5979421442488174909">& <ph name="LANGUAGE" /> ലേക്ക് വിവർത്തനം ചെയ്യുക</translation> -<translation id="5979469435153841984">പേജുകൾ ബുക്ക്മാർക്ക് ചെയ്യുന്നതിന്, വിലാസ ബാറിലെ നക്ഷത്ര ചിഹ്നത്തിൽ ക്ലിക്ക് ചെയ്യുക</translation> +<translation id="5979469435153841984">പേജുകൾ ബുക്ക്മാർക്ക് ചെയ്യാൻ, വിലാസ ബാറിലുള്ള നക്ഷത്ര ചിഹ്നത്തിൽ ക്ലിക്ക് ചെയ്യുക</translation> <translation id="5982621672636444458">അടുക്കൽ ഓപ്ഷനുകൾ</translation> <translation id="5984222099446776634">സമീപകാലത്ത് സന്ദർശിച്ചത്</translation> <translation id="5990386583461751448">വിവർത്തനം ചെയ്തു</translation> @@ -3390,7 +3389,7 @@ <translation id="6146563240635539929">വീഡിയോകൾ</translation> <translation id="6147020289383635445">അച്ചടി പ്രിവ്യൂ പരാജയപ്പെട്ടു.</translation> <translation id="614940544461990577">പരീക്ഷിച്ചുനോക്കൂ:</translation> -<translation id="6150853954427645995">ഓഫ്ലൈൻ ഉപയോഗത്തിനായി ഈ ഫയൽ സംരക്ഷിക്കുന്നതിന്, ഓൺലൈനിലേക്ക് മടങ്ങി, ഫയലിൽ വലത് ക്ലിക്കുചെയ്യുക അതിനുശേഷം <ph name="OFFLINE_CHECKBOX_NAME" /> ഓപ്ഷൻ തിരഞ്ഞെടുക്കുക.</translation> +<translation id="6150853954427645995">ഓഫ്ലൈൻ ഉപയോഗത്തിനായി ഈ ഫയൽ സംരക്ഷിക്കുന്നതിന്, ഓൺലൈനിലേക്ക് മടങ്ങി, ഫയലിൽ വലത് ക്ലിക്ക് ചെയ്യുക അതിനുശേഷം <ph name="OFFLINE_CHECKBOX_NAME" /> ഓപ്ഷൻ തിരഞ്ഞെടുക്കുക.</translation> <translation id="6151323131516309312"><ph name="SITE_NAME" /> തിരയുന്നതിനായി <ph name="SEARCH_KEY" /> അമര്ത്തുക</translation> <translation id="6151771661215463137">നിങ്ങളുടെ ഡൗൺലോഡ് ഫോൾഡറിൽ ഇതിനകം തന്നെ ഫയൽ നിലവിലുണ്ട്.</translation> <translation id="615436196126345398">പ്രോട്ടോക്കോൾ</translation> @@ -3521,7 +3520,7 @@ <translation id="634208815998129842">ടാസ്ക് മാനേജർ</translation> <translation id="6344170822609224263">നെറ്റ്വർക്ക് കണക്ഷനുകളുടെ ലിസ്റ്റ് ആക്സസ്സുചെയ്യുക</translation> <translation id="6346310558342052870">ആക്സസ് നിയന്ത്രിതമാണ്</translation> -<translation id="6349170655202535379">സമന്വയം പ്രവർത്തിക്കുന്നില്ല. സൈൻ ഔട്ട് ചെയ്ത് വീണ്ടും ആരംഭിക്കുന്നത് പരീക്ഷിച്ചുനോക്കൂ.</translation> +<translation id="6349170655202535379">സമന്വയം പ്രവർത്തിക്കുന്നില്ല. സൈൻ ഔട്ട് ചെയ്ത് വീണ്ടും സൈൻ ഇൻ ചെയ്യുന്നത് പരീക്ഷിക്കൂ.</translation> <translation id="6351063337294363751">നിങ്ങൾക്ക് ഈ മെനുവിൽ നിന്ന് ബ്രൗസിംഗ് ഡാറ്റ മായ്ക്കാനാവും</translation> <translation id="6352773953037195952">ഏറ്റവും ഉയർന്നത്</translation> <translation id="6354918092619878358">SECG എലിപ്റ്റിക് കർവ് secp256r1 (ANSI X9.62 prime256v1, NIST P-256 എന്നും അറിയപ്പെടുന്നു)</translation> @@ -4157,7 +4156,7 @@ <translation id="7321545336522791733">സെർവർ ലഭ്യമല്ല</translation> <translation id="7324297612904500502">ബീറ്റ ഫോറം</translation> <translation id="7325437708553334317">ഉയർന്ന ദൃശ്യ തീവ്രത വിപുലീകരണം</translation> -<translation id="7328867076235380839">തെറ്റായ കോമ്പിനേഷൻ</translation> +<translation id="7328867076235380839">അസാധുവായ കോമ്പിനേഷൻ</translation> <translation id="7329154610228416156">സുരക്ഷിതമല്ലാത്ത URL (<ph name="BLOCKED_URL" />) ഉപയോഗിക്കാൻ കോൺഫിഗർ ചെയ്തിരിക്കുന്നതിനാൽ സൈൻ ഇൻ ചെയ്യുന്നതിന് പരാജയപ്പെട്ടു. നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക.</translation> <translation id="7334190995941642545">നിലവിൽ Smart Lock ലഭ്യമല്ല. പിന്നീട് വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="7334274148831027933">ഡോക്ക് ചെയ്ത മാഗ്നിഫയർ പ്രവർത്തനക്ഷമമാക്കുക</translation> @@ -4706,7 +4705,7 @@ <translation id="813913629614996137">ആരംഭിക്കുന്നു...</translation> <translation id="8140778357236808512">നിലവിലുള്ള സൂപ്പർവൈസുചെയ്ത ഒരു ഉപയോക്താവിനെ ഇമ്പോർട്ടുചെയ്യുക</translation> <translation id="8141725884565838206">നിങ്ങളുടെ പാസ്വേഡുകൾ നിയന്ത്രിക്കുക</translation> -<translation id="8143442547342702591">അപ്ലിക്കേഷൻ അസാധുവാണ്</translation> +<translation id="8143442547342702591">അസാധുവായ അപ്ലിക്കേഷൻ</translation> <translation id="8146177459103116374">നിങ്ങൾ ഇതിനകം ഈ ഉപകരണത്തിൽ രജിസ്റ്റർ ചെയ്തെങ്കിൽ, <ph name="LINK2_START" />നിലവിലുള്ള ഉപയോക്താവായി സൈൻ ഇൻ ചെയ്യാൻ<ph name="LINK2_END" /> നിങ്ങൾക്ക് കഴിയും.</translation> <translation id="8146793085009540321">സൈൻ ഇൻ ചെയ്യാനായില്ല. നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുകയോ വീണ്ടും ശ്രമിക്കുകയോ ചെയ്യുക.</translation> <translation id="8151185429379586178">ഡവലപ്പര് ഉപകരണങ്ങള്</translation> @@ -4752,7 +4751,7 @@ <translation id="8214489666383623925">ഫയല് തുറക്കുക...</translation> <translation id="8214962590150211830">ഈ വ്യക്തിയെ നീക്കംചെയ്യുക</translation> <translation id="8217399928341212914">ഒന്നിലേറെ ഫയലുകളുടെ യാന്ത്രിക ഡൗൺലോഡുകൾ തടയുന്നത് തുടരുക</translation> -<translation id="8223479393428528563">ഓഫ്ലൈൻ ഉപയോഗത്തിനായി ഈ ഫയലുകൾ സംരക്ഷിക്കാൻ, ഓൺലൈനിൽ തിരികെ വന്ന് ഫയലുകൾ റൈറ്റ് ക്ലിക്ക് ചെയ്ത്, <ph name="OFFLINE_CHECKBOX_NAME" /> ഓപ്ഷൻ തിരഞ്ഞെടുക്കുക.</translation> +<translation id="8223479393428528563">ഓഫ്ലൈൻ ഉപയോഗത്തിനായി ഈ ഫയലുകൾ സംരക്ഷിക്കാൻ, ഓൺലൈനിൽ തിരികെ വന്ന് ഫയലുകൾ വലത് ക്ലിക്ക് ചെയ്ത്, <ph name="OFFLINE_CHECKBOX_NAME" /> ഓപ്ഷൻ തിരഞ്ഞെടുക്കുക.</translation> <translation id="8225753906568652947">നിങ്ങളുടെ ഓഫറുകൾ റിഡീം ചെയ്യുക</translation> <translation id="8226222018808695353">നിരോധിക്കപ്പെട്ടത്</translation> <translation id="8226619461731305576">ക്യൂവിൽ</translation> @@ -4959,7 +4958,6 @@ <translation id="8557930019681227453">മാനിഫെസ്റ്റ്</translation> <translation id="8559694214572302298">ഇമേജ് ഡീകോഡർ</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">തുടർന്ന് വായിക്കുക</translation> <translation id="8565650234829130278">അപ്ലിക്കേഷൻ ഡൗൺഗ്രേഡ് ചെയ്യാൻ ശ്രമിച്ചു.</translation> <translation id="8569002732135253578">ഇപ്പോൾ <ph name="DOCUMENT_NAME" /> അച്ചടിക്കുന്നു</translation> <translation id="8569682776816196752">ലക്ഷ്യസ്ഥാനങ്ങൾ ഒന്നും കണ്ടെത്തിയില്ല</translation> @@ -5105,7 +5103,7 @@ <translation id="8770406935328356739">വിപുലീകരണ റൂട്ട് ഡയറക്ടറി</translation> <translation id="8770507190024617908">ആളുകളെ മാനേജുചെയ്യുക</translation> <translation id="8774934320277480003">മുകൾഭാഗത്തെ മാർജിൻ</translation> -<translation id="8775144690796719618">URL അസാധുവാണ്</translation> +<translation id="8775144690796719618">അസാധുവായ URL</translation> <translation id="8775404590947523323">നിങ്ങളുടെ എഡിറ്റുകൾ സ്വയമേവ സംരക്ഷിച്ചു.<ph name="BREAKS" />യഥാർത്ഥ ചിത്രത്തിന്റെ ഒരു പകർപ്പ് സൂക്ഷിക്കുന്നതിന്, "യഥാർത്ഥമായത് പുനരാലേഖനം ചെയ്യുക" എന്നത് അൺചെക്ക് ചെയ്യുക</translation> <translation id="8777628254805677039">റൂട്ട് പാസ്വേഡ്</translation> <translation id="8780443667474968681">ശബ്ദ തിരയൽ ഓഫാക്കിയിരിക്കുന്നു.</translation> @@ -5164,7 +5162,7 @@ <translation id="8871551568777368300">അഡ്മിനിസ്ട്രേറ്റർ പിൻ ചെയ്തിരിക്കുന്നു</translation> <translation id="8871696467337989339">നിങ്ങള് ഒരു പിന്തുണയ്ക്കാത്ത കമാന്ഡ്-ലൈന് ഫ്ലാഗ് ഉപയോഗിക്കുന്നു: <ph name="BAD_FLAG" />. സ്ഥിരതയേയും സുരക്ഷയേയും ബാധിക്കും.</translation> <translation id="8871974300055371298">ഉള്ളടക്ക ക്രമീകരണങ്ങൾ</translation> -<translation id="8872155268274985541">അസാധുവായ കിയോസ്ക് ബാഹ്യ അപ്ഡേറ്റ് മാനിഫെസ്റ്റ് ഫയൽ കണ്ടെത്തി. കിയോസ്ക് അപ്ലിക്കേഷൻ അപ്ഡേറ്റുചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു. USB സ്റ്റിക്ക് നീക്കംചെയ്യുക.</translation> +<translation id="8872155268274985541">അസാധുവായ കിയോസ്ക് ബാഹ്യ അപ്ഡേറ്റ് മാനിഫെസ്റ്റ് ഫയൽ കണ്ടെത്തി. കിയോസ്ക് അപ്ലിക്കേഷൻ അപ്ഡേറ്റ് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു. USB സ്റ്റിക്ക് നീക്കം ചെയ്യുക.</translation> <translation id="8874184842967597500">കണക്റ്റുചെയ്തിട്ടില്ല</translation> <translation id="8876215549894133151">ഫോര്മാറ്റ്:</translation> <translation id="8876307312329369159">ഒരു ഡെമോ സെഷനിൽ ഈ ക്രമീകരണം മാറ്റാനാകില്ല.</translation> @@ -5262,7 +5260,7 @@ <translation id="9024127637873500333">&പുതിയ ടാബില് തുറക്കുക</translation> <translation id="9024158959543687197">പങ്കിടൽ മൗണ്ട് ചെയ്യുന്നതിൽ പിശക്. ഫയൽ പങ്കിടൽ URL പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="9024331582947483881">പൂര്ണ്ണ സ്ക്രീന്</translation> -<translation id="9025098623496448965">ശരി, എന്നെ സൈൻ ഇൻ സ്ക്രീനിലേക്ക് തിരിച്ചുകൊണ്ടുപോകുക</translation> +<translation id="9025098623496448965">ശരി, എന്നെ സൈൻ ഇൻ സ്ക്രീനിലേക്ക് തിരികെ കൊണ്ടുപോകുക</translation> <translation id="9026731007018893674">ഡൌണ്ലോഡുചെയ്യുക</translation> <translation id="9026852570893462412">ഈ പ്രക്രിയയ്ക്ക് കുറച്ച് സമയമെടുത്തേക്കാം. വെർച്വൽ മെഷീൻ ഡൗൺലോഡ് ചെയ്യുന്നു.</translation> <translation id="9027459031423301635">ലിങ്ക് പുതിയ &ടാബില് തുറക്കുക</translation> @@ -5319,7 +5317,7 @@ <translation id="9100765901046053179">വിപുലമായ ക്രമീകരണം</translation> <translation id="9101691533782776290">അപ്ലിക്കേഷൻ സമാരംഭിക്കുക</translation> <translation id="9102610709270966160">വിപുലീകരണം പ്രവർത്തനക്ഷമമാക്കുക</translation> -<translation id="9103868373786083162">ചരിത്രം കാണാൻ തിരികെ പോകുന്നതിന് സന്ദർഭ മെനു അമർത്തുക</translation> +<translation id="9103868373786083162">ചരിത്രം കാണാൻ, തിരികെ പോകുന്നതിന് സന്ദർഭ മെനു അമർത്തുക</translation> <translation id="9105212490906037469">F2</translation> <translation id="9109122242323516435">ഇടം സൃഷ്ടിക്കാൻ, ഉപകരണ സ്റ്റോറേജിൽ നിന്ന് ഫയലുകൾ ഇല്ലാതാക്കുക.</translation> <translation id="9110990317705400362">നിങ്ങളുടെ ബ്രൗസിംഗ് സുരക്ഷിതമാക്കുന്നതിനുള്ള മാർഗങ്ങൾക്കായി ഞങ്ങൾ സ്ഥിരമായി തിരയുന്നു. മുമ്പ്, എല്ലാ വെബ്സൈറ്റും നിങ്ങളുടെ ബ്രൗസറിൽ ഒരു വിപുലീകരണം ചേർക്കുന്നതിന് ആവശ്യപ്പെടുമായിരുന്നു. Google Chrome-ന്റെ ഏറ്റവും പുതിയ പതിപ്പുകളിൽ, വിപുലീകരണങ്ങളുടെ പേജ് മുഖേന ഈ വിപുലീകരണങ്ങൾ ചേർത്ത് അവ ഇൻസ്റ്റാൾ ചെയ്യണമെന്ന് നിങ്ങൾ Chrome-നോട് സ്പഷ്ടമായി പറയേണ്ടതുണ്ട്. <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb index 49aa965f..8ec368a 100644 --- a/chrome/app/resources/generated_resources_mr.xtb +++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -1512,7 +1512,6 @@ <translation id="3285322247471302225">नवीन &टॅब</translation> <translation id="3288047731229977326">डेव्हलपर मोडमध्ये चालणारे विस्तार तुमच्या कॉंप्युटरास हानी पोहचवू शकतात. तुम्ही डेव्हलपर नसल्यास, सुरक्षित राहाण्यासाठी डेव्हलपर मोडमध्ये चालणारे हे विस्तार तुम्ही अक्षम करावे.</translation> <translation id="3289856944988573801">अपडेट तपासण्यासाठी, कृपया इथरनेट किंवा वाय-फाय वापरा.</translation> -<translation id="3292421191230118801">तुमच्या Chromebook वर मोबाइलवरून सायटी पाहणे पुन्हा सुरू करा</translation> <translation id="32939749466444286">Linux कंटेनर सुरू झाले नाही. कृपया पुन्हा प्रयत्न करा.</translation> <translation id="3294437725009624529">अतिथी</translation> <translation id="329838636886466101">दुरुस्त करा</translation> @@ -4961,7 +4960,6 @@ <translation id="8557930019681227453">मॅनिफेस्ट</translation> <translation id="8559694214572302298">इमेज डीकोडर</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">वाचन सुरू ठेवा</translation> <translation id="8565650234829130278">अॅप डाउनग्रेड करण्याचा प्रयत्न.</translation> <translation id="8569002732135253578"><ph name="DOCUMENT_NAME" /> प्रिंट करत आहे</translation> <translation id="8569682776816196752">कोणतीही गंतव्ये आढळली नाहीत</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb index 5aedf4c..92d35dc 100644 --- a/chrome/app/resources/generated_resources_ms.xtb +++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -247,6 +247,7 @@ <translation id="1358741672408003399">Ejaan dan Tatabahasa</translation> <translation id="1361164813881551742">Tambahkan Secara Manual</translation> <translation id="1361655923249334273">Tidak digunakan</translation> +<translation id="1361872463926621533">Mainkan bunyi semasa permulaan</translation> <translation id="1363028406613469049">Penjejakan</translation> <translation id="1367951781824006909">Pilih fail</translation> <translation id="1368265273904755308">Laporkan isu</translation> @@ -570,6 +571,7 @@ <translation id="1817310072033858383">Sediakan Smart Lock untuk <ph name="DEVICE_TYPE" /> anda</translation> <translation id="1817871734039893258">Pemulihan Fail Microsoft</translation> <translation id="1818007989243628752">Padam kata laluan untuk <ph name="USERNAME" /></translation> +<translation id="1818913467757368489">Muat naik log sedang berlangsung.</translation> <translation id="1819721979226826163">Ketik Pemberitahuan apl > Perkhidmatan Google Play.</translation> <translation id="1826516787628120939">Menyemak</translation> <translation id="1828378091493947763">Pemalam ini tidak disokong pada peranti ini</translation> @@ -618,11 +620,13 @@ <translation id="1890674179660343635"><span>ID: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">Buka skrin penuh</translation> <translation id="189358972401248634">Bahasa lain</translation> +<translation id="1894591787927543791">Simpan kad untuk menggunakan Google Pay</translation> <translation id="1895658205118569222">Tutup</translation> <translation id="1895934970388272448">Anda mesti sahkan pendaftaran pada pencetak anda untuk melengkapkan proses ini - semaknya sekarang.</translation> <translation id="1897762215429052132">Sediakan sambungan rangkaian, bahasa, reka letak papan kekunci...</translation> <translation id="1901303067676059328">Pilih &semua</translation> <translation id="1902576642799138955">Tempoh Masa Sah</translation> +<translation id="1904518222538904133">1 daripada kad anda hanya boleh digunakan pada peranti ini</translation> <translation id="1905375423839394163">Nama peranti Chromebook</translation> <translation id="1905710495812624430">Melebihi had maksimum percubaan yang dibenarkan.</translation> <translation id="1909880997794698664">Adakah anda pasti mahu peranti ini menggunakan mod kios secara kekal?</translation> @@ -659,6 +663,7 @@ <translation id="1962969542251276847">Kunci Skrin</translation> <translation id="1963227389609234879">Buang Semua</translation> <translation id="1965624977906726414">Tidak mempunyai kebenaran khas.</translation> +<translation id="1969654639948595766">Log teks WebRTC (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">Mod video dimasukkan</translation> <translation id="197288927597451399">Simpan</translation> <translation id="1974043046396539880">Titik Pengedaran CRL</translation> @@ -802,6 +807,7 @@ <translation id="2190069059097339078">Pengutip Bukti Kelayakan WiFi</translation> <translation id="219008588003277019">Modul Klien Asli: <ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(kosong)</translation> +<translation id="2191223688506386601">Satu perkara lagi</translation> <translation id="2192505247865591433">Daripada:</translation> <translation id="2193365732679659387">Tetapan percaya</translation> <translation id="2195729137168608510">Perlindungan E-mel</translation> @@ -1025,6 +1031,7 @@ <translation id="2534460670861217804">Proksi HTTP Selamat</translation> <translation id="253557089021624350">Kiraan pengekal</translation> <translation id="2538361623464451692">Penyegerakan dilumpuhkan</translation> +<translation id="2539876824180063438">Gerakkan jari anda sedikit untuk menambahkan bahagian lain cap jari anda.</translation> <translation id="2541002089857695151">Optimumkan penghantaran skrin penuh?</translation> <translation id="2542049655219295786">Jadual Google</translation> <translation id="2544853746127077729">Sijil pengesahan ditolak oleh rangkaian</translation> @@ -1259,7 +1266,9 @@ <translation id="287286579981869940">Tambahkan <ph name="PROVIDER_NAME" />...</translation> <translation id="2874343608108773609">Log masuk ke Chrome untuk mendapatkan kata laluan pada semua peranti anda.</translation> <translation id="2875698561019555027">(Halaman ralat Chrome)</translation> +<translation id="2876336351874743617">Jari 2</translation> <translation id="288042212351694283">Mengakses peranti Universal 2nd Factor anda</translation> +<translation id="2881076733170862447">Apabila Anda Mengklik Sambungan</translation> <translation id="2881966438216424900">Terakhir diakses:</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> akan dimulakan semula dan ditetapkan semula buat sementara waktu</translation> <translation id="2885378588091291677">Pengurus Tugas</translation> @@ -1445,6 +1454,7 @@ <translation id="3154429428035006212">Di luar talian selama lebih sebulan</translation> <translation id="3156531245809797194">Untuk menggunakan Chrome, sila log masuk</translation> <translation id="3157931365184549694">Pulihkan</translation> +<translation id="3158033540161634471">Sediakan cap jari anda</translation> <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> @@ -1514,9 +1524,10 @@ <translation id="3285322247471302225">&Tab Baharu</translation> <translation id="3288047731229977326">Sambungan yang dijalankan dalam mod pembangun boleh membahayakan komputer anda. Jika anda bukan pembangun, anda harus melumpuhkan sambungan yang dijalankan dalam mod pembangun ini supaya kekal selamat.</translation> <translation id="3289856944988573801">Untuk menyemak kemas kini, sila gunakan Ethernet atau Wi-Fi.</translation> -<translation id="3292421191230118801">Sambung semula melihat tapak daripada mudah alih pada Chromebook anda</translation> <translation id="32939749466444286">Bekas Linux tidak dimulakan. Sila cuba lagi.</translation> <translation id="3294437725009624529">Tetamu</translation> +<translation id="329703603001918157">Tidak dapat mengedit pintasan</translation> +<translation id="3297951628821704004">Alih keluar akaun daripada peranti ini</translation> <translation id="329838636886466101">Baiki</translation> <translation id="3298789223962368867">URL tidak sah dimasukkan.</translation> <translation id="32991397311664836">Peranti:</translation> @@ -1683,6 +1694,7 @@ <translation id="3534879087479077042">Apakah itu pengguna diselia?</translation> <translation id="3538066758857505094">Ralat menyahpasang Linux. Sila cuba lagi.</translation> <translation id="354060433403403521">Penyesuai AC</translation> +<translation id="354068948465830244">Sambungan ini boleh membaca dan mengubah data tapak</translation> <translation id="3541661933757219855">Taipkan Ctrl+Alt+/ atau Escape untuk bersembunyi</translation> <translation id="3543393733900874979">Kemas kini gagal (ralat: <ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">Tandatangan X9.62 ECDSA dengan SHA-512</translation> @@ -1728,6 +1740,7 @@ <translation id="3606712892509067288">Alih keluar daripada Lebih Baik Bersama</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">Pratonton imej pengguna</translation> +<translation id="3609446736023031597">Dapatkan kemas kini dan cadangan terbaharu di apl Gedung Play</translation> <translation id="3609785682760573515">Menyegerakkan...</translation> <translation id="3609895557594655134">Tambahkan VPN Android...</translation> <translation id="361106536627977100">Data Flash</translation> @@ -1760,6 +1773,7 @@ <translation id="3645372836428131288">Bergerak sedikit untuk menangkap bahagian lain cap jari.</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> dikesan</translation> <translation id="3649138363871392317">Foto telah diabadikan</translation> +<translation id="3650845953328929506">Muat naik log belum selesai.</translation> <translation id="3650952250015018111">Benarkan "<ph name="APP_NAME" />" untuk mengakses:</translation> <translation id="3651488188562686558">Putuskan sambungan daripada Wi-Fi</translation> <translation id="3652817283076144888">Memulakan</translation> @@ -1911,6 +1925,7 @@ <translation id="3856800405688283469">Pilih zon waktu</translation> <translation id="3857228364945137633">Cuba Smart Lock untuk membuka kunci <ph name="DEVICE_TYPE" /> anda tanpa kata laluan semasa telefon ada berdekatan.</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elir.</translation> +<translation id="3857807444929313943">Angkat jari, kemudian sentuh lagi</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: Penyegerakan dijeda</translation> <translation id="3860381078714302691">Selamat datang ke Hangout Meet</translation> <translation id="3861241522664181545">Halaman dijeda.</translation> @@ -1929,6 +1944,7 @@ <translation id="3873315167136380065">Untuk menghidupkan ciri ini, <ph name="BEGIN_LINK" />tetapkan semula penyegerakan<ph name="END_LINK" /> untuk mengalih keluar ungkapan laluan penyegerakan anda</translation> <translation id="3878840326289104869">Menghasilkan pengguna diselia</translation> <translation id="3879748587602334249">Pengurus muat turun</translation> +<translation id="3885455691202481064">Sentuh penderia dengan jari telunjuk anda. Penderia terletak di bahagian atas sebelah kiri Chromebook anda.</translation> <translation id="3888550877729210209">Mencatat nota dengan <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3892414795099177503">Tambahkan OpenVPN / L2TP...</translation> <translation id="3893536212201235195">Baca dan tukar tetapan kebolehaksesan anda</translation> @@ -1981,6 +1997,7 @@ <translation id="3950820424414687140">Log masuk</translation> <translation id="3954354850384043518">Sedang berlangsung</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hertz)</translation> +<translation id="3954953195017194676">Anda tiada log acara WebRTC yang dirakam baru-baru ini.</translation> <translation id="3955193568934677022">Benarkan tapak untuk memainkan kandungan yang dilindungi (disyorkan)</translation> <translation id="3956702100721821638">Tidak dapat menghubungi Google Play</translation> <translation id="3958088479270651626">Import penanda halaman dan tetapan</translation> @@ -2234,6 +2251,7 @@ <translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation> <translation id="4408599188496843485">B&antuan</translation> <translation id="4409697491990005945">Margin</translation> +<translation id="4410545552906060960">Gunakan nombor (PIN) dan bukannya kata laluan untuk membuka kunci peranti anda. Pergi ke Tetapan untuk menetapkan PIN anda kemudian.</translation> <translation id="4411578466613447185">Penandatangan Kod</translation> <translation id="4412698727486357573">Pusat bantuan</translation> <translation id="44141919652824029">Benarkan "<ph name="APP_NAME" />" mendapatkan senarai peranti anda yang ada USB?</translation> @@ -2325,8 +2343,10 @@ <translation id="4555769855065597957">Bayang</translation> <translation id="4556110439722119938">Penanda halaman, sejarah, kata laluan dan tetapan anda yang lain akan disegerakkan ke Akaun Google supaya anda dapat menggunakannya pada semua peranti anda</translation> <translation id="4558426062282641716">Kebenaran autolancar diminta</translation> +<translation id="4558491878126948419">Dapatkan petua <ph name="DEVICE_TYPE" /> dan kemas kini tentang produk Google serta kongsi maklum balas. Hentikan langganan pada bila-bila masa.</translation> <translation id="4559617833001311418">Tapak ini mengakses penderia gerakan atau cahaya anda.</translation> <translation id="4562155214028662640">Tambahkan Cap Jari</translation> +<translation id="4563880231729913339">Jari 3</translation> <translation id="4565377596337484307">Sembunyikan kata laluan</translation> <translation id="4567772783389002344">Tambah perkataan</translation> <translation id="4568213207643490790">Maaf, akaun Google tidak dibenarkan pada peranti ini.</translation> @@ -2401,6 +2421,7 @@ <translation id="4681930562518940301">Buka &imej asal dalam tab baharu</translation> <translation id="4682551433947286597">Kertas dinding dipaparkan pada Skrin Log Masuk.</translation> <translation id="4684427112815847243">Segerakkan semua</translation> +<translation id="4688036121858134881">ID log setempat: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4689235506267737042">Buat pilihan tunjuk cara anda</translation> <translation id="4689421377817139245">Segerakkan penanda halaman ini ke iPhone anda</translation> <translation id="4690091457710545971"><Empat fail dihasilkan oleh perisian tegar Wi-Fi Intel: csr.lst, fh_regs.lst, radio_reg.lst, monitor.lst.sysmon. Tiga fail yang pertama ialah fail perduaan yang mengandungi longgokan pendaftaran dan Intel menegaskan bahawa fail ini tidak mengandungi maklumat peribadi atau yang mengenal pasti peranti. Fail terakhir ialah surih pelaksanaan daripada perisian tegar Intel; fail ini telah dibersihkan supaya tidak mengandungi sebarang maklumat peribadi atau yang mengenal pasti peranti, tetapi terlalu besar untuk dipaparkan di sini. Fail ini dihasilkan sebagai tindak balas terhadap masalah Wi-Fi pada peranti anda baru-baru ini dan akan dikongsi dengan Intel untuk membantu dalam menyelesaikan masalah ini.></translation> @@ -2585,6 +2606,7 @@ <translation id="4945444280533270988">Smart Lock dihidupkan</translation> <translation id="4953689047182316270">Jawab Acara Kebolehaksesan</translation> <translation id="4953808748584563296">Avatar jingga lalai</translation> +<translation id="4955710816792587366">Pilih PIN anda</translation> <translation id="4955814292505481804">Tahunan</translation> <translation id="4957949153200969297">Dayakan ciri yang berkaitan dengan Penyegerakan <ph name="IDS_SHORT_PRODUCT_NAME" /> sahaja</translation> <translation id="4959262764292427323">Kata laluan disimpan dalam Akaun Google anda supaya anda dapat menggunakannya pada mana-mana peranti</translation> @@ -2650,6 +2672,7 @@ <translation id="5050042263972837708">Nama kumpulan</translation> <translation id="5052499409147950210">Edit tapak</translation> <translation id="5053604404986157245">Kata laluan TPM yang dihasilkan secara rawak tidak tersedia. Perkara ini biasa berlaku selepas Powerwash.</translation> +<translation id="5057110919553308744">Apabila anda mengklik sambungan</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{Folder ini mengandungi penanda halaman. Adakah anda pasti mahu memadamnya?}other{Folder ini mengandungi # penanda halaman. Adakah anda pasti mahu memadamnya?}}</translation> <translation id="5061708541166515394">Kontras</translation> <translation id="5062930723426326933">Log masuk gagal, sila sambungkan ke internet dan cuba lagi.</translation> @@ -2825,6 +2848,7 @@ <translation id="5315873049536339193">Identiti</translation> <translation id="5316716239522500219">Cerminkan monitor</translation> <translation id="5317780077021120954">Simpan</translation> +<translation id="5318819489018851358">Kongsi dengan Linux</translation> <translation id="5319359161174645648">Google mengesyorkan Chrome</translation> <translation id="5319566035256672173">Peranti ini tidak akan menerima kemas kini perisian terbaharu lagi. Sila pertimbangkan untuk meningkatkan peranti anda.</translation> <translation id="532247166573571973">Pelayan mungkin tidak dapat dihubungi. Cuba sebentar lagi.</translation> @@ -3165,6 +3189,7 @@ <translation id="5804241973901381774">Kebenaran</translation> <translation id="580571955903695899">Aturkan semula mengikut Tajuk</translation> <translation id="5807290661599647102">Tetapkan Kunci Skrin</translation> +<translation id="5811750797187914944">Selesai</translation> <translation id="5814126672212206791">Jenis sambungan</translation> <translation id="5815645614496570556">Alamat X.400</translation> <translation id="5816434091619127343">Perubahan pencetak yang diminta akan menjadikan pencetak tidak boleh digunakan.</translation> @@ -3202,6 +3227,7 @@ <translation id="5855773610748894548">Oops, ralat modul selamat.</translation> <translation id="5856721540245522153">Dayakan ciri penyahpepijatan</translation> <translation id="5857090052475505287">Folder Baharu</translation> +<translation id="5858490737742085133">Terminal</translation> <translation id="585979798156957858">Meta Luaran</translation> <translation id="5860033963881614850">Dimatikan</translation> <translation id="5860209693144823476">Tab 3</translation> @@ -3224,6 +3250,7 @@ <translation id="5882919346125742463">Rangkaian Yang Diketahui</translation> <translation id="5884474295213649357">Tab ini disambungkan ke peranti USB.</translation> <translation id="5885324376209859881">Uruskan tetapan media...</translation> +<translation id="5886009770935151472">Jari 1</translation> <translation id="5889282057229379085">Bilangan maksimum CA pengantara: <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">Mulakan Semula</translation> <translation id="5895187275912066135">Dikeluarkan Pada</translation> @@ -3308,6 +3335,7 @@ <translation id="6025215716629925253">Pengesanan Susunan</translation> <translation id="6026047032548434446">Pasang Apl?</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - Peranti USB disambungkan</translation> +<translation id="6028117231645531007">Tambahkan cap jari</translation> <translation id="6029027682598229313">Pemasangan Linux selesai.</translation> <translation id="6029587122245504742">Paling perlahan</translation> <translation id="6032912588568283682">Sistem fail</translation> @@ -3322,6 +3350,7 @@ <translation id="6042308850641462728">Lagi</translation> <translation id="6043317578411397101"><ph name="APP_NAME" /> berkongsi tab Chrome dengan <ph name="TAB_NAME" />.</translation> <translation id="6044805581023976844"><ph name="APP_NAME" /> berkongsi tab dan audio Chrome dengan <ph name="TAB_NAME" />.</translation> +<translation id="6047938872139769630">Anda boleh menggunakan PIN untuk membuka kunci peranti anda apabila log keluar</translation> <translation id="6049004884579590341">Tekan dan tahan |<ph name="ACCELERATOR" />| untuk keluar daripada skrin penuh</translation> <translation id="6049065490165456785">Foto dari kamera dalaman</translation> <translation id="6051354611314852653">Op! Sistem gagal membenarkan akses API untuk peranti ini.</translation> @@ -3344,6 +3373,7 @@ <translation id="6075907793831890935">Bertukar data dengan peranti yang bernama <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Sertakan tangkapan skrin ini</translation> <translation id="6077131872140550515">Alih keluar daripada pilihan</translation> +<translation id="6077189836672154517">Petua dan kemas kini tentang <ph name="DEVICE_TYPE" /></translation> <translation id="6078323886959318429">Tambahkan pintasan</translation> <translation id="6078752646384677957">Sila periksa mikrofon dan tahap audio anda.</translation> <translation id="6080515710685820702">Menggunakan komputer yang dikongsi? Cuba buka tetingkap inkognito.</translation> @@ -3393,6 +3423,7 @@ <translation id="6144938890088808325">Bantu kami memperbaik Chromebook</translation> <translation id="6146563240635539929">Video</translation> <translation id="6147020289383635445">Gagal pratonton cetakan.</translation> +<translation id="6148052338549899048">Tiada peranti yang layak. <ph name="LINK_BEGIN" />Ketahui lebih lanjut.<ph name="LINK_END" /></translation> <translation id="614940544461990577">Cuba:</translation> <translation id="6150853954427645995">Bagi menyimpan fail ini untuk kegunaan luar talian, sila kembali ke dalam talian, klik kanan fail, dan pilih pilihan <ph name="OFFLINE_CHECKBOX_NAME" />.</translation> <translation id="6151323131516309312">Tekan <ph name="SEARCH_KEY" /> untuk mencari <ph name="SITE_NAME" /></translation> @@ -3412,6 +3443,7 @@ <translation id="6169040057125497443">Sila periksa mikrofon anda.</translation> <translation id="6169666352732958425">Tidak dapat menghantar desktop.</translation> <translation id="6171948306033499786">Jedakan pencetakan</translation> +<translation id="6173623053897475761">Taipkan PIN anda sekali lagi</translation> <translation id="6175314957787328458">Microsoft Domain GUID</translation> <translation id="6176043333338857209">Bluetooth akan dihidupkan buat sementara waktu untuk berkomunikasi dengan kunci keselamatan anda</translation> <translation id="6178664161104547336">Pilih sijil</translation> @@ -3601,11 +3633,13 @@ <translation id="6456394469623773452">Halus</translation> <translation id="6456631036739229488">Telefon Smart Lock ditukar. Masukkan kata laluan anda untuk mengemas kini Smart Lock. Selepas ini, telefon anda akan membuka kunci <ph name="DEVICE_TYPE" />. Matikan Smart Lock dalam Tetapan.</translation> <translation id="645705751491738698">Terus menyekat JavaScript</translation> +<translation id="6458701200018867744">Muat naik gagal (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Use Selection for Find</translation> <translation id="6459799433792303855">Tetingkap aktif dialihkan ke paparan lain.</translation> <translation id="6460601847208524483">Cari Seterusnya</translation> <translation id="6463795194797719782">&Edit</translation> <translation id="6466988389784393586">&Buka Semua Penanda Halaman</translation> +<translation id="6467304607960172345">Optimumkan video skrin penuh</translation> <translation id="6468485451923838994">Fon</translation> <translation id="6472207088655375767">OTP</translation> <translation id="6472893788822429178">Paparkan butang Laman Utama</translation> @@ -3781,6 +3815,7 @@ <translation id="6725206449694821596">Protokol Cetakan Internet (IPP)</translation> <translation id="6727005317916125192">Anak tetingkap sebelumnya</translation> <translation id="6732801395666424405">Sijil tidak dimuatkan</translation> +<translation id="6732900235521116609">Tidak dapat mengalih keluar pintasan</translation> <translation id="6735304988756581115">Tunjukkan kuki dan data tapak yang lain...</translation> <translation id="6736045498964449756">Alamak, kata laluan tidak sepadan!</translation> <translation id="6736243959894955139">Alamat</translation> @@ -3864,6 +3899,7 @@ <translation id="6860427144121307915">Buka dalam Tab</translation> <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="6865708901122695652">Log acara WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">Suhu warna</translation> <translation id="6870888490422746447">Pilih apl untuk berkongsi ke:</translation> <translation id="6871644448911473373">Pengulas OCSP: <ph name="LOCATION" /></translation> @@ -3908,6 +3944,7 @@ <translation id="694592694773692225">Ubah hala disekat pada halaman ini.</translation> <translation id="6949306908218145636">Tandakan Halaman Terbuka...</translation> <translation id="6950627417367801484">Pulihkan apl</translation> +<translation id="6950943362443484797">Kami akan memasang apl itu untuk anda</translation> <translation id="6951153907720526401">Pengendali Pembayaran</translation> <translation id="6955446738988643816">Semak Pop Timbul</translation> <translation id="6957231940976260713">Nama perkhidmatan</translation> @@ -3943,6 +3980,7 @@ <translation id="6998711733709403587"><ph name="SELCTED_FOLDERS_COUNT" /> folder dipilih</translation> <translation id="6998793565256476099">Daftar peranti untuk persidangan video</translation> <translation id="7000347579424117903">Termasuk Ctrl, Alt atau Search</translation> +<translation id="700203306553508933">Simpan kad untuk menggunakan Google Pay</translation> <translation id="7002055706763150362">Untuk menyediakan Smart Lock untuk Chromebook, Google perlu memastikan ini ialah anda—taip kata laluan anda untuk bermula.</translation> <translation id="7002454948392136538">Pilih pengurus untuk pengguna yang diselia ini</translation> <translation id="7003339318920871147">Pangkalan data web</translation> @@ -3990,6 +4028,7 @@ <translation id="706626672220389329">Ralat melekapkan perkongsian. Perkongsian yang dinyatakan sudah dilekapkan.</translation> <translation id="7066944511817949584">Gagal untuk bersambung ke "<ph name="DEVICE_NAME" />".</translation> <translation id="7067725467529581407">Jangan sekali-kali tunjukkan ini lagi.</translation> +<translation id="7070484045139057854">Sambungan Ini Boleh Membaca dan Mengubah Data Tapak</translation> <translation id="7072010813301522126">Nama pintasan</translation> <translation id="707392107419594760">Pilih papan kekunci anda:</translation> <translation id="7075513071073410194">PKCS #1 MD5 Dengan Penyulitan RSA</translation> @@ -4119,6 +4158,7 @@ <translation id="7256710573727326513">Buka dalam tab</translation> <translation id="725758059478686223">Perkhidmatan Cetak</translation> <translation id="7257666756905341374">Baca data yang anda salin dan tampal</translation> +<translation id="7258697411818564379">PIN anda telah ditambahkan</translation> <translation id="7260764918845374269">Untuk melihat kunci keselamatan anda, kunci tersebut perlu berada dalam mod penggandingan. Tekan butang pada kunci anda selama sekurang-kurangnya 5 saat.</translation> <translation id="7262004276116528033">Perkhidmatan log masuk ini dihoskan oleh <ph name="SAML_DOMAIN" /></translation> <translation id="7268365133021434339">Tutup Tab</translation> @@ -4266,6 +4306,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">Terlupa kata laluan lama anda?</translation> <translation id="7497215489070763236">Sijil CA pelayan</translation> +<translation id="7497981768003291373">Anda tiada log teks WebRTC yang dirakam baru-baru ini.</translation> <translation id="7502658306369382406">Alamat IPv6</translation> <translation id="7503191893372251637">Jenis Sijil Netscape</translation> <translation id="7503821294401948377">Tidak dapat memuatkan ikon '<ph name="ICON" />' untuk tindakan penyemak imbas.</translation> @@ -4308,6 +4349,7 @@ <translation id="7564847347806291057">Tamatkan proses</translation> <translation id="7566118625369982896">Urus pautan apl Play</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">Letakkan jari anda</translation> <translation id="756809126120519699">Data Chrome dikosongkan</translation> <translation id="7568790562536448087">Mengemas kini</translation> <translation id="7571643774869182231">Storan tidak mencukupi untuk kemas kini</translation> @@ -4470,6 +4512,7 @@ <ph name="LINE_BREAK2" /> Cuba kurangkan foto yang dipilih.</translation> <translation id="782590969421016895">Gunakan halaman semasa</translation> +<translation id="7826346148677309647">Anda boleh menemui pelbagai lagi apl untuk peranti anda di Gedung Play.</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />Ciri Penyahpepijatan<ph name="END_H3" /> <ph name="BR" /> Anda boleh mendayakan ciri penyahpepijatan pada Peranti OS Chrome untuk memasang dan menguji kod tersuai pada peranti anda. Tindakan ini akan membolehkan anda untuk:<ph name="BR" /> @@ -4666,6 +4709,7 @@ <translation id="8059417245945632445">&Periksa peranti</translation> <translation id="8063235345342641131">Avatar hijau lalai</translation> <translation id="8064671687106936412">Kekunci:</translation> +<translation id="8065485338434000013">Sesetengah kad anda hanya boleh digunakan pada peranti ini</translation> <translation id="806812017500012252">Aturkan semula mengikut tajuk</translation> <translation id="8068253693380742035">Sentuh untuk mengelog masuk</translation> <translation id="8069615408251337349">Cetakan Awan Google</translation> @@ -4743,6 +4787,7 @@ <translation id="8191453843330043793">Pelerai Proksi V8</translation> <translation id="8193175696669055101">Model peranti</translation> <translation id="8195027750202970175">Saiz pada cakera</translation> +<translation id="8198323535106903877">Kami akan memasang <ph name="NUMBER_OF_APPS" /> apl itu untuk anda</translation> <translation id="8199300056570174101">Sifat Rangkaian (Perkhidmatan) dan Peranti</translation> <translation id="8200772114523450471">Sambung semula</translation> <translation id="8202160505685531999">Sila masukkan semula kata laluan untuk mengemaskinikan profil <ph name="DEVICE_TYPE" /> anda.</translation> @@ -4963,7 +5008,6 @@ <translation id="8557930019681227453">Manifes</translation> <translation id="8559694214572302298">Penyahkod Imej</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Teruskan Membaca</translation> <translation id="8565650234829130278">Cuba untuk menurunkan taraf apl.</translation> <translation id="8569002732135253578">Sekarang mencetak <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">Tiada destinasi dijumpai</translation> @@ -5076,6 +5120,8 @@ <translation id="8716931980467311658">Padamkan semua apl dan data Linux dalam folder fail Linux anda daripada <ph name="DEVICE_TYPE" /> ini?</translation> <translation id="8719653885894320876">Muat turun <ph name="PLUGIN_NAME" /> gagal</translation> <translation id="8723829621484579639">Subbingkai inkognito untuk: <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">Apabila anda melihat ikon ini, gunakan cap jari anda untuk pengenalan atau untuk membenarkan pembelian.</translation> +<translation id="8724409975248965964">Cap jari ditambahkan</translation> <translation id="8724859055372736596">&Paparkan dalam Folder</translation> <translation id="8725066075913043281">Cuba lagi</translation> <translation id="8725178340343806893">Kegemaran/Penanda halaman</translation> @@ -5156,6 +5202,7 @@ <translation id="8838770651474809439">Hamburger</translation> <translation id="883911313571074303">Anotasikan imej</translation> <translation id="8845001906332463065">Dapatkan bantuan</translation> +<translation id="8846132060409673887">Baca tentang pengeluar dan model komputer ini</translation> <translation id="8846141544112579928">Mencari papan kekunci...</translation> <translation id="8847988622838149491">USB</translation> <translation id="8859057652521303089">Pilih bahasa anda:</translation> @@ -5369,6 +5416,7 @@ <translation id="9161070040817969420">Subbingkai untuk: <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">Hantar data sistem. Pada masa ini peranti ini menghantar data diagnostik dan penggunaan peranti serta apl secara automatik kepada Google. Tetapan ini dikuatkuasakan oleh pemilik. Jika anda menghidupkan Aktiviti Web & Apl tambahan, maklumat ini akan disimpan dengan akaun anda supaya anda dapat mengurus maklumat ini dalam Aktiviti Saya. <ph name="BEGIN_LINK1" />Ketahui Lebih Lanjut<ph name="END_LINK1" /></translation> <translation id="916607977885256133">Gambar dalam Gambar</translation> +<translation id="9168436347345867845">Lakukan kemudian</translation> <translation id="9169496697824289689">Lihat pintasan papan kekunci</translation> <translation id="9169931577761441333">Tambahkan <ph name="APP_NAME" /> pada Skrin utama</translation> <translation id="9170848237812810038">&Buat asal</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb index 50d8102..f1c68eae 100644 --- a/chrome/app/resources/generated_resources_nl.xtb +++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -1513,7 +1513,6 @@ <translation id="3285322247471302225">Nieuw &tabblad</translation> <translation id="3288047731229977326">Extensies die in de ontwikkelaarmodus worden uitgevoerd, kunnen je computer beschadigen. Als je geen ontwikkelaar bent, moet je deze extensies uitschakelen, die in de ontwikkelaarsmodus worden uitgevoerd, om beveiligd te blijven.</translation> <translation id="3289856944988573801">Gebruik Ethernet of wifi om op updates te controleren.</translation> -<translation id="3292421191230118801">Doorgaan met sites bekijken via mobiel op je Chromebook</translation> <translation id="32939749466444286">De Linux-container is niet gestart. Probeer het opnieuw.</translation> <translation id="3294437725009624529">Gast</translation> <translation id="329838636886466101">Repareren</translation> @@ -4961,7 +4960,6 @@ <translation id="8557930019681227453">Manifest</translation> <translation id="8559694214572302298">Image Decoder</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Verder lezen</translation> <translation id="8565650234829130278">Je probeert een oudere versie van de app te installeren.</translation> <translation id="8569002732135253578"><ph name="DOCUMENT_NAME" /> wordt nu afgedrukt</translation> <translation id="8569682776816196752">Geen bestemmingen gevonden</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb index abb300f9..769fcdc 100644 --- a/chrome/app/resources/generated_resources_no.xtb +++ b/chrome/app/resources/generated_resources_no.xtb
@@ -1509,7 +1509,6 @@ <translation id="3285322247471302225">Ny &fane</translation> <translation id="3288047731229977326">Utvidelser som kjører i utviklermodus kan skade datamaskinen din. Hvis du ikke er utvikler, bør du deaktivere disse utvidelsene som kjører i utviklermodus, for å være på den sikre siden.</translation> <translation id="3289856944988573801">For å sjekke etter oppdateringer, kan du bruke Ethernet eller Wi-Fi.</translation> -<translation id="3292421191230118801">Fortsett å se på nettsteder fra mobilen på Chromebooken</translation> <translation id="32939749466444286">Linux-beholderen startet ikke. Prøv på nytt.</translation> <translation id="3294437725009624529">Gjest</translation> <translation id="329838636886466101">Reparer</translation> @@ -4950,7 +4949,6 @@ <translation id="8557930019681227453">Manifest</translation> <translation id="8559694214572302298">Image Decoder</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Les mer</translation> <translation id="8565650234829130278">Forsøkte å nedgradere programmet.</translation> <translation id="8569002732135253578">Skriver ut <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">Ingen destinasjoner ble funnet</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb index dadf553..923843d 100644 --- a/chrome/app/resources/generated_resources_pl.xtb +++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -75,7 +75,7 @@ <translation id="1114202307280046356">Romb</translation> <translation id="1114335938027186412">Twój komputer ma układ TPM (Trusted Platform Module), który umożliwia zastosowanie wielu krytycznych funkcji zabezpieczeń w Chrome OS. Więcej informacji znajdziesz w Centrum pomocy Chromebooka na stronie https://support.google.com/chromebook/?p=tpm</translation> <translation id="1114525161406758033">Przejdź w tryb uśpienia, gdy pokrywa jest zamknięta</translation> -<translation id="1115324527092594775">Skonfiguruj Razem lepiej</translation> +<translation id="1115324527092594775">Skonfiguruj Better Together</translation> <translation id="1116694919640316211">Informacje</translation> <translation id="1116779635164066733">To ustawienie jest wymuszone przez rozszerzenie <ph name="NAME" />.</translation> <translation id="111844081046043029">Czy na pewno chcesz opuścić tę stronę?</translation> @@ -247,6 +247,7 @@ <translation id="1358741672408003399">Pisownia i gramatyka</translation> <translation id="1361164813881551742">Dodaj ręcznie</translation> <translation id="1361655923249334273">Nieużywany</translation> +<translation id="1361872463926621533">Odtwórz dźwięk podczas uruchamiania</translation> <translation id="1363028406613469049">Utwór</translation> <translation id="1367951781824006909">Wybierz plik</translation> <translation id="1368265273904755308">Zgłoś problem</translation> @@ -351,7 +352,7 @@ <translation id="1509281256533087115">Dostęp do każdego urządzenia <ph name="DEVICE_NAME_AND_VENDOR" /> przez USB</translation> <translation id="150962533380566081">Nieprawidłowy PUK.</translation> <translation id="1510030919967934016">Tej stronie zablokowano możliwość śledzenia Twojej lokalizacji.</translation> -<translation id="1510238584712386396">Program uruchamiający</translation> +<translation id="1510238584712386396">Menu z aplikacjami</translation> <translation id="1510785804673676069">Jeśli używasz serwera proxy, sprawdź jego ustawienia lub skontaktuj się z administratorem sieci, by sprawdzić, czy on działa. Jeśli sądzisz, że serwer proxy nie powinien @@ -570,6 +571,7 @@ <translation id="1817310072033858383">Skonfiguruj Smart Lock na urządzeniu <ph name="DEVICE_TYPE" /></translation> <translation id="1817871734039893258">Odzyskiwanie plików firmy Microsoft</translation> <translation id="1818007989243628752">Usuń hasło użytkownika <ph name="USERNAME" /></translation> +<translation id="1818913467757368489">Trwa przesyłanie dziennika.</translation> <translation id="1819721979226826163">Kliknij Powiadomienia z aplikacji > Usługi Google Play.</translation> <translation id="1826516787628120939">Sprawdzam</translation> <translation id="1828378091493947763">To urządzenie nie obsługuje tej wtyczki</translation> @@ -618,11 +620,13 @@ <translation id="1890674179660343635"><span>Identyfikator: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">Otwórz na pełnym ekranie</translation> <translation id="189358972401248634">Inne języki</translation> +<translation id="1894591787927543791">Zapisz kartę, by korzystać z Google Pay</translation> <translation id="1895658205118569222">Wyłączenie</translation> <translation id="1895934970388272448">Aby ukończyć ten proces, musisz potwierdzić rejestrację na drukarce – zrób to teraz.</translation> <translation id="1897762215429052132">Skonfiguruj połączenie sieciowe, język, układ klawiatury...</translation> <translation id="1901303067676059328">Zaznacz &wszystko</translation> <translation id="1902576642799138955">Okres ważności</translation> +<translation id="1904518222538904133">Jednej z Twoich kart można używać tylko na tym urządzeniu</translation> <translation id="1905375423839394163">Nazwa Chromebooka</translation> <translation id="1905710495812624430">Przekroczono maksymalną liczbę prób.</translation> <translation id="1909880997794698664">Czy na pewno chcesz trwale utrzymywać to urządzenie w trybie kiosku?</translation> @@ -659,6 +663,7 @@ <translation id="1962969542251276847">Zablokuj ekran</translation> <translation id="1963227389609234879">Usuń wszystko</translation> <translation id="1965624977906726414">Nie ma specjalnych uprawnień.</translation> +<translation id="1969654639948595766">Dzienniki tekstowe WebRTC (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">Włączono tryb wideo</translation> <translation id="197288927597451399">Zachowaj</translation> <translation id="1974043046396539880">Punkty dystrybucji listy CRL</translation> @@ -802,6 +807,7 @@ <translation id="2190069059097339078">Program do pobierania danych logowania do Wi-Fi</translation> <translation id="219008588003277019">Moduł klienta natywnego: <ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(puste)</translation> +<translation id="2191223688506386601">Jeszcze jedno</translation> <translation id="2192505247865591433">Z:</translation> <translation id="2193365732679659387">Ustawienia zaufania</translation> <translation id="2195729137168608510">Ochrona poczty e-mail</translation> @@ -1025,6 +1031,7 @@ <translation id="2534460670861217804">Serwer proxy HTTPS</translation> <translation id="253557089021624350">Liczba elementów wymuszających aktywność</translation> <translation id="2538361623464451692">Synchronizacja wyłączona</translation> +<translation id="2539876824180063438">Lekko przesuwaj palcem wskazującym, by dodać różne części linii papilarnych.</translation> <translation id="2541002089857695151">Zoptymalizować przesyłanie pełnoekranowe?</translation> <translation id="2542049655219295786">Tabela Google</translation> <translation id="2544853746127077729">Certyfikat uwierzytelniania został odrzucony przez sieć</translation> @@ -1258,7 +1265,9 @@ <translation id="287286579981869940">Dodaj dostawcę <ph name="PROVIDER_NAME" />...</translation> <translation id="2874343608108773609">Aby mieć dostęp do swoich haseł na wszystkich urządzeniach, zaloguj się w Chrome.</translation> <translation id="2875698561019555027">(Strony błędów Chrome)</translation> +<translation id="2876336351874743617">Palec 2</translation> <translation id="288042212351694283">Dostęp do urządzeń Universal 2nd Factor</translation> +<translation id="2881076733170862447">Gdy klikniesz rozszerzenie</translation> <translation id="2881966438216424900">Ostatni dostęp:</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> za chwilę uruchomi się ponownie i zresetuje.</translation> <translation id="2885378588091291677">Menedżer zadań</translation> @@ -1444,6 +1453,7 @@ <translation id="3154429428035006212">Offline od ponad miesiąca</translation> <translation id="3156531245809797194">Aby skorzystać z Chrome, musisz się zalogować</translation> <translation id="3157931365184549694">Przywróć</translation> +<translation id="3158033540161634471">Skonfiguruj swój odcisk palca</translation> <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> @@ -1513,9 +1523,10 @@ <translation id="3285322247471302225">Nowa &karta</translation> <translation id="3288047731229977326">Rozszerzenia działające w trybie programisty mogą uszkodzić Twój komputer. Jeśli nie jesteś programistą, wyłącz je dla bezpieczeństwa.</translation> <translation id="3289856944988573801">Jeśli chcesz sprawdzić aktualizacje, użyj Ethernetu lub Wi-Fi.</translation> -<translation id="3292421191230118801">Wznów przeglądanie stron z urządzenia mobilnego na Chromebooku</translation> <translation id="32939749466444286">Kontener Linuksa nie uruchomił się. Spróbuj ponownie.</translation> <translation id="3294437725009624529">Gość</translation> +<translation id="329703603001918157">Nie można edytować skrótu</translation> +<translation id="3297951628821704004">Usuń konto z tego urządzenia</translation> <translation id="329838636886466101">Napraw</translation> <translation id="3298789223962368867">Wprowadzono nieprawidłowy adres URL.</translation> <translation id="32991397311664836">Urządzenia:</translation> @@ -1682,6 +1693,7 @@ <translation id="3534879087479077042">Kto to jest użytkownik nadzorowany?</translation> <translation id="3538066758857505094">Błąd podczas odinstalowywania Linuksa. Spróbuj ponownie.</translation> <translation id="354060433403403521">Zasilacz</translation> +<translation id="354068948465830244">Może odczytywać i modyfikować dane stron</translation> <translation id="3541661933757219855">Aby ukryć, naciśnij kombinację Ctrl+Alt+/ lub klawisz Escape.</translation> <translation id="3543393733900874979">Aktualizacja zakończona niepowodzeniem (błąd: <ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">Podpis X9.62 ECDSA z SHA-512</translation> @@ -1727,6 +1739,7 @@ <translation id="3606712892509067288">Usuń z Razem lepiej</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">Podgląd obrazu użytkownika</translation> +<translation id="3609446736023031597">Chcę otrzymywać najnowsze wiadomości i rekomendacje aplikacji ze Sklepu Play</translation> <translation id="3609785682760573515">Synchronizuję...</translation> <translation id="3609895557594655134">Dodaj VPN na Androida…</translation> <translation id="361106536627977100">Dane Flash</translation> @@ -1759,6 +1772,7 @@ <translation id="3645372836428131288">Przesuń odrobinę, by zeskanować inną część odcisku palca.</translation> <translation id="3648348069317717750">Wykryto <ph name="USB_DEVICE_NAME" /></translation> <translation id="3649138363871392317">Zdjęcie zostało zrobione</translation> +<translation id="3650845953328929506">Dziennik oczekuje na przesłanie.</translation> <translation id="3650952250015018111">Zezwól aplikacji „<ph name="APP_NAME" />” na dostęp do:</translation> <translation id="3651488188562686558">rozłączy się z siecią Wi-Fi</translation> <translation id="3652817283076144888">Inicjuję</translation> @@ -1910,6 +1924,7 @@ <translation id="3856800405688283469">Wybierz strefę czasową</translation> <translation id="3857228364945137633">Użyj funkcji Smart Lock, by odblokować urządzenie <ph name="DEVICE_TYPE" /> bez podawania hasła, gdy masz telefon w pobliżu.</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation> +<translation id="3857807444929313943">Podnieś i przyłóż ponownie</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: synchronizacja wstrzymana</translation> <translation id="3860381078714302691">Witamy w Hangouts Meet</translation> <translation id="3861241522664181545">Strona została wstrzymana.</translation> @@ -1928,6 +1943,7 @@ <translation id="3873315167136380065">Aby włączyć tę funkcję, <ph name="BEGIN_LINK" />zresetuj synchronizację<ph name="END_LINK" /> w celu usunięcia hasła synchronizacji</translation> <translation id="3878840326289104869">Tworzenie użytkownika nadzorowanego</translation> <translation id="3879748587602334249">Menedżer pobierania</translation> +<translation id="3885455691202481064">Dotknij czytnika palcem wskazującym. Czytnik znajduje się w lewym górnym rogu Chromebooka.</translation> <translation id="3888550877729210209">Robienie notatek w aplikacji <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3892414795099177503">Dodaj OpenVPN/L2TP…</translation> <translation id="3893536212201235195">Odczytywanie i zmiana ustawień ułatwień dostępu</translation> @@ -1980,6 +1996,7 @@ <translation id="3950820424414687140">Zaloguj się</translation> <translation id="3954354850384043518">W toku</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz)</translation> +<translation id="3954953195017194676">Nie ma zapisanych ostatnio dzienników zdarzeń WebRTC.</translation> <translation id="3955193568934677022">Zezwalaj witrynom na odtwarzanie treści chronionej (zalecane)</translation> <translation id="3956702100721821638">Nie udało się połączyć z Google Play</translation> <translation id="3958088479270651626">Importuj zakładki i ustawienia</translation> @@ -2233,6 +2250,7 @@ <translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation> <translation id="4408599188496843485">Pomo&c</translation> <translation id="4409697491990005945">Marginesy</translation> +<translation id="4410545552906060960">Do odblokowywania urządzenia możesz używać numeru PIN zamiast hasła. Możesz ustawić PIN później w Ustawieniach.</translation> <translation id="4411578466613447185">Certyfikat do podpisywania kodu</translation> <translation id="4412698727486357573">Centrum pomocy</translation> <translation id="44141919652824029">Zezwolić aplikacji <ph name="APP_NAME" /> na odczyt listy podłączonych urządzeń USB?</translation> @@ -2324,8 +2342,10 @@ <translation id="4555769855065597957">Cień</translation> <translation id="4556110439722119938">Zakładki, historia, hasła i inne ustawienia zostaną zsynchronizowane z kontem Google, by można było z nich korzystać na dowolnym urządzeniu.</translation> <translation id="4558426062282641716">Przesłano prośbę o pozwolenie na automatyczne uruchamianie</translation> +<translation id="4558491878126948419">Otrzymuj wskazówki na temat urządzeń typu <ph name="DEVICE_TYPE" /> i najnowsze wiadomości o produktach i usługach Google. Podziel się swoją opinią. W każdej chwili możesz zrezygnować z subskrypcji.</translation> <translation id="4559617833001311418">Ta witryna ma dostęp do czujników ruchu lub oświetlenia.</translation> <translation id="4562155214028662640">Dodaj odcisk palca</translation> +<translation id="4563880231729913339">Palec 3</translation> <translation id="4565377596337484307">Ukryj hasło</translation> <translation id="4567772783389002344">Dodaj słowo</translation> <translation id="4568213207643490790">Konta Google nie są dozwolone na tym urządzeniu.</translation> @@ -2400,6 +2420,7 @@ <translation id="4681930562518940301">Otwórz oryginalny &obraz w nowej karcie</translation> <translation id="4682551433947286597">Na ekranie logowania są wyświetlane tapety.</translation> <translation id="4684427112815847243">Synchronizuj wszystko</translation> +<translation id="4688036121858134881">Identyfikator dziennika lokalnego: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4689235506267737042">Wybierz ustawienia trybu demonstracyjnego</translation> <translation id="4689421377817139245">Zsynchronizuj tę zakładkę ze swoim iPhonem</translation> <translation id="4690091457710545971"><Cztery pliki wygenerowane przez oprogramowanie układowe Wi-Fi firmy Intel: csr.lst, fh_regs.lst, radio_reg.lst, monitor.lst.sysmon. Pierwsze trzy to pliki binarne zawierające zrzuty rejestru. Intel twierdzi, że nie zawierają żadnych danych umożliwiających identyfikację osoby lub urządzenia. Ostatni plik zawiera ślad wykonywania oprogramowania układowego firmy Intel. Wszelkie dane umożliwiające identyfikację osoby lub urządzenia zostały z niego usunięte, ale jest zbyt duży, by go tu wyświetlić. Te pliki zostały wygenerowane w reakcji na niedawne problemy z Wi-Fi na Twoim urządzeniu i zostaną przekazane firmie Intel, by pomóc w rozwiązaniu tych problemów.></translation> @@ -2584,6 +2605,7 @@ <translation id="4945444280533270988">Funkcja Smart Lock jest włączona</translation> <translation id="4953689047182316270">Odpowiadanie na zdarzenia dotyczące ułatwień dostępu</translation> <translation id="4953808748584563296">Domyślny pomarańczowy awatar</translation> +<translation id="4955710816792587366">Ustaw kod PIN</translation> <translation id="4955814292505481804">Roczna</translation> <translation id="4957949153200969297">Włącz tylko funkcje związane z Synchronizacją <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="4959262764292427323">Hasła są zapisywane na Twoim koncie Google, dzięki czemu możesz ich używać na dowolnym urządzeniu</translation> @@ -2649,6 +2671,7 @@ <translation id="5050042263972837708">Nazwa grupy</translation> <translation id="5052499409147950210">Edytowanie strony internetowej</translation> <translation id="5053604404986157245">Losowo generowane hasło TPM jest niedostępne. Ta sytuacja jest normalna po użyciu funkcji Powerwash.</translation> +<translation id="5057110919553308744">Gdy klikniesz rozszerzenie</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{Ten folder zawiera zakładkę. Na pewno chcesz go usunąć?}few{Ten folder zawiera # zakładki. Na pewno chcesz go usunąć?}many{Ten folder zawiera # zakładek. Na pewno chcesz go usunąć?}other{Ten folder zawiera # zakładki. Na pewno chcesz go usunąć?}}</translation> <translation id="5061708541166515394">Kontrast</translation> <translation id="5062930723426326933">Logowanie nieudane. Połącz się z internetem i spróbuj ponownie.</translation> @@ -2824,6 +2847,7 @@ <translation id="5315873049536339193">Tożsamość</translation> <translation id="5316716239522500219">Wyświetl na monitorach odbicie lustrzane</translation> <translation id="5317780077021120954">Zapisz</translation> +<translation id="5318819489018851358">Udostępnij Linuksowi</translation> <translation id="5319359161174645648">Google zaleca Chrome</translation> <translation id="5319566035256672173">To urządzenie nie będzie już otrzymywać najnowszych aktualizacji oprogramowania. Pomyśl o nowszym urządzeniu.</translation> <translation id="532247166573571973">Serwer może być niedostępny. Spróbuj ponownie później.</translation> @@ -3164,6 +3188,7 @@ <translation id="5804241973901381774">Uprawnienia</translation> <translation id="580571955903695899">Uporządkuj według tytułu</translation> <translation id="5807290661599647102">Ustaw blokadę ekranu</translation> +<translation id="5811750797187914944">Wszystko gotowe</translation> <translation id="5814126672212206791">Typ połączenia</translation> <translation id="5815645614496570556">Adres X.400</translation> <translation id="5816434091619127343">Te zmiany uniemożliwiłyby korzystanie z drukarki.</translation> @@ -3201,6 +3226,7 @@ <translation id="5855773610748894548">Ups, błąd modułu zabezpieczeń.</translation> <translation id="5856721540245522153">Włącz funkcje debugowania</translation> <translation id="5857090052475505287">Nowy folder</translation> +<translation id="5858490737742085133">Terminal</translation> <translation id="585979798156957858">Zewnętrzny klawisz Meta</translation> <translation id="5860033963881614850">Wyłączone</translation> <translation id="5860209693144823476">Karta 3</translation> @@ -3223,6 +3249,7 @@ <translation id="5882919346125742463">Znane sieci</translation> <translation id="5884474295213649357">Ta karta jest połączona z urządzeniem USB.</translation> <translation id="5885324376209859881">Zarządzaj ustawieniami multimediów...</translation> +<translation id="5886009770935151472">Palec 1</translation> <translation id="5889282057229379085">Maksymalna liczba pośrednich urzędów certyfikacji: <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">Uruchom ponownie</translation> <translation id="5895187275912066135">Wystawiony dnia</translation> @@ -3307,6 +3334,7 @@ <translation id="6025215716629925253">Zrzut stosu</translation> <translation id="6026047032548434446">Zainstalować aplikację?</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – połączono z urządzeniem USB</translation> +<translation id="6028117231645531007">Dodaj odcisk palca</translation> <translation id="6029027682598229313">Instalacja Linuksa została ukończona.</translation> <translation id="6029587122245504742">Najwolniej</translation> <translation id="6032912588568283682">System plików</translation> @@ -3321,8 +3349,9 @@ <translation id="6042308850641462728">Więcej</translation> <translation id="6043317578411397101"><ph name="APP_NAME" /> udostępnia kartę Chrome karcie <ph name="TAB_NAME" />.</translation> <translation id="6044805581023976844"><ph name="APP_NAME" /> udostępnia kartę i dźwięk z Chrome karcie <ph name="TAB_NAME" />.</translation> +<translation id="6047938872139769630">Po wylogowaniu się możesz teraz odblokowywać urządzenie za pomocą kodu PIN</translation> <translation id="6049004884579590341">Naciśnij i przytrzymaj |<ph name="ACCELERATOR" />|, by zamknąć pełny ekran</translation> -<translation id="6049065490165456785">Zdjęcie z wbudowanego aparatu</translation> +<translation id="6049065490165456785">Zdjęcie z wbudowanej kamery</translation> <translation id="6051354611314852653">Ups. System nie może autoryzować dostępu do interfejsu API dla tego urządzenia.</translation> <translation id="6052976518993719690">Urząd certyfikacji protokołu SSL</translation> <translation id="6053401458108962351">&Wyczyść dane przeglądania...</translation> @@ -3343,6 +3372,7 @@ <translation id="6075907793831890935">Wymiana danych z urządzeniem o nazwie <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Dołącz ten zrzut ekranu</translation> <translation id="6077131872140550515">Usuń z preferowanych</translation> +<translation id="6077189836672154517">Wskazówki i wiadomości na temat <ph name="DEVICE_TYPE" /></translation> <translation id="6078323886959318429">Dodaj skrót</translation> <translation id="6078752646384677957">Sprawdź mikrofon i poziom dźwięku.</translation> <translation id="6080515710685820702">Korzystasz ze wspólnego komputera? Otwórz okno incognito.</translation> @@ -3392,6 +3422,7 @@ <translation id="6144938890088808325">Pomóż nam ulepszyć Chromebooki</translation> <translation id="6146563240635539929">Filmy</translation> <translation id="6147020289383635445">Wyświetlenie podglądu wydruku nie powiodło się.</translation> +<translation id="6148052338549899048">Brak odpowiednich urządzeń. <ph name="LINK_BEGIN" />Więcej informacji<ph name="LINK_END" /></translation> <translation id="614940544461990577">Wypróbuj te rozwiązania:</translation> <translation id="6150853954427645995">Aby zapisać ten plik i używać go offline, przejdź do trybu online, kliknij plik prawym przyciskiem myszy i wybierz opcję <ph name="OFFLINE_CHECKBOX_NAME" />.</translation> <translation id="6151323131516309312">Kliknij przycisk <ph name="SEARCH_KEY" />, aby przeszukać witrynę <ph name="SITE_NAME" /></translation> @@ -3411,6 +3442,7 @@ <translation id="6169040057125497443">Sprawdź mikrofon.</translation> <translation id="6169666352732958425">Nie można przesłać pulpitu.</translation> <translation id="6171948306033499786">Wstrzymaj drukowanie</translation> +<translation id="6173623053897475761">Wpisz ponownie kod PIN</translation> <translation id="6175314957787328458">Identyfikator GUID domeny firmy Microsoft</translation> <translation id="6176043333338857209">Bluetooth włączy się na chwilę, by połączyć się z kluczem bezpieczeństwa</translation> <translation id="6178664161104547336">Wybór certyfikatu</translation> @@ -3600,11 +3632,13 @@ <translation id="6456394469623773452">Dobry</translation> <translation id="6456631036739229488">Telefon z funkcją Smart Lock został zmieniony. Wpisz hasło, by zaktualizować Smart Lock. Następnym razem Twój telefon odblokuje urządzenie <ph name="DEVICE_TYPE" />. Funkcję Smart Lock możesz wyłączyć w Ustawieniach.</translation> <translation id="645705751491738698">Nadal blokuj wykonywanie kodu JavaScript</translation> +<translation id="6458701200018867744">Nie udało się przesłać (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Użyj zaznaczenia do funkcji Znajdź</translation> <translation id="6459799433792303855">Aktywne okno zostało przeniesione na inny ekran.</translation> <translation id="6460601847208524483">Znajdź następne</translation> <translation id="6463795194797719782">&Edycja</translation> <translation id="6466988389784393586">&Otwórz wszystkie zakładki</translation> +<translation id="6467304607960172345">Zoptymalizuj filmy na pełnym ekranie</translation> <translation id="6468485451923838994">Czcionki</translation> <translation id="6472207088655375767">Hasło jednorazowe</translation> <translation id="6472893788822429178">Pokaż przycisk strony głównej</translation> @@ -3780,6 +3814,7 @@ <translation id="6725206449694821596">Internet Printing Protocol (IPP)</translation> <translation id="6727005317916125192">Poprzedni panel</translation> <translation id="6732801395666424405">Certyfikaty nie zostały wczytane</translation> +<translation id="6732900235521116609">Nie można usunąć skrótu</translation> <translation id="6735304988756581115">Pokaż pliki cookie i inne dane witryn...</translation> <translation id="6736045498964449756">Ups, hasła nie pasują do siebie.</translation> <translation id="6736243959894955139">Adres</translation> @@ -3863,6 +3898,7 @@ <translation id="6860427144121307915">Otwórz na karcie</translation> <translation id="6862635236584086457">Wszystkie pliki przechowywane w tym folderze są automatycznie zapisywane online</translation> <translation id="6865313869410766144">Autouzupełnianie danych formularzy</translation> +<translation id="6865708901122695652">Dzienniki zdarzeń WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">Temperatura kolorów</translation> <translation id="6870888490422746447">Wybierz aplikację docelową udostępniania:</translation> <translation id="6871644448911473373">Obiekt odpowiadający protokołu OCSP: <ph name="LOCATION" /></translation> @@ -3907,6 +3943,7 @@ <translation id="694592694773692225">Przekierowanie zostało zablokowane na tej stronie.</translation> <translation id="6949306908218145636">Dodaj otwarte strony do zakładek...</translation> <translation id="6950627417367801484">Przywróć aplikacje</translation> +<translation id="6950943362443484797">Zainstalujemy dla Ciebie tę aplikację</translation> <translation id="6951153907720526401">Moduły do obsługi płatności</translation> <translation id="6955446738988643816">Sprawdź wyskakujące okienko</translation> <translation id="6957231940976260713">Nazwa usługi</translation> @@ -3942,11 +3979,12 @@ <translation id="6998711733709403587">Wybrano <ph name="SELCTED_FOLDERS_COUNT" /> foldery(ów)</translation> <translation id="6998793565256476099">Zarejestruj urządzenie na potrzeby wideokonferencji</translation> <translation id="7000347579424117903">Uwzględnij klawisze Ctrl, Alt lub Wyszukaj</translation> +<translation id="700203306553508933">Zapisz karty, by korzystać z Google Pay</translation> <translation id="7002055706763150362">Aby skonfigurować Smart Lock na Chromebooki, Google musi mieć pewność, że jesteś osobą, za którą się podajesz. Najpierw wpisz hasło.</translation> <translation id="7002454948392136538">Wybierz menedżera dla tego użytkownika nadzorowanego</translation> <translation id="7003339318920871147">Sieciowe bazy danych</translation> <translation id="7003723821785740825">Skonfiguruj szybszy sposób odblokowania urządzenia</translation> -<translation id="7004499039102548441">Niedawno używane karty</translation> +<translation id="7004499039102548441">Ostatnie karty</translation> <translation id="7005848115657603926">Nieprawidłowy zakres stron, użyj formatu <ph name="EXAMPLE_PAGE_RANGE" /></translation> <translation id="7006634003215061422">Dolny margines</translation> <translation id="7006844981395428048">Plik dźwiękowy ($1)</translation> @@ -3989,6 +4027,7 @@ <translation id="706626672220389329">Błąd podczas podłączania udziału. Udział jest już podłączony.</translation> <translation id="7066944511817949584">Nie można połączyć z urządzeniem „<ph name="DEVICE_NAME" />”.</translation> <translation id="7067725467529581407">Nie pokazuj tego ponownie.</translation> +<translation id="7070484045139057854">Może odczytywać i modyfikować dane stron</translation> <translation id="7072010813301522126">Nazwa skrótu</translation> <translation id="707392107419594760">Wybierz klawiaturę:</translation> <translation id="7075513071073410194">PKCS #1, MD5 z szyfrowaniem RSA</translation> @@ -4118,6 +4157,7 @@ <translation id="7256710573727326513">Otwórz na karcie</translation> <translation id="725758059478686223">Usługa drukowania</translation> <translation id="7257666756905341374">Odczyt danych, które kopiujesz i wklejasz</translation> +<translation id="7258697411818564379">Kod PIN został dodany</translation> <translation id="7260764918845374269">Aby klucz bezpieczeństwa był widoczny, musi być w trybie parowania. Naciśnij i przytrzymaj przycisk na kluczu przez co najmniej 5 sekund.</translation> <translation id="7262004276116528033">Ta usługa logowania pochodzi z domeny <ph name="SAML_DOMAIN" /></translation> <translation id="7268365133021434339">Zamknij karty</translation> @@ -4138,7 +4178,7 @@ <translation id="7287411021188441799">Przywróć domyślne tło</translation> <translation id="7288676996127329262"><ph name="HORIZONTAL_DPI" /> x <ph name="VERTICAL_DPI" /> dpi</translation> <translation id="7289225569524511578">Otwórz aplikację tapety</translation> -<translation id="7290242001003353852">Ta usługa logowania, pochodząca z domeny <ph name="SAML_DOMAIN" />, ma dostęp do aparatu.</translation> +<translation id="7290242001003353852">Ta usługa logowania, pochodząca z domeny <ph name="SAML_DOMAIN" />, ma dostęp do kamery.</translation> <translation id="7290594223351252791">Potwierdź rejestrację</translation> <translation id="729459249680637905">Liczba pozostałych prób: $1</translation> <translation id="7295662345261934369">Udostępnij innym</translation> @@ -4265,6 +4305,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">Nie pamiętasz starego hasła?</translation> <translation id="7497215489070763236">Certyfikat CA serwera</translation> +<translation id="7497981768003291373">Nie ma zapisanych ostatnio dzienników tekstowych WebRTC.</translation> <translation id="7502658306369382406">Adres IPv6</translation> <translation id="7503191893372251637">Typ certyfikatu firmy Netscape</translation> <translation id="7503821294401948377">Nie można wczytać ikony „<ph name="ICON" />” dla czynności wykonywanej w przeglądarce.</translation> @@ -4307,6 +4348,7 @@ <translation id="7564847347806291057">Zakończ proces</translation> <translation id="7566118625369982896">Zarządzaj linkami aplikacji Play</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">Połóż palec</translation> <translation id="756809126120519699">Wyczyszczono dane Chrome</translation> <translation id="7568790562536448087">Aktualizowanie</translation> <translation id="7571643774869182231">Za mało miejsca na aktualizację</translation> @@ -4469,6 +4511,7 @@ <ph name="LINE_BREAK2" /> Spróbuj wybrać mniej zdjęć.</translation> <translation id="782590969421016895">Użyj bieżących stron</translation> +<translation id="7826346148677309647">Więcej aplikacji na swoje urządzenie znajdziesz w Sklepie Play.</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />Funkcje debugowania<ph name="END_H3" /> <ph name="BR" /> Na swoim urządzeniu z Chrome OS możesz włączyć funkcje debugowania, by instalować i testować na nim niestandardowy kod. Dzięki temu możesz:<ph name="BR" /> @@ -4665,6 +4708,7 @@ <translation id="8059417245945632445">&Sprawdź urządzenia</translation> <translation id="8063235345342641131">Domyślny zielony awatar</translation> <translation id="8064671687106936412">Klucz:</translation> +<translation id="8065485338434000013">Niektórych Twoich kart można używać tylko na tym urządzeniu</translation> <translation id="806812017500012252">Uporządkuj według tytułu</translation> <translation id="8068253693380742035">Kliknij, by się zalogować</translation> <translation id="8069615408251337349">Google Cloud Print</translation> @@ -4742,6 +4786,7 @@ <translation id="8191453843330043793">Program do rozpoznawania serwera proxy V8</translation> <translation id="8193175696669055101">Model urządzenia</translation> <translation id="8195027750202970175">Rozmiar na dysku</translation> +<translation id="8198323535106903877">Zainstalujemy dla Ciebie te aplikacje (<ph name="NUMBER_OF_APPS" />)</translation> <translation id="8199300056570174101">Właściwości sieci (usługi) i urządzenia</translation> <translation id="8200772114523450471">Wznów</translation> <translation id="8202160505685531999">Wpisz hasło ponownie, by zaktualizować swój profil na urządzeniu <ph name="DEVICE_TYPE" />.</translation> @@ -4962,7 +5007,6 @@ <translation id="8557930019681227453">Plik manifestu</translation> <translation id="8559694214572302298">Dekoder obrazów</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Czytaj dalej</translation> <translation id="8565650234829130278">Próbowano zmienić wersję aplikacji na starszą.</translation> <translation id="8569002732135253578">Drukuję: <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">Nie znaleziono urządzeń docelowych</translation> @@ -4992,7 +5036,7 @@ <translation id="8620765578342452535">Konfigurowanie połączenia sieciowego</translation> <translation id="8624205858755890468">Umożliwia Asystentowi wyświetlanie powiązanych informacji, aplikacji i działań.</translation> <translation id="862542460444371744">&Rozszerzenia</translation> -<translation id="8626219642120025691">Minutnik gotowy</translation> +<translation id="8626219642120025691">Czas minął</translation> <translation id="8627151598708688654">Wybierz źródło</translation> <translation id="862727964348362408">Zawieszona</translation> <translation id="862750493060684461">Pamięć podręczna CSS</translation> @@ -5075,6 +5119,8 @@ <translation id="8716931980467311658">Usunąć wszystkie aplikacje na Linuksa i dane z folderu Pliki Linuksa z tego urządzenia <ph name="DEVICE_TYPE" />?</translation> <translation id="8719653885894320876">Nie udało się pobrać wtyczki <ph name="PLUGIN_NAME" /></translation> <translation id="8723829621484579639">Ramki podrzędne incognito dla <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">Gdy zobaczysz tę ikonę, możesz użyć odcisku palca, by się zidentyfikować lub zatwierdzić zakup.</translation> +<translation id="8724409975248965964">Odcisk palca dodany</translation> <translation id="8724859055372736596">&Pokaż w folderze</translation> <translation id="8725066075913043281">Spróbuj ponownie</translation> <translation id="8725178340343806893">Ulubione/Zakładki</translation> @@ -5155,6 +5201,7 @@ <translation id="8838770651474809439">Hamburger</translation> <translation id="883911313571074303">Dodaj notatkę na grafice</translation> <translation id="8845001906332463065">Uzyskaj pomoc</translation> +<translation id="8846132060409673887">Odczytywanie producenta i modelu tego komputera</translation> <translation id="8846141544112579928">Szukam klawiatury...</translation> <translation id="8847988622838149491">USB</translation> <translation id="8859057652521303089">Wybierz język:</translation> @@ -5290,7 +5337,7 @@ <translation id="9050666287014529139">Hasło</translation> <translation id="9052208328806230490">Zarejestrowano drukarki w usłudze <ph name="CLOUD_PRINT_NAME" /> przy użyciu konta <ph name="EMAIL" /></translation> <translation id="9052404922357793350">Nadal blokuj</translation> -<translation id="9053091947372579468">Na Twoim urządzeniu jest licencja Chrome, ale Twoja nazwa użytkownika nie jest powiązana z konsolą administracyjną. Utwórz konto konsoli administracyjnej, by kontynuować rejestrację. Uwaga: jeśli do utworzenia nowego konta konsoli administracyjnej użyjesz własnej domeny, po utworzeniu konta musisz przeprowadzić weryfikację domeny. https://g.co/ChromeEnterpriseAccount</translation> +<translation id="9053091947372579468">Na Twoim urządzeniu jest licencja Chrome, ale Twoja nazwa użytkownika nie jest powiązana z konsolą administracyjną. Utwórz konto konsoli administracyjnej, by kontynuować rejestrację. Uwaga: jeśli do utworzenia nowego konta konsoli administracyjnej użyjesz własnej domeny, po utworzeniu konta musisz tę domenę zweryfikować. https://g.co/ChromeEnterpriseAccount</translation> <translation id="9053893665344928494">Zapamiętaj mój wybór</translation> <translation id="9055636786322918818">Wymusza szyfrowanie RC4. Używanie tej opcji jest ryzykowne, ponieważ szyfrowanie RC4 nie zapewnia bezpieczeństwa.</translation> <translation id="9056034633062863292">Aktualizuję Chromeboxa</translation> @@ -5368,6 +5415,7 @@ <translation id="9161070040817969420">Ramki podrzędne dla <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">Wysyłanie danych systemowych. Obecnie to urządzenie automatycznie wysyła do Google dane diagnostyczne oraz dotyczące używania urządzenia i aplikacji. To ustawienie jest wybierane przez właściciela urządzenia. Jeśli masz włączoną dodatkowo Aktywność w internecie i aplikacjach, dane te będą zapisywane na Twoim koncie, co umożliwi Ci zarządzanie nimi na stronie Moja aktywność. <ph name="BEGIN_LINK1" />Więcej informacji<ph name="END_LINK1" /></translation> <translation id="916607977885256133">Obraz w obrazie</translation> +<translation id="9168436347345867845">Później</translation> <translation id="9169496697824289689">Pokaż skróty klawiszowe</translation> <translation id="9169931577761441333">Dodaj aplikację <ph name="APP_NAME" /> do ekranu głównego</translation> <translation id="9170848237812810038">&Cofnij</translation> @@ -5394,7 +5442,7 @@ <translation id="9218430445555521422">Ustaw jako domyślną</translation> <translation id="9219103736887031265">Grafika</translation> <translation id="9220525904950070496">Usuń konto</translation> -<translation id="9220820413868316583">Podnieś i spróbuj ponownie.</translation> +<translation id="9220820413868316583">Unieś i spróbuj ponownie.</translation> <translation id="923467487918828349">Pokaż wszystko</translation> <translation id="928985544179707652">Rozszerzenia</translation> <translation id="930268624053534560">Szczegółowe sygnatury czasowe</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb index 743c13f..20a1dec 100644 --- a/chrome/app/resources/generated_resources_pt-BR.xtb +++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -247,6 +247,7 @@ <translation id="1358741672408003399">Ortografia e gramática</translation> <translation id="1361164813881551742">Adicionar manualmente</translation> <translation id="1361655923249334273">Não utilizado</translation> +<translation id="1361872463926621533">Reproduzir som na inicialização</translation> <translation id="1363028406613469049">Rastrear</translation> <translation id="1367951781824006909">Escolher um arquivo</translation> <translation id="1368265273904755308">Informar problema</translation> @@ -570,6 +571,7 @@ <translation id="1817310072033858383">Configurar o Smart Lock para o <ph name="DEVICE_TYPE" /></translation> <translation id="1817871734039893258">Recuperação de arquivos da Microsoft</translation> <translation id="1818007989243628752">Excluir a senha de <ph name="USERNAME" /></translation> +<translation id="1818913467757368489">Upload de registro em andamento.</translation> <translation id="1819721979226826163">Toque em Notificações de apps > Google Play Services.</translation> <translation id="1826516787628120939">Em verificação</translation> <translation id="1828378091493947763">Este plug-in não é compatível com este dispositivo</translation> @@ -618,11 +620,13 @@ <translation id="1890674179660343635"><span>Código: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">Abrir tela cheia</translation> <translation id="189358972401248634">Outros idiomas</translation> +<translation id="1894591787927543791">Salvar cartão para usar o Google Pay</translation> <translation id="1895658205118569222">Encerramento</translation> <translation id="1895934970388272448">Você deve confirmar o registro na sua impressora para concluir este processo. Verifique isso agora.</translation> <translation id="1897762215429052132">Configurar conexão de rede, idioma, layout do teclado...</translation> <translation id="1901303067676059328">Selecionar &tudo</translation> <translation id="1902576642799138955">Período de validade</translation> +<translation id="1904518222538904133">Um dos seus cartões só pode ser usado neste dispositivo</translation> <translation id="1905375423839394163">Nome do dispositivo Chromebook</translation> <translation id="1905710495812624430">O número máximo de tentativas permitidas foi excedido.</translation> <translation id="1909880997794698664">Tem certeza que quer manter permanentemente este dispositivo no modo quiosque?</translation> @@ -659,6 +663,7 @@ <translation id="1962969542251276847">Tela de bloqueio</translation> <translation id="1963227389609234879">Remover tudo</translation> <translation id="1965624977906726414">Sem permissões especiais.</translation> +<translation id="1969654639948595766">Registros de texto WebRTC (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">Alterado para o modo de vídeo</translation> <translation id="197288927597451399">Manter</translation> <translation id="1974043046396539880">Pontos de distribuição de lista de certificados revogados</translation> @@ -802,6 +807,7 @@ <translation id="2190069059097339078">Getter de credenciais de Wi-Fi</translation> <translation id="219008588003277019">Módulo do cliente nativo: <ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(vazio)</translation> +<translation id="2191223688506386601">Um último detalhe</translation> <translation id="2192505247865591433">De:</translation> <translation id="2193365732679659387">Configurações de confiança</translation> <translation id="2195729137168608510">Proteção de e-mail</translation> @@ -1025,6 +1031,7 @@ <translation id="2534460670861217804">Proxy HTTP seguro</translation> <translation id="253557089021624350">Contagem de manutenção de atividade</translation> <translation id="2538361623464451692">Sincronização desativada</translation> +<translation id="2539876824180063438">Mova o dedo indicador levemente para adicionar as diferentes partes da sua impressão digital.</translation> <translation id="2541002089857695151">Otimizar transmissão em tela cheia?</translation> <translation id="2542049655219295786">Tabela do Google</translation> <translation id="2544853746127077729">Certificado de autenticação rejeitado pela rede</translation> @@ -1258,7 +1265,9 @@ <translation id="287286579981869940">Adicionar <ph name="PROVIDER_NAME" />...</translation> <translation id="2874343608108773609">Para ter suas senhas em todos os seus dispositivos, faça login no Chrome.</translation> <translation id="2875698561019555027">Páginas de erro do Chrome</translation> +<translation id="2876336351874743617">Dedo 2</translation> <translation id="288042212351694283">Acessar seus dispositivos Universal 2nd Factor</translation> +<translation id="2881076733170862447">Quando você clicar na extensão</translation> <translation id="2881966438216424900">Acessado pela última vez:</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> será reiniciado e redefinido temporariamente</translation> <translation id="2885378588091291677">Gerenciador de tarefas</translation> @@ -1444,6 +1453,7 @@ <translation id="3154429428035006212">Off-line há mais de um mês</translation> <translation id="3156531245809797194">Para usar o Chrome, faça login</translation> <translation id="3157931365184549694">Restaurar</translation> +<translation id="3158033540161634471">Configurar impressão digital</translation> <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> @@ -1513,9 +1523,10 @@ <translation id="3285322247471302225">Nova &guia</translation> <translation id="3288047731229977326">Extensões executadas no modo de desenvolvedor podem prejudicar o computador. Se você não for desenvolvedor, para sua segurança, desative essas extensões que estão sendo executadas no modo de desenvolvedor.</translation> <translation id="3289856944988573801">Para verificar se há atualizações, utilize Ethernet ou Wi-Fi.</translation> -<translation id="3292421191230118801">Retomar a visualização de sites do dispositivo móvel no seu Chromebook</translation> <translation id="32939749466444286">O contêiner Linux não foi iniciado. Tente novamente.</translation> <translation id="3294437725009624529">Visitante</translation> +<translation id="329703603001918157">Não é possível editar o atalho</translation> +<translation id="3297951628821704004">Remover conta deste dispositivo</translation> <translation id="329838636886466101">Reparo</translation> <translation id="3298789223962368867">URL inválido digitado.</translation> <translation id="32991397311664836">Dispositivos:</translation> @@ -1682,6 +1693,7 @@ <translation id="3534879087479077042">O que é um usuário supervisionado?</translation> <translation id="3538066758857505094">Erro ao instalar o Linux. Tente novamente.</translation> <translation id="354060433403403521">Carregador</translation> +<translation id="354068948465830244">Pode ler e alterar os dados do site</translation> <translation id="3541661933757219855">Digite Ctrl+Alt+/ ou Esc para ocultar</translation> <translation id="3543393733900874979">Falha na atualização (erro: <ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">Assinatura X9.62 ECDSA com SHA-512</translation> @@ -1727,6 +1739,7 @@ <translation id="3606712892509067288">Remover do "Better Together"</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">Visualização da imagem do usuário</translation> +<translation id="3609446736023031597">Receba as atualizações e recomendações mais recentes sobre os apps da Play Store</translation> <translation id="3609785682760573515">Sincronizando...</translation> <translation id="3609895557594655134">Adicionar uma VPN do Android…</translation> <translation id="361106536627977100">Dados do Flash</translation> @@ -1759,6 +1772,7 @@ <translation id="3645372836428131288">Mova o dedo levemente para capturar outra parte da impressão digital.</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> detectado</translation> <translation id="3649138363871392317">A foto foi capturada</translation> +<translation id="3650845953328929506">Upload de registro pendente.</translation> <translation id="3650952250015018111">Permitir que o app "<ph name="APP_NAME" />" acesse:</translation> <translation id="3651488188562686558">Desconectar do Wi-Fi</translation> <translation id="3652817283076144888">Inicializando</translation> @@ -1910,6 +1924,7 @@ <translation id="3856800405688283469">Selecionar fuso horário</translation> <translation id="3857228364945137633">Tente usar o Smart Lock para desbloquear seu <ph name="DEVICE_TYPE" /> sem uma senha quando seu smartphone estiver por perto.</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation> +<translation id="3857807444929313943">Levante e toque novamente</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: sincronização pausada</translation> <translation id="3860381078714302691">Bem-vindo ao Hangouts Meet</translation> <translation id="3861241522664181545">Página pausada.</translation> @@ -1928,6 +1943,7 @@ <translation id="3873315167136380065">Para ativar essa configuração, <ph name="BEGIN_LINK" />redefina a sincronização<ph name="END_LINK" /> e remova sua senha longa de sincronização</translation> <translation id="3878840326289104869">Criando usuário supervisionado</translation> <translation id="3879748587602334249">Gerenciador de downloads</translation> +<translation id="3885455691202481064">Toque no sensor com o dedo indicador. Ele fica no canto superior esquerdo do Chromebook.</translation> <translation id="3888550877729210209">Tomando notas com <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3892414795099177503">Adicionar OpenVPN / L2TP…</translation> <translation id="3893536212201235195">Ler e alterar as configurações de acessibilidade</translation> @@ -1980,6 +1996,7 @@ <translation id="3950820424414687140">Fazer login</translation> <translation id="3954354850384043518">Em andamento</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> hertz)</translation> +<translation id="3954953195017194676">Você não tem nenhum log de eventos WebRTC capturado recentemente.</translation> <translation id="3955193568934677022">Permitir que os sites reproduzam conteúdo protegido (recomendado)</translation> <translation id="3956702100721821638">Não foi possível acessar o Google Play</translation> <translation id="3958088479270651626">Importar favoritos e configurações</translation> @@ -2233,6 +2250,7 @@ <translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation> <translation id="4408599188496843485">A&juda</translation> <translation id="4409697491990005945">Margens</translation> +<translation id="4410545552906060960">Use um número (PIN) em vez de uma senha para desbloquear o dispositivo. Para definir seu PIN mais tarde, acesse as configurações.</translation> <translation id="4411578466613447185">Signatário do código</translation> <translation id="4412698727486357573">Central de Ajuda</translation> <translation id="44141919652824029">Permitir que o app <ph name="APP_NAME" /> receba a lista dos seus dispositivos USB conectados?</translation> @@ -2324,8 +2342,10 @@ <translation id="4555769855065597957">Shadow</translation> <translation id="4556110439722119938">Seus favoritos, histórico, senhas e outras configurações serão sincronizados com sua Conta do Google para que seja possível usá-los em todos os seus dispositivos</translation> <translation id="4558426062282641716">Permissão de inicialização automática solicitada</translation> +<translation id="4558491878126948419">Receba dicas sobre o <ph name="DEVICE_TYPE" /> e atualizações relacionadas a produtos do Google e compartilhe seu feedback. Você pode cancelar a inscrição a qualquer momento.</translation> <translation id="4559617833001311418">Este site está acessando os sensores de luz ou movimento.</translation> <translation id="4562155214028662640">Adicionar impressão digital</translation> +<translation id="4563880231729913339">Dedo 3</translation> <translation id="4565377596337484307">Ocultar senha</translation> <translation id="4567772783389002344">Adicionar palavra</translation> <translation id="4568213207643490790">Contas do Google não são permitidas neste dispositivo.</translation> @@ -2400,6 +2420,7 @@ <translation id="4681930562518940301">Abrir &imagem original em uma nova guia</translation> <translation id="4682551433947286597">Os planos de fundo aparecem na tela de login.</translation> <translation id="4684427112815847243">Sincronizar tudo</translation> +<translation id="4688036121858134881">Código do registro local: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4689235506267737042">Escolher preferências de demonstração</translation> <translation id="4689421377817139245">Sincronizar esse favorito no seu iPhone</translation> <translation id="4690091457710545971"><Quatro arquivos gerados pelo firmware de Wi-Fi da Intel: csr.lst, fh_regs.lst, radio_reg.lst, monitor.lst.sysmon. Os três primeiros são arquivos binários que contêm despejos de registro e, segundo a Intel, não contêm possuem pessoais ou de identificação do dispositivo. O último arquivo é um rastreamento de execução do firmware da Intel. Todas as informações pessoais ou de identificação do dispositivo foram apagadas dele, mas ele é grande demais para ser exibido aqui. Esses arquivos foram gerados em resposta a problemas recentes de Wi-Fi no seu dispositivo e serão compartilhados com a Intel para ajudar a solucionar esses problemas.></translation> @@ -2584,6 +2605,7 @@ <translation id="4945444280533270988">O Smart Lock está ativado</translation> <translation id="4953689047182316270">Responder a eventos de acessibilidade</translation> <translation id="4953808748584563296">Avatar laranja padrão</translation> +<translation id="4955710816792587366">Escolher o PIN</translation> <translation id="4955814292505481804">Anual</translation> <translation id="4957949153200969297">Ativa apenas os recursos relacionados à sincronização do <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="4959262764292427323">As senhas são salvas na sua Conta do Google para que você possa usá-las em qualquer dispositivo</translation> @@ -2649,6 +2671,7 @@ <translation id="5050042263972837708">Nome do grupo</translation> <translation id="5052499409147950210">Editar site</translation> <translation id="5053604404986157245">A senha do TPM gerada aleatoriamente não está disponível. Isso é normal após um Powerwash.</translation> +<translation id="5057110919553308744">Quando você clicar na extensão</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{Esta pasta contém um favorito. Tem certeza que quer excluí-la?}one{Esta pasta contém # favoritos. Tem certeza que quer excluí-la?}other{Esta pasta contém # favoritos. Tem certeza que quer excluí-la?}}</translation> <translation id="5061708541166515394">Contraste</translation> <translation id="5062930723426326933">Falha no login. Conecte-se à Internet e tente novamente.</translation> @@ -2824,6 +2847,7 @@ <translation id="5315873049536339193">Identidade</translation> <translation id="5316716239522500219">Espelhar monitores</translation> <translation id="5317780077021120954">Salvar</translation> +<translation id="5318819489018851358">Compartilhar com o Linux</translation> <translation id="5319359161174645648">O Google recomenda o Chrome</translation> <translation id="5319566035256672173">Este dispositivo não receberá mais atualizações de software. Recomendamos o upgrade dele.</translation> <translation id="532247166573571973">É possível que o servidor esteja inacessível. Tente novamente mais tarde.</translation> @@ -3165,6 +3189,7 @@ <translation id="5804241973901381774">Permissões</translation> <translation id="580571955903695899">Reordenar por título</translation> <translation id="5807290661599647102">Definir um bloqueio de tela</translation> +<translation id="5811750797187914944">Tudo pronto</translation> <translation id="5814126672212206791">Tipo de conexão</translation> <translation id="5815645614496570556">Endereço X.400</translation> <translation id="5816434091619127343">As alterações solicitadas inutilizariam a impressora.</translation> @@ -3202,6 +3227,7 @@ <translation id="5855773610748894548">Erro do módulo de segurança.</translation> <translation id="5856721540245522153">Ativar recursos de depuração</translation> <translation id="5857090052475505287">Nova pasta</translation> +<translation id="5858490737742085133">Terminal</translation> <translation id="585979798156957858">Meta externa</translation> <translation id="5860033963881614850">Desativado</translation> <translation id="5860209693144823476">Aba 3</translation> @@ -3224,6 +3250,7 @@ <translation id="5882919346125742463">Redes conhecidas</translation> <translation id="5884474295213649357">Esta guia está conectada a um dispositivo USB.</translation> <translation id="5885324376209859881">Gerenciar configurações de mídia...</translation> +<translation id="5886009770935151472">Dedo 1</translation> <translation id="5889282057229379085">Número máximo de autoridades de certificação intermediárias: <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">Reiniciar</translation> <translation id="5895187275912066135">Emitido em</translation> @@ -3308,6 +3335,7 @@ <translation id="6025215716629925253">Rastreamento de pilha</translation> <translation id="6026047032548434446">Instalar app?</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - Dispositivo USB conectado</translation> +<translation id="6028117231645531007">Adicionar impressão digital</translation> <translation id="6029027682598229313">A instalação do Linux foi concluída.</translation> <translation id="6029587122245504742">Mais lenta</translation> <translation id="6032912588568283682">Sistema de arquivos</translation> @@ -3322,6 +3350,7 @@ <translation id="6042308850641462728">Mais</translation> <translation id="6043317578411397101">O app <ph name="APP_NAME" /> está compartilhando uma guia do Chrome com <ph name="TAB_NAME" />.</translation> <translation id="6044805581023976844">O app <ph name="APP_NAME" /> está compartilhando áudio e uma guia do Chrome com <ph name="TAB_NAME" />.</translation> +<translation id="6047938872139769630">Você pode usar o PIN para desbloquear o dispositivo quando estiver desconectado</translation> <translation id="6049004884579590341">Toque em |<ph name="ACCELERATOR" />| e mantenha essa tecla pressionada para sair do modo tela cheia</translation> <translation id="6049065490165456785">Foto da câmera interna</translation> <translation id="6051354611314852653">Ops! O sistema encontrou uma falha ao autorizar o acesso à API para este dispositivo.</translation> @@ -3344,6 +3373,7 @@ <translation id="6075907793831890935">Trocar dados com o dispositivo chamado <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Incluir esta captura de tela</translation> <translation id="6077131872140550515">Remover das redes preferidas</translation> +<translation id="6077189836672154517">Dicas e atualizações sobre o <ph name="DEVICE_TYPE" /></translation> <translation id="6078323886959318429">Adicionar atalho</translation> <translation id="6078752646384677957">Verifique seu microfone e os níveis de áudio.</translation> <translation id="6080515710685820702">Está usando um computador compartilhado? Tente abrir uma janela anônima.</translation> @@ -3393,6 +3423,7 @@ <translation id="6144938890088808325">Ajudar a melhorar os Chromebooks</translation> <translation id="6146563240635539929">Vídeos</translation> <translation id="6147020289383635445">A visualização de impressão falhou.</translation> +<translation id="6148052338549899048">Nenhum dispositivo qualificado. <ph name="LINK_BEGIN" />Saiba mais.<ph name="LINK_END" /></translation> <translation id="614940544461990577">Tente:</translation> <translation id="6150853954427645995">Para salvar este arquivo para uso off-line, fique on-line novamente, clique com o botão direito no arquivo e selecione a opção <ph name="OFFLINE_CHECKBOX_NAME" />.</translation> <translation id="6151323131516309312">Pressione <ph name="SEARCH_KEY" /> para pesquisar <ph name="SITE_NAME" /></translation> @@ -3413,6 +3444,7 @@ <translation id="6169040057125497443">Verifique seu microfone.</translation> <translation id="6169666352732958425">Não é possível transmitir a área de trabalho.</translation> <translation id="6171948306033499786">Pausar impressão</translation> +<translation id="6173623053897475761">Digite seu PIN novamente</translation> <translation id="6175314957787328458">GUID do domínio da Microsoft</translation> <translation id="6176043333338857209">O Bluetooth será temporariamente ativado para se comunicar com sua chave de segurança</translation> <translation id="6178664161104547336">Selecione um certificado</translation> @@ -3602,11 +3634,13 @@ <translation id="6456394469623773452">Bom</translation> <translation id="6456631036739229488">O smartphone com Smart Lock mudou. Digite sua senha para atualizar o Smart Lock. Na próxima vez, o smartphone desbloqueará seu <ph name="DEVICE_TYPE" />. Desative o Smart Lock nas configurações.</translation> <translation id="645705751491738698">Continuar bloqueando JavaScript</translation> +<translation id="6458701200018867744">Falha no upload (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Usar seleção para buscar</translation> <translation id="6459799433792303855">A janela ativa foi movida para outra tela.</translation> <translation id="6460601847208524483">Localizar próximo</translation> <translation id="6463795194797719782">&Editar</translation> <translation id="6466988389784393586">&Abrir todos os favoritos</translation> +<translation id="6467304607960172345">Otimizar vídeos em tela cheia</translation> <translation id="6468485451923838994">Fontes</translation> <translation id="6472207088655375767">OTP</translation> <translation id="6472893788822429178">Mostrar botão "Página inicial"</translation> @@ -3782,6 +3816,7 @@ <translation id="6725206449694821596">Protocolo de impressão via Internet (IPP)</translation> <translation id="6727005317916125192">Painel anterior</translation> <translation id="6732801395666424405">Certificados não carregados</translation> +<translation id="6732900235521116609">Não é possível remover o atalho</translation> <translation id="6735304988756581115">Mostrar cookies e outros dados do site...</translation> <translation id="6736045498964449756">Ops, as senhas não correspondem.</translation> <translation id="6736243959894955139">Endereço</translation> @@ -3865,6 +3900,7 @@ <translation id="6860427144121307915">Abrir em uma guia</translation> <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="6865708901122695652">Logs de eventos WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">Temperatura da cor</translation> <translation id="6870888490422746447">Escolha um app para compartilhar:</translation> <translation id="6871644448911473373">Respondente OCSP: <ph name="LOCATION" /></translation> @@ -3909,6 +3945,7 @@ <translation id="694592694773692225">Redirecionamento bloqueado nesta página.</translation> <translation id="6949306908218145636">Adicionar páginas abertas aos favoritos...</translation> <translation id="6950627417367801484">Restaurar apps</translation> +<translation id="6950943362443484797">Instalaremos este app para você</translation> <translation id="6951153907720526401">Gerenciadores de pagamento</translation> <translation id="6955446738988643816">Inspecionar pop-up</translation> <translation id="6957231940976260713">Nome do serviço</translation> @@ -3944,6 +3981,7 @@ <translation id="6998711733709403587"><ph name="SELCTED_FOLDERS_COUNT" /> pastas selecionadas</translation> <translation id="6998793565256476099">Cadastre o dispositivo para videoconferência</translation> <translation id="7000347579424117903">Inclua a tecla Ctrl, Alt ou Pesquisa</translation> +<translation id="700203306553508933">Salvar cartões para usar o Google Pay</translation> <translation id="7002055706763150362">Para configurar o Smart Lock para Chromebook, o Google precisa confirmar que é você: digite sua senha para começar.</translation> <translation id="7002454948392136538">Escolha o gerente para este usuário supervisionado</translation> <translation id="7003339318920871147">Bancos de dados da web</translation> @@ -3991,6 +4029,7 @@ <translation id="706626672220389329">Erro ao ativar o compartilhamento. O compartilhamento especificado já está ativado.</translation> <translation id="7066944511817949584">Falha ao conectar-se a "<ph name="DEVICE_NAME" />".</translation> <translation id="7067725467529581407">Nunca mostrar isso novamente.</translation> +<translation id="7070484045139057854">Pode ler e alterar os dados do site</translation> <translation id="7072010813301522126">Nome do atalho</translation> <translation id="707392107419594760">Selecione seu teclado:</translation> <translation id="7075513071073410194">PKCS #1 MD5 com criptografia RSA</translation> @@ -4120,6 +4159,7 @@ <translation id="7256710573727326513">Abrir em uma guia</translation> <translation id="725758059478686223">Serviço de impressão</translation> <translation id="7257666756905341374">Ler dados que você copia e cola</translation> +<translation id="7258697411818564379">Seu PIN foi adicionado</translation> <translation id="7260764918845374269">Para ver sua chave de segurança, ela precisa estar no modo de pareamento. Pressione o botão na chave por pelo menos cinco segundos.</translation> <translation id="7262004276116528033">Este serviço de login é hospedado por <ph name="SAML_DOMAIN" /></translation> <translation id="7268365133021434339">Fechar guias</translation> @@ -4267,6 +4307,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">Esqueceu sua senha antiga?</translation> <translation id="7497215489070763236">Certificado de CA do servidor</translation> +<translation id="7497981768003291373">Você não tem nenhum registro de texto WebRTC capturado recentemente.</translation> <translation id="7502658306369382406">Endereço IPv6</translation> <translation id="7503191893372251637">Tipo de certificado do Netscape</translation> <translation id="7503821294401948377">Não foi possível carregar o ícone "<ph name="ICON" />" para a ação do navegador.</translation> @@ -4309,6 +4350,7 @@ <translation id="7564847347806291057">Encerrar processo</translation> <translation id="7566118625369982896">Gerenciar links do app do Play</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">Coloque seu dedo</translation> <translation id="756809126120519699">Dados do Chrome apagados</translation> <translation id="7568790562536448087">Atualização</translation> <translation id="7571643774869182231">Armazenamento insuficiente para a atualização</translation> @@ -4471,6 +4513,7 @@ <ph name="LINE_BREAK2" /> Tente selecionar menos fotos.</translation> <translation id="782590969421016895">Usar as páginas atuais</translation> +<translation id="7826346148677309647">Você pode encontrar mais apps para seu dispositivo na Play Store.</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />Recursos de depuração<ph name="END_H3" /> <ph name="BR" /> Você pode ativar os recursos de depuração no seu dispositivo Chrome OS para instalar e testar códigos personalizados nele. Isso permitirá:<ph name="BR" /> @@ -4667,6 +4710,7 @@ <translation id="8059417245945632445">&Inspecionar dispositivos</translation> <translation id="8063235345342641131">Avatar verde padrão</translation> <translation id="8064671687106936412">Chave:</translation> +<translation id="8065485338434000013">Alguns dos seus cartões só podem ser usados neste dispositivo</translation> <translation id="806812017500012252">Reordenar por título</translation> <translation id="8068253693380742035">Toque para fazer login</translation> <translation id="8069615408251337349">Google Cloud Print</translation> @@ -4744,6 +4788,7 @@ <translation id="8191453843330043793">V8 Proxy Resolver</translation> <translation id="8193175696669055101">Modelo do dispositivo</translation> <translation id="8195027750202970175">Tamanho em disco</translation> +<translation id="8198323535106903877">Instalaremos estes <ph name="NUMBER_OF_APPS" /> apps para você</translation> <translation id="8199300056570174101">Propriedades da rede (serviço) e do dispositivo</translation> <translation id="8200772114523450471">Retomar</translation> <translation id="8202160505685531999">Digite sua senha novamente para atualizar o perfil do <ph name="DEVICE_TYPE" />.</translation> @@ -4964,7 +5009,6 @@ <translation id="8557930019681227453">Manifesto</translation> <translation id="8559694214572302298">Decodificador de imagem</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Continuar lendo</translation> <translation id="8565650234829130278">Tentativa de downgrade de aplicativo.</translation> <translation id="8569002732135253578">Imprimindo o documento <ph name="DOCUMENT_NAME" /> agora</translation> <translation id="8569682776816196752">Nenhum destino encontrado</translation> @@ -5077,6 +5121,8 @@ <translation id="8716931980467311658">Excluir todos os aplicativos e dados do Linux da pasta de arquivos do Linux deste <ph name="DEVICE_TYPE" />?</translation> <translation id="8719653885894320876">Falha no download do plug-in <ph name="PLUGIN_NAME" /></translation> <translation id="8723829621484579639">Subquadros anônimos de: <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">Sempre que vir este ícone, use sua impressão digital para se identificar ou aprovar compras.</translation> +<translation id="8724409975248965964">Impressão digital adicionada</translation> <translation id="8724859055372736596">&Mostrar na pasta</translation> <translation id="8725066075913043281">Tentar novamente</translation> <translation id="8725178340343806893">Favoritos</translation> @@ -5157,6 +5203,7 @@ <translation id="8838770651474809439">Hambúrger</translation> <translation id="883911313571074303">Fazer anotações na imagem</translation> <translation id="8845001906332463065">Ajuda</translation> +<translation id="8846132060409673887">Ler as informações sobre o fabricante e modelo deste computador</translation> <translation id="8846141544112579928">Procurando teclado...</translation> <translation id="8847988622838149491">USB</translation> <translation id="8859057652521303089">Selecione o seu idioma:</translation> @@ -5370,6 +5417,7 @@ <translation id="9161070040817969420">Subquadros de: <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">Enviar dados do sistema. Atualmente, este dispositivo envia automaticamente dados de uso e diagnóstico do dispositivo e de apps para o Google. Essa configuração é aplicada pelo proprietário. Se você ativou a opção "Atividade na Web e de apps", essas informações serão armazenadas com sua conta para que você possa gerenciá-las em Minha atividade. <ph name="BEGIN_LINK1" />Saiba mais<ph name="END_LINK1" /></translation> <translation id="916607977885256133">Picture-in-picture</translation> +<translation id="9168436347345867845">Mais tarde</translation> <translation id="9169496697824289689">Ver atalhos de teclado</translation> <translation id="9169931577761441333">Adicionar o app <ph name="APP_NAME" /> à tela inicial</translation> <translation id="9170848237812810038">&Desfazer</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb index 0e0d9f4..b4b9733 100644 --- a/chrome/app/resources/generated_resources_pt-PT.xtb +++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -1514,7 +1514,6 @@ <translation id="3285322247471302225">Novo &Separador</translation> <translation id="3288047731229977326">As extensões que funcionam no modo de programador podem danificar o seu computador. Se não é programador, deverá desativar as extensões que sejam executadas neste modo para se manter protegido.</translation> <translation id="3289856944988573801">Para verificar se existem atualizações, utilize Ethernet ou Wi-Fi.</translation> -<translation id="3292421191230118801">Retomar a visualização de sites a partir de dispositivos móveis no Chromebook</translation> <translation id="32939749466444286">Não é possível iniciar o contentor do Linux. Tente novamente.</translation> <translation id="3294437725009624529">Convidado</translation> <translation id="329838636886466101">Reparar</translation> @@ -4963,7 +4962,6 @@ <translation id="8557930019681227453">Manifesto</translation> <translation id="8559694214572302298">Descodificador de imagem</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Continuar a ler</translation> <translation id="8565650234829130278">Tentativa de alterar a aplicação para a versão anterior</translation> <translation id="8569002732135253578">A imprimir agora <ph name="DOCUMENT_NAME" />…</translation> <translation id="8569682776816196752">Não foram encontrados destinos</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb index 341298ce..605fe35 100644 --- a/chrome/app/resources/generated_resources_ro.xtb +++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -42,7 +42,7 @@ <translation id="1056775291175587022">Nu s-au găsit rețele</translation> <translation id="1056898198331236512">Avertisment</translation> <translation id="1058262162121953039">Codul PUK</translation> -<translation id="1059855432287631118">Înregistrează amprenta digitală</translation> +<translation id="1059855432287631118">Înregistrează amprenta</translation> <translation id="1061904396131502319">Se apropie timpul pentru o pauză</translation> <translation id="1062407476771304334">Înlocuiți</translation> <translation id="1067048845568873861">Creat</translation> @@ -75,7 +75,7 @@ <translation id="1114202307280046356">Diamant</translation> <translation id="1114335938027186412">Computerul conține un dispozitiv de securitate Trusted Platform Module (TPM), care este folosit pentru a implementa numeroase funcții esențiale de securitate în sistemul de operare Chrome. Accesează Centrul de ajutor Chromebook pentru a afla mai multe: https://support.google.com/chromebook/?p=tpm</translation> <translation id="1114525161406758033">Când capacul este închis: modul inactiv</translation> -<translation id="1115324527092594775">Configurează mai bine împreună</translation> +<translation id="1115324527092594775">Configurează Better Together</translation> <translation id="1116694919640316211">Despre</translation> <translation id="1116779635164066733">Această setare este impusă de extensia „<ph name="NAME" />”.</translation> <translation id="111844081046043029">Sigur vrei să ieși de pe această pagină?</translation> @@ -111,7 +111,7 @@ <translation id="1156488781945104845">Ora actuală</translation> <translation id="1157102636231978136">Datele de navigare și activitatea ta, sincronizate în Contul Google</translation> <translation id="1161575384898972166">Conectează-te la <ph name="TOKEN_NAME" /> pentru a exporta certificatul client.</translation> -<translation id="1161699061380012396">Metoda de introducere text din sistemul de operare Chrome</translation> +<translation id="1161699061380012396">Metoda de introducere a textului din sistemul de operare Chrome</translation> <translation id="1163931534039071049">&Afișează sursa cadrului</translation> <translation id="1164674268730883318">Dezactivezi Smart Lock pentru <ph name="DEVICE_TYPE" />?</translation> <translation id="1164899421101904659">Introdu cheia de deblocare a codului PIN</translation> @@ -1513,7 +1513,6 @@ <translation id="3285322247471302225">Filă &nouă</translation> <translation id="3288047731229977326">Extensiile care rulează în modul pentru dezvoltatori pot afecta computerul. Dacă nu sunteți dezvoltator, se recomandă să dezactivați aceste extensii, pentru siguranță.</translation> <translation id="3289856944988573801">Pentru a verifica dacă există actualizări, utilizați Ethernet sau Wi-Fi.</translation> -<translation id="3292421191230118801">Reia afișarea site-urilor de pe dispozitivele mobile pe Chromebook</translation> <translation id="32939749466444286">Containerul Linux nu a pornit. Încearcă din nou.</translation> <translation id="3294437725009624529">Invitat</translation> <translation id="329838636886466101">Repară</translation> @@ -1756,7 +1755,7 @@ <translation id="363903084947548957">Următoarea metodă de introducere</translation> <translation id="3640214691812501263">Adaugi „<ph name="EXTENSION_NAME" />” pentru <ph name="USER_NAME" />?</translation> <translation id="3644896802912593514">Lățime</translation> -<translation id="3645372836428131288">Mută ușor pentru a înregistra o altă parte a amprentei digitale</translation> +<translation id="3645372836428131288">Mută ușor pentru a înregistra o altă parte a amprentei</translation> <translation id="3648348069317717750">S-a detectat <ph name="USB_DEVICE_NAME" /></translation> <translation id="3649138363871392317">Fotografia a fost creată</translation> <translation id="3650952250015018111">Permite accesul „<ph name="APP_NAME" />” la:</translation> @@ -2399,7 +2398,7 @@ <translation id="4680105648806843642">Sunetul a fost dezactivat pe această pagină</translation> <translation id="4681930562518940301">Deschide &imaginea originală într-o filă nouă</translation> <translation id="4682551433947286597">Imaginile de fundal apar pe ecranul de conectare.</translation> -<translation id="4684427112815847243">Sincronizare totală</translation> +<translation id="4684427112815847243">Sincronizează tot</translation> <translation id="4689235506267737042">Alege preferințele tale demo</translation> <translation id="4689421377817139245">Sincronizează marcajul pe iPhone</translation> <translation id="4690091457710545971"><Patru fișiere generate de firmware-ul Wi-Fi Intel: csr.lst, fh_regs.lst, radio_reg.lst, monitor.lst.sysmon. Primele trei sunt fișiere binare care conțin dumpuri de registru, despre care Intel afirmă că nu conțin informații cu caracter personal sau de identificare a dispozitivelor. Ultimul fișier este o urmărire a executării firmware-ului Intel; din acesta au fost eliminate informațiile cu caracter personal sau de identificare a dispozitivelor, dar este prea mare pentru a fi afișat aici. Aceste fișiere au fost generate ca răspuns la problemele recente privind conexiunea Wi-Fi ale dispozitivului și vor fi trimise la Intel în vederea remedierii.></translation> @@ -4067,7 +4066,7 @@ <translation id="7186088072322679094">Păstrează în bara de instrumente</translation> <translation id="7187428571767585875">Intrări din registry care trebuie eliminate sau modificate:</translation> <translation id="7189234443051076392">Asigură-te că există spațiu suficient pe dispozitiv</translation> -<translation id="7189965711416741966">Amprentă digitală adăugată.</translation> +<translation id="7189965711416741966">Amprentă adăugată.</translation> <translation id="7191159667348037">Imprimantă necunoscută (USB)</translation> <translation id="7191454237977785534">Salvează fișierul ca</translation> <translation id="7193374945610105795">Nu s-au salvat parole pentru <ph name="ORIGIN" /></translation> @@ -4961,7 +4960,6 @@ <translation id="8557930019681227453">Manifest</translation> <translation id="8559694214572302298">Decodor de imagini</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Continuă lectura</translation> <translation id="8565650234829130278">S-a încercat trecerea aplicației la o versiune inferioară.</translation> <translation id="8569002732135253578">Acum se printează <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">Nu au fost găsite destinații</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb index 85cb083..79e091a 100644 --- a/chrome/app/resources/generated_resources_ru.xtb +++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -1514,7 +1514,6 @@ <translation id="3285322247471302225">Новая вкладка</translation> <translation id="3288047731229977326">Расширения, запущенные в режиме разработчика, могут причинить вред вашему компьютеру. Если вы не являетесь разработчиком, их следует отключить, чтобы обеспечить безопасность данных.</translation> <translation id="3289856944988573801">Чтобы проверить наличие обновлений, подключитесь через сеть Ethernet или Wi-Fi.</translation> -<translation id="3292421191230118801">Открывать на Chromebook сайты, которые вы смотрели на мобильном устройстве</translation> <translation id="32939749466444286">Не удалось запустить контейнер Linux. Повторите попытку.</translation> <translation id="3294437725009624529">Гость</translation> <translation id="329838636886466101">Восстановить</translation> @@ -4962,7 +4961,6 @@ <translation id="8557930019681227453">Манифест</translation> <translation id="8559694214572302298">Дешифратор изображений</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Синхронизировать список открытых сайтов</translation> <translation id="8565650234829130278">Попытка перейти на более раннюю версию приложения.</translation> <translation id="8569002732135253578">Печать <ph name="DOCUMENT_NAME" />…</translation> <translation id="8569682776816196752">Места назначения не найдены</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb index 8f73286..9eb47916 100644 --- a/chrome/app/resources/generated_resources_sk.xtb +++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -247,6 +247,7 @@ <translation id="1358741672408003399">Pravopis a gramatika</translation> <translation id="1361164813881551742">Pridať ručne</translation> <translation id="1361655923249334273">Nepoužitý</translation> +<translation id="1361872463926621533">Pri spustení prehrávať zvuk</translation> <translation id="1363028406613469049">Stopa</translation> <translation id="1367951781824006909">Vybrať súbor</translation> <translation id="1368265273904755308">Nahlásiť problém</translation> @@ -570,6 +571,7 @@ <translation id="1817310072033858383">Nastavte Smart Lock pre zariadenie <ph name="DEVICE_TYPE" /></translation> <translation id="1817871734039893258">Obnovenie súboru Microsoft</translation> <translation id="1818007989243628752">Odstrániť heslo používateľa <ph name="USERNAME" /></translation> +<translation id="1818913467757368489">Prebieha nahrávanie do denníka.</translation> <translation id="1819721979226826163">Klepnite na položky Upozornenia aplikácií > Služby Google Play.</translation> <translation id="1826516787628120939">Kontroluje sa</translation> <translation id="1828378091493947763">Doplnok nie je v tomto zariadení podporovaný</translation> @@ -618,11 +620,13 @@ <translation id="1890674179660343635"><span>ID: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">Otvoriť zobrazenie na celú obrazovku</translation> <translation id="189358972401248634">Ďalšie jazyky</translation> +<translation id="1894591787927543791">Uložiť kartu na používanie služby Google Pay</translation> <translation id="1895658205118569222">Vypnúť</translation> <translation id="1895934970388272448">Ak chcete tento proces dokončiť, musíte potvrdiť registráciu na svojej tlačiarni. Skontrolujte to teraz.</translation> <translation id="1897762215429052132">Nastavenie sieťového pripojenia, jazyka, rozloženia klávesnice...</translation> <translation id="1901303067676059328">Vybrať &všetko</translation> <translation id="1902576642799138955">Doba platnosti</translation> +<translation id="1904518222538904133">1 zo svojich kariet môžete použiť iba v tomto zariadení</translation> <translation id="1905375423839394163">Názov zariadenia Chromebook</translation> <translation id="1905710495812624430">Maximálny počet povolených pokusov bol prekročený.</translation> <translation id="1909880997794698664">Naozaj chcete natrvalo udržiavať toto zariadenie v režime kiosku?</translation> @@ -659,6 +663,7 @@ <translation id="1962969542251276847">Uzamknúť obrazovku</translation> <translation id="1963227389609234879">Odstrániť všetko</translation> <translation id="1965624977906726414">Nemá zvláštne povolenia.</translation> +<translation id="1969654639948595766">Textové denníky WebRTC (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">Bol aktivovaný režim videa</translation> <translation id="197288927597451399">Uložiť</translation> <translation id="1974043046396539880">Distribučné body CRL</translation> @@ -803,6 +808,7 @@ <translation id="2190069059097339078">WiFi Credentials Getter</translation> <translation id="219008588003277019">Modul miestneho klienta: <ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(prázdne)</translation> +<translation id="2191223688506386601">Ešte niečo</translation> <translation id="2192505247865591433">Zdroj:</translation> <translation id="2193365732679659387">Nastavenie dôveryhodnosti</translation> <translation id="2195729137168608510">Ochrana e-mailu</translation> @@ -1026,6 +1032,7 @@ <translation id="2534460670861217804">Server proxy so zabezpečeným protokolom HTTP</translation> <translation id="253557089021624350">Počet akcií zabraňujúcich ukončeniu</translation> <translation id="2538361623464451692">Synchronizácia je zakázaná</translation> +<translation id="2539876824180063438">Pohýbte zľahka ukazovákom, aby ste pridali rôzne časti odtlačku.</translation> <translation id="2541002089857695151">Chcete optimalizovať prenášanie na celú obrazovku?</translation> <translation id="2542049655219295786">Tabuľka Google</translation> <translation id="2544853746127077729">Certifikát na overenie totožnosti bol zamietnutý sieťou</translation> @@ -1258,7 +1265,9 @@ <translation id="287286579981869940">Pridať poskytovateľa <ph name="PROVIDER_NAME" />...</translation> <translation id="2874343608108773609">Ak chcete získať svoje heslá vo všetkých zariadeniach, prihláste sa do Chromu.</translation> <translation id="2875698561019555027">(Chybové stránky prehliadača Chrome)</translation> +<translation id="2876336351874743617">2. prst</translation> <translation id="288042212351694283">Prístup k vašim zariadeniam so štandardom Universal 2nd Factor</translation> +<translation id="2881076733170862447">Keď kliknete na rozšírenie</translation> <translation id="2881966438216424900">Dátum posledného prístupu:</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> sa o chvíľu reštartuje a obnoví</translation> <translation id="2885378588091291677">Správca úloh</translation> @@ -1444,6 +1453,7 @@ <translation id="3154429428035006212">Offline viac ako mesiac</translation> <translation id="3156531245809797194">Ak chcete použiť Chrome, prihláste sa</translation> <translation id="3157931365184549694">Obnoviť</translation> +<translation id="3158033540161634471">Nastavenie odtlačku prsta</translation> <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> @@ -1513,9 +1523,10 @@ <translation id="3285322247471302225">Nová &karta</translation> <translation id="3288047731229977326">Rozšírenia spustené v režime pre vývojárov môžu poškodiť váš počítač. Ak nie ste vývojár, mali by ste v záujme bezpečnosti rozšírenia spustené v režime vývojára zakázať.</translation> <translation id="3289856944988573801">Ak chcete skontrolovať aktualizácie, použite sieť ethernet alebo Wi‑Fi.</translation> -<translation id="3292421191230118801">Pokračujte v prezeraní webov z mobilu v Chromebooku</translation> <translation id="32939749466444286">Kontajner Linux sa nespustil. Skúste to znova.</translation> <translation id="3294437725009624529">Hosť</translation> +<translation id="329703603001918157">Skratka sa nedá upraviť</translation> +<translation id="3297951628821704004">Odstrániť účet z tohto zariadenia</translation> <translation id="329838636886466101">Opraviť</translation> <translation id="3298789223962368867">Zadali ste neplatnú webovú adresu.</translation> <translation id="32991397311664836">Zariadenia:</translation> @@ -1682,6 +1693,7 @@ <translation id="3534879087479077042">Čo je kontrolovaný používateľ?</translation> <translation id="3538066758857505094">Pri odinštalovaní systému Linux sa vyskytla chyba. Skúste to znova.</translation> <translation id="354060433403403521">Sieťový napájací adaptér</translation> +<translation id="354068948465830244">Môže čítať údaje o webe a meniť ich</translation> <translation id="3541661933757219855">Klávesnicu skryjete zadaním kombinácie klávesov Ctrl+Alt+/ alebo Esc</translation> <translation id="3543393733900874979">Aktualizácia zlyhala (chyba: <ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">Podpis X9.62 ECDSA s SHA-512</translation> @@ -1727,6 +1739,7 @@ <translation id="3606712892509067288">Odstrániť z funkcie Spoločne ešte lepšie</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">Ukážka obrázka používateľa</translation> +<translation id="3609446736023031597">Získavať najnovšie aktuálne informácie a odporúčania týkajúce sa aplikácií Obchodu Play</translation> <translation id="3609785682760573515">Prebieha synchronizácia...</translation> <translation id="3609895557594655134">Pridať Android VPN...</translation> <translation id="361106536627977100">Údaje Flash</translation> @@ -1759,6 +1772,7 @@ <translation id="3645372836428131288">Zľahka pohýbte, aby sa nasnímala ďalšia časť odtlačku.</translation> <translation id="3648348069317717750">Rozpoznané zariadenie: <ph name="USB_DEVICE_NAME" /></translation> <translation id="3649138363871392317">Fotografia bola nasnímaná</translation> +<translation id="3650845953328929506">Čaká sa na nahranie do denníka.</translation> <translation id="3650952250015018111">Povoľte aplikácii "<ph name="APP_NAME" />" prístup do zariadenia:</translation> <translation id="3651488188562686558">Odpojí sa od siete Wi‑Fi</translation> <translation id="3652817283076144888">Inicializuje sa</translation> @@ -1910,6 +1924,7 @@ <translation id="3856800405688283469">Výber časového pásma</translation> <translation id="3857228364945137633">Skúste pomocou funkcie Smart Lock odomknúť svoje zariadenie <ph name="DEVICE_TYPE" /> bez hesla, keď máte telefón v blízkosti.</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation> +<translation id="3857807444929313943">Zdvihnite a opäť priložte</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: synchronizácia je pozastavená</translation> <translation id="3860381078714302691">Vitajte v službe Hangouts Meet</translation> <translation id="3861241522664181545">Stránka bola pozastavená.</translation> @@ -1928,6 +1943,7 @@ <translation id="3873315167136380065">Zapnite toto nastavenie, <ph name="BEGIN_LINK" />resetujte synchronizáciu<ph name="END_LINK" /> a odstráňte tak prístupovú frázu synchronizácie</translation> <translation id="3878840326289104869">Prebieha vytváranie kontrolovaného používateľa</translation> <translation id="3879748587602334249">Správca sťahovania</translation> +<translation id="3885455691202481064">Dotknite sa senzora ukazovákom. Nájdete ho v ľavom hornom rohu Chromebooku.</translation> <translation id="3888550877729210209">Písanie poznámok v aplikácii <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3892414795099177503">Pridať OpenVPN / L2TP...</translation> <translation id="3893536212201235195">Čítať a zmeniť nastavenia zjednodušenia ovládania</translation> @@ -1980,6 +1996,7 @@ <translation id="3950820424414687140">Prihlásiť sa</translation> <translation id="3954354850384043518">Prebieha</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> Hz)</translation> +<translation id="3954953195017194676">Nemáte žiadne nedávno zaznamenané denníky udalostí WebRTC.</translation> <translation id="3955193568934677022">Povoliť webom prehrávať chránený obsah (odporúčané)</translation> <translation id="3956702100721821638">K službe Google Play sa nepodarilo pripojiť</translation> <translation id="3958088479270651626">Importovať záložky a nastavenia</translation> @@ -2233,6 +2250,7 @@ <translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation> <translation id="4408599188496843485">P&omocník</translation> <translation id="4409697491990005945">Okraje</translation> +<translation id="4410545552906060960">Na odomknutie zariadenia použite namiesto hesla číslo (PIN). PIN si môžete nastaviť neskôr v Nastaveniach.</translation> <translation id="4411578466613447185">Podpisovateľ kódu</translation> <translation id="4412698727486357573">Centrum pomoci</translation> <translation id="44141919652824029">Povoliť aplikácii <ph name="APP_NAME" /> získať zoznam pripojených zariadení USB?</translation> @@ -2324,8 +2342,10 @@ <translation id="4555769855065597957">Tieň</translation> <translation id="4556110439722119938">Záložky, história, heslá a ďalšie nastavenia budú synchronizované s vaším účtom Google a budete ich môcť použiť na všetkých zariadeniach</translation> <translation id="4558426062282641716">Požaduje sa povolenie na automatické spustenie</translation> +<translation id="4558491878126948419">Získavajte tipy týkajúce sa zariadenia <ph name="DEVICE_TYPE" />, aktuálne informácie o službách Googlu a podeľte sa o spätnú väzbu. Odber môžete kedykoľvek zrušiť.</translation> <translation id="4559617833001311418">Tento web má prístup k senzorom pohybu alebo svetla.</translation> <translation id="4562155214028662640">Pridať odtlačok</translation> +<translation id="4563880231729913339">3. prst</translation> <translation id="4565377596337484307">Skryť heslo</translation> <translation id="4567772783389002344">Pridať slovo</translation> <translation id="4568213207643490790">Je nám to ľúto, ale účty Google nie sú v tomto zariadení povolené.</translation> @@ -2400,6 +2420,7 @@ <translation id="4681930562518940301">Otvoriť pôvodný &obrázok na novej karte</translation> <translation id="4682551433947286597">Tapety sa zobrazia na prihlasovacej obrazovke.</translation> <translation id="4684427112815847243">Synchronizovať všetko</translation> +<translation id="4688036121858134881">Identifikátor miestneho denníka: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4689235506267737042">Výber predvolieb ukážky</translation> <translation id="4689421377817139245">Synchronizujte túto záložku so zariadením iPhone</translation> <translation id="4690091457710545971"><Firmvér Intel Wi-Fi vygeneroval štyri súbory: csr.lst, fh_regs.lst, radio_reg.lst, monitor.lst.sysmon. Prvé tri sú binárne súbory obsahujúce výpisy z registra, pri ktorých firmvér Intel určil, že neobsahujú žiadne osobné informácie ani informácie umožňujúce identifikáciu zariadení. Posledný súbor je trasovanie spustenia z firmvéru Intel. Boli v ňom odstránené všetky osobné informácie alebo informácie umožňujúce identifkáciu zariadení, ale je príliš veľký, aby sa tu dal zobraziť. Tieto súbory boli vygenerované v reakcii na nedávne problémy s Wi-Fi vo vašom zariadení a budú zdieľané so spoločnosťou Intel, ktorá problémy pomôže vyriešiť.></translation> @@ -2584,6 +2605,7 @@ <translation id="4945444280533270988">Funkcia Smart Lock je zapnutá</translation> <translation id="4953689047182316270">Reagovať na udalosti dostupnosti</translation> <translation id="4953808748584563296">Predvolený oranžový avatar</translation> +<translation id="4955710816792587366">Vyberte si PIN</translation> <translation id="4955814292505481804">Ročná</translation> <translation id="4957949153200969297">Povolenie iba tých funkcií, ktoré súvisia so synchronizáciou prehliadača <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="4959262764292427323">Heslá sa ukladajú do účtu Google, takže ich môžete používať v ľubovoľnom zariadení</translation> @@ -2649,6 +2671,7 @@ <translation id="5050042263972837708">Názov skupiny</translation> <translation id="5052499409147950210">Úprava webu</translation> <translation id="5053604404986157245">Náhodne generované heslo modulu TPM nie je k dispozícii. Po použití funkcie Powerwash je to normálne.</translation> +<translation id="5057110919553308744">Keď kliknete na rozšírenie</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{Tento priečinok obsahuje záložku. Naozaj ho chcete odstrániť?}few{Tento priečinok obsahuje # záložky. Naozaj ho chcete odstrániť?}many{Tento priečinok obsahuje # záložky. Naozaj ho chcete odstrániť?}other{Tento priečinok obsahuje # záložiek. Naozaj ho chcete odstrániť?}}</translation> <translation id="5061708541166515394">Kontrast</translation> <translation id="5062930723426326933">Prihlásenie zlyhalo. Pripojte sa k internetu a skúste to znova.</translation> @@ -2824,6 +2847,7 @@ <translation id="5315873049536339193">Identita</translation> <translation id="5316716239522500219">Zrkadliť monitory</translation> <translation id="5317780077021120954">Uložiť</translation> +<translation id="5318819489018851358">Zdieľanie so systémom Linux</translation> <translation id="5319359161174645648">Google odporúča Chrome</translation> <translation id="5319566035256672173">Toto zariadenie už nebude dostávať aktuálne informácie o najnovšom softvére. Zvážte inováciu.</translation> <translation id="532247166573571973">Server môže byť nedostupný. Skúste to znova neskôr.</translation> @@ -3164,6 +3188,7 @@ <translation id="5804241973901381774">Povolenia</translation> <translation id="580571955903695899">Zoradiť podľa názvu</translation> <translation id="5807290661599647102">Nastaviť zámku obrazovky</translation> +<translation id="5811750797187914944">Hotovo</translation> <translation id="5814126672212206791">Typ pripojenia</translation> <translation id="5815645614496570556">Adresa X.400</translation> <translation id="5816434091619127343">Požadované zmeny by tlačiareň znefunkčnili.</translation> @@ -3201,6 +3226,7 @@ <translation id="5855773610748894548">Ojoj, chyba bezpečného modulu.</translation> <translation id="5856721540245522153">Aktivácia funkcií ladenia</translation> <translation id="5857090052475505287">Nový priečinok</translation> +<translation id="5858490737742085133">Terminál</translation> <translation id="585979798156957858">Externý metakláves</translation> <translation id="5860033963881614850">Vypnuté</translation> <translation id="5860209693144823476">Karta 3</translation> @@ -3223,6 +3249,7 @@ <translation id="5882919346125742463">Známe siete</translation> <translation id="5884474295213649357">Táto karta je pripojená k zariadeniu USB.</translation> <translation id="5885324376209859881">Spravovať nastavenia médií...</translation> +<translation id="5886009770935151472">1. prst</translation> <translation id="5889282057229379085">Maximálny počet sprostredkujúcich certifikačných autorít: <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">Reštartovať</translation> <translation id="5895187275912066135">Vydané dňa</translation> @@ -3307,6 +3334,7 @@ <translation id="6025215716629925253">Správa Stack Trace</translation> <translation id="6026047032548434446">Inštalovať aplikáciu?</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – Bolo pripojené zariadenie USB</translation> +<translation id="6028117231645531007">Pridať odtlačok</translation> <translation id="6029027682598229313">Inštalácia systému Linux bola dokončená.</translation> <translation id="6029587122245504742">Najpomalšia</translation> <translation id="6032912588568283682">Systém súborov</translation> @@ -3321,6 +3349,7 @@ <translation id="6042308850641462728">Viac</translation> <translation id="6043317578411397101"><ph name="APP_NAME" /> zdieľa kartu Chromu s kartou <ph name="TAB_NAME" />.</translation> <translation id="6044805581023976844"><ph name="APP_NAME" /> zdieľa kartu Chromu a zvuk s kartou <ph name="TAB_NAME" />.</translation> +<translation id="6047938872139769630">Po odhlásení môžete zariadenie odomknúť pomocou kódu PIN</translation> <translation id="6049004884579590341">Pridržaním klávesa |<ph name="ACCELERATOR" />| ukončite režim celej obrazovky</translation> <translation id="6049065490165456785">Fotografia z vnútorného fotoaparátu</translation> <translation id="6051354611314852653">Ojoj! Systému sa nepodarilo autorizovať prístup k rozhraniu API pre toto zariadenie.</translation> @@ -3343,6 +3372,7 @@ <translation id="6075907793831890935">Vymieňať údaje so zariadením s názvom <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Zahrnúť túto snímku obrazovky</translation> <translation id="6077131872140550515">Odstrániť z preferovaných</translation> +<translation id="6077189836672154517">Tipy a aktuálne informácie týkajúce sa zariadenia <ph name="DEVICE_TYPE" /></translation> <translation id="6078323886959318429">Pridať odkaz</translation> <translation id="6078752646384677957">Skontrolujte mikrofón a úrovne zvuku.</translation> <translation id="6080515710685820702">Používate zdieľaný počítač? Skúste otvoriť okno inkognito.</translation> @@ -3392,6 +3422,7 @@ <translation id="6144938890088808325">Pomôžte nám vylepšiť Chromebooky</translation> <translation id="6146563240635539929">Videá</translation> <translation id="6147020289383635445">Ukážka pred tlačou zlyhala</translation> +<translation id="6148052338549899048">Žiadne zariadenia spĺňajúce kritériá. <ph name="LINK_BEGIN" />Ďalšie informácie<ph name="LINK_END" /></translation> <translation id="614940544461990577">Vyskúšajte:</translation> <translation id="6150853954427645995">Ak chcete tento súbor uložiť na použitie offline, prejdite online, kliknite na súbor pravým tlačidlom a vyberte možnosť <ph name="OFFLINE_CHECKBOX_NAME" />.</translation> <translation id="6151323131516309312">Stlačte kláves <ph name="SEARCH_KEY" /> na prehľadanie webu <ph name="SITE_NAME" /></translation> @@ -3411,6 +3442,7 @@ <translation id="6169040057125497443">Skontrolujte mikrofón.</translation> <translation id="6169666352732958425">Plochu sa nepodarilo prenášať.</translation> <translation id="6171948306033499786">Pozastaviť tlač</translation> +<translation id="6173623053897475761">Znova zadajte svoj PIN</translation> <translation id="6175314957787328458">Identifikátor GUID domény spoločnosti Microsoft</translation> <translation id="6176043333338857209">Rozhranie Bluetooth bude dočasne zapnuté, aby umožnilo komunikáciu s bezpečnostným kľúčom</translation> <translation id="6178664161104547336">Vybrať certifikát</translation> @@ -3600,11 +3632,13 @@ <translation id="6456394469623773452">Dobré</translation> <translation id="6456631036739229488">Zmenil sa telefón priradený k funkcii Smart Lock. Ak chcete Smart Lock aktualizovať, zadajte heslo. Zariadenie <ph name="DEVICE_TYPE" /> nabudúce odomknete telefónom. Smart Lock môžete vypnúť v Nastaveniach.</translation> <translation id="645705751491738698">Pokračovať v blokovaní jazyka JavaScript</translation> +<translation id="6458701200018867744">Nepodarilo sa nahrať (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Použiť výber na hľadanie</translation> <translation id="6459799433792303855">Aktívne okno bolo presunuté na inú obrazovku.</translation> <translation id="6460601847208524483">Nájsť ďalšie</translation> <translation id="6463795194797719782">&Upraviť</translation> <translation id="6466988389784393586">&Otvoriť všetky záložky</translation> +<translation id="6467304607960172345">Optimalizovať videá na celú obrazovku</translation> <translation id="6468485451923838994">Písma</translation> <translation id="6472207088655375767">Jednorazové heslo</translation> <translation id="6472893788822429178">Zobraziť tlačidlo Domovskej stránky</translation> @@ -3780,6 +3814,7 @@ <translation id="6725206449694821596">Protokol IPP (Internet Printing Protocol)</translation> <translation id="6727005317916125192">Predchádzajúci panel</translation> <translation id="6732801395666424405">Certifikáty neboli načítané</translation> +<translation id="6732900235521116609">Skrátka sa nedá odstrániť</translation> <translation id="6735304988756581115">Zobraziť súbory cookie a ďalšie dáta webov…</translation> <translation id="6736045498964449756">Hops, heslá sa nezhodujú.</translation> <translation id="6736243959894955139">Adresa</translation> @@ -3863,6 +3898,7 @@ <translation id="6860427144121307915">Otvoriť na karte</translation> <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="6865708901122695652">Denníky udalostí WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">Teplota farieb</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> @@ -3907,6 +3943,7 @@ <translation id="694592694773692225">Presmerovanie bolo zablokované na tejto stránke.</translation> <translation id="6949306908218145636">Pridať otvorené stránky medzi záložky...</translation> <translation id="6950627417367801484">Obnoviť aplikácie</translation> +<translation id="6950943362443484797">Aplikáciu pre vás nainštalujeme</translation> <translation id="6951153907720526401">Obslužné nástroje platieb</translation> <translation id="6955446738988643816">Preskúmať kontextové okná</translation> <translation id="6957231940976260713">Názov služby</translation> @@ -3942,6 +3979,7 @@ <translation id="6998711733709403587">Počet vybratých priečinkov: <ph name="SELCTED_FOLDERS_COUNT" /></translation> <translation id="6998793565256476099">Zaregistrovať zariadenie na videokonferencie</translation> <translation id="7000347579424117903">Použite Ctrl, Alt alebo kláves vyhľadávania</translation> +<translation id="700203306553508933">Uložiť karty na používanie služby Google Pay</translation> <translation id="7002055706763150362">Ak chcete nastaviť funkciu Smart Lock pre Chromebook, Google musí najprv overiť, že ste to vy. Musíte preto zadať heslo.</translation> <translation id="7002454948392136538">Vyberte správcu pre tohto kontrolovaného používateľa</translation> <translation id="7003339318920871147">Webové databázy</translation> @@ -3989,6 +4027,7 @@ <translation id="706626672220389329">Pri pripájaní zdieľaného úložiska sa vyskytla chyba. Dané úložisko je už pripojené.</translation> <translation id="7066944511817949584">Nepodarilo sa pripojiť k zariadeniu „<ph name="DEVICE_NAME" />“.</translation> <translation id="7067725467529581407">Túto výzvu už nezobrazovať</translation> +<translation id="7070484045139057854">Môže čítať údaje o webe a meniť ich</translation> <translation id="7072010813301522126">Názov skratky</translation> <translation id="707392107419594760">Vyberte klávesnicu:</translation> <translation id="7075513071073410194">Štandard PKCS #1 MD5 so šifrovaním RSA</translation> @@ -4118,6 +4157,7 @@ <translation id="7256710573727326513">Otvárať na karte</translation> <translation id="725758059478686223">Tlačová služba</translation> <translation id="7257666756905341374">Čítať údaje, ktoré kopírujete a prilepujete</translation> +<translation id="7258697411818564379">Váš kód PIN bol pridaný</translation> <translation id="7260764918845374269">Ak chcete, aby sa bezpečnostný kľúč zobrazil, prepnite ho do režimu párovania. Stlačte tlačidlo na kľúči aspoň na päť sekúnd.</translation> <translation id="7262004276116528033">Túto prihlasovaciu službu hostí doména <ph name="SAML_DOMAIN" /></translation> <translation id="7268365133021434339">Zavrieť karty</translation> @@ -4265,6 +4305,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">Zabudli ste svoje staré heslo?</translation> <translation id="7497215489070763236">Certifikát CA servera</translation> +<translation id="7497981768003291373">Nemáte žiadne nedávno zaznamenané textové denníky WebRTC.</translation> <translation id="7502658306369382406">Adresa IPv6</translation> <translation id="7503191893372251637">Netscape – typ certifikátu </translation> <translation id="7503821294401948377">Nepodarilo sa načítať ikonu „<ph name="ICON" />“ akcie prehliadača.</translation> @@ -4307,6 +4348,7 @@ <translation id="7564847347806291057">Ukončiť proces</translation> <translation id="7566118625369982896">Správa skratiek aplikácie Play</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">Miesto priloženia prsta</translation> <translation id="756809126120519699">Údaje Chromu boli vymazané</translation> <translation id="7568790562536448087">Prebieha aktualizácia</translation> <translation id="7571643774869182231">V úložisku nie je dostatok miesta na aktualizáciu</translation> @@ -4469,6 +4511,7 @@ <ph name="LINE_BREAK2" /> Skúste vybrať menej fotiek.</translation> <translation id="782590969421016895">Použiť aktuálne stránky</translation> +<translation id="7826346148677309647">Ďalšie aplikácie pre svoje zariadenie nájdete v Obchode Play.</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />Funkcie ladenia<ph name="END_H3" /> <ph name="BR" /> V zariadení so systémom Chrome OS môžete aktivovať funkcie ladenia, ktoré vám pomôžu nainštalovať a otestovať vlastný kód. Umožní vám to:<ph name="BR" /> @@ -4665,6 +4708,7 @@ <translation id="8059417245945632445">&Preskúmať zariadenia</translation> <translation id="8063235345342641131">Predvolený zelený avatar</translation> <translation id="8064671687106936412">Kľúč:</translation> +<translation id="8065485338434000013">Niektoré karty sa dajú použiť iba v tomto zariadení</translation> <translation id="806812017500012252">Zoradiť podľa názvu</translation> <translation id="8068253693380742035">Dotykom sa prihlásite</translation> <translation id="8069615408251337349">Google Cloud Print</translation> @@ -4742,6 +4786,7 @@ <translation id="8191453843330043793">V8 Proxy Resolver</translation> <translation id="8193175696669055101">Model zariadenia</translation> <translation id="8195027750202970175">Veľkosť na disku</translation> +<translation id="8198323535106903877">Aplikácie (počet: <ph name="NUMBER_OF_APPS" />) pre vás nainštalujeme</translation> <translation id="8199300056570174101">Vlastnosti siete (služba) a zariadenia</translation> <translation id="8200772114523450471">Pokračovať</translation> <translation id="8202160505685531999">Zadajte znova svoje heslo a aktualizujte tak profil zariadenia <ph name="DEVICE_TYPE" />.</translation> @@ -4961,7 +5006,6 @@ <translation id="8557930019681227453">Manifest</translation> <translation id="8559694214572302298">Image Decoder</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Pokračovať v čítaní</translation> <translation id="8565650234829130278">Došlo k pokusu o prechod aplikácie na staršiu verziu.</translation> <translation id="8569002732135253578">Tlačí sa dokument <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">Nenašli sa žiadne ciele</translation> @@ -4991,7 +5035,7 @@ <translation id="8620765578342452535">Konfigurovať sieťové pripojenia</translation> <translation id="8624205858755890468">Umožňuje Asistentovi zobraziť vám súvisiace informácie, aplikácie a akcie.</translation> <translation id="862542460444371744">&Rozšírenia</translation> -<translation id="8626219642120025691">Časovač skončil</translation> +<translation id="8626219642120025691">Časovač je ukončený</translation> <translation id="8627151598708688654">Výber zdroja</translation> <translation id="862727964348362408">Pozastavené</translation> <translation id="862750493060684461">Vyrovnávacia pamäť CSS</translation> @@ -5074,6 +5118,8 @@ <translation id="8716931980467311658">Chcete odstrániť všetky aplikácie pre Linux a príslušné dáta v priečinku súborov systému Linux z tohto zariadenia <ph name="DEVICE_TYPE" />?</translation> <translation id="8719653885894320876">Doplnok <ph name="PLUGIN_NAME" /> sa nepodarilo stiahnuť</translation> <translation id="8723829621484579639">Anonymné podrámce pre: <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">Keď uvidíte túto ikonu, môžete na identifikáciu alebo schválenie nákupov použiť odtlačok prsta.</translation> +<translation id="8724409975248965964">Odtlačok bol pridaný</translation> <translation id="8724859055372736596">&Zobraziť v priečinku</translation> <translation id="8725066075913043281">Skúsiť znova</translation> <translation id="8725178340343806893">Obľúbené položky či záložky</translation> @@ -5154,6 +5200,7 @@ <translation id="8838770651474809439">Hamburger</translation> <translation id="883911313571074303">Pridať k obrázku poznámku</translation> <translation id="8845001906332463065">Získať pomoc</translation> +<translation id="8846132060409673887">Prečítať informácie o výrobcovi a modeli tohto zariadenia</translation> <translation id="8846141544112579928">Hľadá sa klávesnica...</translation> <translation id="8847988622838149491">USB</translation> <translation id="8859057652521303089">Vyberte svoj jazyk:</translation> @@ -5367,6 +5414,7 @@ <translation id="9161070040817969420">Podrámce pre: <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">Odosielanie systémových údajov. Toto zariadenie momentálne automaticky odosiela Googlu diagnostiku a údaje o využívaní zariadenia a aplikácií. Používanie tohto nastavenia je vynútené vlastníkom. Ak ste zapli ďalšiu aktivitu na internete a v aplikáciách, tieto informácie sa budú ukladať vo vašom účte a budete ich môcť spravovať na stránke Moja aktivita. <ph name="BEGIN_LINK1" />Ďalšie informácie<ph name="END_LINK1" /></translation> <translation id="916607977885256133">Obraz v obraze</translation> +<translation id="9168436347345867845">Neskôr</translation> <translation id="9169496697824289689">Zobraziť klávesové skratky</translation> <translation id="9169931577761441333">Pridať aplikáciu <ph name="APP_NAME" /> na plochu</translation> <translation id="9170848237812810038">&Naspäť</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb index 07a598a..062591c 100644 --- a/chrome/app/resources/generated_resources_sl.xtb +++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -1513,7 +1513,6 @@ <translation id="3285322247471302225">Nov &zavihek</translation> <translation id="3288047731229977326">Razširitve, ki se izvajajo v razvijalskem načinu, lahko škodijo vašemu računalniku. Če niste razvijalec, zaradi varnosti onemogočite razširitve, ki se izvajajo v razvijalskem načinu.</translation> <translation id="3289856944988573801">Če želite preveriti, ali so na voljo posodobitve, uporabite ethernet ali Wi-Fi.</translation> -<translation id="3292421191230118801">Nadaljujte ogledovanje spletnih mest iz mobilne naprave v Chromebooku</translation> <translation id="32939749466444286">Vsebnik za Linux se ni zagnal. Poskusite znova.</translation> <translation id="3294437725009624529">Gost</translation> <translation id="329838636886466101">Popravi</translation> @@ -4961,7 +4960,6 @@ <translation id="8557930019681227453">Manifest</translation> <translation id="8559694214572302298">Slikovni dekodirnik</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Nadaljevanje branja</translation> <translation id="8565650234829130278">Poskus spremembe aplikacije v starejšo različico.</translation> <translation id="8569002732135253578">Zdaj se tiska dokument <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">Najti ni bilo mogoče nobenega cilja</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb index 832c9645..fdb5b83 100644 --- a/chrome/app/resources/generated_resources_sr.xtb +++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -1509,7 +1509,6 @@ <translation id="3285322247471302225">Нова &картица</translation> <translation id="3288047731229977326">Додаци покренути у режиму програмера могу да нашкоде рачунару. Ако нисте програмер, требало би да онемогућите ове додатке покренуте у режиму програмера да бисте се заштитили.</translation> <translation id="3289856944988573801">Да бисте потражили ажурирања, користите етернет или Wi-Fi.</translation> -<translation id="3292421191230118801">Наставите да прегледате сајтове са мобилног уређаја на Chromebook-у</translation> <translation id="32939749466444286">Linux контејнер се није покренуо. Пробајте поново.</translation> <translation id="3294437725009624529">Гост</translation> <translation id="329838636886466101">Поправи</translation> @@ -4958,7 +4957,6 @@ <translation id="8557930019681227453">Манифест</translation> <translation id="8559694214572302298">Декодирање слика</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Наставите читање</translation> <translation id="8565650234829130278">Покушали сте да вратите апликацију на старију верзију.</translation> <translation id="8569002732135253578">Штампа се: <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">Нема пронађених одредишта</translation> @@ -4988,7 +4986,7 @@ <translation id="8620765578342452535">Конфигуриши мрежне везе</translation> <translation id="8624205858755890468">Омогућава да Помоћник приказује повезане податке, апликације и радње.</translation> <translation id="862542460444371744">&Додаци</translation> -<translation id="8626219642120025691">Тајмер је искључен</translation> +<translation id="8626219642120025691">Време је истекло</translation> <translation id="8627151598708688654">Изаберите извор</translation> <translation id="862727964348362408">Обустављено</translation> <translation id="862750493060684461">CSS кеш</translation> @@ -5286,7 +5284,7 @@ <translation id="9050666287014529139">Приступна фраза</translation> <translation id="9052208328806230490">Регистровали сте штампаче за <ph name="CLOUD_PRINT_NAME" /> помоћу налога <ph name="EMAIL" /></translation> <translation id="9052404922357793350">Настави са блокирањем</translation> -<translation id="9053091947372579468">Уређај обухвата лиценцу за Chrome, али корисничко име није повезано са конзолом за администратора. Отворите налог за конзолу за администратора да бисте наставили са регистрацијом. Напомена: Ако одаберете да користите сопствени домен да бисте отворили налог за конзолу за администратора, после регистрације морате да довршите и верификацију домена. https://g.co/ChromeEnterpriseAccount</translation> +<translation id="9053091947372579468">Уређај обухвата лиценцу за Chrome, али корисничко име није повезано са администраторском конзолом. Отворите налог за администраторску конзолу да бисте наставили са регистрацијом. Напомена: Ако одаберете да користите сопствени домен да бисте отворили налог за администраторску конзолу, после регистрације морате да довршите и верификацију домена. https://g.co/ChromeEnterpriseAccount</translation> <translation id="9053893665344928494">Запамти избор</translation> <translation id="9055636786322918818">Примењује RC4 шифровање. Коришћење ове опције вас излаже већем ризику јер су RC4 шифре небезбедне.</translation> <translation id="9056034633062863292">Ажурирање Chromebox-а</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb index 167495d..503e9b3 100644 --- a/chrome/app/resources/generated_resources_sv.xtb +++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -1512,7 +1512,6 @@ <translation id="3285322247471302225">Ny &flik</translation> <translation id="3288047731229977326">Tillägg som körs i utvecklarläge kan skada datorn. Om du inte är en utvecklare bör du inaktivera tillägg som körs i utvecklarläge för att skydda dig.</translation> <translation id="3289856944988573801">Använd Ethernet eller Wi-Fi om du vill söka efter uppdateringar.</translation> -<translation id="3292421191230118801">Fortsätt att visa webbplatser från mobilen på Chromebook</translation> <translation id="32939749466444286">Det gick inte att starta Linux-behållaren. Försök igen.</translation> <translation id="3294437725009624529">Gäst</translation> <translation id="329838636886466101">Reparera</translation> @@ -4960,7 +4959,6 @@ <translation id="8557930019681227453">Manifest</translation> <translation id="8559694214572302298">Bildavkodare</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Fortsätt läsa</translation> <translation id="8565650234829130278">Försökte nedgradera appen.</translation> <translation id="8569002732135253578"><ph name="DOCUMENT_NAME" /> skrivs ut</translation> <translation id="8569682776816196752">Det gick inte att hitta några platser</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb index 8c8294d..387a38a 100644 --- a/chrome/app/resources/generated_resources_sw.xtb +++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -42,7 +42,7 @@ <translation id="1056775291175587022">Hakuna mitandao</translation> <translation id="1056898198331236512">Ilani</translation> <translation id="1058262162121953039">PUK</translation> -<translation id="1059855432287631118">Inasajili alama bainifu</translation> +<translation id="1059855432287631118">Inasajili alama ya kidole</translation> <translation id="1061904396131502319">Muda wa kupumzika umekaribia</translation> <translation id="1062407476771304334">Badilisha</translation> <translation id="1067048845568873861">Kiliundwa</translation> @@ -247,6 +247,7 @@ <translation id="1358741672408003399">Tahajia na Sarufi</translation> <translation id="1361164813881551742">Ongeza Mwenyewe</translation> <translation id="1361655923249334273">Haijatumiwa</translation> +<translation id="1361872463926621533">Cheza sauti wakati wa kuanza</translation> <translation id="1363028406613469049">Wimbo</translation> <translation id="1367951781824006909">Chagua faili</translation> <translation id="1368265273904755308">Ripoti tatizo</translation> @@ -567,6 +568,7 @@ <translation id="1817310072033858383">Weka mipangilio ya Smart Lock kwenye kifaa chako cha <ph name="DEVICE_TYPE" /></translation> <translation id="1817871734039893258">Uopoaji wa Faili kutoka Microsoft</translation> <translation id="1818007989243628752">Futa nenosiri la <ph name="USERNAME" /></translation> +<translation id="1818913467757368489">Inaendelea kupakia kumbukumbu.</translation> <translation id="1819721979226826163">Gusa Arifa za programu > Huduma za Google Play.</translation> <translation id="1826516787628120939">Inakagua</translation> <translation id="1828378091493947763">Programu-jalizi hii haitumiki kwenye kifaa hiki</translation> @@ -615,11 +617,13 @@ <translation id="1890674179660343635"><span>Kitambulisho: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">Fungua skrini nzima</translation> <translation id="189358972401248634">Lugha zingine</translation> +<translation id="1894591787927543791">Hifadhi kadi ili utumie Google Pay</translation> <translation id="1895658205118569222">Funga</translation> <translation id="1895934970388272448">Lazima uthibitishe usajili kwenye printa yako ili umalize mchakato huu - angalia sasa.</translation> <translation id="1897762215429052132">Weka mipangilio ya muunganisho wa mtandao, lugha, mpangilio wa kibodi...</translation> <translation id="1901303067676059328">Chagua &yote</translation> <translation id="1902576642799138955">Kipindi cha Uhalali</translation> +<translation id="1904518222538904133">Mojawapo ya kadi zako inaweza kutumika kwenye kifaa hiki pekee</translation> <translation id="1905375423839394163">Jina la kifaa cha Chromebook</translation> <translation id="1905710495812624430">Idadi ya juu ya majaribio yanayoruhusiwa.</translation> <translation id="1909880997794698664">Una uhakika unataka kuweka kifaa hiki kiwe cha kudumu katika modi ya kioski?</translation> @@ -656,6 +660,7 @@ <translation id="1962969542251276847">Skrini Iliyofungwa</translation> <translation id="1963227389609234879">Ondoa Yote</translation> <translation id="1965624977906726414">Haina ruhusa maalum.</translation> +<translation id="1969654639948595766">Kumbukumbu za maandishi ya WebRTC (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">Unatumia hali ya video</translation> <translation id="197288927597451399">Weka</translation> <translation id="1974043046396539880">Sehemu za Usambazaji wa CRL</translation> @@ -799,6 +804,7 @@ <translation id="2190069059097339078">Kipataji cha Kitambulisho cha WiFi</translation> <translation id="219008588003277019">Sehemu Asili ya Seva-teja: <ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(tupu)</translation> +<translation id="2191223688506386601">Jambo la mwisho</translation> <translation id="2192505247865591433">Kutoka:</translation> <translation id="2193365732679659387">Mipangilio ya kuamini</translation> <translation id="2195729137168608510">Ulinzi wa Barua Pepe</translation> @@ -1022,6 +1028,7 @@ <translation id="2534460670861217804">Linda Seva Mbadala ya HTTP</translation> <translation id="253557089021624350">Shughuli zinazotumia kiendelezi</translation> <translation id="2538361623464451692">Kipengele cha kusawazisha kimezimwa</translation> +<translation id="2539876824180063438">Sogeza kidole chako cha shahada taratibu ili uongeze sehemu mbalimbali za alama ya kidole</translation> <translation id="2541002089857695151">Ungependa kuboresha utumaji kwenye skrini nzima?</translation> <translation id="2542049655219295786">Jedwali la Google</translation> <translation id="2544853746127077729">Cheti cha uthibitishaji kimekataliwa na mtandao</translation> @@ -1254,7 +1261,9 @@ <translation id="287286579981869940">Ongeza <ph name="PROVIDER_NAME" />...</translation> <translation id="2874343608108773609">Ingia katika akaunti ya Chrome ili upate manenosiri yako kwenye vifaa vyako vyote.</translation> <translation id="2875698561019555027">(Kurasa za hitilafu kwenye Chrome)</translation> +<translation id="2876336351874743617">Kidole cha 2</translation> <translation id="288042212351694283">Fikia vifaa vyako vya Ubia wa Hatua mbili</translation> +<translation id="2881076733170862447">Unapobofya Kiendelezi</translation> <translation id="2881966438216424900">Ilitumiwa mwisho:</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> itazima na kuwasha tena na kuweka upya kwa muda mfupi</translation> <translation id="2885378588091291677">Kidhibiti cha Shughuli</translation> @@ -1440,6 +1449,7 @@ <translation id="3154429428035006212">Nje ya mtandao kwa zaidi ya mwezi</translation> <translation id="3156531245809797194">Ili utumie Chrome, tafadhali ingia katika akaunti</translation> <translation id="3157931365184549694">Rejesha</translation> +<translation id="3158033540161634471">Weka mipangilio ya alama ya kidole</translation> <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> @@ -1509,9 +1519,10 @@ <translation id="3285322247471302225">Kichupo &Kipya</translation> <translation id="3288047731229977326">Viendelezi vinavyoendeshwa katika hali ya msanidi programu vinaweza vikadhuru kompyuta yako. Kama wewe si msanidi programu, unapaswa kuzima viendelezi hivi vinavyoendeshwa katika hali ya msanidi programu ili ukae salama.</translation> <translation id="3289856944988573801">Ili kuangalia sasisho, tafadhali tumia Ethernet au Wi-Fi.</translation> -<translation id="3292421191230118801">Endelea kuangalia tovuti kutoka simu yako ya mkononi kwenye Chromebook yako</translation> <translation id="32939749466444286">Metadata ya Linux haikufunguka vizuri. Tafadhali jaribu tena.</translation> <translation id="3294437725009624529">Mgeni</translation> +<translation id="329703603001918157">Imeshindwa kubadilisha njia ya mkato</translation> +<translation id="3297951628821704004">Ondoa akaunti kwenye kifaa hiki</translation> <translation id="329838636886466101">Kukarabati</translation> <translation id="3298789223962368867">URL batili imeingizwa.</translation> <translation id="32991397311664836">Vifaa:</translation> @@ -1675,6 +1686,7 @@ <translation id="3534879087479077042">Je, mtumiaji anayesimamiwa ni nani?</translation> <translation id="3538066758857505094">Hitilafu imetokea wakati wa kuondoa Linux. Tafadhali jaribu tena.</translation> <translation id="354060433403403521">Kamba ya umeme</translation> +<translation id="354068948465830244">Hii inaweza kusoma na kubadilisha data ya tovuti</translation> <translation id="3541661933757219855">Charaza Ctrl+Alt+/ au Escape ili kuficha</translation> <translation id="3543393733900874979">Usasishaji haukufanikiwa (hitilafu: <ph name="ERROR_NUMBER" /> )</translation> <translation id="3543597750097719865">Sahihi ya X9.62 ECDSA yenye SHA-512</translation> @@ -1720,6 +1732,7 @@ <translation id="3606712892509067288">Ondoa kwenye Better Together</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">Kihakiki cha picha ya mtumiaji</translation> +<translation id="3609446736023031597">Pata masasisho na mapendekezo mapya kwenye programu za Duka la Google Play</translation> <translation id="3609785682760573515">Inasawazisha...</translation> <translation id="3609895557594655134">Ongeza VPN ya Android...</translation> <translation id="361106536627977100">Data ya Flash</translation> @@ -1749,9 +1762,10 @@ <translation id="363903084947548957">Mbinu ya kuingiza data inayofuata</translation> <translation id="3640214691812501263">Ungependa kuongeza "<ph name="EXTENSION_NAME" />" kwa <ph name="USER_NAME" />?</translation> <translation id="3644896802912593514">Upana</translation> -<translation id="3645372836428131288">Sogeza kidogo ili unase sehemu tofauti ya alama bainifu.</translation> +<translation id="3645372836428131288">Sogeza kidogo ili unase sehemu tofauti ya alama ya kidole.</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> kimegunduliwa</translation> <translation id="3649138363871392317">Picha ilipigwa</translation> +<translation id="3650845953328929506">Inasubiri kupakia kumbukumbu.</translation> <translation id="3650952250015018111">Ruhusu "<ph name="APP_NAME" />" ifikie:</translation> <translation id="3651488188562686558">Ondoa muunganisho wa Wi-Fi</translation> <translation id="3652817283076144888">Inaanzisha</translation> @@ -1903,6 +1917,7 @@ <translation id="3856800405688283469">Chagua saa za eneo</translation> <translation id="3857228364945137633">Jaribu kutumia Smart Lock kukifungua kifa chako cha <ph name="DEVICE_TYPE" /> bila kutumia nenosiri, simu yako ikiwa karibu.</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation> +<translation id="3857807444929313943">Inua, kisha uguse tena</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: Umesitisha usawazishaji</translation> <translation id="3860381078714302691">Karibu kwenye Hangouts Meet</translation> <translation id="3861241522664181545">Ukurasa umesitishwa.</translation> @@ -1921,6 +1936,7 @@ <translation id="3873315167136380065">Ili kuwasha kipengele hiki, <ph name="BEGIN_LINK" />weka upya kipengele cha usawazishaji<ph name="END_LINK" /> ili kuondoa kauli yako ya siri ya usawazishaji</translation> <translation id="3878840326289104869">Inaunda mtumiaji anayesimamiwa</translation> <translation id="3879748587602334249">Kidhibiti cha vipakuliwa</translation> +<translation id="3885455691202481064">Gusa kitambuzi ukitumia kidole chako cha shahada. Kiko upande wa juu kushoto mwa Chromebook yako.</translation> <translation id="3888550877729210209">Madokezo yanachukuliwa na <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3892414795099177503">Ongeza OpenVPN / L2TP...</translation> <translation id="3893536212201235195">Kusoma na ubadilishe mipangilio yako ya ufikiaji</translation> @@ -1973,6 +1989,7 @@ <translation id="3950820424414687140">Ingia</translation> <translation id="3954354850384043518">Unaendelea</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (Hezi <ph name="REFRESH_RATE" />)</translation> +<translation id="3954953195017194676">Huna kumbukumbu za matukio za WebRTC uliyorekodi hivi majuzi.</translation> <translation id="3955193568934677022">Ruhusu tovuti zicheze maudhui yanayolindwa (inapendekezwa)</translation> <translation id="3956702100721821638">Imeshindwa kufikia Google Play</translation> <translation id="3958088479270651626">Leta alamisho na mipangilio</translation> @@ -2224,6 +2241,7 @@ <translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation> <translation id="4408599188496843485">Usaidizi</translation> <translation id="4409697491990005945">Pambizo</translation> +<translation id="4410545552906060960">Tumia namba (PIN) badala ya nenosiri ili kufungua kifaa chako. Ili kuweka PIN yako baadaye, nenda kwenye Mipangilio.</translation> <translation id="4411578466613447185">Kitia Misimbo sahihi</translation> <translation id="4412698727486357573">Kituo cha usaidizi</translation> <translation id="44141919652824029">Ungependa kuiruhusu "<ph name="APP_NAME" />" ipate orodha ya vifaa vyako vya USB vilivyounganishwa?</translation> @@ -2315,8 +2333,10 @@ <translation id="4555769855065597957">Kivuli</translation> <translation id="4556110439722119938">Alamisho, historia, manenosiri na mipangilio yako mingine itasawazishwa kwenye Akaunti yako ya Google ili uitumie katika vifaa vyako vyote</translation> <translation id="4558426062282641716">Ombi la ruhusa ya kuzindua kiotomatiki</translation> +<translation id="4558491878126948419">Pata vidokezo na taarifa za <ph name="DEVICE_TYPE" /> kwenye bidhaa za Google na ushiriki maoni. Unaweza kujiondoa wakati wowote.</translation> <translation id="4559617833001311418">Tovuti hii inafikia vitambuzi vyako vya mwangaza au mwendo.</translation> <translation id="4562155214028662640">Ongeza Alama ya Kidole</translation> +<translation id="4563880231729913339">Kidole cha 3</translation> <translation id="4565377596337484307">Ficha nenosiri</translation> <translation id="4567772783389002344">Ongeza neno</translation> <translation id="4568213207643490790">Samahani, akaunti za Google haziruhusiwi kwenye kifaa hiki.</translation> @@ -2391,6 +2411,7 @@ <translation id="4681930562518940301">Fungua picha asili katika kichupo kipya</translation> <translation id="4682551433947286597">Mandhari hutokea kwenye Skrini ya Kuingia.</translation> <translation id="4684427112815847243">Sawazisha kila kitu</translation> +<translation id="4688036121858134881">Kitambulisho cha kumbukumbu ya mfumo: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4689235506267737042">Chagua mapendeleo yako ya maonyesho</translation> <translation id="4689421377817139245">Sawazisha alamisho hii kwenye iPhone yako</translation> <translation id="4690091457710545971"><Faili nne zinazozalishwa na programu dhibiti ya Intel Wi-Fi: csr.lst, fh_regs.lst, radio_reg.lst, monitor.lst.sysmon. Faili za kwanza tatu ni faili za mfumo wa jozi zilizo na data ya faili za sajili, na zimethibitishwa na Intel kuwa hazina maelezo yanayoweza kutambulisha mtu au kifaa. Faili ya mwisho ni faili ya utekelezaji kutoka programu dhibiti ya Intel; imeondolewa maelezo yoyote yanayoweza kutambulisha mtu au kifaa, lakini haiwezi kuonekana hapa kwa kuwa ni kubwa mno. Faili hizi zilizalishwa ili kusuluhisha matatizo ya hivi majuzi ya Wi-Fi ambayo yalikumba kifaa chako, na tutazishiriki na Intel ili kukusaidia utatue matatizo haya.></translation> @@ -2575,6 +2596,7 @@ <translation id="4945444280533270988">Smart Lock imewashwa</translation> <translation id="4953689047182316270">Kushughulikia Matukio ya Zana za Walio na Matatizo ya Kuona au Kusikia</translation> <translation id="4953808748584563296">Ishara chaguomsingi ya rangi ya machungwa</translation> +<translation id="4955710816792587366">Chagua PIN yako</translation> <translation id="4955814292505481804">Kila mwaka</translation> <translation id="4957949153200969297">Washa tu vipengele vinavyohusiana na Usawazishaji wa <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="4959262764292427323">Manenosiri yanahifadhiwa kwenye Akaunti yako ya Google ili uweze kuyatumia kwenye kifaa chochote</translation> @@ -2640,6 +2662,7 @@ <translation id="5050042263972837708">Jina la kikundi</translation> <translation id="5052499409147950210">Badilisha tovuti</translation> <translation id="5053604404986157245">Nenosiri la TPM lililoundwa bila mpangilio halipatikani. Hii ni kawadia baada ya Powerwash.</translation> +<translation id="5057110919553308744">Unapobofya kiendelezi</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{Folda hii ina alamisho. Je, una uhakika ungependa kuifuta?}other{Folda hii ina alamisho #. Je, una uhakika ungependa kuifuta?}}</translation> <translation id="5061708541166515394">Ulinganuzi</translation> <translation id="5062930723426326933">Imeshindwa kuingia katika akaunti, tafadhali unganisha kwenye mtandao na ujaribu tena.</translation> @@ -2815,6 +2838,7 @@ <translation id="5315873049536339193">Kitambulisho</translation> <translation id="5316716239522500219">Viwambo vya kioo</translation> <translation id="5317780077021120954">Hifadhi</translation> +<translation id="5318819489018851358">Shiriki kwenye Linux</translation> <translation id="5319359161174645648">Google inapendekeza utumie Chrome</translation> <translation id="5319566035256672173">Kifaa hiki hakitapokea tena masasisho mapya ya programu. Tafadhali weka toleo jipya.</translation> <translation id="532247166573571973">Huenda seva haifikiki. Jaribu tena baadaye.</translation> @@ -3155,6 +3179,7 @@ <translation id="5804241973901381774">Idhini</translation> <translation id="580571955903695899">Panga upya kwa Kichwa</translation> <translation id="5807290661599647102">Weka mbinu ya Kufunga Skrini</translation> +<translation id="5811750797187914944">Kila kitu kiko tayari</translation> <translation id="5814126672212206791">Aina ya muunganisho</translation> <translation id="5815645614496570556">Anwani X.400</translation> <translation id="5816434091619127343">Mabadiliko ya printa yaliyoombwa yatafanya printa isitumike.</translation> @@ -3192,6 +3217,7 @@ <translation id="5855773610748894548">Lo! Hitilafu ya sehemu salama imetokea.</translation> <translation id="5856721540245522153">Washa vipengele vya kutatua</translation> <translation id="5857090052475505287">Folda Mpya</translation> +<translation id="5858490737742085133">Kituo</translation> <translation id="585979798156957858">Meta ya Nje</translation> <translation id="5860033963881614850">Kimezimwa</translation> <translation id="5860209693144823476">Kichupo cha 3</translation> @@ -3214,6 +3240,7 @@ <translation id="5882919346125742463">Mitandao Inayojulikana</translation> <translation id="5884474295213649357">Kichupo hiki kimeunganishwa kwenye kifaa cha USB.</translation> <translation id="5885324376209859881">Dhibiti mipangilio ya mawasiliano...</translation> +<translation id="5886009770935151472">Kidole cha 1</translation> <translation id="5889282057229379085">Upeo wa idadi ya mamlaka ya kati ya cheti: <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">Zzima na uwashe</translation> <translation id="5895187275912066135">Kilitolewa</translation> @@ -3298,6 +3325,7 @@ <translation id="6025215716629925253">Alama ya Bunda</translation> <translation id="6026047032548434446">Ungependa Kusakinisha Programu?</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - Kifaa cha USB kimeunganishwa</translation> +<translation id="6028117231645531007">Ongeza alama ya kidole</translation> <translation id="6029027682598229313">Imemaliza kusakinisha Linux.</translation> <translation id="6029587122245504742">Kasi ya chini zaidi</translation> <translation id="6032912588568283682">Mfumo wa faili</translation> @@ -3312,6 +3340,7 @@ <translation id="6042308850641462728">Zaidi</translation> <translation id="6043317578411397101"><ph name="APP_NAME" /> inashiriki kichupo cha Chrome na <ph name="TAB_NAME" />.</translation> <translation id="6044805581023976844"><ph name="APP_NAME" /> inashiriki kichupo cha Chrome na sauti pamoja na <ph name="TAB_NAME" />.</translation> +<translation id="6047938872139769630">Unaweza kutumia PIN ili kufungua kifaa chako wakati umeondoka kwenye akaunti</translation> <translation id="6049004884579590341">Bonyeza na ushikilie |<ph name="ACCELERATOR" />| ili uondoke katika hali ya skrini nzima</translation> <translation id="6049065490165456785">Picha kutoka kamera ya ndani</translation> <translation id="6051354611314852653">Lo! Mfumo ulishindwa kuidhinisha ufikiaji wa API kwa kifaa hiki.</translation> @@ -3334,6 +3363,7 @@ <translation id="6075907793831890935">Badilisha data kwa kifaa kiitwacho <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Jumuisha picha hii ya skrini</translation> <translation id="6077131872140550515">Ondoa kwenye orodha ya mitandao inayopendelewa</translation> +<translation id="6077189836672154517">Vidokezo na taarifa kuhusu <ph name="DEVICE_TYPE" /></translation> <translation id="6078323886959318429">Ongeza njia ya mkato</translation> <translation id="6078752646384677957">Tafadhali angalia maikrofoni yako na viwango vya sauti.</translation> <translation id="6080515710685820702">Je, unatumia kompyuta na wengine? Jaribu kufungua dirisha fiche.</translation> @@ -3383,6 +3413,7 @@ <translation id="6144938890088808325">Tusaidie kuboresha Chromebook</translation> <translation id="6146563240635539929">Video</translation> <translation id="6147020289383635445">Uhakiki wa chapa umeshindwa.</translation> +<translation id="6148052338549899048">Hakuna vifaa vinavyostahiki. <ph name="LINK_BEGIN" />Pata maelezo zaidi.<ph name="LINK_END" /></translation> <translation id="614940544461990577">Jaribu:</translation> <translation id="6150853954427645995">Ili kuhifadhi faili hii kwa matumizi ya nje ya mtandao, rudi mtandaoni, bofya faili kulia, na uchague chaguo la <ph name="OFFLINE_CHECKBOX_NAME" />.</translation> <translation id="6151323131516309312">Bofya <ph name="SEARCH_KEY" /> ili kutafuta <ph name="SITE_NAME" /></translation> @@ -3402,6 +3433,7 @@ <translation id="6169040057125497443">Tafadhali angalia maikrofoni yako.</translation> <translation id="6169666352732958425">Imeshindwa kutuma eneo-kazi.</translation> <translation id="6171948306033499786">Sitisha kuchapisha</translation> +<translation id="6173623053897475761">Weka PIN yako tena</translation> <translation id="6175314957787328458">GUID ya Vikoa kutoka Microsoft</translation> <translation id="6176043333338857209">Bluetooth itawashwa kwa muda ili iwasiliane na ufunguo wako wa usalama</translation> <translation id="6178664161104547336">Chagua cheti</translation> @@ -3591,11 +3623,13 @@ <translation id="6456394469623773452">Bora</translation> <translation id="6456631036739229488">Simu ya Smart Lock imebadilishwa. Andika nenosiri lako ili usasishe Smart Lock. Utakapoitumia tena, simu yako itafungua <ph name="DEVICE_TYPE" /> yako. Zima Smart Lock katika Mipangilio.</translation> <translation id="645705751491738698">Endelea kuzuia JavaScript</translation> +<translation id="6458701200018867744">Imeshindwa kupakia (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Tumia Iliyochaguliwa Kupata</translation> <translation id="6459799433792303855">Dirisha linalotumika limehamishiwa kwenye skrini nyingine.</translation> <translation id="6460601847208524483">Pata Ifuatayo</translation> <translation id="6463795194797719782">&Hariri</translation> <translation id="6466988389784393586">&Fungua Alamisho Zote</translation> +<translation id="6467304607960172345">Boresha video za skrini nzima</translation> <translation id="6468485451923838994">Fonti</translation> <translation id="6472207088655375767">OTP</translation> <translation id="6472893788822429178">Onyesha Kitufe cha Mwanzo</translation> @@ -3771,6 +3805,7 @@ <translation id="6725206449694821596">Itifaki ya Kuchapisha ya Intaneti (IPP)</translation> <translation id="6727005317916125192">Dirisha lililotangulia</translation> <translation id="6732801395666424405">Vyeti havijapakiwa</translation> +<translation id="6732900235521116609">Imeshindwa kuondoa njia ya mkato</translation> <translation id="6735304988756581115">Onyesha vidakuzi na data ya tovuti zingine...</translation> <translation id="6736045498964449756">Lo! Manenosiri hayalingani!</translation> <translation id="6736243959894955139">Anwani</translation> @@ -3854,6 +3889,7 @@ <translation id="6860427144121307915">Fungua katika Kichupo</translation> <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="6865708901122695652">Kumbukumbu za matukio ya WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">Halijoto ya rangi</translation> <translation id="6870888490422746447">Chagua programu ili kushiriki kwenye:</translation> <translation id="6871644448911473373">Kijibu OCSP: <ph name="LOCATION" /></translation> @@ -3898,6 +3934,7 @@ <translation id="694592694773692225">Uelekezaji kwingine kwenye ukurasa huu umezuiwa.</translation> <translation id="6949306908218145636">Alamisha Kurasa Zilizowazi...</translation> <translation id="6950627417367801484">Rejesha programu</translation> +<translation id="6950943362443484797">Tutakusakinishia programu hiyo</translation> <translation id="6951153907720526401">Vidhibiti vya Malipo</translation> <translation id="6955446738988643816">Kagua Dirisha Ibukizi</translation> <translation id="6957231940976260713">Jina la huduma</translation> @@ -3933,6 +3970,7 @@ <translation id="6998711733709403587">Folda <ph name="SELCTED_FOLDERS_COUNT" /> zilizochaguliwa</translation> <translation id="6998793565256476099">Sajili vifaa vitumike kwenye mkutano wa video</translation> <translation id="7000347579424117903">Jumuisha kitufe cha Ctrl, Alt, au Utafutaji</translation> +<translation id="700203306553508933">Hifadhi kadi ili utumie Google Pay</translation> <translation id="7002055706763150362">Ili kusanidi Smart Lock ya Chromebook, Google inahitaji kuhakikisha kuwa ni wewe—charaza nenosiri lako ili uanze.</translation> <translation id="7002454948392136538">Chagua mdhibiti wa mtumiaji huyu anayesimamiwa</translation> <translation id="7003339318920871147">Hifadhidata za wavuti</translation> @@ -3980,6 +4018,7 @@ <translation id="706626672220389329">Hitilafu imetokea wakati wa kupachika faili ya kushiriki. Tayari faili iliyobainishwa imepachikwa.</translation> <translation id="7066944511817949584">Imeshindwa kuunganisha kwenye "<ph name="DEVICE_NAME" />".</translation> <translation id="7067725467529581407">Usiwahi kuonyesha kiputo hiki tena.</translation> +<translation id="7070484045139057854">Hii inaweza Kusoma na Kubadilisha Data ya Tovuti</translation> <translation id="7072010813301522126">Jina la njia ya mkato</translation> <translation id="707392107419594760">Chagua kibodi yako:</translation> <translation id="7075513071073410194">na Usimbaji wa RSA</translation> @@ -4109,6 +4148,7 @@ <translation id="7256710573727326513">Fungua katika kichupo</translation> <translation id="725758059478686223">Huduma ya Kuchapisha</translation> <translation id="7257666756905341374">Kusoma data unayonakili na kubandika</translation> +<translation id="7258697411818564379">PIN yako imeongezwa</translation> <translation id="7260764918845374269">Ili uangalie ufunguo wako wa usalama, unahitaji kuwa katika hali ya kuoanisha. Bonyeza kitufe cha ufunguo wako wa usalama kwa angalau sekunde 5.</translation> <translation id="7262004276116528033">Huduma hii ya kuingia katika akaunti inatolewa na <ph name="SAML_DOMAIN" /></translation> <translation id="7268365133021434339">Funga Vichupo</translation> @@ -4256,6 +4296,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">Umesahau nenosiri lako la zamani?</translation> <translation id="7497215489070763236">Cheti cha CA cha Seva</translation> +<translation id="7497981768003291373">Huna kumbukumbu za maandishi ya WebRTC uliyorekodi hivi majuzi.</translation> <translation id="7502658306369382406">Anwani ya IPv6</translation> <translation id="7503191893372251637">Aina ya Cheti cha Netscape</translation> <translation id="7503821294401948377">Aikoni '<ph name="ICON" />' haikuweza kupakiwa kwa kitendo cha kivinjari.</translation> @@ -4297,6 +4338,7 @@ <translation id="7564847347806291057">Komesha shughuli</translation> <translation id="7566118625369982896">Dhibiti viungo vya programu ya Google Play</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">Weka kidole chako</translation> <translation id="756809126120519699">Data ya Chrome imefutwa</translation> <translation id="7568790562536448087">Inasasisha</translation> <translation id="7571643774869182231">Hakuna nafasi ya kutosha kufanya sasisho</translation> @@ -4460,6 +4502,7 @@ <ph name="LINE_BREAK2" /> Jaribu kuchagua picha chache.</translation> <translation id="782590969421016895">Tumia kurasa za sasa</translation> +<translation id="7826346148677309647">Unaweza kupata programu zingine kwa ajili ya kifaa chako katika Duka la Google Play.</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />Vipengele vya Utatuzi<ph name="END_H3" /> <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" /> @@ -4657,6 +4700,7 @@ <translation id="8059417245945632445">Kagua vifaa</translation> <translation id="8063235345342641131">Ishara chaguomsingi ya kijani</translation> <translation id="8064671687106936412">Ufunguo:</translation> +<translation id="8065485338434000013">Baadhi ya kadi zako zinaweza kutumika tu kwenye kifaa hiki</translation> <translation id="806812017500012252">Panga tena kwa vichwa</translation> <translation id="8068253693380742035">Gusa ili uingie katika akaunti</translation> <translation id="8069615408251337349">Google Cloud Print</translation> @@ -4734,6 +4778,7 @@ <translation id="8191453843330043793">Kitatuaji cha Seva Mbadala ya V8</translation> <translation id="8193175696669055101">Muundo wa kifaa</translation> <translation id="8195027750202970175">Ukubwa kwenye diski</translation> +<translation id="8198323535106903877">Tutakusakinishia programu hizo <ph name="NUMBER_OF_APPS" /></translation> <translation id="8199300056570174101">Sifa za Kifaa na Mtandao (Huduma)</translation> <translation id="8200772114523450471">Endelea</translation> <translation id="8202160505685531999">Tafadhali andika tena nenosiri lako ili usasishe wasifu wako kwenye <ph name="DEVICE_TYPE" />.</translation> @@ -4954,7 +4999,6 @@ <translation id="8557930019681227453">Faili ya maelezo</translation> <translation id="8559694214572302298">Kisimbuaji cha Picha</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Endelea Kusoma</translation> <translation id="8565650234829130278">Ulijaribu kushusha programu kiwango</translation> <translation id="8569002732135253578">Inachapisha <ph name="DOCUMENT_NAME" /> sasa</translation> <translation id="8569682776816196752">Hakuna hatima zilizopatikana</translation> @@ -5067,6 +5111,8 @@ <translation id="8716931980467311658">Ungependa kufuta programu zote za Linux na data katika folda ya faili za Linux kwenye <ph name="DEVICE_TYPE" /> hii?</translation> <translation id="8719653885894320876">Upakuaji wa <ph name="PLUGIN_NAME" /> haujafaulu</translation> <translation id="8723829621484579639">fremu ndogo za hali fiche za: <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">Ukiona aikoni hii, tumia alama yako ya kidole kujitambulisha au kuidhinisha ununuzi.</translation> +<translation id="8724409975248965964">Alama ya kidole imeongezwa</translation> <translation id="8724859055372736596">Onye&sha katika Folda</translation> <translation id="8725066075913043281">Jaribu tena</translation> <translation id="8725178340343806893">Vipendwa/Alamisho</translation> @@ -5147,6 +5193,7 @@ <translation id="8838770651474809439">Hambaga</translation> <translation id="883911313571074303">Eleza kuhusu picha</translation> <translation id="8845001906332463065">Pata usaidizi</translation> +<translation id="8846132060409673887">Soma maelezo ya mtengenezaji na muundo wa kompyuta hii</translation> <translation id="8846141544112579928">Inatafuta kibodi...</translation> <translation id="8847988622838149491">USB</translation> <translation id="8859057652521303089">Chagua lugha yako:</translation> @@ -5360,6 +5407,7 @@ <translation id="9161070040817969420">Fremu ndogo za: <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">Tuma data ya mfumo. Tuma kiotomatiki data ya uchanganuzi na matumizi ya kifaa na programu kwa Google. Mipangilio hii husimamiwa na mmiliki. Ukiwasha Historia ya Shughuli kwenye Wavuti na Programu, maelezo haya yatahifadhiwa kwenye akaunti yako ili uweze kuyadhibiti katika Shughuli Zangu. <ph name="BEGIN_LINK1" />Pata Maelezo Zaidi<ph name="END_LINK1" /></translation> <translation id="916607977885256133">Picha ndani ya Picha</translation> +<translation id="9168436347345867845">Ufanye baadaye</translation> <translation id="9169496697824289689">Angalia njia za mkato za kibodi</translation> <translation id="9169931577761441333">Ongeza <ph name="APP_NAME" /> kwenye Skrini ya Mwanzo</translation> <translation id="9170848237812810038">&Tendua</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb index b5e00a80..77e20d0 100644 --- a/chrome/app/resources/generated_resources_ta.xtb +++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -247,6 +247,7 @@ <translation id="1358741672408003399">இலக்கணம் மற்றும் எழுத்துப்பிழை</translation> <translation id="1361164813881551742">கைமுறையாகச் சேர்</translation> <translation id="1361655923249334273">பயன்படுத்தாத</translation> +<translation id="1361872463926621533">தொடக்கத்தில் ஒலியை இயக்கு</translation> <translation id="1363028406613469049">ட்ராக் எண்</translation> <translation id="1367951781824006909">கோப்பைத் தேர்வுசெய்க</translation> <translation id="1368265273904755308">சிக்கலைப் புகார் செய்க</translation> @@ -445,7 +446,7 @@ <translation id="1644574205037202324">வரலாறு</translation> <translation id="1645516838734033527"><ph name="DEVICE_TYPE" />ஐப் பாதுகாப்பாக வைக்க, Smart Lockக்கு உங்கள் மொபைலில் திரைப் பூட்டை இயக்க வேண்டும்.</translation> <translation id="1646102270785326155">இந்தப் பயனரை அகற்றியதும், பயனருடன் தொடர்புடைய எல்லா கோப்புகளும் அகத் தரவும் நிரந்தரமாக நீக்கப்படும். இதன் பின்னரும் $1 ஆல் உள்நுழைய முடியும்.</translation> -<translation id="1646982517418478057">இந்தச் சான்றிதழை முறைமையாக்க கடவுச்சொல்லை உள்ளிடவும்</translation> +<translation id="1646982517418478057">இந்தச் சான்றிதழை என்க்ரிப்ட் செய்ய கடவுச்சொல்லை உள்ளிடவும்</translation> <translation id="164814987133974965">கண்காணிக்கப்படும் பயனர் உங்கள் வழிகாட்டுதலினால் இணையத்தைக் உலாவலாம். கண்காணிப்பு பயனரின் நிர்வாகியாக, நீங்கள் குறிப்பிட்ட இணையத்தளங்களை <ph name="BEGIN_BOLD" />அனுமதிக்கலாம் அல்லது தடுக்கலாம்<ph name="END_BOLD" />, கண்காணிப்பு பயனர் பார்வையிட்ட இணையதளங்களை <ph name="BEGIN_BOLD" />மதிப்பாய்வு செய்யலாம்<ph name="END_BOLD" /> மற்றும் @@ -455,7 +456,7 @@ <translation id="1650371550981945235">உள்ளீட்டு விருப்பங்களைக் காட்டு</translation> <translation id="1650709179466243265">முகவரியைத் திறக்க, www. மற்றும் .com ஐச் சேருங்கள்</translation> <translation id="1651008383952180276">ஒரே கடவுச்சொற்றொடரை இருமுறை உள்ளிட வேண்டும்</translation> -<translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Google கிளவுடு அச்சுடன் பிரிண்டரைச் சேர்த்து, எங்கிருந்தும் அச்சிடலாம்.}other{Google கிளவுடு அச்சுடன் # பிரிண்டர்களைச் சேர்த்து, எங்கிருந்தும் அச்சிடலாம்.}}</translation> +<translation id="1653526288038954982">{NUM_PRINTER,plural, =1{Google கிளவுட் அச்சுடன் பிரிண்டரைச் சேர்த்து, எங்கிருந்தும் அச்சிடலாம்.}other{Google கிளவுட் அச்சுடன் # பிரிண்டர்களைச் சேர்த்து, எங்கிருந்தும் அச்சிடலாம்.}}</translation> <translation id="1657406563541664238">தானாகவே பயன்பாட்டு புள்ளிவிவரங்களையும் சிதைவு புகார்களையும் Google க்கு அனுப்புவதன் மூலம், <ph name="PRODUCT_NAME" /> ஐ மேலும் சிறப்பானதாக்க உதவுங்கள்</translation> <translation id="1658424621194652532">இந்தப் பக்கமானது உங்கள் மைக்ரோஃபோனை அணுகுகிறது.</translation> <translation id="1660204651932907780">ஒலியை இயக்க, தளங்களை அனுமதிக்கும் (பரிந்துரைக்கப்படுவது)</translation> @@ -570,6 +571,7 @@ <translation id="1817310072033858383"><ph name="DEVICE_TYPE" />க்கு Smart Lockஐ அமைக்கவும்</translation> <translation id="1817871734039893258">Microsoft File Recovery</translation> <translation id="1818007989243628752"><ph name="USERNAME" /> இன் கடவுச்சொல்லை நீக்கும்</translation> +<translation id="1818913467757368489">பதிவு ஏற்றப்படுகிறது.</translation> <translation id="1819721979226826163">பயன்பாட்டு அறிவிப்புகள் > Google Play சேவைகள் என்பதைத் தட்டவும்.</translation> <translation id="1826516787628120939">சரிபார்க்கிறது</translation> <translation id="1828378091493947763">சாதனத்தில் இந்தச் செருகுநிரல் ஆதரிக்கப்படவில்லை</translation> @@ -618,11 +620,13 @@ <translation id="1890674179660343635"><span>ஐடி: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">முழுத் திரையைத் திற</translation> <translation id="189358972401248634">பிற மொழிகள்</translation> +<translation id="1894591787927543791">Google Payயைப் பயன்படுத்த, கார்டைச் சேமி</translation> <translation id="1895658205118569222">நிறுத்தம்</translation> <translation id="1895934970388272448">இந்தச் செயல்முறையை முடிக்க உங்கள் அச்சுப்பொறியில் பதிவை உறுதிப்படுத்த வேண்டும் - அதை இப்போது சரிபார்க்கவும்.</translation> <translation id="1897762215429052132">நெட்வொர்க் இணைப்பு, மொழி, கீபோர்டு தளவமைப்பு ஆகியவற்றை அமைக்கவும்...</translation> <translation id="1901303067676059328">அ&னைத்தையும் தேர்ந்தெடு</translation> <translation id="1902576642799138955">செல்லுபடிக் காலம்</translation> +<translation id="1904518222538904133">உங்கள் கார்டுகளில் ஒன்றை மட்டுமே இந்தச் சாதனத்தில் பயன்படுத்த முடியும்</translation> <translation id="1905375423839394163">Chromebookகின் சாதனப் பெயர்</translation> <translation id="1905710495812624430">அனுமதிக்கப்பட்ட அதிகபட்ச முயற்சிகளைக் கடந்துவிட்டீர்கள்.</translation> <translation id="1909880997794698664">இந்தச் சாதனத்தை kiosk பயன்முறையில் நிரந்தரமாக வைக்க விரும்புகிறீர்களா?</translation> @@ -659,6 +663,7 @@ <translation id="1962969542251276847">லாக் ஸ்கிரீன்</translation> <translation id="1963227389609234879">அனைத்தையும் அகற்று</translation> <translation id="1965624977906726414">எந்தச் சிறப்பு அனுமதிகளும் இல்லை.</translation> +<translation id="1969654639948595766">WebRTC உரைப் பதிவுகள் (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">வீடியோ பயன்முறைக்குச் சென்றது</translation> <translation id="197288927597451399">வைத்திரு</translation> <translation id="1974043046396539880">CRL பகிர்வுப் புள்ளிகள்</translation> @@ -773,7 +778,7 @@ <translation id="2144536955299248197">சான்றிதழ் பார்வையாளர்: <ph name="CERTIFICATE_NAME" /></translation> <translation id="2148219725039824548">பகிர்வை ஏற்றுவதில் பிழை. குறிப்பிட்ட பகிர்வானது நெட்வொர்க்கில் இல்லை.</translation> <translation id="2148756636027685713">வடிவமைத்தல் முடிந்தது</translation> -<translation id="2148892889047469596">தாவலை அனுப்பு</translation> +<translation id="2148892889047469596">தாவலை அலைபரப்பு</translation> <translation id="2149850907588596975">கடவுச்சொற்களும் படிவங்களும்</translation> <translation id="2150139952286079145">இலக்குகளைத் தேடு</translation> <translation id="2150661552845026580">"<ph name="EXTENSION_NAME" />" சேர்க்க வேண்டுமா?</translation> @@ -802,6 +807,7 @@ <translation id="2190069059097339078">வைஃபை கிரெடென்ஷியல் கெட்டர்</translation> <translation id="219008588003277019">இயல்பான கிளையண்ட் தொகுதிக்கூறு: <ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(காலி)</translation> +<translation id="2191223688506386601">இறுதியாக ஒரு விஷயம்</translation> <translation id="2192505247865591433">அனுப்புநர்:</translation> <translation id="2193365732679659387">நம்பிக்கை தொடர்பான அமைப்புகள்</translation> <translation id="2195729137168608510">மின்னஞ்சல் பாதுகாப்பு</translation> @@ -1025,6 +1031,7 @@ <translation id="2534460670861217804">பாதுகாப்பான HTTP ப்ராக்ஸி</translation> <translation id="253557089021624350">கீப்அலைவ் கவுண்ட்</translation> <translation id="2538361623464451692">ஒத்திசைவு முடக்கப்பட்டது</translation> +<translation id="2539876824180063438">உங்கள் கைரேகையின் வெவ்வேறு பகுதிகளைச் சேர்க்க, உங்கள் சுட்டு விரலைச் சற்று நகர்த்தவும்.</translation> <translation id="2541002089857695151">முழுத்திரை அலைபரப்பலை மேம்படுத்தவா?</translation> <translation id="2542049655219295786">Google அட்டவணை</translation> <translation id="2544853746127077729">அங்கீகரிப்புச் சான்றிதழ் நெட்வொர்க்கால் நிராகரிக்கப்பட்டது</translation> @@ -1034,7 +1041,7 @@ <translation id="2553340429761841190"><ph name="PRODUCT_NAME" /> ஆல் <ph name="NETWORK_ID" /> உடன் இணைய முடியவில்லை. மற்றொரு நெட்வொர்க்கைத் தேர்ந்தெடுங்கள் அல்லது மீண்டும் முயற்சி செய்யுங்கள்.</translation> <translation id="2553440850688409052">இந்தச் செருகுநிரலை மறை</translation> <translation id="2554553592469060349">தேர்ந்தெடுத்தக் கோப்பு மிகப் பெரியதாகும் (அதிகபட்ச அளவு: 3மெ.பை.).</translation> -<translation id="2557899542277210112">விரைவு அணுகலுக்கு, உங்கள் புக்மார்க்ஸை புக்மார்க்ஸ் பட்டியில் இங்கே பொருத்துக.</translation> +<translation id="2557899542277210112">விரைவு அணுகலுக்கு உங்கள் புக்மார்க்ஸை புக்மார்க்ஸ் பட்டியில் இங்கே பொருத்துக.</translation> <translation id="2558896001721082624">சாதன மெனுவில் அணுகல்தன்மை விருப்பத்தேர்வுகளை எப்போதும் காட்டு</translation> <translation id="2562685439590298522">டாக்ஸ்</translation> <translation id="2562743677925229011"><ph name="SHORT_PRODUCT_NAME" /> இல் உள்நுழைந்திருக்கவில்லை</translation> @@ -1142,7 +1149,7 @@ <translation id="2704184184447774363">Microsoft Document Signing</translation> <translation id="270516211545221798">டச்பேடின் வேகம்</translation> <translation id="2705736684557713153">திரையின் கீழ்ப் பகுதிக்குச் சென்று, "உடனடி இணைப்பு முறை" இருக்கிறதா என்று பார்க்கவும். இருந்தால் அதை இயக்கவும். இல்லை எனில், அதை ஏற்கனவே அமைத்துவிட்டீர்கள்.</translation> -<translation id="2706954854267016964">தேர்ந்தெடுக்கப்பட்ட Google மேகக்கணினி அச்சு சாதனமானது, இனி ஆதரிக்கப்படாது. உங்கள் கணினியின் சிஸ்டம் அமைப்புகளில் பிரிண்டரை அமைக்க முயலவும்.</translation> +<translation id="2706954854267016964">தேர்ந்தெடுக்கப்பட்ட Google கிளவுட் அச்சு சாதனம் இனி ஆதரிக்கப்படாது. உங்கள் கம்ப்யூட்டரின் சிஸ்டம் அமைப்புகளில் பிரிண்டரை அமைக்க முயலவும்.</translation> <translation id="2707024448553392710">உறுப்பு பதிவிறக்கப்படுகிறது</translation> <translation id="270921614578699633">இதன் சராசரி</translation> <translation id="2709453993673701466">ஒத்திசைவையும் தனிப்பயனாக்கத்தையும் இயக்குவதற்கு முன், அவற்றை நிர்வகிக்க வேண்டுமா? <ph name="BEGIN_LINK" />அமைப்புகளுக்குச்<ph name="END_LINK" /> செல்லவும்.</translation> @@ -1236,8 +1243,8 @@ <translation id="2838379631617906747">நிறுவுகிறது</translation> <translation id="2841837950101800123">வழங்குநர்</translation> <translation id="2843806747483486897">இயல்புநிலைக்கு மாற்று...</translation> -<translation id="2845382757467349449">எப்பொழுதும் புக்மார்க்ஸ் பட்டியைக் காண்பி</translation> -<translation id="2847759467426165163">இதற்கு அனுப்பு</translation> +<translation id="2845382757467349449">எப்பொழுதும் புக்மார்க்ஸ் பட்டியைக் காட்டு</translation> +<translation id="2847759467426165163">இதற்கு அலைபரப்பு</translation> <translation id="284805635805850872">தீங்கிழைக்கும் மென்பொருளை அகற்றவா?</translation> <translation id="284970761985428403"><ph name="ASCII_NAME" /> (<ph name="UNICODE_NAME" />)</translation> <translation id="284975061945174219">சுத்தப்படுத்த முடியவில்லை</translation> @@ -1259,7 +1266,9 @@ <translation id="287286579981869940"><ph name="PROVIDER_NAME" />ஐச் சேர்...</translation> <translation id="2874343608108773609">உங்கள் எல்லாச் சாதனங்களிலும் கடவுச்சொற்களைப் பெற, Chrome இல் உள்நுழையவும்.</translation> <translation id="2875698561019555027">(Chrome பிழைப் பக்கங்கள்)</translation> +<translation id="2876336351874743617">விரல் 2</translation> <translation id="288042212351694283">உங்கள் யுனிவர்சல் 2ஆம் நிலை சாதனங்களை அணுகும்</translation> +<translation id="2881076733170862447">நீங்கள் நீட்டிப்பைக் கிளிக் செய்யும்போது</translation> <translation id="2881966438216424900">கடைசியாக அணுகியது:</translation> <translation id="2882943222317434580">சிறிது நேரத்தில் <ph name="IDS_SHORT_PRODUCT_NAME" /> மீண்டும் துவங்கப்பட்டு, மீட்டமைக்கப்படும்</translation> <translation id="2885378588091291677">பணி நிர்வாகி</translation> @@ -1445,6 +1454,7 @@ <translation id="3154429428035006212">ஒரு மாதத்திற்கும் மேலாக ஆஃப்லைனில் உள்ளது</translation> <translation id="3156531245809797194">Chromeஐப் பயன்படுத்த, உள்நுழையவும்</translation> <translation id="3157931365184549694">மீட்டமை</translation> +<translation id="3158033540161634471">உங்கள் கைரேகையை அமைக்கவும்</translation> <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (வன்பொருளில் சேமிக்கப்பட்டிருக்கும்)</translation> <translation id="316125635462764134">பயன்பாட்டை அகற்று</translation> <translation id="3161522574479303604">எல்லா மொழிகளும்</translation> @@ -1514,9 +1524,10 @@ <translation id="3285322247471302225">புதிய &தாவல்</translation> <translation id="3288047731229977326">டெவெலப்பர் பயன்முறையில் இயங்கிக்கொண்டிருக்கும் நீட்டிப்புகள் உங்கள் கணினிக்குத் தீங்கு விளைவிக்கலாம். நீங்கள் டெவெலப்பர் இல்லையென்றால், பாதுகாப்பாக இருப்பதற்கு டெவெலப்பர் பயன்முறையில் இயங்கிக்கொண்டிருக்கும் இந்த நீட்டிப்புகளை முடக்க வேண்டும்.</translation> <translation id="3289856944988573801">புதுப்பிப்புகளைப் பார்க்க, ஈத்தர்நெட் அல்லது வைஃபை ஐப் பயன்படுத்தவும்.</translation> -<translation id="3292421191230118801">மொபைலில் பார்த்துக் கொண்டிருந்த தளங்களை உங்கள் Chromebookகில் தொடர்ந்து பார்க்கலாம்</translation> <translation id="32939749466444286">Linux கண்டெய்னர் தொடங்கவில்லை. மீண்டும் முயலவும்.</translation> <translation id="3294437725009624529">விருந்தினர்</translation> +<translation id="329703603001918157">ஷார்ட்கட்டைத் திருத்த முடியவில்லை</translation> +<translation id="3297951628821704004">இந்தச் சாதனத்திலிருந்து கணக்கை அகற்று</translation> <translation id="329838636886466101">சரிசெய்</translation> <translation id="3298789223962368867">செல்லாத URL உள்ளிடப்பட்டது.</translation> <translation id="32991397311664836">சாதனங்கள்:</translation> @@ -1527,7 +1538,7 @@ <translation id="3305329619209039989">டச் பாயிண்ட்களைக் காட்டும்</translation> <translation id="3305389145870741612">வடிவமைப்பு செயலாக்கத்திற்கு சில வினாடிகள் ஆகும். காத்திருக்கவும்.</translation> <translation id="3305661444342691068">PDF ஐ மாதிரிக்காட்யில் திறக்கவும்</translation> -<translation id="3306684685104080068">Google Hangouts போன்ற கிளவுடு சார்ந்த சேவைகளுக்கு அனுப்புதலை இயக்கு.</translation> +<translation id="3306684685104080068">Google Hangouts போன்ற கிளவுடு சார்ந்த சேவைகளுக்கு அலைபரப்புதலை இயக்கு.</translation> <translation id="3308006649705061278">நிறுவன யூனிட் (OU)</translation> <translation id="3308116878371095290">இந்தப் பக்கம் குக்கீகளை அமைப்பதிலிருந்து தடுக்கப்பட்டது.</translation> <translation id="3308134619352333507">பொத்தானை மறை</translation> @@ -1586,7 +1597,7 @@ <translation id="340485819826776184">தேடல்களையும் முகவரிப் பட்டியில் தட்டச்சு செய்யப்பட்ட URLகளையும் பூர்த்தி செய்ய, ஒரு கணிப்பு சேவையைப் பயன்படுத்துக</translation> <translation id="3405664148539009465">எழுத்துருக்களைத் தனிப்பயனாக்கு</translation> <translation id="3405763860805964263">...</translation> -<translation id="3406605057700382950">புக்மார்க்ஸ் பட்டியைக் &காண்பி</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> @@ -1682,6 +1693,7 @@ <translation id="3534879087479077042">கண்காணிக்கப்படும் பயனர் என்றால் என்ன?</translation> <translation id="3538066758857505094">Linuxஸை நிறுவல் நீக்கும்போது பிழை ஏற்பட்டது. மீண்டும் முயலவும்.</translation> <translation id="354060433403403521">AC அடாப்டர்</translation> +<translation id="354068948465830244">இந்த நீட்டிப்பால் தளத் தரவைப் படிக்கவும் மாற்றவும் முடியும்</translation> <translation id="3541661933757219855">மறைப்பதற்கு Ctrl+Alt+/ அல்லது Escape ஐ அழுத்தவும்</translation> <translation id="3543393733900874979">புதுப்பிப்பு தோல்வி (பிழை: <ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">SHA-512 உடனான X9.62 ECDSA கையொப்பம்</translation> @@ -1716,7 +1728,7 @@ <translation id="359283478042092570">உள்நுழைக</translation> <translation id="3593965109698325041">சான்றிதழ் பெயர் கட்டுப்பாடுகள்</translation> <translation id="3594089623005973443">ஒரு தாளிற்கான பக்கங்கள்</translation> -<translation id="3596235046596950091">மேகக்கணிச் சேவைகளை இயக்கு</translation> +<translation id="3596235046596950091">கிளவுட் சேவைகளை இயக்கு</translation> <translation id="3599863153486145794">உள்நுழைந்த எல்லாச் சாதனங்களிலிருந்தும் வரலாற்றை அழிக்கும். உங்கள் Google கணக்கு, <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> என்ற இணைப்பில் உலாவல் வரலாறு தொடர்பான பிற தகவல்களைக் கொண்டிருக்கக்கூடும்.</translation> <translation id="3600792891314830896">ஒலியை இயக்கும் தளங்களில் ஒலியடக்கு</translation> <translation id="3602290021589620013">மாதிரிக்காட்சி</translation> @@ -1727,6 +1739,7 @@ <translation id="3606712892509067288">Better Togetherரிலிருந்து அகற்றும்</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">பயனர் படத்தின் மாதிரிக்காட்சி</translation> +<translation id="3609446736023031597">Play Store ஆப்ஸில் சமீபத்திய புதுப்பிப்புகளையும் பரிந்துரைகளையும் பெறுக</translation> <translation id="3609785682760573515">ஒத்திசைக்கிறது...</translation> <translation id="3609895557594655134">Android VPNஐச் சேர்...</translation> <translation id="361106536627977100">ஃப்ளாஷ் தரவு</translation> @@ -1759,6 +1772,7 @@ <translation id="3645372836428131288">கைரேகையின் வேறொரு பகுதியைப் பதிவுசெய்ய, விரலைக் கொஞ்சம் நகர்த்தவும்.</translation> <translation id="3648348069317717750"><ph name="USB_DEVICE_NAME" /> கண்டறியப்பட்டது</translation> <translation id="3649138363871392317">படம் எடுக்கப்பட்டது</translation> +<translation id="3650845953328929506">பதிவைப் பதிவேற்றுவது நிலுவையிலுள்ளது.</translation> <translation id="3650952250015018111">"<ph name="APP_NAME" />"ஐ அணுக அனுமதி:</translation> <translation id="3651488188562686558">வைஃபை இணைப்பைத் துண்டி</translation> <translation id="3652817283076144888">துவக்குகிறது</translation> @@ -1807,7 +1821,7 @@ <translation id="3719826155360621982">முகப்புப் பக்கம்</translation> <translation id="3720996970802414353">எப்படியேனும் மாற்று</translation> <translation id="3722108462506185496">விர்ச்சுவல் மெஷின் சேவையைத் தொடங்கும்போது பிழை ஏற்பட்டது. பிறகு முயலவும்.</translation> -<translation id="3723158278575423087">Chromium இன் அனுப்புதல் அனுபவத்திற்கு வரவேற்கிறோம்!</translation> +<translation id="3723158278575423087">Chromiumமில் அலைபரப்பும் அனுபவத்திற்கு வரவேற்கிறோம்!</translation> <translation id="3725367690636977613">பக்கங்கள்</translation> <translation id="3726463242007121105">இந்த சாதனத்தின் கோப்புமுறைமை ஆதரிக்கப்படாததால், இந்த சாதனத்தை திறக்க முடியவில்லை.</translation> <translation id="3727148787322499904">இந்த அமைப்பை மாற்றினால், பகிர்ந்த எல்லா நெட்வொர்க்குகளும் பாதிக்கப்படும்</translation> @@ -1910,12 +1924,13 @@ <translation id="3856800405688283469">நேரமண்டலத்தைத் தேர்ந்தெடுக்கவும்</translation> <translation id="3857228364945137633">உங்கள் மொபைல் அருகில் இருக்கும் போது, கடவுச்சொல்லை உள்ளிடாமல் <ph name="DEVICE_TYPE" /> சாதனத்தைத் திறக்க, Smart Lockஐப் பயன்படுத்திப் பார்க்கவும்.</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation> +<translation id="3857807444929313943">விரலை எடுத்துவிட்டு மீண்டும் தொடவும்</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: ஒத்திசைவு இடைநிறுத்தப்பட்டுள்ளது</translation> <translation id="3860381078714302691">Hangouts Meetக்கு வரவேற்கிறோம்</translation> <translation id="3861241522664181545">பக்கம் இடைநிறுத்தப்பட்டுள்ளது.</translation> -<translation id="3862134173397075045">Chrome இன் அனுப்புதல் அனுபவத்திற்கு வரவேற்கிறோம்!</translation> +<translation id="3862134173397075045">Chromeமில் அலைபரப்பும் அனுபவத்திற்கு வரவேற்கிறோம்!</translation> <translation id="3862693525629180217">உள்ளமைந்த சென்சார் வழியாகச் சரிபார்</translation> -<translation id="3862788408946266506">'kiosk_only' மெனிஃபெஸ்ட் பண்புக்கூறைக் கொண்ட பயன்பாட்டை, Chrome OS கியோஸ்க் பயன்முறையிலேயே நிறுவ வேண்டும்</translation> +<translation id="3862788408946266506">'kiosk_only' மெனிஃபெஸ்ட் பண்புக்கூறைக் கொண்ட ஆப்ஸை Chrome OS கியோஸ்க் பயன்முறையிலேயே நிறுவ வேண்டும்</translation> <translation id="3865414814144988605">தெளிவு</translation> <translation id="386548886866354912"><ph name="EXTENSION_NAME" /> மூலம் தொகுப்பாக்கு</translation> <translation id="3866249974567520381">விவரம்</translation> @@ -1928,6 +1943,7 @@ <translation id="3873315167136380065">இதை இயக்குவதற்கு, <ph name="BEGIN_LINK" />ஒத்திசைவை மீட்டமைத்து<ph name="END_LINK" /> உங்கள் ஒத்திசைவுக் கடவுச்சொற்றொடரை அகற்றவும்.</translation> <translation id="3878840326289104869">கண்காணிக்கப்படும் பயனரை உருவாக்குகிறது</translation> <translation id="3879748587602334249">பதிவிறக்க நிர்வாகி</translation> +<translation id="3885455691202481064">உங்கள் சுட்டு விரலால் சென்சாரைத் தொடவும். அது உங்கள் Chromebookகின் மேல் இடதுபுறத்தில் உள்ளது.</translation> <translation id="3888550877729210209"><ph name="LOCK_SCREEN_APP_NAME" /> மூலம் குறிப்புகளை எடுத்தல்</translation> <translation id="3892414795099177503">OpenVPN / L2TPஐச் சேர்...</translation> <translation id="3893536212201235195">உங்கள் அணுகல்தன்மை அமைப்புகளைப் படித்தல் மற்றும் மாற்றுதல்</translation> @@ -1980,6 +1996,7 @@ <translation id="3950820424414687140">உள்நுழைக</translation> <translation id="3954354850384043518">பதிவிறக்குகிறது</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> ஹெர்ட்ஸ்)</translation> +<translation id="3954953195017194676">சமீபத்தில் எடுக்கப்பட்ட WebRTC நிகழ்வின் பதிவுகள் எதுவும் இல்லை.</translation> <translation id="3955193568934677022">பாதுகாக்கப்பட்ட உள்ளடக்கத்தை இயக்க, தளங்களை அனுமதி (பரிந்துரைக்கப்படுகிறது)</translation> <translation id="3956702100721821638">Google Playஐத் தொடர்புகொள்ள முடியவில்லை</translation> <translation id="3958088479270651626">புக்மார்க்குகளையும் அமைப்புகளையும் இறக்குமதி செய்</translation> @@ -2051,10 +2068,10 @@ <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: உள்நுழைவு பிழை</translation> <translation id="4074900173531346617">மின்னஞ்சல் கையொப்பமிடுநர் சான்றிதழ்</translation> <translation id="407520071244661467">அளவு</translation> -<translation id="4075639477629295004"><ph name="FILE_NAME" />ஐ அனுப்ப முடியவில்லை.</translation> +<translation id="4075639477629295004"><ph name="FILE_NAME" />ஐ அலைபரப்ப முடியவில்லை.</translation> <translation id="4077917118009885966">இந்தத் தளத்தில் விளம்பரங்கள் தடுக்கப்பட்டன</translation> <translation id="4079799245038595838">உங்கள் ஃபோனிற்கு ஓர் அறிவிப்பு அனுப்பப்பட்டுள்ளது. உங்கள் அடையாளத்தை உறுதிசெய்ய, அதிலுள்ள வழிமுறைகளைப் பின்பற்றவும்.</translation> -<translation id="4081242589061676262">கோப்பை அனுப்ப முடியவில்லை.</translation> +<translation id="4081242589061676262">கோப்பை அலைபரப்ப முடியவில்லை.</translation> <translation id="4084682180776658562">புக்மார்க்</translation> <translation id="4084835346725913160"><ph name="TAB_NAME" />ஐ மூடு</translation> <translation id="4085298594534903246">இந்தப் பக்கத்தில் JavaScript ஆனது தடுக்கப்பட்டுள்ளது.</translation> @@ -2129,9 +2146,9 @@ <translation id="4206944295053515692">பரிந்துரைகளுக்கு Google ஐக் கேட்கவும்</translation> <translation id="4208390505124702064"><ph name="SITE_NAME" /> இல் தேடு</translation> <translation id="4209092469652827314">பெரிய</translation> -<translation id="4209464433672152343">ஆவணங்களை அச்சிடுவதற்குத் தயார்படுத்த, அவை <ph name="BEGIN_LINK_HELP" />Googleக்கு அனுப்பப்படும்<ph name="END_LINK_HELP" />. <ph name="BEGIN_LINK_DASHBOARD" />Google மேகக்கணி அச்சு டாஷ்போர்டில்<ph name="END_LINK_DASHBOARD" /> உங்கள் பிரிண்டர்களையும் பிரிண்டர் வரலாற்றையும் பார்க்கலாம், திருத்தலாம் மற்றும் நிர்வகிக்கலாம்.</translation> +<translation id="4209464433672152343">ஆவணங்களை அச்சிடுவதற்குத் தயார்படுத்த, அவை <ph name="BEGIN_LINK_HELP" />Googleளுக்கு அனுப்பப்படும்<ph name="END_LINK_HELP" />. <ph name="BEGIN_LINK_DASHBOARD" />Google கிளவுட் அச்சு டாஷ்போர்டில்<ph name="END_LINK_DASHBOARD" /> உங்கள் பிரிண்டர்களையும் பிரிண்டர் வரலாற்றையும் பார்க்கவும், திருத்தவும் நிர்வகிக்கவும் செய்யலாம்.</translation> <translation id="421017592316736757">இந்த கோப்பை அணுக ஆன்லைனில் இருக்க வேண்டும்.</translation> -<translation id="421182450098841253">புக்மார்க்ஸ் பட்டியைக் &காண்பி</translation> +<translation id="421182450098841253">புக்மார்க்ஸ் பட்டியைக் &காட்டு</translation> <translation id="42126664696688958">ஏற்றுமதி செய்</translation> <translation id="42137655013211669">இந்த ஆதாரத்திற்கான அணுகல் சேவையகத்தால் தடுக்கப்பட்டிருக்கிறது.</translation> <translation id="4215350869199060536">அச்சச்சோ, பெயரில் சட்டவிரோத சின்னங்கள் உள்ளன!</translation> @@ -2208,7 +2225,7 @@ <translation id="4358353773267946514"><ph name="LANGUAGE_1" />, <ph name="LANGUAGE_2" /></translation> <translation id="4359408040881008151">நீட்டிப்பு(கள்) சார்ந்திருப்பதன் காரணமாக நிறுவப்பட்டது.</translation> <translation id="4361142739114356624">இந்தக் கிளையன்ட் சான்றிதழுக்கான தனிப்பட்ட குறியீடு இல்லை அல்லது தவறானது</translation> -<translation id="4363771538994847871">அனுப்புவதற்கான சாதனங்கள் இல்லை. உதவி வேண்டுமா?</translation> +<translation id="4363771538994847871">எங்கே அலைபரப்புவது என்று கண்டறிய முடியவில்லை. உதவி வேண்டுமா?</translation> <translation id="4364567974334641491"><ph name="APP_NAME" /> சாளரத்தைப் பகிர்கிறது.</translation> <translation id="4364830672918311045">அறிவிப்புகளைக் காட்டலாம்</translation> <translation id="4365673000813822030">அச்சச்சோ, ஒத்திசைவு பணியை நிறுத்தியுள்ளது.</translation> @@ -2233,6 +2250,7 @@ <translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation> <translation id="4408599188496843485">உ&தவி</translation> <translation id="4409697491990005945">ஓரங்கள்</translation> +<translation id="4410545552906060960">உங்கள் சாதனத்தைத் திறக்க, கடவுச்சொல்லுக்குப் பதிலாக ஓர் எண்ணை (பின்) பயன்படுத்தலாம். பிறகு அமைப்புகளுக்குச் சென்று உங்கள் பின்னை அமைத்துக் கொள்ளலாம்.</translation> <translation id="4411578466613447185">குறியீடு அங்கீகரிப்பாளர்</translation> <translation id="4412698727486357573">உதவி மையம்</translation> <translation id="44141919652824029">உங்கள் இணைத்த USB சாதனங்களின் பட்டியலைப் பெற, "<ph name="APP_NAME" />"ஐ அனுமதிக்க வேண்டுமா?</translation> @@ -2324,8 +2342,10 @@ <translation id="4555769855065597957">நிழல்</translation> <translation id="4556110439722119938">புக்மார்க்குகள், வரலாறு, கடவுச்சொற்கள் மற்றும் பிற அமைப்புகள் ஆகியவை உங்கள் Google கணக்குடன் ஒத்திசைக்கப்படும் என்பதால் அவற்றை எல்லா சாதனங்களிலும் பயன்படுத்தலாம்</translation> <translation id="4558426062282641716">தானியங்கு துவக்கத்திற்கான அனுமதி கோரப்பட்டது</translation> +<translation id="4558491878126948419"><ph name="DEVICE_TYPE" /> உதவிக்குறிப்புகள் மற்றும் Google தயாரிப்புகள் தொடர்பான அறிவிப்புகளைப் பெறலாம், கருத்தைப் பகிரலாம். எந்த நேரத்திலும் குழுவிலகலாம்.</translation> <translation id="4559617833001311418">நகர்வு அல்லது ஒளி சென்சார்களை இந்தத் தளம் பயன்படுத்துகிறது.</translation> <translation id="4562155214028662640">கைரேகையைச் சேர்</translation> +<translation id="4563880231729913339">விரல் 3</translation> <translation id="4565377596337484307">கடவுச்சொல்லை மறைக்கும்</translation> <translation id="4567772783389002344">சொல்லைச் சேர்</translation> <translation id="4568213207643490790">இந்தச் சாதனத்தில் Google கணக்குகள் அனுமதிக்கப்படவில்லை.</translation> @@ -2335,7 +2355,7 @@ <translation id="4572815280350369984"><ph name="FILE_TYPE" /> கோப்பு</translation> <translation id="457386861538956877">மேலும்...</translation> <translation id="4576541033847873020">புளூடூத் சாதனத்தை இணை</translation> -<translation id="4579581181964204535"><ph name="HOST_NAME" />ஐ அனுப்ப முடியவில்லை.</translation> +<translation id="4579581181964204535"><ph name="HOST_NAME" />ஐ அலைபரப்ப முடியவில்லை.</translation> <translation id="4580526846085481512">$1 உருப்படிகளை நிச்சயமாக நீக்க வேண்டுமா?</translation> <translation id="4582497162516204941">Linux (பீட்டா) மூலம் நிறுவு</translation> <translation id="4582563038311694664">எல்லா அமைப்புகளையும் மீட்டமை</translation> @@ -2400,6 +2420,7 @@ <translation id="4681930562518940301">அசல் &படத்தைப் புதிய தாவலில் திற</translation> <translation id="4682551433947286597">உள்நுழைவு திரையில் தோன்றும் வால்பேப்பர்கள்.</translation> <translation id="4684427112815847243">அனைத்தையும் ஒத்திசை</translation> +<translation id="4688036121858134881">சாதனப் பதிவு ஐடி: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4689235506267737042">டெமோ விருப்பங்களைத் தேர்வுசெய்தல்</translation> <translation id="4689421377817139245">இந்தப் புத்தகக்குறியை iPhone உடன் ஒத்திசையுங்கள்</translation> <translation id="4690091457710545971"><Intel வைஃபை நிலைபொருள் உருவாக்கிய நான்கு கோப்புகள்: csr.lst, fh_regs.lst, radio_reg.lst, monitor.lst.sysmon. முதல் மூன்று கோப்புகளும் பதிவு டம்ப்களைக் கொண்டுள்ள பைனரிக் கோப்புகளாகும், அவற்றில் தனிப்பட்ட அல்லது சாதனத்தை அடையாளப்படுத்தும் தகவல்கள் எதுவும் இல்லை என்று Intel உறுதிப்படுத்தியுள்ளது. கடைசிக் கோப்பு, Intel நிலைபொருளைச் சேர்ந்த ஓர் இயக்கக் கண்காணிப்புக் கோப்பாகும்; அதிலிருந்து தனிப்பட்ட அல்லது சாதனத்தை அடையாளப்படுத்தும் தகவல்கள் அகற்றப்பட்டுள்ளன, ஆனால் கோப்பு மிகப் பெரிதாக இருப்பதால் அதை இங்கு காட்ட முடியாது. இந்தக் கோப்புகள் உங்கள் சாதனத்தில் சமீபத்தில் ஏற்பட்ட வைஃபை குறித்த சிக்கல்களுக்குப் பதிலளிக்கையில் உருவாக்கப்பட்டன, அவை இந்தச் சிக்கல்களைப் பிழையறிந்து திருத்துவதற்கு உதவ, Intelலுடன் பகிரப்படும்.></translation> @@ -2430,7 +2451,7 @@ <translation id="4726710629007580002">இந்த நீட்டிப்பை நிறுவ முயற்சிக்கும்போது எச்சரிக்கைகள் இருந்தன:</translation> <translation id="4728558894243024398">ப்ளாட்ஃபார்ம்</translation> <translation id="4731422630970790516">ஷெல்ஃப் உருப்படி 3</translation> -<translation id="4732760563705710320">இந்த வீடியோ உங்கள் cast சாதனத்தில் ஆதரிக்கப்படாது.</translation> +<translation id="4732760563705710320">அடடா, இந்த வீடியோ உங்கள் அலைபரப்பும் சாதனத்தில் ஆதரிக்கப்படவில்லை.</translation> <translation id="4733082559415072992">உங்கள் சாதனத்தின் இருப்பிடத்தை, <ph name="URL" /> பயன்படுத்த விரும்புகிறது</translation> <translation id="4733793249294335256">இருப்பிடம்</translation> <translation id="4734518477988699048">உள்ளீட்டு மதிப்பு தவறானது.</translation> @@ -2584,6 +2605,7 @@ <translation id="4945444280533270988">Smart Lock இயக்கப்பட்டுள்ளது</translation> <translation id="4953689047182316270">அணுகல்தன்மை நிகழ்வுகளுக்குப் பதிலளித்தல்</translation> <translation id="4953808748584563296">இயல்பு ஆரஞ்சுநிற அவதார்</translation> +<translation id="4955710816792587366">பின்னைத் தேர்ந்தெடுக்கவும்</translation> <translation id="4955814292505481804">வருடாந்திரம்</translation> <translation id="4957949153200969297"><ph name="IDS_SHORT_PRODUCT_NAME" /> ஒத்திசைவுடன் தொடர்புடைய அம்சங்களை மட்டுமே இயக்கும்</translation> <translation id="4959262764292427323">கடவுச்சொற்களை வேறு சாதனங்களிலும் பயன்படுத்துவதற்காக, அவை உங்கள் Google கணக்கில் சேமிக்கப்பட்டுள்ளன</translation> @@ -2649,6 +2671,7 @@ <translation id="5050042263972837708">குழுப் பெயர்</translation> <translation id="5052499409147950210">தளத்தைத் திருத்து</translation> <translation id="5053604404986157245">தோராயமாக உருவாக்கப்பட்ட TPM கடவுச்சொல் கிடைக்கவில்லை. இது பவர்வாஷுக்குப் பிறகு இயல்பாக ஏற்படக்கூடியது.</translation> +<translation id="5057110919553308744">நீங்கள் நீட்டிப்பைக் கிளிக் செய்யும்போது</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{இந்தக் கோப்புறையில் ஒரு புத்தகக்குறி உள்ளது. அதை நிச்சயமாக நீக்க விரும்புகிறீர்களா?}other{இந்தக் கோப்புறையில் # புத்தகக்குறிகள் உள்ளன. அவற்றை நிச்சயமாக நீக்க விரும்புகிறீர்களா?}}</translation> <translation id="5061708541166515394">ஒளி மாறுபாடு</translation> <translation id="5062930723426326933">உள்நுழைவில் தோல்வி, இணையத்துடன் இணைத்து மீண்டும் முயற்சிக்கவும்.</translation> @@ -2824,6 +2847,7 @@ <translation id="5315873049536339193">அடையாளம்</translation> <translation id="5316716239522500219">மானிட்டர்களைப் பிரதிபலி</translation> <translation id="5317780077021120954">சேமி</translation> +<translation id="5318819489018851358">Linuxஸுடன் பகிர்</translation> <translation id="5319359161174645648">Google ஆனது Chromeஐப் பரிந்துரைக்கிறது</translation> <translation id="5319566035256672173">இந்தச் சாதனம் இனி மென்பொருள் குறித்த சமீபத்திய அறிவிப்புகளைப் பெறாது. சாதனத்தை மேம்படுத்தும்படி பரிந்துரைக்கிறோம்.</translation> <translation id="532247166573571973">சேவையகத்தைத் தொடர்புகொள்ள முடியாதிருக்கலாம். மீண்டும் முயலவும்.</translation> @@ -2874,7 +2898,7 @@ <translation id="5382591305415226340">ஆதரிக்கப்படும் இணைப்புகளை நிர்வகி</translation> <translation id="5384883051496921101">இந்தத் தளமானது மறைநிலைக்கு வெளியே உள்ள பயன்பாட்டுடன் தகவலைப் பகிரவிருக்கிறது.</translation> <translation id="5388885445722491159">சேர்க்கப்பட்டவை</translation> -<translation id="5389237414310520250">புதிய பயனரை உருவாக்க முடியவில்லை. உங்கள் வட்டு இயக்ககத்தின் இடம் மற்றும் அனுமதிகளைச் சரிபார்த்து மீண்டும் முயலவும்.</translation> +<translation id="5389237414310520250">புதிய பயனரை உருவாக்க முடியவில்லை. உங்கள் ஹார்ட் டிரைவில் உள்ள இடத்தையும் அனுமதிகளையும் சரிபார்த்து மீண்டும் முயலவும்.</translation> <translation id="5390100381392048184">ஒலியை இயக்க, தளங்களை அனுமதி</translation> <translation id="5390284375844109566">அட்டவணைப்படுத்திய தரவுத்தளம்</translation> <translation id="5390743329570580756">இதற்காக அனுப்பு:</translation> @@ -2934,7 +2958,7 @@ <translation id="5464632865477611176">இப்போது இயக்கு</translation> <translation id="5465662442746197494">உதவி தேவையா?</translation> <translation id="5469954281417596308">புக்மார்க் நிர்வாகி</translation> -<translation id="5471768120198416576">வணக்கம்! நான் தான் உங்கள் உரையிலிருந்து பேச்சின் குரல்</translation> +<translation id="5471768120198416576">வணக்கம்! நான் தான் உங்கள் உரையைப் பேசும் குரல்</translation> <translation id="5473333559083690127">புதிய பின்னை மீண்டும் உள்ளிடவும்</translation> <translation id="5481941284378890518">அருகிலுள்ள பிரிண்டர்களைச் சேர்</translation> <translation id="5483785310822538350">கோப்பு மற்றும் சாதன அணுகலை ரத்துசெய்</translation> @@ -2986,7 +3010,7 @@ <translation id="5534304873398226603">படம் அல்லது வீடியோவை நிராகரி</translation> <translation id="5534520101572674276">அளவைக் கணக்கிடுகிறது</translation> <translation id="5535941515421698170">அத்துடன், தற்போதுள்ள தரவையும் இந்தச் சாதனத்திலிருந்து அகற்று</translation> -<translation id="5537725057119320332">அனுப்பு</translation> +<translation id="5537725057119320332">அலைபரப்பு</translation> <translation id="5539221284352502426">சேவையகம் நீங்கள் உள்ளிட்ட கடவுச்சொல்லை நிராகரித்தது. நிராகரிப்பிற்கான சாத்தியமான காரணங்கள்: கடவுச்சொல் மிகச் சிறியது. கடவுச்சொல்லில் எண்கள் அல்லது குறியீடுகள் இருக்க வேண்டும். முந்தைய கடவுச்சொற்களிலிருந்து தற்போதைய கடவுச்சொல் வேறுபட்டு இருக்க வேண்டும்.</translation> <translation id="5541687815721799001">பயன்பாட்டைப் பயன்படுத்து</translation> <translation id="5542132724887566711">சுயவிவரம்</translation> @@ -3143,7 +3167,7 @@ <translation id="5772265531560382923">{NUM_PAGES,plural, =1{பக்கம் செயல்படும் வரை காத்திருக்கலாம் அல்லது அதிலிருந்து வெளியேறலாம்.}other{பக்கங்கள் செயல்படும் வரை காத்திருக்கலாம் அல்லது அவற்றிலிருந்து வெளியேறலாம்.}}</translation> <translation id="577322787686508614">படித்தல் செயல்பாடு இந்தச் சாதனத்தில் அனுமதிக்கப்படவில்லை: "<ph name="DEVICE_NAME" />".</translation> <translation id="5774295353725270860">கோப்புகள் பயன்பாட்டைத் திற</translation> -<translation id="5774515636230743468">வெளிக்காட்டு:</translation> +<translation id="5774515636230743468">மெனிஃபெஸ்ட்:</translation> <translation id="577624874850706961">குக்கீகளைத் தேடு</translation> <translation id="5777468213129569553">Chromeஐத் திற</translation> <translation id="5778747455497889540">உங்கள் கணினிக்கு ஒதுக்கியுள்ள பாதுகாப்பு மாட்யூலின் கடவுச்சொல் (தற்போக்காக உருவாக்கியது) கீழே வழங்கப்பட்டுள்ளது:</translation> @@ -3165,6 +3189,7 @@ <translation id="5804241973901381774">அனுமதிகள்</translation> <translation id="580571955903695899">தலைப்பின்படி மறுவரிசைப்படுத்து</translation> <translation id="5807290661599647102">திரைப் பூட்டை அமை</translation> +<translation id="5811750797187914944">முடிந்தது</translation> <translation id="5814126672212206791">இணைப்பு வகை</translation> <translation id="5815645614496570556">X.400 முகவரி</translation> <translation id="5816434091619127343">கோரிய பிரிண்டர் மாற்றங்கள், அதைப் பயன்படுத்த முடியாததாக மாற்றும்.</translation> @@ -3202,6 +3227,7 @@ <translation id="5855773610748894548">அச்சச்சோ, பாதுகாப்பு மாட்யூலில் பிழை.</translation> <translation id="5856721540245522153">பிழைத் திருத்த அம்சங்களை இயக்குதல்</translation> <translation id="5857090052475505287">புதிய கோப்புறை</translation> +<translation id="5858490737742085133">Terminal</translation> <translation id="585979798156957858">வெளி மீத்தரவு விசை</translation> <translation id="5860033963881614850">ஆஃப்</translation> <translation id="5860209693144823476">தாவல் 3</translation> @@ -3224,6 +3250,7 @@ <translation id="5882919346125742463">தெரிந்த நெட்வொர்க்குகள்</translation> <translation id="5884474295213649357">இந்தத் தாவல் USB சாதனத்துடன் இணைக்கப்பட்டுள்ளது.</translation> <translation id="5885324376209859881">மீடியா அமைப்புகளை நிர்வகி...</translation> +<translation id="5886009770935151472">விரல் 1</translation> <translation id="5889282057229379085">அதிகபட்ச எண்ணிக்கையிலான இடைப்பட்ட CAகள்: <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">மறுதொடக்கம்</translation> <translation id="5895187275912066135">வழங்கப்பட்டது</translation> @@ -3308,6 +3335,7 @@ <translation id="6025215716629925253">அடுக்கின் அடையாளம்</translation> <translation id="6026047032548434446">பயன்பாட்டை நிறுவவா?</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - USB சாதனம் இணைக்கப்பட்டது</translation> +<translation id="6028117231645531007">கைரேகையைச் சேர்</translation> <translation id="6029027682598229313">Linux நிறுவல் முடிந்தது.</translation> <translation id="6029587122245504742">குறைந்தபட்ச வேகம்</translation> <translation id="6032912588568283682">கோப்பு முறைமை</translation> @@ -3322,6 +3350,7 @@ <translation id="6042308850641462728">மேலும்</translation> <translation id="6043317578411397101"><ph name="APP_NAME" /> <ph name="TAB_NAME" /> உடன் Chrome தாவலைப் பகிர்கிறது.</translation> <translation id="6044805581023976844"><ph name="APP_NAME" /> <ph name="TAB_NAME" /> உடன் Chrome தாவலையும் ஆடியோவையும் பகிர்கிறது.</translation> +<translation id="6047938872139769630">வெளியேறியுள்ளபோது உங்கள் சாதனத்தைத் திறக்க, பின்னைப் பயன்படுத்தலாம்</translation> <translation id="6049004884579590341">முழுத் திரையிலிருந்து வெளியேற, |<ph name="ACCELERATOR" />| என்பதை அழுத்திப் பிடித்திருக்கவும்</translation> <translation id="6049065490165456785">உட்புற கேமராவிலிருந்து படம்</translation> <translation id="6051354611314852653">அச்சச்சோ! அமைப்பானது இந்தச் சாதனத்திற்கான API அணுகலை அங்கீகரிக்க தவறியது.</translation> @@ -3344,6 +3373,7 @@ <translation id="6075907793831890935"><ph name="HOSTNAME" /> எனப் பெயரிடப்பட்ட சாதனத்துடன் தரவைப் பரிமாறவும்</translation> <translation id="6076448957780543068">இந்த ஸ்கிரீன் ஷாட்டைச் சேர்</translation> <translation id="6077131872140550515">விருப்பப்பட்டியலிலிருந்து அகற்று</translation> +<translation id="6077189836672154517"><ph name="DEVICE_TYPE" /> பற்றிய உதவிக்குறிப்புகளும் அறிவிப்புகளும்</translation> <translation id="6078323886959318429">குறுக்குவழியைச் சேர்</translation> <translation id="6078752646384677957">உங்கள் மைக்ரோஃபோனையும் ஆடியோ நிலைகளையும் சரிபார்க்கவும்.</translation> <translation id="6080515710685820702">பலரும் பயன்படுத்தும் கணினியைப் பயன்படுத்துகிறீர்களா? மறைநிலைச் சாளரத்தைப் பயன்படுத்திப் பார்க்கவும்.</translation> @@ -3393,6 +3423,7 @@ <translation id="6144938890088808325">Chromebookகளை இன்னும் சிறப்பானதாக்க உதவவும்</translation> <translation id="6146563240635539929">வீடியோக்கள்</translation> <translation id="6147020289383635445">அச்சு மாதிரிக்காட்சி தோல்வி.</translation> +<translation id="6148052338549899048">தகுதியான சாதனங்கள் இல்லை. <ph name="LINK_BEGIN" />மேலும் அறிக.<ph name="LINK_END" /></translation> <translation id="614940544461990577">இவற்றைச் செய்து பார்க்கவும்:</translation> <translation id="6150853954427645995">இந்தக் கோப்பை ஆஃப்லைனில் பயன்படுத்துவதற்காகச் சேமிப்பதற்கு, இணைய இணைப்பை இயக்கி, கோப்பில் வலது கிளிக் செய்யவும், பின்னர் <ph name="OFFLINE_CHECKBOX_NAME" /> விருப்பத்தைத் தேர்ந்தெடுக்கவும்.</translation> <translation id="6151323131516309312"><ph name="SITE_NAME" /> ஐத் தேட <ph name="SEARCH_KEY" /> ஐ அழுத்துக</translation> @@ -3410,8 +3441,9 @@ <translation id="6165508094623778733">மேலும் அறிக</translation> <translation id="6166185671393271715">Chromeக்குக் கடவுச்சொற்களை இறக்குதல்</translation> <translation id="6169040057125497443">உங்கள் மைக்ரோஃபோனைச் சரிபார்க்கவும்.</translation> -<translation id="6169666352732958425">டெஸ்க்டாப்பை அனுப்ப முடியவில்லை.</translation> +<translation id="6169666352732958425">டெஸ்க்டாப்பை அலைபரப்ப முடியவில்லை.</translation> <translation id="6171948306033499786">அச்சிடுவதை இடைநிறுத்து</translation> +<translation id="6173623053897475761">உங்கள் பின்னை மீண்டும் உள்ளிடவும்</translation> <translation id="6175314957787328458">Microsoft Domain GUID</translation> <translation id="6176043333338857209">உங்கள் பாதுகாப்பு விசையைப் பயன்படுத்துவதற்காக, புளூடூத் தற்காலிகமாக இயக்கப்படும்</translation> <translation id="6178664161104547336">ஒரு சான்றிதழைத் தேர்ந்தெடு</translation> @@ -3513,7 +3545,7 @@ <translation id="6325191661371220117">தானியங்கு துவக்கியை முடக்கு</translation> <translation id="6326175484149238433">Chrome இலிருந்து அகற்று</translation> <translation id="6326855256003666642">கீப்அலைவ் கவுண்ட்</translation> -<translation id="632744581670418035">விசைப்பலகை மேல்தோற்றம்</translation> +<translation id="632744581670418035">கீபோர்டு மேல் அடுக்கு</translation> <translation id="6327785803543103246">இணைய ப்ராக்ஸியைத் தானாகக் கண்டறி</translation> <translation id="6333064448949140209">கோப்பு பிழைத் திருத்தத்திற்காக Googleளுக்கு அனுப்பப்படும்</translation> <translation id="6333834492048057036">தேடலிற்காக முகவரி பட்டியைக் கவனி</translation> @@ -3536,7 +3568,7 @@ <translation id="6362853299801475928">&சிக்கலைப் புகார் செய்க...</translation> <translation id="6365411474437319296">குடும்பத்தினர் மற்றும் நண்பர்களைச் சேர்</translation> <translation id="636850387210749493">நிறுவனப் பதிவு</translation> -<translation id="6370021412472292592">மேனிஃபெஸ்டை ஏற்ற முடியவில்லை.</translation> +<translation id="6370021412472292592">மெனிஃபெஸ்ட்டை ஏற்ற முடியவில்லை.</translation> <translation id="637062427944097960">இந்தக் கோப்பு மற்றொரு டெஸ்க்டாப்பில் திறக்கப்பட்டது. இதைப் பார்க்க, <ph name="USER_NAME" /> (<ph name="MAIL_ADDRESS" />) க்கு நகர்த்தவும்.</translation> <translation id="6374077068638737855">Iceweasel</translation> <translation id="6374108032506706911">Androidக்கான Smart Lockஐ அமை</translation> @@ -3601,11 +3633,13 @@ <translation id="6456394469623773452">நன்றாக உள்ளது</translation> <translation id="6456631036739229488">Smart Lock மொபைல் மாற்றப்பட்டது. Smart Lockஐப் புதுப்பிக்க, கடவுச்சொல்லை உள்ளிடவும். அடுத்த முறை, உங்கள் மொபைலானது <ph name="DEVICE_TYPE" /> சாதனத்தைத் திறக்கும். அமைப்புகளுக்குச் சென்று, Smart Lockஐ முடக்கலாம்.</translation> <translation id="645705751491738698">JavaScript ஐத் தடுப்பதைத் தொடர்க</translation> +<translation id="6458701200018867744">பதிவேற்ற முடியவில்லை (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">தேடுவதற்கு தேர்ந்தெடுத்ததைப் பயன்படுத்து</translation> <translation id="6459799433792303855">செயலில் உள்ள சாளரம், மற்றொரு திரைக்கு நகர்த்தப்பட்டது.</translation> <translation id="6460601847208524483">அடுத்ததைக் கண்டுபிடி</translation> <translation id="6463795194797719782">&திருத்து</translation> <translation id="6466988389784393586">புக்மார்க்ஸ் அனைத்தையும் &திற</translation> +<translation id="6467304607960172345">முழுத்திரை வீடியோக்களை மேம்படுத்து</translation> <translation id="6468485451923838994">எழுத்துருக்கள்</translation> <translation id="6472207088655375767">OTP</translation> <translation id="6472893788822429178">முகப்பு பொத்தானைக் காண்பி</translation> @@ -3760,7 +3794,7 @@ <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="6700480081846086223"><ph name="HOST_NAME" />ஐ அலைபரப்பு</translation> <translation id="6701535245008341853">சுயவிவரத்தைப் பெற முடியவில்லை.</translation> <translation id="6702639462873609204">&திருத்து...</translation> <translation id="6706210727756204531">வரம்பு</translation> @@ -3775,12 +3809,13 @@ <translation id="6721678857435001674">உங்கள் பாதுகாப்பு விசையின் உற்பத்தியாளர் மற்றும் மாடலைப் பார்க்க விரும்புகிறது</translation> <translation id="6721972322305477112">&File</translation> <translation id="672213144943476270">விருந்தினராக உலாவும் முன், உங்கள் சுயவிவரத்தைத் திறக்கவும்.</translation> -<translation id="6723354935081862304">Google டாக்ஸ் மற்றும் பிற கிளவுடு இலக்குகளுக்கு அச்சிடுக. Google கிளவுடு அச்சில் அச்சிடுவதற்கு <ph name="BEGIN_LINK" />உள் நுழைக<ph name="END_LINK" />.</translation> +<translation id="6723354935081862304">Google Docs மற்றும் பிற கிளவுடு இலக்குகளுக்கு அச்சிடுக. Google கிளவுடு அச்சில் அச்சிடுவதற்கு <ph name="BEGIN_LINK" />உள்நுழைக<ph name="END_LINK" />.</translation> <translation id="6723661294526996303">புக்மார்க்ஸ் மற்றும் அமைப்புகளை இறக்குமதி செய்க...</translation> <translation id="6723839937902243910">ஆற்றல்</translation> <translation id="6725206449694821596">இன்டர்நெட் பிரிண்டிங் புரோட்டோகால் (IPP)</translation> <translation id="6727005317916125192">முந்தைய பலகம்</translation> <translation id="6732801395666424405">சான்றிதழ்கள் ஏற்றப்படவில்லை</translation> +<translation id="6732900235521116609">ஷார்ட்கட்டை அகற்ற முடியவில்லை</translation> <translation id="6735304988756581115">குக்கீகள் மற்றும் பிற தள தரவைக் காண்பி...</translation> <translation id="6736045498964449756">அச்சச்சோ, கடவுச்சொற்கள் பொருந்தவில்லை!</translation> <translation id="6736243959894955139">முகவரி</translation> @@ -3834,7 +3869,7 @@ <translation id="6812841287760418429">மாற்றங்களை வைத்திரு</translation> <translation id="6817174620439930047">MIDI சாதனங்களை அணுகுவதற்காக, தளமானது சாதனத்தின் தனிப்பட்ட செய்திகளைப் பயன்படுத்த விரும்பும் போது, கேள் (பரிந்துரைக்கப்படுகிறது)</translation> <translation id="6820687829547641339">Gzip compressed tar archive</translation> -<translation id="682123305478866682">டெஸ்க்டாப்பை அனுப்பு</translation> +<translation id="682123305478866682">டெஸ்க்டாப்பை அலைபரப்பு</translation> <translation id="6823506025919456619">உங்கள் சாதனங்களைப் பார்க்க நீங்கள் Chrome இல் உள்நுழைய வேண்டும்</translation> <translation id="6824564591481349393">&மின்னஞ்சல் முகவரியை நகலெடு</translation> <translation id="6825184156888454064">பெயரின்படி வரிசைப்படுத்து</translation> @@ -3864,6 +3899,7 @@ <translation id="6860427144121307915">தாவலில் திற</translation> <translation id="6862635236584086457">இந்த கோப்புறையில் சேமிக்கப்படும் எல்லாக் கோப்புகளும் ஆன்லைனில் தானாகவே காப்புப்பிரதி எடுக்கப்படுகின்றன</translation> <translation id="6865313869410766144">தன்னிரப்பி படிவத் தரவு</translation> +<translation id="6865708901122695652">WebRTC நிகழ்வுப் பதிவுகள் (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">ஒளித் தோற்றம்</translation> <translation id="6870888490422746447">பகிர்வதற்கான இலக்குப் பயன்பாட்டைத் தேர்வுசெய்க:</translation> <translation id="6871644448911473373">OCSP பதிலளிப்பான்: <ph name="LOCATION" /></translation> @@ -3908,6 +3944,7 @@ <translation id="694592694773692225">இந்தப் பக்கத்தில் திசைதிருப்புவது தடுக்கப்பட்டது.</translation> <translation id="6949306908218145636">திறந்திருக்கும் பக்கங்களைப் புக்மார்க் செய்...</translation> <translation id="6950627417367801484">ஆப்ஸை மீட்டெடு</translation> +<translation id="6950943362443484797">உங்களுக்காக அந்த ஆப்ஸை நிறுவுவோம்</translation> <translation id="6951153907720526401">பேமண்ட் ஹேண்ட்லர்கள்</translation> <translation id="6955446738988643816">பாப்அப் கண்காணிப்பு</translation> <translation id="6957231940976260713">சேவைப் பெயர்</translation> @@ -3943,6 +3980,7 @@ <translation id="6998711733709403587"><ph name="SELCTED_FOLDERS_COUNT" /> கோப்புறைகள் தேர்ந்தெடுக்கப்பட்டன</translation> <translation id="6998793565256476099">வீடியோ கலந்துரையாடலுக்கு, சாதனத்தைப் பதிவுசெய்</translation> <translation id="7000347579424117903">கன்ட்ரோல், ஆல்ட் அல்லது தேடல் விசையைப் பயன்படுத்தித் தொடங்கவும்</translation> +<translation id="700203306553508933">Google Payயைப் பயன்படுத்த, கார்டுகளைச் சேமி</translation> <translation id="7002055706763150362">Chromebookக்கான Smart Lockஐ அமைக்க, இது நீங்கள் தான் என்பதை Google உறுதிப்படுத்த வேண்டும்—தொடங்க, கடவுச்சொல்லை உள்ளிடவும்.</translation> <translation id="7002454948392136538">இந்தக் கண்காணிக்கப்படும் பயனருக்கான நிர்வாகியைத் தேர்வுசெய்க</translation> <translation id="7003339318920871147">வலை தரவுத்தளங்கள்</translation> @@ -3984,12 +4022,13 @@ <translation id="7059893117020417984">தனிப்பட்ட முறையில் உலாவ, புள்ளி ஐகான் மெனுவைக் கிளிக் செய்து, மறைநிலைச் சாளரத்தைத் திறக்கவும்</translation> <translation id="7062222374113411376">தரவை அனுப்புவதையும் பெறுவதையும் முடிக்க சமீபத்தில் மூடப்பட்ட தளங்களை அனுமதி (பரிந்துரைக்கப்படுகிறது)</translation> <translation id="7063129466199351735">குறுக்குவழிகளைச் செயல்படுத்துகிறது...</translation> -<translation id="7063957500469387217">Google கிளவுடு அச்சில் பிரிண்டர்களை அமைக்கவும் அல்லது நிர்வகிக்கவும்.</translation> +<translation id="7063957500469387217">Google கிளவுடு அச்சில் பிரிண்டர்களை அமைத்தலும் நிர்வகித்தலும்.</translation> <translation id="7065223852455347715">நிறுவன பதிவைத் தடுக்கும் பயன்முறையில் இந்தச் சாதனம் பூட்டப்பட்டுள்ளது. சாதனத்தைப் பதிவுசெய்ய விரும்பினால், முதலில் சாதனத்தை மீட்டெடுக்கவும்.</translation> <translation id="7065534935986314333">முறைமையைப் பற்றி</translation> <translation id="706626672220389329">பகிர்வை ஏற்றுவதில் பிழை. குறிப்பிட்ட பகிர்வானது ஏற்கனவே ஏற்றப்பட்டுள்ளது.</translation> <translation id="7066944511817949584">"<ph name="DEVICE_NAME" />" க்கு இணைப்பதில் தோல்வி.</translation> <translation id="7067725467529581407">இதை ஒருபோதும் காட்டாதே.</translation> +<translation id="7070484045139057854">இந்த நீட்டிப்பால் தளத் தரவைப் படிக்கவும் மாற்றவும் முடியும்</translation> <translation id="7072010813301522126">குறுக்குவழி பெயர்</translation> <translation id="707392107419594760">உங்கள் விசைப்பலகையைத் தேர்ந்தெடு:</translation> <translation id="7075513071073410194">RSA குறியாக்கத்துடன் PKCS #1 MD5</translation> @@ -4119,6 +4158,7 @@ <translation id="7256710573727326513">தாவலில் திற</translation> <translation id="725758059478686223">அச்சிடுதல் சேவை</translation> <translation id="7257666756905341374">நீங்கள் நகலெடுத்து ஒட்டும் தரவைப் படிக்கலாம்</translation> +<translation id="7258697411818564379">உங்கள் பின் சேர்க்கப்பட்டது</translation> <translation id="7260764918845374269">உங்கள் பாதுகாப்பு விசையைப் பார்க்க, அது இணைப்புப் பயன்முறையில் இருக்க வேண்டும். பாதுகாப்பு விசையிலுள்ள பட்டனைக் குறைந்தது 5 வினாடிகளுக்கு அழுத்திப் பிடித்திருக்கவும்.</translation> <translation id="7262004276116528033">உள்நுழைவுச் சாதனத்தை <ph name="SAML_DOMAIN" /> ஹோஸ்ட் செய்கிறது</translation> <translation id="7268365133021434339">தாவல்களை மூடுக</translation> @@ -4266,6 +4306,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">பழைய கடவுச்சொல் மறந்துவிட்டதா?</translation> <translation id="7497215489070763236">சேவையக CA சான்றிதழ்</translation> +<translation id="7497981768003291373">சமீபத்தில் எடுக்கப்பட்ட WebRTC உரைப் பதிவுகள் எதுவும் இல்லை.</translation> <translation id="7502658306369382406">IPv6 முகவரி</translation> <translation id="7503191893372251637">Netscape சான்றிதழ் வகை</translation> <translation id="7503821294401948377">உலாவிச் செயல்பாட்டிற்காக படவுரு '<ph name="ICON" />' ஐ ஏற்ற முடியவில்லை.</translation> @@ -4306,6 +4347,7 @@ <translation id="7564847347806291057">செயலாக்கத்தை முடி</translation> <translation id="7566118625369982896">Play பயன்பாடு இணைப்புகளை நிர்வகி</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">உங்கள் விரலை வைக்கவும்</translation> <translation id="756809126120519699">Chrome தரவு அழிக்கப்பட்டது</translation> <translation id="7568790562536448087">புதுப்பிக்கிறது</translation> <translation id="7571643774869182231">புதுப்பிப்பதற்குப் போதுமான சேமிப்பிடம் இல்லை</translation> @@ -4455,7 +4497,7 @@ <translation id="7807067443225230855">தேடல் மற்றும் அசிஸ்டண்ட்</translation> <translation id="7807711621188256451">உங்கள் கேமராவை எப்போதும் அணுக <ph name="HOST" /> ஐ அனுமதிக்கவும்</translation> <translation id="7810202088502699111">இந்தப் பக்கத்தில் பாப்-அப்கள் தடுக்கப்பட்டன.</translation> -<translation id="781167124805380294"><ph name="FILE_NAME" />ஐ அனுப்பு</translation> +<translation id="781167124805380294"><ph name="FILE_NAME" />ஐ அலைபரப்பு</translation> <translation id="7814458197256864873">&நகலெடு</translation> <translation id="7815680994978050279">ஆபத்தான பதிவிறக்கம் தடுக்கப்பட்டது</translation> <translation id="7818135753970109980">புதிய தீம் சேர்க்கப்பட்டது (<ph name="EXTENSION_NAME" />)</translation> @@ -4468,6 +4510,7 @@ <ph name="LINE_BREAK2" /> குறைவான படங்களைத் தேர்ந்தெடுத்து முயலவும்.</translation> <translation id="782590969421016895">தற்போதைய பக்கங்களைப் பயன்படுத்து</translation> +<translation id="7826346148677309647">உங்கள் சாதனத்திற்குப் பொருத்தமான மேலும் பல ஆப்ஸ்களை Play ஸ்டோரில் கண்டறியலாம்.</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />பிழைத் திருத்த அம்சங்கள்<ph name="END_H3" /> <ph name="BR" /> உங்கள் சாதனத்தில் தனிப்பயன் குறியீட்டை நிறுவி, சோதனை செய்வதற்கு உங்கள் Chrome OS சாதனத்தில் பிழைத் திருத்த அம்சங்களை இயக்கலாம். இதனால் நீங்கள் இவற்றைச் செய்யலாம்:<ph name="BR" /> @@ -4643,7 +4686,7 @@ <translation id="8028803902702117856"><ph name="SIZE" />, <ph name="FILE_NAME" />ஐப் பதிவிறக்குகிறது</translation> <translation id="8028993641010258682">அளவு</translation> <translation id="8030656706657716245">பிரிண்டரைச் சேர்</translation> -<translation id="8032244173881942855">தாவலை அனுப்ப முடியவில்லை.</translation> +<translation id="8032244173881942855">தாவலை அலைபரப்ப முடியவில்லை.</translation> <translation id="8033827949643255796">தேர்ந்தெடுக்கப்பட்டன</translation> <translation id="803435727213847625">{COUNT,plural, =0{எல்லாவற்றையும் &மறைநிலைச் சாளரத்தில் திற}=1{&மறைநிலைச் சாளரத்தில் திற}other{எல்லாவற்றையும் (#) &மறைநிலைச் சாளரத்தில் திற}}</translation> <translation id="8037117027592400564">தொகுக்கப்பட்ட பேச்சைப் பயன்படுத்திப் பேசப்படும் எல்லா உரையையும் படிக்கலாம்</translation> @@ -4668,9 +4711,10 @@ <translation id="8059417245945632445">&சாதனங்களை ஆய்வுசெய்</translation> <translation id="8063235345342641131">இயல்பு பச்சைநிற அவதார்</translation> <translation id="8064671687106936412">திறவுச்சொல்:</translation> +<translation id="8065485338434000013">உங்கள் கார்டுகளில் சிலவற்றை மட்டுமே இந்தச் சாதனத்தில் பயன்படுத்த முடியும்</translation> <translation id="806812017500012252">தலைப்பின்படி மறுவரிசைப்படுத்து</translation> <translation id="8068253693380742035">உள்நுழைய, தொடவும்</translation> -<translation id="8069615408251337349">Google கிளவுடு பிரிண்டர்</translation> +<translation id="8069615408251337349">Google கிளவுடு அச்சு</translation> <translation id="8071432093239591881">படமாக அச்சிடு</translation> <translation id="8072033737676488034">உங்கள் ஃபோனை அகற்றி, Better Togetherரை முடக்கவும்</translation> <translation id="8072988827236813198">தாவல்களைப் பொருத்து</translation> @@ -4745,6 +4789,7 @@ <translation id="8191453843330043793">V8 புராக்ஸி ரிசால்வர்</translation> <translation id="8193175696669055101">சாதனத்தின் மாடல்</translation> <translation id="8195027750202970175">வட்டில் உள்ள அளவு</translation> +<translation id="8198323535106903877">உங்களுக்காக அந்த <ph name="NUMBER_OF_APPS" /> ஆப்ஸை நிறுவுவோம்</translation> <translation id="8199300056570174101">நெட்வொர்க் (சேவை) மற்றும் சாதனப் பண்புகள்</translation> <translation id="8200772114523450471">மீண்டும் தொடங்கு</translation> <translation id="8202160505685531999">உங்கள் <ph name="DEVICE_TYPE" /> சுயவிவரத்தைப் புதுப்பிக்க உங்கள் கடவுச்சொல்லை மீண்டும் உள்ளிடவும்.</translation> @@ -4758,7 +4803,7 @@ <translation id="8214962590150211830">இவரை அகற்று</translation> <translation id="8217399928341212914">பல கோப்புகள் தானாகப் பதிவிறக்கப்படுவதைத் தொடர்ந்து தடு</translation> <translation id="8223479393428528563">இந்தக் கோப்புகளை ஆஃப்லைனில் பயன்படுத்துவதற்காக சேமிக்க, ஆன்லைனிற்கு சென்று, கோப்புகளில் வலது-கிளிக் செய்து, <ph name="OFFLINE_CHECKBOX_NAME" /> விருப்பத்தைத் தேர்தெடுக்கவும்.</translation> -<translation id="8225753906568652947">உங்கள் சலுகைகளை ரீடீம் செய்க</translation> +<translation id="8225753906568652947">உங்கள் சலுகைகளைப் பயன்படுத்திக் கொள்க</translation> <translation id="8226222018808695353">தடுக்கப்பட்டது</translation> <translation id="8226619461731305576">வரிசை</translation> <translation id="8226742006292257240">உங்கள் கணினிக்கு ஒதுக்கப்பட்ட, தோராயமாக உருவாக்கப்பட்ட TPM கடவுச்சொல் பின்வருமாறு:</translation> @@ -4794,7 +4839,7 @@ <translation id="827097179112817503">முகப்பு பொத்தானைக் காட்டு</translation> <translation id="8271246892936492311">{COUNT,plural, =1{ஒரு புத்தகக்குறி நீக்கப்பட்டது}other{# புத்தகக்குறிகள் நீக்கப்பட்டன}}</translation> <translation id="8272443605911821513">"கூடுதல் கருவிகள்" மெனுவில் நீட்டிப்புகள் என்பதைக் கிளிக் செய்து நீட்டிப்புகளை நிர்வகிக்கவும்.</translation> -<translation id="8274332263553132018">கோப்பை அனுப்பு</translation> +<translation id="8274332263553132018">கோப்பை அலைபரப்பு</translation> <translation id="8274924778568117936">புதுப்பிப்பு முடியும் வரை <ph name="DEVICE_TYPE" /> சாதனத்தை முடக்கவோ அல்லது மூடவோ வேண்டாம். நிறுவியதும், <ph name="DEVICE_TYPE" /> மீண்டும் தொடங்கும்.</translation> <translation id="8275038454117074363">இறக்குமதி செய்</translation> <translation id="8276560076771292512">தற்காலிகச் சேமிப்பை வெறுமையாக்கி, கடினமாக மீண்டும் ஏற்று</translation> @@ -4961,10 +5006,9 @@ <translation id="8553342806078037065">பிற பயனர்களை நிர்வகி</translation> <translation id="8554899698005018844">மொழி இல்லை</translation> <translation id="855773602626431402">சாண்ட்பாக்ஸ் செய்யப்படாத செருகுநிரல் இந்தப் பக்கத்தில் இயக்கப்படுவதிலிருந்து தடுக்கப்பட்டது.</translation> -<translation id="8557930019681227453">மேனிஃபெஸ்ட்</translation> +<translation id="8557930019681227453">மெனிஃபெஸ்ட்</translation> <translation id="8559694214572302298">இமேஜ் டீகோடர்</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">தொடர்ந்து படிக்கவும்</translation> <translation id="8565650234829130278">பயன்பாட்டைத் தரமிறக்க முயற்சித்துள்ளீர்கள்.</translation> <translation id="8569002732135253578"><ph name="DOCUMENT_NAME" />ஐ அச்சிடுகிறது</translation> <translation id="8569682776816196752">எந்த இலக்குகளும் கண்டறியப்படவில்லை</translation> @@ -5014,7 +5058,7 @@ <translation id="8650543407998814195">உங்கள் பழைய சுயவிவரத்தை இனி அணுக முடியாது என்றாலும், அதை உங்களால் அகற்ற முடியும்.</translation> <translation id="8651585100578802546">இந்தப் பக்கத்தைக் கட்டாயமாக மீண்டும் ஏற்று</translation> <translation id="8652400352452647993">தொகுப்பு நீட்டிப்புப் பிழை</translation> -<translation id="8652487083013326477">பக்க வரம்பு ரேடியோ பொத்தான்</translation> +<translation id="8652487083013326477">பக்க வரம்பு ரேடியோ பட்டன்</translation> <translation id="8653292045957015650">டாக் செய்யப்பட்ட பெரிதாக்கியை நிலைமாற்றும்</translation> <translation id="8654151524613148204">உங்கள் கணினியில் கையாளுவதற்கான கோப்பு மிகப்பெரியதாக உள்ளது. மன்னிக்கவும்.</translation> <translation id="8655295600908251630">சேனல்</translation> @@ -5077,6 +5121,8 @@ <translation id="8716931980467311658">இந்த <ph name="DEVICE_TYPE" /> சாதனத்திலிருந்து உங்கள் Linux கோப்புகள் கோப்புறையிலுள்ள எல்லா Linux ஆப்ஸையும் தரவையும் நீக்கவா?</translation> <translation id="8719653885894320876"><ph name="PLUGIN_NAME" />ஐப் பதிவிறக்க முடியவில்லை</translation> <translation id="8723829621484579639">இதற்கான மறைநிலை சப்ஃபிரேம்கள்: <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">திரையில் இந்த ஐகானைப் பார்க்கும்போது, உங்களை அடையாளப்படுத்துவதற்கு அல்லது ஆன்லைனில் வாங்குவதை அங்கீகரிக்க, உங்கள் கைரேகையைப் பயன்படுத்தவும்.</translation> +<translation id="8724409975248965964">கைரேகை சேர்க்கப்பட்டது</translation> <translation id="8724859055372736596">கோப்புறையில் &காண்பி</translation> <translation id="8725066075913043281">மீண்டும் முயற்சிக்கவும்</translation> <translation id="8725178340343806893">விருப்பங்கள்/புக்மார்க்ஸ்</translation> @@ -5100,7 +5146,7 @@ <p>ஆனால் கட்டளை வரியின் வழியாக நீங்கள் இப்போதும் உள்ளமைக்க முடியும். கொடிகள் மற்றும் சூழ்நிலை மாறிகள் தொடர்பான கூடுதல் தகவல்களை அறிய <code>கைமுறை <ph name="PRODUCT_BINARY_NAME" /></code>ஐப் பார்க்கவும்.</p></translation> <translation id="8755376271068075440">&பெரியது</translation> <translation id="8756969031206844760">கடவுச்சொல்லைப் புதுப்பிக்கவா?</translation> -<translation id="8757090071857742562">டெஸ்க்டாப்பை அனுப்ப முடியவில்லை. திரையைப் பகிர்வதற்கான அறிவிப்பை உறுதிசெய்தீர்களா என்பதைச் சரிபார்க்கவும்.</translation> +<translation id="8757090071857742562">டெஸ்க்டாப்பை அலைபரப்ப முடியவில்லை. திரையைப் பகிர்வதற்கான கோரிக்கையில் உறுதிசெய்தீர்களா என்பதைச் சரிபார்க்கவும்.</translation> <translation id="8757640015637159332">பொது அமர்வில் நுழையவும்</translation> <translation id="8757742102600829832">இணைப்பதற்கான, Chromeboxஐத் தேர்ந்தெடுக்கவும்</translation> <translation id="8757803915342932642">Google கிளவுடு சாதனங்களில் உள்ள சாதனம்</translation> @@ -5157,6 +5203,7 @@ <translation id="8838770651474809439">ஹம்பர்கர்</translation> <translation id="883911313571074303">படத்தைக் குறிப்பிடு</translation> <translation id="8845001906332463065">உதவி பெறுக</translation> +<translation id="8846132060409673887">இந்தக் கம்ப்யூட்டரின் உற்பத்தியாளர் பற்றிய தகவலையும் மாடலையும் படிக்கலாம்</translation> <translation id="8846141544112579928">விசைப்பலகையைத் தேடுகிறது...</translation> <translation id="8847988622838149491">USB</translation> <translation id="8859057652521303089">உங்கள் மொழியைத் தேர்ந்தெடுங்கள்:</translation> @@ -5170,7 +5217,7 @@ <translation id="8871551568777368300">நிர்வாகியால் பொருத்தப்பட்டது</translation> <translation id="8871696467337989339">நீங்கள் ஒரு ஆதரிக்கப்படாத கட்டளை-வரி கொடியைப் பயன்படுத்துகிறீர்கள்: <ph name="BAD_FLAG" />. நிலைப்புத்தன்மை மற்றும் பாதுகாப்புப் பாதிப்படையும். </translation> <translation id="8871974300055371298">உள்ளடக்க அமைப்புகள்</translation> -<translation id="8872155268274985541">தவறான கியாஸ்க் வெளிப்புற புதுப்பிப்பு மேனிஃபெஸ்ட் கோப்பு கண்டறியப்பட்டது. கியாஸ்க் பயன்பாட்டைப் புதுப்பித்தல் தோல்வியுற்றது. USB சாதனத்தை அகற்றவும்.</translation> +<translation id="8872155268274985541">தவறான கியாஸ்க் வெளிப்புற புதுப்பிப்பு மெனிஃபெஸ்ட் ஃபைல் கண்டறியப்பட்டது. கியாஸ்க் ஆப்ஸைப் புதுப்பித்தல் தோல்வியுற்றது. USB சாதனத்தை அகற்றவும்.</translation> <translation id="8874184842967597500">இணைக்கப்படவில்லை</translation> <translation id="8876215549894133151">வடிவம்:</translation> <translation id="8876307312329369159">டெமோ அமர்வில் இந்த அமைப்பை மாற்ற முடியாது.</translation> @@ -5228,7 +5275,7 @@ <translation id="8965037249707889821">பழைய கடவுச்சொல்லை உள்ளிடு</translation> <translation id="8965697826696209160">போதிய இடம் இல்லை.</translation> <translation id="8967866634928501045">காட்ட, Alt Shift A ஆகிய விசைகளை அழுத்தவும்</translation> -<translation id="8970203673128054105">அனுப்பும் பயன்முறையின் பட்டியலைக் காட்டு</translation> +<translation id="8970203673128054105">அலைபரப்பும் பயன்முறையின் பட்டியலைக் காட்டு</translation> <translation id="89720367119469899">Escape</translation> <translation id="8972513834460200407">Google சேவையகங்களிலிருந்து பதிவிறக்குவதை ஃபயர்வால் தடுக்கவில்லை என்பதை உங்கள் நெட்வொர்க் நிர்வாகியிடம் கேட்டு உறுதிப்படுத்திக்கொள்ளவும்.</translation> <translation id="8973557916016709913">அளவை மாற்றுவதற்கான நிலையை அகற்றும்</translation> @@ -5292,7 +5339,7 @@ <translation id="9050666287014529139">கடவுச்சொற்றொடர்</translation> <translation id="9052208328806230490"><ph name="CLOUD_PRINT_NAME" /> உடன் <ph name="EMAIL" /> கணக்கைப் பயன்படுத்தி உங்கள் பிரிண்டர்களைப் பதிவு செய்துள்ளீர்கள்</translation> <translation id="9052404922357793350">தடுப்பதைத் தொடர்</translation> -<translation id="9053091947372579468">உங்கள் சாதனத்திற்கு Chrome உரிமம் வழங்கப்பட்டுள்ளது, எனினும் உங்கள் பயனர்பெயர், நிர்வாகிக் கன்சோலுடன் இணைக்கப்படவில்லை. பதிவுசெய்வதைத் தொடர, நிர்வாகிக் கன்சோல் ஒன்றை உருவாக்கவும். குறிப்பு: புதிய நிர்வாகிக் கன்சோல் கணக்கை உருவாக்குவதற்கு உங்கள் சொந்த டொமைனைத் தேர்வுசெய்தால், பதிவுசெய்த பின்னர் டொமைன் சரிபார்ப்பையும் முடிக்க வேண்டும். https://g.co/ChromeEnterpriseAccount</translation> +<translation id="9053091947372579468">உங்கள் சாதனத்திற்கு Chrome உரிமம் வழங்கப்பட்டுள்ளது, எனினும் உங்கள் பயனர்பெயர், நிர்வாகிக் கன்சோலுடன் இணைக்கப்படவில்லை. பதிவுசெய்வதைத் தொடர, நிர்வாகிக் கன்சோல் கணக்கு ஒன்றை உருவாக்கவும். குறிப்பு: புதிய நிர்வாகிக் கன்சோல் கணக்கை உருவாக்குவதற்கு உங்கள் சொந்த டொமைனைத் தேர்வுசெய்தால், பதிவுசெய்த பின்னர் டொமைன் சரிபார்ப்பையும் முடிக்க வேண்டும். https://g.co/ChromeEnterpriseAccount</translation> <translation id="9053893665344928494">எனது தேர்வை நினைவில்கொள்</translation> <translation id="9055636786322918818">RC4 என்க்ரிப்ஷனைச் செயல்படுத்தும். RC4 சைஃபர்கள் பாதுகாப்பற்றவை என்பதால், இந்த விருப்பத்தைப் பயன்படுத்துவது, உங்கள் அபாயத்தை அதிகரிக்கும்.</translation> <translation id="9056034633062863292">Chromeboxஐப் புதுப்பிக்கிறது</translation> @@ -5334,7 +5381,7 @@ <translation id="9112748030372401671">உங்கள் வால்பேப்பரை மாற்றலாம்</translation> <translation id="9112987648460918699">கண்டுபிடி...</translation> <translation id="9114663181201435112">எளிதாக உள்நுழையலாம்</translation> -<translation id="9115487443206954631">அனுப்பும் சாதனங்களை நிர்வகி</translation> +<translation id="9115487443206954631">Cast சாதனங்களை நிர்வகி</translation> <translation id="9115675100829699941">&புக்மார்க்குகள்</translation> <translation id="9116465289595958864">கடைசியாக மாற்றியது</translation> <translation id="9116799625073598554">குறிப்பெடுக்கும் பயன்பாடு</translation> @@ -5370,6 +5417,7 @@ <translation id="9161070040817969420">இதற்கான சப்ஃபிரேம்கள்: <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">சாதனத் தரவை அனுப்பும். இந்தச் சாதனம் தற்போது பிழை அறிக்கைகளையும் சாதனம் மற்றும் பயன்பாட்டின் உபயோகத் தரவையும் தானாகவே Googleக்கு அனுப்பும். உரிமையாளர் இந்த அமைப்பைச் செயல்படுத்துகிறார். கூடுதல் இணையம் மற்றும் பயன்பாட்டுச் செயல்பாடு இயக்கத்தில் இருந்தால், இந்தத் தகவல் உங்கள் கணக்கில் சேமிக்கப்படும், எனது செயல்பாடு என்பதில் இதை நீங்கள் நிர்வகிக்கலாம். <ph name="BEGIN_LINK1" />மேலும் அறிக<ph name="END_LINK1" /></translation> <translation id="916607977885256133">பிக்ச்சர்-இன்-பிக்ச்சர்</translation> +<translation id="9168436347345867845">பின்னர் செய்யலாம்</translation> <translation id="9169496697824289689">விசைப்பலகைக் குறுக்குவழிகளைக் காட்டு</translation> <translation id="9169931577761441333"><ph name="APP_NAME" />ஐ முகப்புத் திரையில் சேர்க்கவும்</translation> <translation id="9170848237812810038">&செயல்தவிர்</translation> @@ -5396,7 +5444,7 @@ <translation id="9218430445555521422">இயல்பாக அமை</translation> <translation id="9219103736887031265">படங்கள்</translation> <translation id="9220525904950070496">கணக்கை அகற்றுக</translation> -<translation id="9220820413868316583">விரலை எடுத்துவிட்டு, மீண்டும் தொடவும்.</translation> +<translation id="9220820413868316583">விரலை எடுத்துவிட்டு மீண்டும் தொடவும்.</translation> <translation id="923467487918828349">அனைத்தும் காண்பி</translation> <translation id="928985544179707652">நீட்டிப்புகள்:</translation> <translation id="930268624053534560">விவரமான நேரமுத்திரைகள்</translation> @@ -5410,7 +5458,7 @@ <translation id="93766956588638423">நீட்டிப்பைப் பழுதுநீக்கு</translation> <translation id="938339467127511841">Linux (பீட்டா) சேமிப்பகம்</translation> <translation id="938470336146445890">பயனர் சான்றிதழை நிறுவுக.</translation> -<translation id="938582441709398163">விசைப்பலகை மேல்தோற்றம்</translation> +<translation id="938582441709398163">கீபோர்டு மேல் அடுக்கு</translation> <translation id="939252827960237676">ஸ்கிரீன் ஷாட்டை சேமிப்பதில் தோல்வி</translation> <translation id="939519157834106403">SSID</translation> <translation id="939598580284253335">கடவுச்சொற்றொடரை உள்ளிடுக</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb index 71e59fc..49a8ae7 100644 --- a/chrome/app/resources/generated_resources_te.xtb +++ b/chrome/app/resources/generated_resources_te.xtb
@@ -75,7 +75,7 @@ <translation id="1114202307280046356">చతుర్భుజం</translation> <translation id="1114335938027186412">మీ కంప్యూటర్ ట్రస్టెడ్ ప్లాట్ఫారమ్ మాడ్యూల్ (TPM) భద్రతా పరికరాన్ని కలిగి ఉంది, ఇది Chrome OSలో అనేక కీలకమైన భద్రతా లక్షణాలను అమలు చేయడానికి ఉపయోగించబడుతుంది. మరింత తెలుసుకోవడానికి Chromebook సహాయ కేంద్రాన్ని సందర్శించండి: https://support.google.com/chromebook/?p=tpm</translation> <translation id="1114525161406758033">మూత మూసి ఉన్నప్పుడు స్లీప్ స్థితికి వెళ్లు</translation> -<translation id="1115324527092594775">అన్నీ జతచేసి బాగా సెటప్ చేయండి</translation> +<translation id="1115324527092594775">Better Togetherను సెటప్ చేయండి</translation> <translation id="1116694919640316211">గురించి</translation> <translation id="1116779635164066733">ఈ సెట్టింగ్ని "<ph name="NAME" />" ఎక్స్టెన్షన్ అమలు చేస్తుంది.</translation> <translation id="111844081046043029">మీరు దీన్ని ఖచ్చితంగా వదిలేయాలనుకుంటున్నారా?</translation> @@ -1513,7 +1513,6 @@ <translation id="3285322247471302225">క్రొత్త &టాబ్</translation> <translation id="3288047731229977326">డెవలపర్ మోడ్లో అమలవుతున్న పొడిగింపులు మీ కంప్యూటర్కు హాని కలిగించవచ్చు. మీరు డెవలపర్ కాకపోతే, సురక్షితంగా ఉంచడానికి డెవలపర్ మోడ్లో అమలవుతున్న ఈ పొడిగింపులను నిలిపివేయాలి.</translation> <translation id="3289856944988573801">నవీకరణల కోసం తనిఖీ చేయడానికి, దయచేసి ఈథర్నెట్ లేదా Wi-Fiని ఉపయోగించండి.</translation> -<translation id="3292421191230118801">మీ Chromebookలో మొబైల్ నుండి సైట్లను చూడటం కొనసాగించండి</translation> <translation id="32939749466444286">Linux కంటైనర్ ప్రారంభించబడలేదు. దయచేసి మళ్లీ ప్రయత్నించండి.</translation> <translation id="3294437725009624529">అతిథి</translation> <translation id="329838636886466101">సరి చేయి</translation> @@ -3024,7 +3023,7 @@ <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation> <translation id="558918721941304263">అనువర్తనాలను లోడ్ చేస్తోంది...</translation> <translation id="5592595402373377407">ఇంకా తగినంత డేటా అందుబాటులో లేదు.</translation> -<translation id="5593357315997824387">నా ఫైల్లను సమకాలీకరించండి</translation> +<translation id="5593357315997824387">నా ఫైల్లను సమకాలీకరించు</translation> <translation id="5595152862129936745">చాలా దూరంగా ఉండాలి</translation> <translation id="5595485650161345191">చిరునామాను సవరించు</translation> <translation id="5596627076506792578">మరిన్ని ఎంపికలు</translation> @@ -3740,7 +3739,7 @@ <translation id="6664237456442406323">దురదృష్టవశాత్తూ, మీ కంప్యూటర్ తప్పుగా ఆకృతి చేయబడిన హార్డ్వేర్ IDతో కాన్ఫిగర్ చేయబడింది. ఇది తాజా భద్రతా పరిష్కారాలతో నవీకరించబడనీయకుండా Chrome OSని నిరోధిస్తుంది మరియు మీ కంప్యూటర్ <ph name="BEGIN_BOLD" />హానికరమైన దాడులకు గురి కావచ్చు<ph name="END_BOLD" />.</translation> <translation id="6664774537677393800">మీ ప్రొఫైల్ను తెరుస్తున్నప్పుడు ఏదో తప్పు జరిగింది. దయచేసి సైన్ అవుట్ చేసి, మళ్లీ సైన్ ఇన్ చేయండి.</translation> <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation> -<translation id="6674412557034343536">టైమర్ను ఆపివేయండి</translation> +<translation id="6674412557034343536">టైమర్ను ఆపివేయి</translation> <translation id="667517062706956822">ఈ పేజీని Google <ph name="SOURCE_LANGUAGE" /> నుండి <ph name="TARGET_LANGUAGE" />కి అనువదించాలని మీరు కోరుకుంటున్నారా?</translation> <translation id="6675665718701918026">సూచిస్తున్న పరికరం కనెక్ట్ చేయబడింది</translation> <translation id="6678717876183468697">ప్రశ్న URL</translation> @@ -4798,7 +4797,7 @@ <translation id="8286036467436129157">సైన్ ఇన్ చేయండి</translation> <translation id="8286963743045814739">అజ్ఞాత విండోని ఉపయోగించి మీరు ప్రైవేట్గా బ్రౌజ్ చేయవచ్చు</translation> <translation id="82871696630048499">వెబ్ పేజీ మెమరీ నిండినందున అది మళ్లీ లోడ్ చేయబడింది.</translation> -<translation id="8288032458496410887"><ph name="APP" />ని అన్ఇన్స్టాల్ చేయండి...</translation> +<translation id="8288032458496410887"><ph name="APP" />ని అన్ఇన్స్టాల్ చేయి...</translation> <translation id="8291967909914612644">స్వస్థల ప్రదాత దేశం</translation> <translation id="8294431847097064396">మూలం</translation> <translation id="8297006494302853456">బలహీనం</translation> @@ -4958,7 +4957,6 @@ <translation id="8557930019681227453">మానిఫెస్ట్</translation> <translation id="8559694214572302298">ఇమేజ్ డీకోడర్</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">చదవడం కొనసాగించు</translation> <translation id="8565650234829130278">అనువర్తనాన్ని డౌన్గ్రేడ్ చేయడానికి ప్రయత్నించారు.</translation> <translation id="8569002732135253578">ఇప్పుడు <ph name="DOCUMENT_NAME" />ని ముద్రిస్తోంది</translation> <translation id="8569682776816196752">గమ్యస్థానాలు కనుగొనబడలేదు</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb index 29acfe6e..3d21f80 100644 --- a/chrome/app/resources/generated_resources_th.xtb +++ b/chrome/app/resources/generated_resources_th.xtb
@@ -247,6 +247,7 @@ <translation id="1358741672408003399">ตัวสะกดและไวยากรณ์</translation> <translation id="1361164813881551742">เพิ่มด้วยตนเอง</translation> <translation id="1361655923249334273">ไม่ได้ใช้</translation> +<translation id="1361872463926621533">เปิดเสียงเมื่อเริ่มใช้</translation> <translation id="1363028406613469049">แทร็ก</translation> <translation id="1367951781824006909">เลือกไฟล์</translation> <translation id="1368265273904755308">รายงานปัญหา</translation> @@ -570,6 +571,7 @@ <translation id="1817310072033858383">ตั้งค่า Smart Lock สำหรับ <ph name="DEVICE_TYPE" /></translation> <translation id="1817871734039893258">การกู้คืนไฟล์ของ Microsoft</translation> <translation id="1818007989243628752">ลบรหัสผ่านสำหรับ <ph name="USERNAME" /></translation> +<translation id="1818913467757368489">กำลังอัปโหลดบันทึก</translation> <translation id="1819721979226826163">แตะ "การแจ้งเตือนของแอป" > บริการ Google Play</translation> <translation id="1826516787628120939">กำลังตรวจสอบ</translation> <translation id="1828378091493947763">อุปกรณ์นี้ไม่รองรับปลั๊กอินนี้</translation> @@ -618,11 +620,13 @@ <translation id="1890674179660343635"><span>รหัส: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">เปิดการแสดงแบบเต็มหน้าจอ</translation> <translation id="189358972401248634">ภาษาอื่นๆ</translation> +<translation id="1894591787927543791">บันทึกบัตรเพื่อใช้ Google Pay</translation> <translation id="1895658205118569222">ปิด</translation> <translation id="1895934970388272448">คุณต้องยืนยันการลงทะเบียนเครื่องพิมพ์ของคุณเพื่อให้ขั้นตอนนี้เสร็จสิ้น ตรวจสอบเลย</translation> <translation id="1897762215429052132">ตั้งค่าการเชื่อมต่อเครือข่าย ภาษา รูปแบบแป้นพิมพ์...</translation> <translation id="1901303067676059328">เลือก&ทั้งหมด</translation> <translation id="1902576642799138955">ระยะเวลาที่มีผลบังคับใช้</translation> +<translation id="1904518222538904133">มีบัตร 1 ใบที่ใช้ได้ในอุปกรณ์นี้เท่านั้น</translation> <translation id="1905375423839394163">ชื่ออุปกรณ์ Chromebook</translation> <translation id="1905710495812624430">ลองทำเกินจำนวนครั้งที่กำหนดไว้แล้ว</translation> <translation id="1909880997794698664">คุณต้องการเก็บอุปกรณ์นี้ไว้ในโหมดคีออสก์อย่างถาวรหรือไม่</translation> @@ -659,6 +663,7 @@ <translation id="1962969542251276847">ล็อกหน้าจอ</translation> <translation id="1963227389609234879">นำออกทั้งหมด</translation> <translation id="1965624977906726414">ไม่มีสิทธิ์พิเศษใดๆ</translation> +<translation id="1969654639948595766">บันทึกข้อความ WebRTC (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">เข้าสู่โหมดวิดีโอแล้ว</translation> <translation id="197288927597451399">เก็บไว้</translation> <translation id="1974043046396539880">จุดกระจาย CRL</translation> @@ -802,6 +807,7 @@ <translation id="2190069059097339078">ตัวรับข้อมูลรับรอง Wi-Fi</translation> <translation id="219008588003277019">โมดูล Native Client: <ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(ว่างเปล่า)</translation> +<translation id="2191223688506386601">สิ่งสุดท้าย</translation> <translation id="2192505247865591433">จาก:</translation> <translation id="2193365732679659387">การตั้งค่าความเชื่อถือ</translation> <translation id="2195729137168608510">การป้องกันอีเมล </translation> @@ -1025,6 +1031,7 @@ <translation id="2534460670861217804">พร็อกซี HTTP ที่ปลอดภัย</translation> <translation id="253557089021624350">จำนวนที่เชื่อมต่อแบบคงอยู่</translation> <translation id="2538361623464451692">ปิดใช้การซิงค์แล้ว</translation> +<translation id="2539876824180063438">ขยับนิ้วชี้เล็กน้อยเพื่อจับภาพส่วนต่างๆ ของลายนิ้วมือเพิ่มเติม</translation> <translation id="2541002089857695151">เพิ่มประสิทธิภาพการแคสต์เต็มหน้าจอไหม</translation> <translation id="2542049655219295786">ตารางของ Google</translation> <translation id="2544853746127077729">ใบรับรองการตรวจสอบสิทธิ์ได้รับการปฏิเสธจากเครือข่าย</translation> @@ -1258,7 +1265,9 @@ <translation id="287286579981869940">เพิ่ม <ph name="PROVIDER_NAME" />...</translation> <translation id="2874343608108773609">ลงชื่อเข้าใช้ Chrome เพื่อรับรหัสผ่านในอุปกรณ์ทั้งหมดของคุณ</translation> <translation id="2875698561019555027">(หน้าข้อผิดพลาดของ Chrome)</translation> +<translation id="2876336351874743617">นิ้วที่ 2</translation> <translation id="288042212351694283">เข้าถึงอุปกรณ์ Universal 2nd Factor</translation> +<translation id="2881076733170862447">เมื่อคุณคลิกส่วนขยาย</translation> <translation id="2881966438216424900">เข้าถึงครั้งสุดท้ายเมื่อ:</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> จะรีสตาร์ทและรีเซ็ตในอีกสักครู่</translation> <translation id="2885378588091291677">ตัวจัดการงาน</translation> @@ -1444,6 +1453,7 @@ <translation id="3154429428035006212">ออฟไลน์นานกว่าหนึ่งเดือน</translation> <translation id="3156531245809797194">โปรดลงชื่อเข้าใช้เพื่อใช้ Chrome</translation> <translation id="3157931365184549694">คืนค่า</translation> +<translation id="3158033540161634471">ตั้งค่าลายนิ้วมือ</translation> <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (ใช้ฮาร์ดแวร์คีย์เข้ารหัสลับ)</translation> <translation id="316125635462764134">นำแอปออก</translation> <translation id="3161522574479303604">ทุกภาษา</translation> @@ -1513,9 +1523,10 @@ <translation id="3285322247471302225">แ&ท็บใหม่</translation> <translation id="3288047731229977326">ส่วนขยายที่ทำงานอยู่ในโหมดนักพัฒนาซอฟต์แวร์อาจเป็นอันตรายต่อคอมพิวเตอร์ของคุณ หากคุณไม่ใช่นักพัฒนาซอฟต์แวร์ คุณควรปิดส่วนขยายที่ทำงานอยู่ในโหมดนักพัฒนาซอฟต์แวร์เพื่อรักษาความปลอดภัย</translation> <translation id="3289856944988573801">ในการตรวจหาการอัปเดต โปรดใช้อีเทอร์เน็ตหรือ WiFi</translation> -<translation id="3292421191230118801">ดูเว็บไซต์จากอุปกรณ์เคลื่อนที่ใน Chromebook ต่อ</translation> <translation id="32939749466444286">คอนเทนเนอร์ Linux ไม่เริ่มทำงาน โปรดลองอีกครั้ง</translation> <translation id="3294437725009624529">ผู้มาเยือน</translation> +<translation id="329703603001918157">แก้ไขทางลัดไม่ได้</translation> +<translation id="3297951628821704004">นำบัญชีออกจากอุปกรณ์นี้</translation> <translation id="329838636886466101">ซ่อม</translation> <translation id="3298789223962368867">URL ที่ป้อนไม่ถูกต้อง</translation> <translation id="32991397311664836">อุปกรณ์:</translation> @@ -1682,6 +1693,7 @@ <translation id="3534879087479077042">ผู้ใช้ภายใต้การดูแลคืออะไร</translation> <translation id="3538066758857505094">เกิดข้อผิดพลาดขณะถอนการติดตั้ง Linux โปรดลองอีกครั้ง</translation> <translation id="354060433403403521">อะแดปเตอร์ AC</translation> +<translation id="354068948465830244">ส่วนขยายนี้อ่านและเปลี่ยนข้อมูลเว็บไซต์ได้</translation> <translation id="3541661933757219855">พิมพ์ Ctrl+Alt+/ หรือ Escape เพื่อซ่อน</translation> <translation id="3543393733900874979">การอัปเดตล้มเหลว (ข้อผิดพลาด: <ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">ลายเซ็น X9.62 ECDSA ที่มี SHA-512</translation> @@ -1727,6 +1739,7 @@ <translation id="3606712892509067288">นำออกจาก Better Together</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">ตัวอย่างภาพผู้ใช้</translation> +<translation id="3609446736023031597">รับข้อมูลอัปเดตและคำแนะนำล่าสุดเกี่ยวกับแอป Play Store</translation> <translation id="3609785682760573515">กำลังซิงค์...</translation> <translation id="3609895557594655134">เพิ่ม Android VPN...</translation> <translation id="361106536627977100">ข้อมูล Flash</translation> @@ -1759,6 +1772,7 @@ <translation id="3645372836428131288">เลื่อนนิ้วเล็กน้อยเพื่อจับภาพส่วนต่างๆ ของลายนิ้วมือ</translation> <translation id="3648348069317717750">ตรวจพบ <ph name="USB_DEVICE_NAME" /></translation> <translation id="3649138363871392317">จับภาพแล้ว</translation> +<translation id="3650845953328929506">กำลังรออัปโหลดบันทึก</translation> <translation id="3650952250015018111">อนุญาตให้ "<ph name="APP_NAME" />" เข้าถึง:</translation> <translation id="3651488188562686558">ยกเลิกการเชื่อมต่อ Wi-Fi</translation> <translation id="3652817283076144888">กำลังเริ่มต้น</translation> @@ -1910,6 +1924,7 @@ <translation id="3856800405688283469">เลือกเขตเวลา</translation> <translation id="3857228364945137633">ลองใช้ Smart Lock เพื่อปลดล็อก <ph name="DEVICE_TYPE" /> โดยไม่ต้องใช้รหัสผ่านเมื่อมีโทรศัพท์อยู่ใกล้ๆ</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit</translation> +<translation id="3857807444929313943">ยกนิ้วขึ้นแล้วแตะอีกครั้ง</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: การซิงค์หยุดชั่วคราว</translation> <translation id="3860381078714302691">ยินดีต้อนรับสู่การประชุม Hangouts </translation> <translation id="3861241522664181545">หยุดการโหลดหน้านี้ชั่วคราวแล้ว</translation> @@ -1928,6 +1943,7 @@ <translation id="3873315167136380065">หากต้องการเปิดการตั้งค่า ให้<ph name="BEGIN_LINK" />รีเซ็ตการซิงค์<ph name="END_LINK" />เพื่อนำรหัสผ่านการซิงค์ออก</translation> <translation id="3878840326289104869">กำลังสร้างผู้ใช้ภายใต้การดูแล</translation> <translation id="3879748587602334249">Download Manager</translation> +<translation id="3885455691202481064">แตะเซ็นเซอร์ด้วยนิ้วชี้ เซ็นเซอร์จะอยู่ด้านซ้ายบนของ Chromebook</translation> <translation id="3888550877729210209">จดโน้ตด้วย <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3892414795099177503">เพิ่ม OpenVPN/L2TP...</translation> <translation id="3893536212201235195">อ่านและเปลี่ยนการตั้งค่าการเข้าถึง</translation> @@ -1980,6 +1996,7 @@ <translation id="3950820424414687140">ลงชื่อเข้าใช้</translation> <translation id="3954354850384043518">กำลังดำเนินการ</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> เฮิรตซ์)</translation> +<translation id="3954953195017194676">คุณไม่มีบันทึกเหตุการณ์ WebRTC ที่จับภาพเมื่อเร็วๆ นี้</translation> <translation id="3955193568934677022">อนุญาตให้ไซต์เล่นเนื้อหาที่ได้รับความคุ้มครอง (แนะนำ)</translation> <translation id="3956702100721821638">ไม่สามารถเข้าถึง Google Play</translation> <translation id="3958088479270651626">นำเข้าบุ๊กมาร์กและการตั้งค่า</translation> @@ -2233,6 +2250,7 @@ <translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation> <translation id="4408599188496843485">ความ&ช่วยเหลือ</translation> <translation id="4409697491990005945">ระยะขอบ</translation> +<translation id="4410545552906060960">ใช้หมายเลข (PIN) แทนรหัสผ่านเพื่อปลดล็อกอุปกรณ์ หากต้องการกำหนด PIN ทีหลัง ให้ไปที่การตั้งค่า</translation> <translation id="4411578466613447185">ผู้เซ็นชื่อบนโค้ด</translation> <translation id="4412698727486357573">ศูนย์ช่วยเหลือ</translation> <translation id="44141919652824029">อนุญาตให้ "<ph name="APP_NAME" />" เรียกรายการอุปกรณ์ USB ที่เชื่อมต่ออยู่ใช่ไหม</translation> @@ -2324,8 +2342,10 @@ <translation id="4555769855065597957">เงา</translation> <translation id="4556110439722119938">บุ๊กมาร์ก ประวัติการเข้าชม รหัสผ่าน และการตั้งค่าอื่นๆ จะซิงค์กับบัญชี Google เพื่อให้คุณสามารถใช้ข้อมูลเหล่านี้ได้กับอุปกรณ์ทุกเครื่อง</translation> <translation id="4558426062282641716">ขอสิทธิ์การเปิดอัตโนมัติแล้ว</translation> +<translation id="4558491878126948419">รับเคล็ดลับ <ph name="DEVICE_TYPE" /> ข้อมูลอัปเดตเกี่ยวกับผลิตภัณฑ์ของ Google และแชร์ความคิดเห็น ยกเลิกการรับข่าวสารได้ทุกเมื่อ</translation> <translation id="4559617833001311418">เว็บไซต์นี้เข้าถึงเซ็นเซอร์ตรวจจับการเคลื่อนไหวหรือแสงอยู่</translation> <translation id="4562155214028662640">เพิ่มลายนิ้วมือ</translation> +<translation id="4563880231729913339">นิ้วที่ 3</translation> <translation id="4565377596337484307">ซ่อนรหัสผ่าน</translation> <translation id="4567772783389002344">เพิ่มคำ</translation> <translation id="4568213207643490790">ขออภัย เราไม่อนุญาตให้ใช้บัญชี Google ในอุปกรณ์เครื่องนี้</translation> @@ -2400,6 +2420,7 @@ <translation id="4681930562518940301">เ&ปิดภาพต้นฉบับในแท็บใหม่</translation> <translation id="4682551433947286597">วอลเปเปอร์ที่ปรากฏบนหน้าจอการลงชื่อเข้าใช้</translation> <translation id="4684427112815847243">ซิงค์ทุกอย่าง</translation> +<translation id="4688036121858134881">รหัสบันทึกในเครื่อง: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" /></translation> <translation id="4689235506267737042">เลือกค่ากำหนดการสาธิต</translation> <translation id="4689421377817139245">ซิงค์บุ๊กมาร์กนี้กับ iPhone ของคุณ</translation> <translation id="4690091457710545971"><มีไฟล์ 4 ไฟล์ที่สร้างขึ้นโดยเฟิร์มแวร์ Wi-Fi ของ Intel ได้แก่ csr.lst, fh_regs.lst, radio_reg.lst และ monitor.lst.sysmon โดย 3 ไฟล์แรกเป็นไฟล์ไบนารีที่มี Register Dump ซึ่งผ่านการยืนยันโดย Intel เพื่อไม่ให้รวมข้อมูลส่วนตัวหรือข้อมูลที่ระบุอุปกรณ์ ส่วนไฟล์สุดท้ายเป็นการติดตามการทำงานจากเฟิร์มแวร์ของ Intel โดยมีการลบข้อมูลส่วนตัวหรือข้อมูลที่ระบุอุปกรณ์ออกไปแล้ว แต่ไฟล์มีขนาดใหญ่เกินกว่าที่จะแสดงตรงนี้ได้ ไฟล์เหล่านี้สร้างขึ้นมาเพื่อตอบสนองต่อปัญหา Wi-Fi ล่าสุดในอุปกรณ์ของคุณและระบบจะแชร์ไฟล์กับ Intel เพื่อช่วยแก้ปัญหาเหล่านี้></translation> @@ -2584,6 +2605,7 @@ <translation id="4945444280533270988">Smart Lock เปิดอยู่</translation> <translation id="4953689047182316270">ตอบสนองต่อเหตุการณ์การเข้าถึงพิเศษ</translation> <translation id="4953808748584563296">รูปโปรไฟล์เริ่มต้นสีส้ม</translation> +<translation id="4955710816792587366">เลือก PIN ของคุณ</translation> <translation id="4955814292505481804">รายปี</translation> <translation id="4957949153200969297">เปิดใช้เฉพาะฟีเจอร์ที่เกี่ยวข้องกับการซิงค์ของ <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="4959262764292427323">เราจะบันทึกรหัสผ่านไว้ในบัญชี Google เพื่อให้คุณใช้ในอุปกรณ์เครื่องใดก็ได้</translation> @@ -2649,6 +2671,7 @@ <translation id="5050042263972837708">ชื่อกลุ่ม</translation> <translation id="5052499409147950210">แก้ไขเว็บไซต์</translation> <translation id="5053604404986157245">รหัสผ่าน TPM ที่สร้างแบบสุ่มไม่พร้อมใช้งาน เหตุการณ์นี้เป็นเรื่องปกติหลังจากการ Powerwash</translation> +<translation id="5057110919553308744">เมื่อคุณคลิกส่วนขยาย</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{โฟลเดอร์นี้มีบุ๊กมาร์ก คุณแน่ใจไหมว่าต้องการลบโฟลเดอร์}other{โฟลเดอร์นี้มี # บุ๊กมาร์ก คุณแน่ใจไหมว่าต้องการลบโฟลเดอร์}}</translation> <translation id="5061708541166515394">ความเปรียบต่าง</translation> <translation id="5062930723426326933">การลงชื่อเข้าใช้ล้มเหลว โปรดเชื่อมต่ออินเทอร์เน็ตแล้วลองอีกครั้ง</translation> @@ -2824,6 +2847,7 @@ <translation id="5315873049536339193">ข้อมูลประจำตัว</translation> <translation id="5316716239522500219">แสดงผลบนหน้าจอ</translation> <translation id="5317780077021120954">บันทึก</translation> +<translation id="5318819489018851358">แชร์กับ Linux</translation> <translation id="5319359161174645648">Google ขอแนะนำ Chrome</translation> <translation id="5319566035256672173">อุปกรณ์นี้จะไม่ได้รับการอัปเดตซอฟต์แวร์อีกต่อไปโปรดอัปเกรดแทน</translation> <translation id="532247166573571973">อาจไม่สามารถเข้าถึงเซิร์ฟเวอร์ โปรดลองอีกครั้งในภายหลัง</translation> @@ -3164,6 +3188,7 @@ <translation id="5804241973901381774">การอนุญาต</translation> <translation id="580571955903695899">จัดลำดับใหม่ตามชื่อ</translation> <translation id="5807290661599647102">ตั้งค่าการล็อกหน้าจอ</translation> +<translation id="5811750797187914944">ตั้งค่าเรียบร้อย</translation> <translation id="5814126672212206791">ประเภทการเชื่อมต่อ</translation> <translation id="5815645614496570556">ที่อยู่ X.400</translation> <translation id="5816434091619127343">การเปลี่ยนแปลงเครื่องพิมพ์ที่ขอจะทำให้เครื่องพิมพ์ใช้ไม่ได้</translation> @@ -3201,6 +3226,7 @@ <translation id="5855773610748894548">อ๊ะ เกิดข้อผิดพลาดกับโมดูลความปลอดภัย</translation> <translation id="5856721540245522153">เปิดใช้ฟีเจอร์การแก้ไขข้อบกพร่อง</translation> <translation id="5857090052475505287">โฟลเดอร์ใหม่</translation> +<translation id="5858490737742085133">เทอร์มินัล</translation> <translation id="585979798156957858">แป้นเมตาภายนอก</translation> <translation id="5860033963881614850">ปิด</translation> <translation id="5860209693144823476">แท็บ 3</translation> @@ -3223,6 +3249,7 @@ <translation id="5882919346125742463">เครือข่ายที่รู้จัก</translation> <translation id="5884474295213649357">แท็บนี้เชื่อมต่อกับอุปกรณ์ USB อยู่</translation> <translation id="5885324376209859881">จัดการการตั้งค่าสื่อ...</translation> +<translation id="5886009770935151472">นิ้วที่ 1</translation> <translation id="5889282057229379085">จำนวนสูงสุดของ CA ระดับกลาง: <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">ปิดแล้วเปิดอีกครั้ง</translation> <translation id="5895187275912066135">ออกเมื่อ</translation> @@ -3307,6 +3334,7 @@ <translation id="6025215716629925253">Stack Trace</translation> <translation id="6026047032548434446">ติดตั้งแอปไหม</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - เชื่อมต่ออุปกรณ์ USB อยู่</translation> +<translation id="6028117231645531007">เพิ่มลายนิ้วมือ</translation> <translation id="6029027682598229313">ติดตั้ง Linux เสร็จสมบูรณ์แล้ว</translation> <translation id="6029587122245504742">ช้าที่สุด</translation> <translation id="6032912588568283682">ระบบไฟล์</translation> @@ -3321,6 +3349,7 @@ <translation id="6042308850641462728">เพิ่มเติม</translation> <translation id="6043317578411397101"><ph name="APP_NAME" /> กำลังแชร์แท็บใน Chrome กับ <ph name="TAB_NAME" /></translation> <translation id="6044805581023976844"><ph name="APP_NAME" /> กำลังแชร์แท็บและเสียงใน Chrome กับ <ph name="TAB_NAME" /></translation> +<translation id="6047938872139769630">คุณใช้ PIN เพื่อปลดล็อกอุปกรณ์เมื่อออกจากระบบไปแล้วได้</translation> <translation id="6049004884579590341">กด |<ph name="ACCELERATOR" />| ค้างไว้เพื่อออกจากโหมดเต็มหน้าจอ</translation> <translation id="6049065490165456785">รูปภาพจากกล้องภายใน</translation> <translation id="6051354611314852653">อ๊ะ! ระบบล้มเหลวในการให้สิทธิ์การเข้าถึง API สำหรับอุปกรณ์นี้</translation> @@ -3343,6 +3372,7 @@ <translation id="6075907793831890935">แลกเปลี่ยนข้อมูลกับอุปกรณ์ชื่อ <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">รวมภาพหน้าจอนี้</translation> <translation id="6077131872140550515">นำออกจากเครือข่ายที่ต้องการ</translation> +<translation id="6077189836672154517">เคล็ดลับและข้อมูลอัปเดตใน <ph name="DEVICE_TYPE" /></translation> <translation id="6078323886959318429">เพิ่มทางลัด</translation> <translation id="6078752646384677957">โปรดตรวจสอบไมโครโฟนและระดับเสียง</translation> <translation id="6080515710685820702">หากมีการใช้คอมพิวเตอร์ร่วมกัน ให้ลองเปิดหน้าต่างที่ไม่ระบุตัวตน</translation> @@ -3392,6 +3422,7 @@ <translation id="6144938890088808325">ช่วยเราปรับปรุง Chromebook</translation> <translation id="6146563240635539929">วิดีโอ</translation> <translation id="6147020289383635445">หน้าตัวอย่างก่อนพิมพ์ล้มเหลว</translation> +<translation id="6148052338549899048">ไม่มีอุปกรณ์ที่มีสิทธิ์ <ph name="LINK_BEGIN" />ดูข้อมูลเพิ่มเติม<ph name="LINK_END" /></translation> <translation id="614940544461990577">ลอง:</translation> <translation id="6150853954427645995">หากต้องการบันทึกไฟล์นี้เพื่อการใช้งานแบบออฟไลน์ ให้คลิกขวาที่ไฟล์ แล้วเลือกตัวเลือก <ph name="OFFLINE_CHECKBOX_NAME" /></translation> <translation id="6151323131516309312">กด <ph name="SEARCH_KEY" /> เพื่อค้นหา <ph name="SITE_NAME" /></translation> @@ -3411,6 +3442,7 @@ <translation id="6169040057125497443">โปรดตรวจสอบไมโครโฟน</translation> <translation id="6169666352732958425">ไม่สามารถแคสต์เดสก์ท็อป</translation> <translation id="6171948306033499786">หยุดการพิมพ์ชั่วคราว</translation> +<translation id="6173623053897475761">พิมพ์ PIN อีกครั้ง</translation> <translation id="6175314957787328458">โดเมน GUID ของ Microsoft</translation> <translation id="6176043333338857209">ระบบจะเปิดบลูทูธชั่วคราวเพื่อสื่อสารกับคีย์ความปลอดภัย</translation> <translation id="6178664161104547336">เลือกใบรับรอง</translation> @@ -3600,11 +3632,13 @@ <translation id="6456394469623773452">ดี</translation> <translation id="6456631036739229488">เปลี่ยนโทรศัพท์ที่เปิด Smart Lock แล้ว โปรดป้อนรหัสผ่านเพื่ออัปเดต Smart Lock โทรศัพท์จะปลดล็อก <ph name="DEVICE_TYPE" /> ของคุณในครั้งถัดไป คุณสามารถปิด Smart Lock ได้ใน "การตั้งค่า"</translation> <translation id="645705751491738698">บล็อกการเรียกใช้ JavaScript</translation> +<translation id="6458701200018867744">อัปเดตไม่สำเร็จ (<ph name="WEBRTC_LOG_UPLOAD_TIME" />)</translation> <translation id="6459488832681039634">ใช้สิ่งที่เลือกเพื่อค้นหา</translation> <translation id="6459799433792303855">หน้าต่างที่ใช้งานย้ายไปอยู่หน้าจออื่น</translation> <translation id="6460601847208524483">ค้นหาถัดไป</translation> <translation id="6463795194797719782">แ&ก้ไข</translation> <translation id="6466988389784393586">&เปิดบุ๊กมาร์กทั้งหมด</translation> +<translation id="6467304607960172345">เพิ่มประสิทธิภาพวิดีโอเต็มหน้าจอ</translation> <translation id="6468485451923838994">แบบอักษร</translation> <translation id="6472207088655375767">OTP</translation> <translation id="6472893788822429178">แสดงปุ่มหน้าแรก</translation> @@ -3780,6 +3814,7 @@ <translation id="6725206449694821596">โปรโตคอลการพิมพ์ผ่านอินเทอร์เน็ต (IPP)</translation> <translation id="6727005317916125192">แผงก่อนหน้า</translation> <translation id="6732801395666424405">ยังไม่ได้โหลดใบรับรอง</translation> +<translation id="6732900235521116609">นำทางลัดออกไม่ได้</translation> <translation id="6735304988756581115">แสดงคุกกี้และข้อมูลอื่นของไซต์...</translation> <translation id="6736045498964449756">ขออภัย รหัสผ่านไม่ตรง!</translation> <translation id="6736243959894955139">ที่อยู่</translation> @@ -3863,6 +3898,7 @@ <translation id="6860427144121307915">เปิดในแท็บ</translation> <translation id="6862635236584086457">ไฟล์ทั้งหมดที่บันทึกไว้ในโฟลเดอร์นี้จะถูกสำรองข้อมูลแบบออนไลน์โดยอัตโนมัติ</translation> <translation id="6865313869410766144">ข้อมูลฟอร์มที่ป้อนอัตโนมัติ</translation> +<translation id="6865708901122695652">บันทึกเหตุการณ์ WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">อุณหภูมิสี</translation> <translation id="6870888490422746447">เลือกแอปเพื่อแชร์ไปยัง:</translation> <translation id="6871644448911473373">OCSP Responder: <ph name="LOCATION" /></translation> @@ -3907,6 +3943,7 @@ <translation id="694592694773692225">มีการบล็อกการเปลี่ยนเส้นทางในหน้านี้</translation> <translation id="6949306908218145636">บุ๊กมาร์กหน้าที่เปิดอยู่...</translation> <translation id="6950627417367801484">คืนค่าแอป</translation> +<translation id="6950943362443484797">เราจะติดตั้งแอปนั้นให้คุณ</translation> <translation id="6951153907720526401">เครื่องจัดการการชำระเงิน</translation> <translation id="6955446738988643816">ตรวจสอบป๊อปอัป</translation> <translation id="6957231940976260713">ชื่อบริการ</translation> @@ -3942,6 +3979,7 @@ <translation id="6998711733709403587">เลือก <ph name="SELCTED_FOLDERS_COUNT" /> โฟลเดอร์</translation> <translation id="6998793565256476099">ลงทะเบียนอุปกรณ์สำหรับการประชุมทางวิดีโอ</translation> <translation id="7000347579424117903">รวม Ctrl, Alt หรือแป้นค้นหา</translation> +<translation id="700203306553508933">บันทึกบัตรเพื่อใช้ Google Pay</translation> <translation id="7002055706763150362">ในการตั้งค่า Smart Lock สำหรับ Chromebook นั้น Google จะต้องตรวจสอบว่าเป็นคุณจริงๆ โปรดพิมพ์รหัสผ่านเพื่อเริ่มต้นใช้งาน</translation> <translation id="7002454948392136538">เลือกผู้จัดการสำหรับผู้ใช้ภายใต้การดูแลนี้</translation> <translation id="7003339318920871147">ฐานข้อมูลเว็บ</translation> @@ -3989,6 +4027,7 @@ <translation id="706626672220389329">เกิดข้อผิดพลาดขณะต่อเชื่อมพื้นที่แชร์ ต่อเชื่อมพื้นที่แชร์ที่ระบุแล้ว</translation> <translation id="7066944511817949584">ไม่สามารถเชื่อมต่อกับ "<ph name="DEVICE_NAME" />"</translation> <translation id="7067725467529581407">ไม่ต้องแสดงการแจ้งเตือนนี้อีก</translation> +<translation id="7070484045139057854">ส่วนขยายนี้อ่านและเปลี่ยนข้อมูลเว็บไซต์ได้</translation> <translation id="7072010813301522126">ชื่อทางลัด</translation> <translation id="707392107419594760">เลือกแป้นพิมพ์:</translation> <translation id="7075513071073410194">PKCS #1 MD5 พร้อมการเข้ารหัส RSA</translation> @@ -4118,6 +4157,7 @@ <translation id="7256710573727326513">เปิดในแท็บ</translation> <translation id="725758059478686223">บริการการพิมพ์</translation> <translation id="7257666756905341374">อ่านข้อมูลที่คุณคัดลอกและวาง</translation> +<translation id="7258697411818564379">เพิ่ม PIN ของคุณแล้ว</translation> <translation id="7260764918845374269">คีย์ความปลอดภัยต้องอยู่ในโหมดการจับคู่ คุณจึงจะเห็นได้ กดปุ่มบนคีย์ค้างไว้อย่างน้อย 5 วินาที</translation> <translation id="7262004276116528033">บริการลงชื่อเข้าใช้นี้โฮสต์โดย <ph name="SAML_DOMAIN" /></translation> <translation id="7268365133021434339">ปิดแท็บ</translation> @@ -4265,6 +4305,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">หากลืมรหัสผ่านเก่า</translation> <translation id="7497215489070763236">ใบรับรอง CA ของเซิร์ฟเวอร์</translation> +<translation id="7497981768003291373">คุณไม่มีบันทึกข้อความ WebRTC ที่จับภาพเมื่อเร็วๆ นี้</translation> <translation id="7502658306369382406">ที่อยู่ IPv6</translation> <translation id="7503191893372251637">ประเภทใบรับรองของ Netscape </translation> <translation id="7503821294401948377">ไม่สามารถโหลดไอคอน "<ph name="ICON" />" เพื่อให้เกิดการทำงานของเบราว์เซอร์</translation> @@ -4307,6 +4348,7 @@ <translation id="7564847347806291057">สิ้นสุดกระบวนการ</translation> <translation id="7566118625369982896">จัดการลิงก์ของแอป Play</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">วางนิ้ว</translation> <translation id="756809126120519699">ล้างข้อมูล Chrome แล้ว</translation> <translation id="7568790562536448087">การอัปเดต</translation> <translation id="7571643774869182231">มีพื้นที่เก็บข้อมูลไม่เพียงพอสำหรับอัปเดต</translation> @@ -4469,6 +4511,7 @@ <ph name="LINE_BREAK2" /> ลองเลือกรูปภาพให้น้อยลง</translation> <translation id="782590969421016895">ใช้หน้าเว็บปัจจุบัน</translation> +<translation id="7826346148677309647">หาแอปอื่นๆ สำหรับอุปกรณ์ได้ใน Play Store</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />ฟีเจอร์การแก้ไขข้อบกพร่อง<ph name="END_H3" /> <ph name="BR" /> คุณสามารถเปิดใช้ฟีเจอร์การแก้ไขข้อบกพร่องในอุปกรณ์ Chrome OS เพื่อติดตั้งและทดสอบรหัสที่กำหนดเองในอุปกรณ์ ซึ่งจะช่วยให้ทำสิ่งต่อไปนี้ได้<ph name="BR" /> @@ -4665,6 +4708,7 @@ <translation id="8059417245945632445">&ตรวจสอบอุปกรณ์</translation> <translation id="8063235345342641131">รูปโปรไฟล์เริ่มต้นสีเขียว</translation> <translation id="8064671687106936412">คีย์:</translation> +<translation id="8065485338434000013">บัตรบางใบจะใช้ได้ในอุปกรณ์นี้เท่านั้น</translation> <translation id="806812017500012252">จัดลำดับใหม่ตามชื่อ</translation> <translation id="8068253693380742035">แตะเพื่อลงชื่อเข้าใช้</translation> <translation id="8069615408251337349">Google Cloud Print</translation> @@ -4742,6 +4786,7 @@ <translation id="8191453843330043793">ตัวแก้ไขพร็อกซี V8</translation> <translation id="8193175696669055101">รุ่นอุปกรณ์</translation> <translation id="8195027750202970175">ขนาดบนดิสก์</translation> +<translation id="8198323535106903877">เราจะติดตั้งแอป <ph name="NUMBER_OF_APPS" /> แอปให้คุณ</translation> <translation id="8199300056570174101">เครือข่าย (บริการ) และคุณสมบัติอุปกรณ์</translation> <translation id="8200772114523450471">ทำต่อ</translation> <translation id="8202160505685531999">โปรดป้อนรหัสผ่านใหม่เพื่ออัปเดตโปรไฟล์ <ph name="DEVICE_TYPE" /> ของคุณ</translation> @@ -4961,7 +5006,6 @@ <translation id="8557930019681227453">ไฟล์ Manifest</translation> <translation id="8559694214572302298">ตัวถอดรหัสรูปภาพ</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">อ่านต่อ</translation> <translation id="8565650234829130278">พยายามปรับลดรุ่นแอปพลิเคชัน</translation> <translation id="8569002732135253578">กำลังพิมพ์ <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">ไม่พบปลายทาง</translation> @@ -5074,6 +5118,8 @@ <translation id="8716931980467311658">ลบแอปพลิเคชัน Linux และข้อมูลทั้งหมดในโฟลเดอร์ "ไฟล์ Linux" ออกจาก <ph name="DEVICE_TYPE" /> นี้ไหม</translation> <translation id="8719653885894320876">การดาวน์โหลด <ph name="PLUGIN_NAME" /> ล้มเหลว</translation> <translation id="8723829621484579639">เฟรมย่อยแบบไม่ระบุตัวตนสำหรับ: <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">เมื่อเห็นไอคอนนี้ ให้ใช้ลายนิ้วมือเพื่อระบุตัวตนหรือเพื่ออนุมัติการซื้อ</translation> +<translation id="8724409975248965964">เพิ่มลายนิ้วมือแล้ว</translation> <translation id="8724859055372736596">&แสดงในโฟลเดอร์</translation> <translation id="8725066075913043281">ลองอีกครั้ง</translation> <translation id="8725178340343806893">รายการโปรด/บุ๊กมาร์ก</translation> @@ -5154,6 +5200,7 @@ <translation id="8838770651474809439">แฮมเบอร์เกอร์</translation> <translation id="883911313571074303">ใส่หมายเหตุในรูปภาพ</translation> <translation id="8845001906332463065">ขอความช่วยเหลือ</translation> +<translation id="8846132060409673887">ดูผู้ผลิตและรุ่นของคอมพิวเตอร์เครื่องนี้</translation> <translation id="8846141544112579928">กำลังค้นหาแป้นพิมพ์...</translation> <translation id="8847988622838149491">USB</translation> <translation id="8859057652521303089">เลือกภาษาที่ต้องการ:</translation> @@ -5367,6 +5414,7 @@ <translation id="9161070040817969420">เฟรมย่อยสำหรับ: <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">ส่งข้อมูลระบบ ปัจจุบันอุปกรณ์นี้ส่งข้อมูลการวินิจฉัยและข้อมูลการใช้งานอุปกรณ์และแอปไปยัง Google โดยอัตโนมัติ เจ้าของเป็นผู้บังคับใช้การตั้งค่านี้ หากคุณเปิดกิจกรรมบนเว็บและแอปเพิ่มเติม ระบบจะเก็บข้อมูลนี้ไว้กับบัญชีเพื่อให้คุณจัดการได้ในกิจกรรมของฉัน <ph name="BEGIN_LINK1" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK1" /></translation> <translation id="916607977885256133">การแสดงภาพซ้อนภาพ</translation> +<translation id="9168436347345867845">ข้ามไปก่อน</translation> <translation id="9169496697824289689">ดูแป้นพิมพ์ลัด</translation> <translation id="9169931577761441333">เพิ่ม <ph name="APP_NAME" /> ในหน้าจอหลัก</translation> <translation id="9170848237812810038">เ&ลิกทำ</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb index 168150f..3d642768 100644 --- a/chrome/app/resources/generated_resources_tr.xtb +++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -1513,7 +1513,6 @@ <translation id="3285322247471302225">Yeni &Sekme</translation> <translation id="3288047731229977326">Geliştirici modunda çalışan uzantılar bilgisayarınıza zarar verebilir. Geliştirici değilseniz, geliştirici modundayken güvende olmak için bu uzantıların çalışmasını devre dışı bırakmanız gerekir.</translation> <translation id="3289856944988573801">Güncellemeleri kontrol etmek için lütfen Ethernet veya Kablosuz kullanın.</translation> -<translation id="3292421191230118801">Mobil cihazınızdan ziyaret ettiğiniz siteleri Chromebook'unuzda görüntülemeye devam edin</translation> <translation id="32939749466444286">Linux kapsayıcısı başlamadı. Lütfen tekrar deneyin.</translation> <translation id="3294437725009624529">Misafir</translation> <translation id="329838636886466101">Onar</translation> @@ -4961,7 +4960,6 @@ <translation id="8557930019681227453">Manifest</translation> <translation id="8559694214572302298">Görsel Kod Çözücüsü</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Okumaya Devam Et</translation> <translation id="8565650234829130278">Uygulamanın eski sürümüne geçilmeye çalışıldı.</translation> <translation id="8569002732135253578"><ph name="DOCUMENT_NAME" /> şimdi yazdırılıyor</translation> <translation id="8569682776816196752">Hiçbir hedef bulunamadı</translation> @@ -4991,7 +4989,7 @@ <translation id="8620765578342452535">Ağ bağlantılarını yapılandırma</translation> <translation id="8624205858755890468">Asistan'ın ilgili bilgi, uygulama ve işlemleri göstermesini sağlar.</translation> <translation id="862542460444371744">&Uzantılar</translation> -<translation id="8626219642120025691">Zamanlayıcı bitti</translation> +<translation id="8626219642120025691">Zamanlayıcı sona erdi</translation> <translation id="8627151598708688654">Kaynak seçin</translation> <translation id="862727964348362408">Askıya alındı</translation> <translation id="862750493060684461">CSS önbelleği</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb index 3ba1e548..f21ab793 100644 --- a/chrome/app/resources/generated_resources_uk.xtb +++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -247,6 +247,7 @@ <translation id="1358741672408003399">Правопис і граматика</translation> <translation id="1361164813881551742">Додати вручну</translation> <translation id="1361655923249334273">Не використаний</translation> +<translation id="1361872463926621533">Відтворювати звук під час запуску</translation> <translation id="1363028406613469049">Композиція</translation> <translation id="1367951781824006909">Вибрати файл</translation> <translation id="1368265273904755308">Повідомити про проблему</translation> @@ -570,6 +571,7 @@ <translation id="1817310072033858383">Налаштуйте Smart Lock для свого пристрою <ph name="DEVICE_TYPE" /></translation> <translation id="1817871734039893258">Відновлення файлів Microsoft</translation> <translation id="1818007989243628752">Видалити пароль для <ph name="USERNAME" /></translation> +<translation id="1818913467757368489">Завантажується журнал.</translation> <translation id="1819721979226826163">Торкніться меню "Сповіщення додатків" > "Сервіси Google Play".</translation> <translation id="1826516787628120939">Перевірка</translation> <translation id="1828378091493947763">Цей плагін не підтримується на цьому пристрої</translation> @@ -618,11 +620,13 @@ <translation id="1890674179660343635"><span>Ідентифікатор: </span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">Відкрити на весь екран</translation> <translation id="189358972401248634">Інші мови</translation> +<translation id="1894591787927543791">Збережіть картку, щоб оплачувати через Google Pay</translation> <translation id="1895658205118569222">Завершення роботи</translation> <translation id="1895934970388272448">Щоб завершити цей процес, потрібно підтвердити реєстрацію свого принтера. Зробіть це зараз.</translation> <translation id="1897762215429052132">Налаштування з’єднання з мережею, мови, розкладки клавіатури…</translation> <translation id="1901303067676059328">Вибрати &всі</translation> <translation id="1902576642799138955">Період чинності</translation> +<translation id="1904518222538904133">1 з ваших карток можна використовувати лише на цьому пристрої</translation> <translation id="1905375423839394163">Назва пристрою Chromebook</translation> <translation id="1905710495812624430">Перевищено максимальну кількість дозволених спроб.</translation> <translation id="1909880997794698664">Справді назавжди перевести цей пристрій у режим термінала?</translation> @@ -659,6 +663,7 @@ <translation id="1962969542251276847">Блокування екрана</translation> <translation id="1963227389609234879">Видалити всі</translation> <translation id="1965624977906726414">Спеціальні дозволи не потрібні.</translation> +<translation id="1969654639948595766">Текстові журнали WebRTC (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation> <translation id="1970368523891847084">Увімкнено режим відео</translation> <translation id="197288927597451399">Зберегти</translation> <translation id="1974043046396539880">Точки розповсюдження списку відкликаних сертифікатів (CRL)</translation> @@ -802,6 +807,7 @@ <translation id="2190069059097339078">Засіб отримання облікових даних Wi-Fi</translation> <translation id="219008588003277019">Модуль Native Client: <ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(пусто)</translation> +<translation id="2191223688506386601">І наостанок</translation> <translation id="2192505247865591433">Від:</translation> <translation id="2193365732679659387">Налаштування довіри</translation> <translation id="2195729137168608510">Захист електронної пошти</translation> @@ -1025,6 +1031,7 @@ <translation id="2534460670861217804">Захищений проксі-сервер HTTP</translation> <translation id="253557089021624350">Кількість процесів, які використовуються розширеннями</translation> <translation id="2538361623464451692">Синхронізацію вимкнено</translation> +<translation id="2539876824180063438">Трохи перемістіть вказівний палець, щоб додати інші частини його відбитка.</translation> <translation id="2541002089857695151">Оптимізувати трансляцію на повний екран?</translation> <translation id="2542049655219295786">Таблиця Google</translation> <translation id="2544853746127077729">Сертифікат автентифікації відхилений мережею</translation> @@ -1258,7 +1265,9 @@ <translation id="287286579981869940">Додати <ph name="PROVIDER_NAME" />…</translation> <translation id="2874343608108773609">Щоб мати доступ до паролів на всіх своїх пристроях, увійдіть в обліковий запис Chrome.</translation> <translation id="2875698561019555027">(сторінки Chrome із повідомленням про помилку)</translation> +<translation id="2876336351874743617">Палець 2</translation> <translation id="288042212351694283">Доступ до ваших пристроїв Universal 2nd Factor</translation> +<translation id="2881076733170862447">Коли ви натискаєте розширення</translation> <translation id="2881966438216424900">Дата останнього доступу:</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> за мить перезапуститься та скине налаштування</translation> <translation id="2885378588091291677">Диспетчер завдань</translation> @@ -1444,6 +1453,7 @@ <translation id="3154429428035006212">Офлайн понад місяць</translation> <translation id="3156531245809797194">Щоб користуватися Chrome, увійдіть в обліковий запис</translation> <translation id="3157931365184549694">Відновити</translation> +<translation id="3158033540161634471">Налаштуйте відбиток</translation> <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (з апаратною підтримкою)</translation> <translation id="316125635462764134">Видалити додаток</translation> <translation id="3161522574479303604">Усі мови</translation> @@ -1513,9 +1523,10 @@ <translation id="3285322247471302225">Нова &вкладка</translation> <translation id="3288047731229977326">Розширення, які працюють у режимі розробника, можуть пошкодити ваш комп’ютер. Якщо ви не розробник, вимкніть їх заради безпеки.</translation> <translation id="3289856944988573801">Щоб перевірити наявність оновлень, скористайтеся мережею Ethernet чи Wi-Fi.</translation> -<translation id="3292421191230118801">Продовжуйте переглядати сайт із мобільного пристрою на Chromebook</translation> <translation id="32939749466444286">Не вдалося запустити контейнер Linux. Повторіть спробу.</translation> <translation id="3294437725009624529">Гість</translation> +<translation id="329703603001918157">Неможливо змінити ярлик</translation> +<translation id="3297951628821704004">Видалити обліковий запис із цього пристрою</translation> <translation id="329838636886466101">Відновити</translation> <translation id="3298789223962368867">Введено недійсну URL-адресу.</translation> <translation id="32991397311664836">Пристрої:</translation> @@ -1682,6 +1693,7 @@ <translation id="3534879087479077042">Що таке контрольований користувач?</translation> <translation id="3538066758857505094">Не вдалося встановити Linux. Повторіть спробу.</translation> <translation id="354060433403403521">Адаптер змінного струму</translation> +<translation id="354068948465830244">Може переглядати й змінювати дані сайту</translation> <translation id="3541661933757219855">Щоб сховати, натисніть Ctrl+Alt+/ або Escape</translation> <translation id="3543393733900874979">Не вдалось оновити (помилка: <ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">Алгоритм ECDSA X9.62 з підписом SHA-512</translation> @@ -1727,6 +1739,7 @@ <translation id="3606712892509067288">Видаляє телефон із Better Together</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">Попередній перегляд зображення користувача</translation> +<translation id="3609446736023031597">Отримуйте останні оновлення й рекомендації щодо додатків із Google Play</translation> <translation id="3609785682760573515">Синхронізація…</translation> <translation id="3609895557594655134">Додати Android VPN…</translation> <translation id="361106536627977100">Дані флеш</translation> @@ -1756,9 +1769,10 @@ <translation id="363903084947548957">Наступний спосіб введення</translation> <translation id="3640214691812501263">Додати розширення <ph name="EXTENSION_NAME" /> для користувача <ph name="USER_NAME" />?</translation> <translation id="3644896802912593514">Ширина</translation> -<translation id="3645372836428131288">Трохи перемістіть палець, щоб зісканувати весь відбиток.</translation> +<translation id="3645372836428131288">Трохи перемістіть палець, щоб зісканувати іншу частину відбитка.</translation> <translation id="3648348069317717750">Виявлено пристрій <ph name="USB_DEVICE_NAME" /></translation> <translation id="3649138363871392317">Фотографію збережено</translation> +<translation id="3650845953328929506">Очікується завантаження журналу.</translation> <translation id="3650952250015018111">Надати додатку "<ph name="APP_NAME" />" доступ:</translation> <translation id="3651488188562686558">Відключитися від Wi-Fi</translation> <translation id="3652817283076144888">Ініціалізація</translation> @@ -1910,6 +1924,7 @@ <translation id="3856800405688283469">Виберіть часовий пояс</translation> <translation id="3857228364945137633">Спробуйте розблокувати пристрій <ph name="DEVICE_TYPE" /> за допомогою Smart Lock, не вводячи пароль, коли телефон поблизу.</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation> +<translation id="3857807444929313943">Підніміть і знову торкніться</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />: синхронізацію призупинено</translation> <translation id="3860381078714302691">Вітаємо в Hangouts Meet</translation> <translation id="3861241522664181545">Сторінку призупинено.</translation> @@ -1928,6 +1943,7 @@ <translation id="3873315167136380065">Щоб увімкнути цю функцію, видаліть парольну фразу синхронізації, <ph name="BEGIN_LINK" />скинувши синхронізацію<ph name="END_LINK" />.</translation> <translation id="3878840326289104869">Створення користувача, яким керує адміністратор</translation> <translation id="3879748587602334249">Диспетчер завантажень</translation> +<translation id="3885455691202481064">Торкніться сканера вказівним пальцем. Він розташований угорі ліворуч на Chromebook.</translation> <translation id="3888550877729210209">Створення нотаток за допомогою додатка <ph name="LOCK_SCREEN_APP_NAME" /></translation> <translation id="3892414795099177503">Додати OpenVPN або L2TP…</translation> <translation id="3893536212201235195">Переглядати та змінювати налаштування доступності</translation> @@ -1980,6 +1996,7 @@ <translation id="3950820424414687140">Увійти</translation> <translation id="3954354850384043518">Завантаження триває</translation> <translation id="3954469006674843813"><ph name="WIDTH" /> x <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> герц)</translation> +<translation id="3954953195017194676">Немає нещодавно створених журналів подій WebRTC.</translation> <translation id="3955193568934677022">Дозволити сайтам відтворювати захищений вміст (рекомендується)</translation> <translation id="3956702100721821638">Не вдалося з’єднатися з Google Play</translation> <translation id="3958088479270651626">Імпорт закладок і налаштувань</translation> @@ -2226,13 +2243,14 @@ <translation id="438503109373656455">Жокей</translation> <translation id="4387004326333427325">Сертифікат автентифікації відхилений дистанційно</translation> <translation id="4389091756366370506">Користувач <ph name="VALUE" /></translation> -<translation id="439266289085815679"><ph name="USER_EMAIL" /> керує налаштуваннями Bluetooth.</translation> +<translation id="439266289085815679">Налаштуваннями Bluetooth керує <ph name="USER_EMAIL" />.</translation> <translation id="4394049700291259645">Вимкнути</translation> <translation id="4400367121200150367">Тут відображатимуться сайти, які ніколи не зберігають паролі</translation> <translation id="4400632832271803360">Утримуйте клавішу панелі запуску, щоб змінити функції клавіш верхнього ряду</translation> <translation id="4405117686468554883">*.jpeg, *.jpg, *.png</translation> <translation id="4408599188496843485">Д&овідка</translation> <translation id="4409697491990005945">Поля</translation> +<translation id="4410545552906060960">Використовуйте для розблокування пристрою число (PIN-код) замість пароля. Щоб установити PIN-код пізніше, перейдіть в налаштування.</translation> <translation id="4411578466613447185">Підписувач коду</translation> <translation id="4412698727486357573">Довідковий центр</translation> <translation id="44141919652824029">Дозволити додатку <ph name="APP_NAME" /> отримувати список підключених пристроїв USB?</translation> @@ -2324,8 +2342,10 @@ <translation id="4555769855065597957">Shadow</translation> <translation id="4556110439722119938">Ваші закладки, історія, паролі й інші налаштування синхронізуватимуться з обліковим записом Google, щоб ви могли користуватися ними на всіх своїх пристроях</translation> <translation id="4558426062282641716">Потрібен дозвіл на автозапуск</translation> +<translation id="4558491878126948419">Отримуйте поради для <ph name="DEVICE_TYPE" /> і оновлення щодо продуктів Google, а також надсилайте відгуки. Ви можете будь-коли скасувати підписку.</translation> <translation id="4559617833001311418">Цей сайт має доступ до датчиків руху чи світла.</translation> <translation id="4562155214028662640">Додати відбиток пальця</translation> +<translation id="4563880231729913339">Палець 3</translation> <translation id="4565377596337484307">Сховати пароль</translation> <translation id="4567772783389002344">Додати слово</translation> <translation id="4568213207643490790">На цьому пристрої не можна входити в облікові записи Google.</translation> @@ -2400,6 +2420,7 @@ <translation id="4681930562518940301">Відкрити оригінальне зображення в новій вкладці</translation> <translation id="4682551433947286597">Фонові малюнки з’являються на екрані входу.</translation> <translation id="4684427112815847243">Синхронізувати все</translation> +<translation id="4688036121858134881">Ідентифікатор локального журналу: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation> <translation id="4689235506267737042">Виберіть демо-параметри</translation> <translation id="4689421377817139245">Синхронізуйте цю закладку з iPhone</translation> <translation id="4690091457710545971"><Мікропрограма Wi-Fi від Intel згенерувала чотири файли: csr.lst, fh_regs.lst, radio_reg.lst, monitor.lst.sysmon. Перші три – це двійкові файли, що містять дані розвантаження пам’яті реєстру та не включають особисту інформацію й відомості, за якими можна ідентифікувати пристрій (як стверджує компанія Intel). Останній файл – це трасування виконання мікропрограми Intel; з нього стерто всю особисту інформацію й дані, за якими можна ідентифікувати пристрій, але він завеликий, щоб відображатися тут. Ці файли згенеровано у відповідь на нещодавні проблеми з Wi-Fi на пристрої. Їх буде надіслано в Intel, щоб допомогти вирішити ці проблеми.></translation> @@ -2530,7 +2551,7 @@ <translation id="4880520557730313061">Автовиправлення</translation> <translation id="4880827082731008257">Пошук в історії</translation> <translation id="4881695831933465202">Відкрити</translation> -<translation id="4882312758060467256">Має доступ до цього сайту</translation> +<translation id="4882312758060467256">Може запускатися на цьому сайті</translation> <translation id="4882473678324857464">Перейти до закладок</translation> <translation id="4882831918239250449">Указуйте, як використовувати історію веб-перегляду для персоналізації Пошуку, оголошень тощо</translation> <translation id="4883178195103750615">Експортувати закладки у файл HTML...</translation> @@ -2584,6 +2605,7 @@ <translation id="4945444280533270988">Smart Lock увімкнено</translation> <translation id="4953689047182316270">реагувати на події спеціальних можливостей</translation> <translation id="4953808748584563296">Стандартний оранжевий аватар</translation> +<translation id="4955710816792587366">Придумайте PIN-код</translation> <translation id="4955814292505481804">Річна ліцензія</translation> <translation id="4957949153200969297">Вмикає лише функції, пов’язані із синхронізацією <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> <translation id="4959262764292427323">Паролі збережено в обліковому записі Google, щоб ви могли користуватися ними на будь-якому пристрої</translation> @@ -2649,6 +2671,7 @@ <translation id="5050042263972837708">Назва групи</translation> <translation id="5052499409147950210">Редагувати сайт</translation> <translation id="5053604404986157245">Навмання згенерований пароль TPM не доступний. Це нормально після Powerwash (очищення).</translation> +<translation id="5057110919553308744">Коли ви натискаєте розширення</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{Ця папка містить закладку. Усе одно видалити?}one{Ця папка містить # закладку. Усе одно видалити?}few{Ця папка містить # закладки. Усе одно видалити?}many{Ця папка містить # закладок. Усе одно видалити?}other{Ця папка містить # закладки. Усе одно видалити?}}</translation> <translation id="5061708541166515394">Контраст</translation> <translation id="5062930723426326933">Помилка входу. Під’єднайтеся до Інтернету та повторіть спробу.</translation> @@ -2824,6 +2847,7 @@ <translation id="5315873049536339193">Ідентифікаційна інформація</translation> <translation id="5316716239522500219">Дбулювати зображення на моніторах</translation> <translation id="5317780077021120954">Зберегти</translation> +<translation id="5318819489018851358">Надати доступ додаткам Linux</translation> <translation id="5319359161174645648">Google рекомендує Chrome</translation> <translation id="5319566035256672173">Цей пристрій більше не отримуватиме оновлення програмного забезпечення. Радимо змінити пристрій.</translation> <translation id="532247166573571973">Можливо, сервер недоступний. Спробуйте пізніше.</translation> @@ -3164,6 +3188,7 @@ <translation id="5804241973901381774">Дозволи</translation> <translation id="580571955903695899">Переупорядкувати за назвою</translation> <translation id="5807290661599647102">Налаштувати блокування екрана</translation> +<translation id="5811750797187914944">Готово</translation> <translation id="5814126672212206791">Тип з’єднання</translation> <translation id="5815645614496570556">Адреса каталогу X.400</translation> <translation id="5816434091619127343">Після цих змін принтер стане непридатним для використання.</translation> @@ -3201,6 +3226,7 @@ <translation id="5855773610748894548">Помилка модуля безпеки.</translation> <translation id="5856721540245522153">Увімкнути функції налагодження</translation> <translation id="5857090052475505287">Нова папка</translation> +<translation id="5858490737742085133">Термінал</translation> <translation id="585979798156957858">Зовнішня мета-клавіша</translation> <translation id="5860033963881614850">Вимк.</translation> <translation id="5860209693144823476">Вкладка 3</translation> @@ -3223,6 +3249,7 @@ <translation id="5882919346125742463">Відомі мережі</translation> <translation id="5884474295213649357">Цю вкладку під’єднано до пристрою USB.</translation> <translation id="5885324376209859881">Керувати налаштуваннями засобів зв’язку…</translation> +<translation id="5886009770935151472">Палець 1</translation> <translation id="5889282057229379085">Максимальна кількість проміжних ЦС: <ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">Перезапустити</translation> <translation id="5895187275912066135">Дата видачі</translation> @@ -3307,6 +3334,7 @@ <translation id="6025215716629925253">Запис стека</translation> <translation id="6026047032548434446">Установити додаток?</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> – пристрій USB підключено</translation> +<translation id="6028117231645531007">Додати відбиток пальця</translation> <translation id="6029027682598229313">Встановлення Linux завершено.</translation> <translation id="6029587122245504742">найповільніше</translation> <translation id="6032912588568283682">Файлова система</translation> @@ -3321,6 +3349,7 @@ <translation id="6042308850641462728">Більше</translation> <translation id="6043317578411397101"><ph name="APP_NAME" /> транслює вкладку Chrome на вкладку <ph name="TAB_NAME" />.</translation> <translation id="6044805581023976844"><ph name="APP_NAME" /> транслює вкладку Chrome і аудіо на вкладку <ph name="TAB_NAME" />.</translation> +<translation id="6047938872139769630">PIN-код можна використовувати, щоб розблоковувати пристрій, не входячи в обліковий запис</translation> <translation id="6049004884579590341">Щоб вийти з повноекранного режиму, утримуйте клавішу |<ph name="ACCELERATOR" />|,</translation> <translation id="6049065490165456785">Фотографія з внутрішньої камери</translation> <translation id="6051354611314852653">Помилка. Системі на вдалося надати API доступ до цього пристрою.</translation> @@ -3343,6 +3372,7 @@ <translation id="6075907793831890935">Обмінюватися даними з пристроєм із назвою <ph name="HOSTNAME" /></translation> <translation id="6076448957780543068">Додати цей знімок екрана</translation> <translation id="6077131872140550515">Вилучити з рекомендованих</translation> +<translation id="6077189836672154517">Поради й оновлення для пристрою <ph name="DEVICE_TYPE" /></translation> <translation id="6078323886959318429">Додати ярлик</translation> <translation id="6078752646384677957">Перевірте рівень мікрофона та звуку.</translation> <translation id="6080515710685820702">Користуєтеся комп’ютером спільно з іншими? Відкрийте вікно в режимі анонімного перегляду.</translation> @@ -3392,6 +3422,7 @@ <translation id="6144938890088808325">Допоможіть нам покращити Chromebook</translation> <translation id="6146563240635539929">Відео</translation> <translation id="6147020289383635445">Помилка версії для друку.</translation> +<translation id="6148052338549899048">Немає пристроїв, які відповідають вимогам. <ph name="LINK_BEGIN" />Докладніше.<ph name="LINK_END" /></translation> <translation id="614940544461990577">Спробуйте:</translation> <translation id="6150853954427645995">Щоб зберегти цей файл для використання в режимі офлайн, під’єднайте пристрій до Інтернету, натисніть файл правою кнопкою миші та виберіть опцію <ph name="OFFLINE_CHECKBOX_NAME" />.</translation> <translation id="6151323131516309312">Натисніть <ph name="SEARCH_KEY" />, щоб здійснити пошук <ph name="SITE_NAME" /></translation> @@ -3411,6 +3442,7 @@ <translation id="6169040057125497443">Перевірте мікрофон.</translation> <translation id="6169666352732958425">Не вдається транслювати робочий стіл.</translation> <translation id="6171948306033499786">Призупинити друк</translation> +<translation id="6173623053897475761">Введіть PIN-код знову</translation> <translation id="6175314957787328458">GUID домену Microsoft</translation> <translation id="6176043333338857209">Bluetooth буде тимчасово ввімкнено для обміну даними з ключем безпеки</translation> <translation id="6178664161104547336">Вибір сертифіката</translation> @@ -3600,11 +3632,13 @@ <translation id="6456394469623773452">Оптимальний</translation> <translation id="6456631036739229488">Змінено телефон із Smart Lock. Щоб оновити Smart Lock, введіть пароль. Наступного разу ви зможете розблокувати пристрій <ph name="DEVICE_TYPE" /> за допомогою свого телефона. Smart Lock можна вимкнути в налаштуваннях.</translation> <translation id="645705751491738698">Продовжити блокування JavaScript</translation> +<translation id="6458701200018867744">Помилка завантаження (<ph name="WEBRTC_LOG_UPLOAD_TIME" />).</translation> <translation id="6459488832681039634">Використати виділення для пошуку</translation> <translation id="6459799433792303855">Активне вікно переміщено на інший дисплей</translation> <translation id="6460601847208524483">Знайти наступне</translation> <translation id="6463795194797719782">&Редагувати</translation> <translation id="6466988389784393586">&Відкрити всі закладки</translation> +<translation id="6467304607960172345">Оптимізувати відео на весь екран</translation> <translation id="6468485451923838994">Шрифти</translation> <translation id="6472207088655375767">Одноразовий пароль</translation> <translation id="6472893788822429178">Показати кнопку "Домашня сторінка"</translation> @@ -3780,6 +3814,7 @@ <translation id="6725206449694821596">Протокол друку через Інтернет (IPP)</translation> <translation id="6727005317916125192">Попередня панель</translation> <translation id="6732801395666424405">Сертифікати не завантажено</translation> +<translation id="6732900235521116609">Неможливо видалити ярлик</translation> <translation id="6735304988756581115">Показати файли cookie та інші дані із сайтів...</translation> <translation id="6736045498964449756">На жаль, паролі не збігаються.</translation> <translation id="6736243959894955139">Адреса</translation> @@ -3863,6 +3898,7 @@ <translation id="6860427144121307915">Відкрити у вкладці</translation> <translation id="6862635236584086457">Для всіх файлів, збережених у цій папці, автоматично зберігаються резервні копії онлайн</translation> <translation id="6865313869410766144">Дані автозаповнення форм</translation> +<translation id="6865708901122695652">Журнали подій WebRTC (<ph name="WEBRTC_EVENT_LOG_COUNT" />)</translation> <translation id="686664946474413495">Температура кольорів</translation> <translation id="6870888490422746447">Виберіть додаток:</translation> <translation id="6871644448911473373">Відповідач OCSP: <ph name="LOCATION" /></translation> @@ -3907,6 +3943,7 @@ <translation id="694592694773692225">Переспрямування заблоковано на цій сторінці.</translation> <translation id="6949306908218145636">Створити закладки для відкритих сторінок…</translation> <translation id="6950627417367801484">Відновити додатки</translation> +<translation id="6950943362443484797">Ми встановимо цей додаток для вас</translation> <translation id="6951153907720526401">Обробники платежів</translation> <translation id="6955446738988643816">Перевірити спливаюче вікно</translation> <translation id="6957231940976260713">Назва служби</translation> @@ -3942,6 +3979,7 @@ <translation id="6998711733709403587">Вибрано папок: <ph name="SELCTED_FOLDERS_COUNT" /></translation> <translation id="6998793565256476099">Зареєструвати пристрій для відеоконференцій</translation> <translation id="7000347579424117903">Натискайте Ctrl, Alt або клавішу пошуку</translation> +<translation id="700203306553508933">Зберегти картки, щоб оплачувати через Google Pay</translation> <translation id="7002055706763150362">Перш ніж налаштувати Smart Lock для Chromebook, введіть пароль – Google має переконатися, що це ви.</translation> <translation id="7002454948392136538">Виберіть менеджера для цього контрольованого користувача</translation> <translation id="7003339318920871147">Онлайнові бази даних</translation> @@ -3989,6 +4027,7 @@ <translation id="706626672220389329">Помилка підключення спільного доступу. Указаний пристрій уже підключено.</translation> <translation id="7066944511817949584">Не вдалося під’єднатися до пристрою "<ph name="DEVICE_NAME" />".</translation> <translation id="7067725467529581407">Більше не показувати.</translation> +<translation id="7070484045139057854">Може переглядати й змінювати дані сайту</translation> <translation id="7072010813301522126">Назва ярлика</translation> <translation id="707392107419594760">Виберіть свою клавіатуру:</translation> <translation id="7075513071073410194">PKCS #1 MD5 із шифруванням RSA</translation> @@ -4118,6 +4157,7 @@ <translation id="7256710573727326513">Відкрити у вкладці</translation> <translation id="725758059478686223">Служба друку</translation> <translation id="7257666756905341374">Читати дані, які ви копіюєте та вставляєте</translation> +<translation id="7258697411818564379">PIN-код додано</translation> <translation id="7260764918845374269">Щоб переглянути ключ безпеки, він має бути в режимі підключення. Утримуйте кнопку на ключі безпеки принаймні 5 секунд.</translation> <translation id="7262004276116528033">Ця служба входу в обліковий запис зареєстрована в домені <ph name="SAML_DOMAIN" /></translation> <translation id="7268365133021434339">Закрити вкладки</translation> @@ -4168,7 +4208,7 @@ <translation id="7339898014177206373">Нове вікно</translation> <translation id="7340431621085453413"><ph name="FULLSCREEN_ORIGIN" /> зараз у повноекранному режимі.</translation> <translation id="7340650977506865820">Сайт показує ваш екран</translation> -<translation id="7341834142292923918">Хоче отримати доступ до цього сайту</translation> +<translation id="7341834142292923918">Запитує дозвіл запускатися на цьому сайті</translation> <translation id="7345706641791090287">Підтвердьте пароль</translation> <translation id="7346909386216857016">OK</translation> <translation id="7347751611463936647">Щоб користуватися цим розширенням, введіть "<ph name="EXTENSION_KEYWORD" />", потім TAB, а потім свою команду чи пошук.</translation> @@ -4265,6 +4305,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" />x<ph name="HEIGHT" /></translation> <translation id="7495778526395737099">Забули старий пароль?</translation> <translation id="7497215489070763236">Сертифікат ЦС для сервера</translation> +<translation id="7497981768003291373">Немає нещодавно створених текстових журналів WebRTC.</translation> <translation id="7502658306369382406">Адреса IPv6</translation> <translation id="7503191893372251637">Тип сертифіката Netscape</translation> <translation id="7503821294401948377">Не вдалося завантажити піктограму "<ph name="ICON" />" для роботи веб-переглядача.</translation> @@ -4307,6 +4348,7 @@ <translation id="7564847347806291057">Завершити процес</translation> <translation id="7566118625369982896">Керувати посиланнями на додатки в Google Play</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">Прикладіть палець</translation> <translation id="756809126120519699">Дані Chrome видалено</translation> <translation id="7568790562536448087">Оновлення</translation> <translation id="7571643774869182231">Замало пам’яті для оновлення</translation> @@ -4469,6 +4511,7 @@ <ph name="LINE_BREAK2" /> Виберіть кілька фотографій.</translation> <translation id="782590969421016895">Використати поточні сторінки</translation> +<translation id="7826346148677309647">Більше додатків для вашого пристрою можна знайти в Play Маркеті.</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />Функції налагодження<ph name="END_H3" /> <ph name="BR" /> Ви можете ввімкнути функції налагодження на своєму пристрої з ОС Chrome, щоб установити та перевірити на ньому спеціальний код. Після цього ви зможете:<ph name="BR" /> @@ -4665,6 +4708,7 @@ <translation id="8059417245945632445">&Перевірити пристрої</translation> <translation id="8063235345342641131">Стандартний зелений аватар</translation> <translation id="8064671687106936412">Ключ:</translation> +<translation id="8065485338434000013">Деякі картки можна використовувати лише на цьому пристрої</translation> <translation id="806812017500012252">Переупорядкувати за назвою</translation> <translation id="8068253693380742035">Торкніться, щоб увійти</translation> <translation id="8069615408251337349">Google Cloud Print</translation> @@ -4742,6 +4786,7 @@ <translation id="8191453843330043793">Засіб розпізнавання проксі-сервера V8</translation> <translation id="8193175696669055101">Модель пристрою</translation> <translation id="8195027750202970175">Розмір на диску</translation> +<translation id="8198323535106903877">Ми встановимо для вас стільки додатків: <ph name="NUMBER_OF_APPS" /></translation> <translation id="8199300056570174101">Параметри мережі (служби) і пристрою</translation> <translation id="8200772114523450471">Поновити</translation> <translation id="8202160505685531999">Щоб оновити профіль <ph name="DEVICE_TYPE" />, введіть пароль ще раз.</translation> @@ -4961,7 +5006,6 @@ <translation id="8557930019681227453">Маніфест</translation> <translation id="8559694214572302298">Декодер зображень</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Продовжити читати</translation> <translation id="8565650234829130278">Спроба встановити програму нижчої версії.</translation> <translation id="8569002732135253578">Друк "<ph name="DOCUMENT_NAME" />"</translation> <translation id="8569682776816196752">Не знайдено жодного місця призначення</translation> @@ -5074,6 +5118,8 @@ <translation id="8716931980467311658">Видалити всі додатки та дані Linux у папці "Файли Linux" на цьому пристрої <ph name="DEVICE_TYPE" />?</translation> <translation id="8719653885894320876">Не вдалося завантажити плагін <ph name="PLUGIN_NAME" /></translation> <translation id="8723829621484579639">Анонімні додаткові фрейми для сайту <ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">Коли з’явиться цей значок, підтвердьте свою особу або покупку за допомогою відбитка пальця.</translation> +<translation id="8724409975248965964">Відбиток додано</translation> <translation id="8724859055372736596">&Показати в папці</translation> <translation id="8725066075913043281">Повторити спробу</translation> <translation id="8725178340343806893">Улюблені/Закладки</translation> @@ -5154,6 +5200,7 @@ <translation id="8838770651474809439">Гамбургер</translation> <translation id="883911313571074303">Додати нотатку до зображення</translation> <translation id="8845001906332463065">Отримати довідку</translation> +<translation id="8846132060409673887">Показувати виробника й модель цього комп’ютера</translation> <translation id="8846141544112579928">Пошук клавіатури…</translation> <translation id="8847988622838149491">Сповіщення щодо USB</translation> <translation id="8859057652521303089">Виберіть мову:</translation> @@ -5289,7 +5336,7 @@ <translation id="9050666287014529139">Парольна фраза</translation> <translation id="9052208328806230490">Ви зареєстрували свої принтери в <ph name="CLOUD_PRINT_NAME" />, використавши обліковий запис <ph name="EMAIL" /></translation> <translation id="9052404922357793350">Продовжити блокування</translation> -<translation id="9053091947372579468">Ваш пристрій містить ліцензію Chrome, але ім’я користувача не пов’язане з Консоллю адміністратора. Щоб продовжити реєстрацію, створіть обліковий запис Консолі адміністратора. Примітка. Якщо ви створите новий обліковий запис за допомогою власного домену, після реєстрації потрібно буде підтвердити домен. https://g.co/ChromeEnterpriseAccount</translation> +<translation id="9053091947372579468">На вашому пристрої є ліцензія Chrome, але ім’я користувача не пов’язане з Консоллю адміністратора. Щоб продовжити реєстрацію, створіть обліковий запис Консолі адміністратора. Зверніть увагу: якщо ви використаєте власний домен для реєстрації, то після введення даних потрібно буде пройти процедуру перевірки домену. https://g.co/ChromeEnterpriseAccount</translation> <translation id="9053893665344928494">Запам’ятати мій вибір</translation> <translation id="9055636786322918818">Застосовує шифрування RC4. Використання цієї опції підвищує ризик, оскільки шифри RC4 ненадійні.</translation> <translation id="9056034633062863292">Оновлення Chromebox</translation> @@ -5367,6 +5414,7 @@ <translation id="9161070040817969420">Додаткові фрейми для сайту <ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">Надсилання системних даних. Зараз цей пристрій автоматично надсилає в Google дані про діагностику та використання пристрою й додатків. Цей параметр налаштовано власником. Якщо Історію додатків і веб-пошуку ввімкнено, ця інформація зберігатиметься в обліковому записі. Ви зможете керувати нею в розділі "Моя активність". <ph name="BEGIN_LINK1" />Докладніше<ph name="END_LINK1" /></translation> <translation id="916607977885256133">Картинка в картинці</translation> +<translation id="9168436347345867845">Пізніше</translation> <translation id="9169496697824289689">Переглянути комбінації клавіш</translation> <translation id="9169931577761441333">Додати додаток <ph name="APP_NAME" /> на головний екран</translation> <translation id="9170848237812810038">&Скасувати</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb index c737b21..7ffea3e 100644 --- a/chrome/app/resources/generated_resources_vi.xtb +++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -1513,7 +1513,6 @@ <translation id="3285322247471302225">&Tab Mới</translation> <translation id="3288047731229977326">Tiện ích chạy ở chế độ nhà phát triển có thể gây hại cho máy tính của bạn. Nếu bạn không phải là nhà phát triển, bạn nên vô hiệu hóa các tiện ích này chạy trong chế độ nhà phát triển để giữ an toàn.</translation> <translation id="3289856944988573801">Để kiểm tra các cập nhật, hãy sử dụng kết nối Ethernet hoặc Wi-Fi.</translation> -<translation id="3292421191230118801">Tiếp tục xem trên Chromebook các trang web bạn xem bằng thiết bị di động</translation> <translation id="32939749466444286">Vùng chứa Linux không khởi động. Vui lòng thử lại.</translation> <translation id="3294437725009624529">Khách</translation> <translation id="329838636886466101">Sửa</translation> @@ -1756,7 +1755,7 @@ <translation id="363903084947548957">Phương thức nhập tiếp theo</translation> <translation id="3640214691812501263">Thêm "<ph name="EXTENSION_NAME" />" cho <ph name="USER_NAME" />?</translation> <translation id="3644896802912593514">Chiều rộng</translation> -<translation id="3645372836428131288">Di chuyển nhẹ để quét một phần khác của vân tay.</translation> +<translation id="3645372836428131288">Nhẹ nhàng di chuyển ngón tay để hệ thống quét các phần của vân tay.</translation> <translation id="3648348069317717750">Đã phát hiện thấy <ph name="USB_DEVICE_NAME" /></translation> <translation id="3649138363871392317">Đã chụp ảnh</translation> <translation id="3650952250015018111">Cho phép "<ph name="APP_NAME" />" truy cập vào:</translation> @@ -3024,7 +3023,7 @@ <translation id="5588033542900357244">(<ph name="RATING_COUNT" />)</translation> <translation id="558918721941304263">Đang tải ứng dụng...</translation> <translation id="5592595402373377407">Chưa có đủ dữ liệu.</translation> -<translation id="5593357315997824387">Đồng bộ hóa tệp của tôi</translation> +<translation id="5593357315997824387">Đồng bộ hóa các tệp</translation> <translation id="5595152862129936745">Rất xa</translation> <translation id="5595485650161345191">Chỉnh sửa địa chỉ</translation> <translation id="5596627076506792578">Tùy chọn khác</translation> @@ -3755,7 +3754,7 @@ <translation id="6690565918367819723"><ph name="PROFILE_NAME" /> Chuyển người dùng</translation> <translation id="6690659332373509948">Không thể phân tích cú pháp tệp: <ph name="FILE_NAME" /></translation> <translation id="6690751852586194791">Chọn người dùng được giám sát để thêm vào thiết bị này.</translation> -<translation id="6691331417640343772">Quản lý dữ liệu được đồng bộ hóa trên Trang tổng quan của Google</translation> +<translation id="6691331417640343772">Quản lý dữ liệu đã đồng bộ hóa trên Trang tổng quan của Google</translation> <translation id="6691936601825168937">Chuyển &tiếp</translation> <translation id="6697492270171225480">Hiển thị đề xuất về các trang tương tự khi không tìm thấy một trang nào đó</translation> <translation id="6698810901424468597">Đọc và thay đổi dữ liệu của bạn trên <ph name="WEBSITE_1" /> và <ph name="WEBSITE_2" /></translation> @@ -4961,7 +4960,6 @@ <translation id="8557930019681227453">Tệp kê khai</translation> <translation id="8559694214572302298">Trình giải mã hình ảnh</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">Tiếp tục đọc</translation> <translation id="8565650234829130278">Đã cố gắng hạ cấp ứng dụng.</translation> <translation id="8569002732135253578">Hiện đang in <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">Không tìm thấy điểm đến nào</translation> @@ -4991,7 +4989,7 @@ <translation id="8620765578342452535">Định cấu hình kết nối mạng</translation> <translation id="8624205858755890468">Cho phép Trợ lý hiển thị cho bạn các hành động, ứng dụng và thông tin có liên quan.</translation> <translation id="862542460444371744">&Tiện ích mở rộng</translation> -<translation id="8626219642120025691">Đã thiết lập xong bộ hẹn giờ</translation> +<translation id="8626219642120025691">Bộ hẹn giờ đã kết thúc</translation> <translation id="8627151598708688654">Chọn nguồn</translation> <translation id="862727964348362408">Bị tạm ngưng</translation> <translation id="862750493060684461">Bộ nhớ đệm CSS</translation> @@ -5289,7 +5287,7 @@ <translation id="9050666287014529139">Cụm mật khẩu</translation> <translation id="9052208328806230490">Bạn vừa đăng ký máy in của mình với <ph name="CLOUD_PRINT_NAME" /> bằng tài khoản <ph name="EMAIL" /></translation> <translation id="9052404922357793350">Tiếp tục chặn</translation> -<translation id="9053091947372579468">Thiết bị của bạn bao gồm giấy phép Chrome, nhưng tên người dùng lại không liên kết với Bảng điều khiển dành cho quản trị viên. Vui lòng tạo tài khoản Bảng điều khiển dành cho quản trị viên để tiếp tục đăng ký. Lưu ý: Nếu chọn dùng miền của riêng mình để tạo tài khoản mới trên Bảng điều khiển dành cho quản trị viên, bạn vẫn phải hoàn tất xác minh miền sau khi đăng ký. https://g.co/ChromeEnterpriseAccount</translation> +<translation id="9053091947372579468">Thiết bị của bạn bao gồm giấy phép Chrome, nhưng tên người dùng của bạn lại không liên kết với Bảng điều khiển dành cho quản trị viên. Vui lòng tạo tài khoản Bảng điều khiển dành cho quản trị viên để tiếp tục đăng ký. Lưu ý: Nếu chọn dùng miền của riêng mình để tạo tài khoản mới trên Bảng điều khiển dành cho quản trị viên, bạn vẫn phải hoàn tất quy trình xác minh miền sau khi đăng ký. https://g.co/ChromeEnterpriseAccount</translation> <translation id="9053893665344928494">Ghi nhớ lựa chọn của tôi</translation> <translation id="9055636786322918818">Thực thi mã hóa RC4. Việc sử dụng tùy chọn này sẽ làm gia tăng rủi ro vì các thuật toán mã hóa RC4 là không an toàn.</translation> <translation id="9056034633062863292">Đang cập nhật Chromebox</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb index e6c1906e..7eed60e 100644 --- a/chrome/app/resources/generated_resources_zh-CN.xtb +++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -42,7 +42,7 @@ <translation id="1056775291175587022">找不到任何网络</translation> <translation id="1056898198331236512">警告</translation> <translation id="1058262162121953039">PUK</translation> -<translation id="1059855432287631118">正在注册指纹</translation> +<translation id="1059855432287631118">注册指纹</translation> <translation id="1061904396131502319">快到休息时间了</translation> <translation id="1062407476771304334">替换</translation> <translation id="1067048845568873861">创建时间</translation> @@ -1509,7 +1509,6 @@ <translation id="3285322247471302225">打开新的标签页(&T)</translation> <translation id="3288047731229977326">以开发者模式运行的扩展程序可能会损害您的计算机。如果您不是开发者,那么,为安全起见,应停用以开发者模式运行的扩展程序。</translation> <translation id="3289856944988573801">要检查是否有更新,请使用以太网或 WLAN。</translation> -<translation id="3292421191230118801">在您的 Chromebook 上继续浏览先前在手机上访问的网站</translation> <translation id="32939749466444286">无法启动 Linux 容器。请重试。</translation> <translation id="3294437725009624529">访客</translation> <translation id="329838636886466101">修复</translation> @@ -4945,7 +4944,6 @@ <translation id="8557930019681227453">由应用缓存指定的网址</translation> <translation id="8559694214572302298">图片解码器</translation> <translation id="8561853412914299728">“<ph name="TAB_TITLE" />”<ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">继续阅读</translation> <translation id="8565650234829130278">已尝试降低应用版本。</translation> <translation id="8569002732135253578">正在打印 <ph name="DOCUMENT_NAME" /></translation> <translation id="8569682776816196752">未找到任何目标</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb index bdf8851..b7fa0a36 100644 --- a/chrome/app/resources/generated_resources_zh-TW.xtb +++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -247,6 +247,7 @@ <translation id="1358741672408003399">拼字與文法</translation> <translation id="1361164813881551742">手動新增</translation> <translation id="1361655923249334273">未使用</translation> +<translation id="1361872463926621533">啟動時播放音效</translation> <translation id="1363028406613469049">追蹤</translation> <translation id="1367951781824006909">選擇檔案</translation> <translation id="1368265273904755308">回報問題</translation> @@ -570,6 +571,7 @@ <translation id="1817310072033858383">為你的 <ph name="DEVICE_TYPE" /> 設定 Smart Lock</translation> <translation id="1817871734039893258">Microsoft 檔案復原</translation> <translation id="1818007989243628752">刪除 <ph name="USERNAME" /> 的密碼</translation> +<translation id="1818913467757368489">正在上傳記錄。</translation> <translation id="1819721979226826163">依序輕觸 [應用程式通知] > [Google Play 服務]。</translation> <translation id="1826516787628120939">檢查中</translation> <translation id="1828378091493947763">這部裝置不支援這個外掛程式</translation> @@ -618,11 +620,13 @@ <translation id="1890674179660343635"><span>ID:</span><ph name="EXTENSION_ID" /></translation> <translation id="189210018541388520">開啟全螢幕</translation> <translation id="189358972401248634">其他語言</translation> +<translation id="1894591787927543791">將卡片資訊儲存至 Google Pay 以供使用</translation> <translation id="1895658205118569222">關閉</translation> <translation id="1895934970388272448">你必須在印表機上確認註冊,才能完成這個程序。請立即查看。</translation> <translation id="1897762215429052132">設定網路連線、語言、鍵盤配置...</translation> <translation id="1901303067676059328">選取全部(&A)</translation> <translation id="1902576642799138955">有效期間</translation> +<translation id="1904518222538904133">你有 1 張卡片只能在這部裝置上使用</translation> <translation id="1905375423839394163">Chromebook 裝置名稱</translation> <translation id="1905710495812624430">超過嘗試次數上限。</translation> <translation id="1909880997794698664">你確定要讓這個裝置永久使用 Kiosk 模式嗎?</translation> @@ -659,6 +663,7 @@ <translation id="1962969542251276847">鎖定螢幕</translation> <translation id="1963227389609234879">全部移除</translation> <translation id="1965624977906726414">沒有特殊權限。</translation> +<translation id="1969654639948595766">WebRTC 文字記錄 (<ph name="WEBRTC_TEXT_LOG_COUNT" /> 筆)</translation> <translation id="1970368523891847084">已進入影片模式</translation> <translation id="197288927597451399">保留</translation> <translation id="1974043046396539880">CRL 發佈點</translation> @@ -802,6 +807,7 @@ <translation id="2190069059097339078">WiFi 憑證擷取工具</translation> <translation id="219008588003277019">Native Client 模組:<ph name="NEXE_NAME" /></translation> <translation id="2190355936436201913">(空白)</translation> +<translation id="2191223688506386601">最後一個步驟</translation> <translation id="2192505247865591433">來源:</translation> <translation id="2193365732679659387">信任設定</translation> <translation id="2195729137168608510">電子郵件保護</translation> @@ -1025,6 +1031,7 @@ <translation id="2534460670861217804">安全 HTTP Proxy</translation> <translation id="253557089021624350">Keepalive 數量</translation> <translation id="2538361623464451692">同步處理已停用</translation> +<translation id="2539876824180063438">請稍微移動你的食指,讓系統擷取完整的指紋。</translation> <translation id="2541002089857695151">要讓全螢幕投放最佳化嗎?</translation> <translation id="2542049655219295786">Google 表格</translation> <translation id="2544853746127077729">網路已拒絕驗證憑證</translation> @@ -1258,7 +1265,9 @@ <translation id="287286579981869940">新增 <ph name="PROVIDER_NAME" />...</translation> <translation id="2874343608108773609">如要取得你在所有裝置上的密碼,請登入 Chrome。</translation> <translation id="2875698561019555027">(Chrome 錯誤頁面)</translation> +<translation id="2876336351874743617">手指 2</translation> <translation id="288042212351694283">存取你的 Universal 2nd Factor 裝置</translation> +<translation id="2881076733170862447">當你點選擴充功能時</translation> <translation id="2881966438216424900">最後存取日期;</translation> <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> 即將重新啟動並進行重設</translation> <translation id="2885378588091291677">工作管理員</translation> @@ -1444,6 +1453,7 @@ <translation id="3154429428035006212">離線超過一個月</translation> <translation id="3156531245809797194">如要使用 Chrome,請登入帳戶</translation> <translation id="3157931365184549694">還原</translation> +<translation id="3158033540161634471">設定指紋</translation> <translation id="3160842278951476457"><ph name="ISSUED_BY" /> [<ph name="ISSUED_TO" />] (使用硬體加密金鑰)</translation> <translation id="316125635462764134">移除應用程式</translation> <translation id="3161522574479303604">所有語言</translation> @@ -1513,9 +1523,10 @@ <translation id="3285322247471302225">新增分頁(&T)</translation> <translation id="3288047731229977326">在開發人員模式中執行擴充功能可能會損害你的電腦。如果你不是開發人員,最好在開發人員模式中停用這些擴充功能,以策安全。</translation> <translation id="3289856944988573801">如要檢查更新,請使用乙太網路或 Wi-Fi。</translation> -<translation id="3292421191230118801">透過 Chromebook 繼續瀏覽先前在行動裝置上造訪的網站</translation> <translation id="32939749466444286">無法啟動 Linux 容器,請再試一次。</translation> <translation id="3294437725009624529">訪客</translation> +<translation id="329703603001918157">無法編輯捷徑</translation> +<translation id="3297951628821704004">從這個裝置移除帳戶</translation> <translation id="329838636886466101">修復</translation> <translation id="3298789223962368867">輸入的網址無效。</translation> <translation id="32991397311664836">裝置:</translation> @@ -1682,6 +1693,7 @@ <translation id="3534879087479077042">什麼是受監管的使用者?</translation> <translation id="3538066758857505094">解除安裝 Linux 時發生錯誤,請再試一次。</translation> <translation id="354060433403403521">AC 變壓器</translation> +<translation id="354068948465830244">可讀取及變更網站資料</translation> <translation id="3541661933757219855">按 Ctrl+Alt+/ 鍵或 Escape 鍵即可隱藏</translation> <translation id="3543393733900874979">更新失敗 (錯誤:<ph name="ERROR_NUMBER" />)</translation> <translation id="3543597750097719865">使用 SHA-512 的 X9.62 ECDSA 簽章</translation> @@ -1727,6 +1739,7 @@ <translation id="3606712892509067288">從 Better Together 移除</translation> <translation id="3608454375274108141">F10</translation> <translation id="3608576286259426129">使用者圖片預覽</translation> +<translation id="3609446736023031597">取得 Play 商店應用程式的最新更新和推薦項目</translation> <translation id="3609785682760573515">同步處理中...</translation> <translation id="3609895557594655134">新增 Android VPN...</translation> <translation id="361106536627977100">Flash 資料</translation> @@ -1759,6 +1772,7 @@ <translation id="3645372836428131288">請稍微移動手指,讓系統擷取完整指紋</translation> <translation id="3648348069317717750">偵測到 <ph name="USB_DEVICE_NAME" /></translation> <translation id="3649138363871392317">已擷取相片</translation> +<translation id="3650845953328929506">記錄上傳作業待處理。</translation> <translation id="3650952250015018111">允許「<ph name="APP_NAME" />」存取:</translation> <translation id="3651488188562686558">中斷 Wi-Fi 連線</translation> <translation id="3652817283076144888">正在初始化</translation> @@ -1910,6 +1924,7 @@ <translation id="3856800405688283469">選取時區</translation> <translation id="3857228364945137633">當手機在適當距離範圍內時,不需密碼即可使用 Smart Lock 為你的 <ph name="DEVICE_TYPE" /> 解鎖。</translation> <translation id="3857773447683694438">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</translation> +<translation id="3857807444929313943">移開手指,然後再次輕觸</translation> <translation id="3860104611854310167"><ph name="PROFILE_NAME" />:已暫停同步處理</translation> <translation id="3860381078714302691">歡迎使用 Hangouts Meet</translation> <translation id="3861241522664181545">已暫停載入頁面。</translation> @@ -1928,6 +1943,7 @@ <translation id="3873315167136380065">如要啟用這項功能,請<ph name="BEGIN_LINK" />重設同步功能<ph name="END_LINK" />以移除同步處理通關密語</translation> <translation id="3878840326289104869">正在建立受監管的使用者</translation> <translation id="3879748587602334249">下載管理員</translation> +<translation id="3885455691202481064">以食指輕觸 Chromebook 左上角的感應器。</translation> <translation id="3888550877729210209">使用「<ph name="LOCK_SCREEN_APP_NAME" />」寫筆記</translation> <translation id="3892414795099177503">新增 OpenVPN/L2TP...</translation> <translation id="3893536212201235195">讀取及變更你的協助工具設定</translation> @@ -1979,6 +1995,7 @@ <translation id="3950820424414687140">登入</translation> <translation id="3954354850384043518">下載中</translation> <translation id="3954469006674843813"><ph name="WIDTH" />x<ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> 赫茲)</translation> +<translation id="3954953195017194676">你最近並未擷取 WebRTC 事件記錄。</translation> <translation id="3955193568934677022">允許網站播放受保護的內容 (建議)</translation> <translation id="3956702100721821638">無法連上 Google Play</translation> <translation id="3958088479270651626">匯入書籤和設定</translation> @@ -2232,6 +2249,7 @@ <translation id="4405117686468554883">*.jpeg、*.jpg、*.png</translation> <translation id="4408599188496843485">說明(&E)</translation> <translation id="4409697491990005945">邊界</translation> +<translation id="4410545552906060960">你可以使用一組數字 (PIN 碼) 來解鎖裝置,這組數字與密碼不同。如要稍後再設定 PIN 碼,請前往「設定」。</translation> <translation id="4411578466613447185">程式碼簽署者</translation> <translation id="4412698727486357573">說明中心</translation> <translation id="44141919652824029">要允許「<ph name="APP_NAME" />」取得已連結 USB 裝置的清單嗎?</translation> @@ -2323,8 +2341,10 @@ <translation id="4555769855065597957">陰影</translation> <translation id="4556110439722119938">您的書籤、歷史記錄、密碼和其他設定都會在您的 Google 帳戶中保持同步,讓您在所有個人裝置上使用。</translation> <translation id="4558426062282641716">已要求自動啟動權限</translation> +<translation id="4558491878126948419">可取得 <ph name="DEVICE_TYPE" /> 的使用提示和各項 Google 產品的最新快訊,並提供你的意見。你隨時可以取消訂閱。</translation> <translation id="4559617833001311418">這個網站正在存取你的動作感應器或光源感應器。</translation> <translation id="4562155214028662640">新增指紋</translation> +<translation id="4563880231729913339">手指 3</translation> <translation id="4565377596337484307">隱藏密碼</translation> <translation id="4567772783389002344">新增字詞</translation> <translation id="4568213207643490790">很抱歉,你無法使用 Google 帳戶登入這個裝置。</translation> @@ -2399,6 +2419,7 @@ <translation id="4681930562518940301">在新分頁中開啟原始圖片(&I)</translation> <translation id="4682551433947286597">登入畫面上顯示的桌布。</translation> <translation id="4684427112815847243">同步處理所有資料</translation> +<translation id="4688036121858134881">本機記錄 ID:<ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />。</translation> <translation id="4689235506267737042">選擇示範模式偏好設定</translation> <translation id="4689421377817139245">將這個書籤同步到 iPhone 上</translation> <translation id="4690091457710545971"><Intel Wi-Fi 韌體產生了 4 個檔案:csr.lst、fh_regs.lst、radio_reg.lst 和 monitor.lst.sysmon。前三個檔案為包含暫存器傾印的二進位檔案,且 Intel 表示當中並未包含任何個人資訊或裝置識別資訊。最後一個檔案是 Intel 韌體的執行追蹤記錄,其中的個人資訊或裝置識別資訊已全部遭到清除,但由於檔案過大而無法顯示在這裡。這些檔案的產生原因是裝置的 Wi-Fi 最近出現問題所導致,系統會將檔案提供給 Intel 以協助排解這些問題。></translation> @@ -2583,6 +2604,7 @@ <translation id="4945444280533270988">Smart Lock 已開啟</translation> <translation id="4953689047182316270">回應協助工具活動</translation> <translation id="4953808748584563296">預設的橘色顯示圖片</translation> +<translation id="4955710816792587366">選擇 PIN 碼</translation> <translation id="4955814292505481804">年約</translation> <translation id="4957949153200969297">僅啟用與 <ph name="IDS_SHORT_PRODUCT_NAME" /> 同步相關的功能</translation> <translation id="4959262764292427323">系統會將密碼儲存在你的 Google 帳戶中,方便你在任何裝置上使用密碼</translation> @@ -2647,6 +2669,7 @@ <translation id="5050042263972837708">群組名稱</translation> <translation id="5052499409147950210">編輯網站</translation> <translation id="5053604404986157245">無法使用隨機產生的 TPM 密碼。在執行 Powerwash 之後,這是正常情況。</translation> +<translation id="5057110919553308744">當你點選擴充功能時</translation> <translation id="5061347216700970798">{NUM_BOOKMARKS,plural, =1{這個資料夾內含 1 個書籤。您確定要刪除該書籤嗎?}other{這個資料夾內含 # 個書籤。您確定要刪除這些書籤嗎?}}</translation> <translation id="5061708541166515394">對比</translation> <translation id="5062930723426326933">無法登入,請重新連線至網際網路並再試一次。</translation> @@ -2822,6 +2845,7 @@ <translation id="5315873049536339193">身分</translation> <translation id="5316716239522500219">顯示器鏡像</translation> <translation id="5317780077021120954">儲存</translation> +<translation id="5318819489018851358">與 Linux 共用</translation> <translation id="5319359161174645648">Google 推薦使用 Chrome</translation> <translation id="5319566035256672173">這部裝置不會再收到最新的軟體更新,建議你進行升級。</translation> <translation id="532247166573571973">無法連上伺服器,請稍後再試。</translation> @@ -3162,6 +3186,7 @@ <translation id="5804241973901381774">權限</translation> <translation id="580571955903695899">按標題重新排序</translation> <translation id="5807290661599647102">設定螢幕鎖定</translation> +<translation id="5811750797187914944">設定完成</translation> <translation id="5814126672212206791">連線類型</translation> <translation id="5815645614496570556">X.400 地址</translation> <translation id="5816434091619127343">要求的印表機變更會讓這部印表機無法使用。</translation> @@ -3199,6 +3224,7 @@ <translation id="5855773610748894548">糟糕,發生安全模組錯誤。</translation> <translation id="5856721540245522153">啟用偵錯功能</translation> <translation id="5857090052475505287">新資料夾</translation> +<translation id="5858490737742085133">終端機</translation> <translation id="585979798156957858">外部 Meta 鍵</translation> <translation id="5860033963881614850">關閉</translation> <translation id="5860209693144823476">分頁 3</translation> @@ -3221,6 +3247,7 @@ <translation id="5882919346125742463">已知網路</translation> <translation id="5884474295213649357">這個分頁已連上 USB 裝置。</translation> <translation id="5885324376209859881">管理媒體設定...</translation> +<translation id="5886009770935151472">手指 1</translation> <translation id="5889282057229379085">中繼 CA 數目上限:<ph name="NUM_INTERMEDIATE_CA" /></translation> <translation id="5895138241574237353">重新啟動</translation> <translation id="5895187275912066135">發行日期</translation> @@ -3305,6 +3332,7 @@ <translation id="6025215716629925253">堆疊追蹤</translation> <translation id="6026047032548434446">要安裝應用程式嗎?</translation> <translation id="6026819612896463875"><ph name="WINDOW_TITLE" /> - 已連接 USB 裝置</translation> +<translation id="6028117231645531007">新增指紋</translation> <translation id="6029027682598229313">Linux 安裝完成。</translation> <translation id="6029587122245504742">最慢</translation> <translation id="6032912588568283682">檔案系統</translation> @@ -3319,6 +3347,7 @@ <translation id="6042308850641462728">更多</translation> <translation id="6043317578411397101"><ph name="APP_NAME" /> 正在與 <ph name="TAB_NAME" /> 共用 Chrome 分頁。</translation> <translation id="6044805581023976844"><ph name="APP_NAME" /> 正在與 <ph name="TAB_NAME" /> 共用 Chrome 分頁和音訊。</translation> +<translation id="6047938872139769630">登出之後,你可以使用 PIN 碼來解鎖裝置</translation> <translation id="6049004884579590341">按住 |<ph name="ACCELERATOR" />| 即可結束全螢幕模式</translation> <translation id="6049065490165456785">內部相機中的相片</translation> <translation id="6051354611314852653">糟糕!系統無法將 API 存取權授予這個裝置。</translation> @@ -3341,6 +3370,7 @@ <translation id="6075907793831890935">與名稱為 <ph name="HOSTNAME" /> 的裝置交換資料</translation> <translation id="6076448957780543068">包含這個螢幕擷取畫面</translation> <translation id="6077131872140550515">從慣用網路移除</translation> +<translation id="6077189836672154517"><ph name="DEVICE_TYPE" /> 的使用提示和最新快訊</translation> <translation id="6078323886959318429">新增捷徑</translation> <translation id="6078752646384677957">請檢查麥克風和音量。</translation> <translation id="6080515710685820702">你是與其他人共用電腦嗎?試試使用無痕式視窗。</translation> @@ -3390,6 +3420,7 @@ <translation id="6144938890088808325">協助我們改善 Chromebook</translation> <translation id="6146563240635539929">影片</translation> <translation id="6147020289383635445">列印預覽失敗。</translation> +<translation id="6148052338549899048">沒有適用裝置。<ph name="LINK_BEGIN" />瞭解詳情。<ph name="LINK_END" /></translation> <translation id="614940544461990577">建議做法:</translation> <translation id="6150853954427645995">如要儲存這個檔案以供離線使用,請重新上網,在檔案上按一下滑鼠右鍵,然後選取 [<ph name="OFFLINE_CHECKBOX_NAME" />] 選項。</translation> <translation id="6151323131516309312">按一下 <ph name="SEARCH_KEY" /> 以搜尋 <ph name="SITE_NAME" /></translation> @@ -3409,6 +3440,7 @@ <translation id="6169040057125497443">請檢查麥克風。</translation> <translation id="6169666352732958425">無法投放桌面。</translation> <translation id="6171948306033499786">暫停列印</translation> +<translation id="6173623053897475761">重新輸入 PIN 碼</translation> <translation id="6175314957787328458">Microsoft 網域 GUID</translation> <translation id="6176043333338857209">系統會暫時開啟藍牙功能,以便與你的安全金鑰通訊</translation> <translation id="6178664161104547336">選取憑證</translation> @@ -3597,11 +3629,13 @@ <translation id="6456394469623773452">良好</translation> <translation id="6456631036739229488">Smart Lock 手機已變更,請輸入你的密碼以更新 Smart Lock。下次手機就會為你的 <ph name="DEVICE_TYPE" /> 解鎖。你可以在「設定」中停用 Smart Lock。</translation> <translation id="645705751491738698">繼續封鎖 JavaScript</translation> +<translation id="6458701200018867744">上傳失敗 (<ph name="WEBRTC_LOG_UPLOAD_TIME" />)。</translation> <translation id="6459488832681039634">使用所選範圍尋找</translation> <translation id="6459799433792303855">使用中的視窗已移至其他畫面。</translation> <translation id="6460601847208524483">尋找下一個項目</translation> <translation id="6463795194797719782">編輯(&E)</translation> <translation id="6466988389784393586">開啟所有書籤(&O)</translation> +<translation id="6467304607960172345">針對全螢幕影片進行最佳化處理</translation> <translation id="6468485451923838994">字型</translation> <translation id="6472207088655375767">動態密碼</translation> <translation id="6472893788822429178">顯示 [首頁] 按鈕</translation> @@ -3777,6 +3811,7 @@ <translation id="6725206449694821596">網際網路列印通訊協定 (IPP)</translation> <translation id="6727005317916125192">上一個窗格</translation> <translation id="6732801395666424405">未載入憑證</translation> +<translation id="6732900235521116609">無法移除捷徑</translation> <translation id="6735304988756581115">顯示 Cookie 和其他網站資料...</translation> <translation id="6736045498964449756">糟糕,密碼不符!</translation> <translation id="6736243959894955139">位址</translation> @@ -3860,6 +3895,7 @@ <translation id="6860427144121307915">在分頁中開啟</translation> <translation id="6862635236584086457">所有儲存在這個資料夾的檔案都會自動在線上備份</translation> <translation id="6865313869410766144">自動填入表單資料</translation> +<translation id="6865708901122695652">WebRTC 事件記錄 (<ph name="WEBRTC_EVENT_LOG_COUNT" /> 筆)</translation> <translation id="686664946474413495">色溫</translation> <translation id="6870888490422746447">選擇要共用的應用程式:</translation> <translation id="6871644448911473373">OCSP 回應程式:<ph name="LOCATION" /></translation> @@ -3904,6 +3940,7 @@ <translation id="694592694773692225">已在這個網頁禁止重新導向。</translation> <translation id="6949306908218145636">將開啟的網頁加入書籤...</translation> <translation id="6950627417367801484">還原應用程式</translation> +<translation id="6950943362443484797">系統將為你安裝這個應用程式</translation> <translation id="6951153907720526401">付款處理常式</translation> <translation id="6955446738988643816">檢查彈出式視窗</translation> <translation id="6957231940976260713">服務名稱</translation> @@ -3939,6 +3976,7 @@ <translation id="6998711733709403587">已選取 <ph name="SELCTED_FOLDERS_COUNT" /> 個資料夾</translation> <translation id="6998793565256476099">註冊視訊會議裝置</translation> <translation id="7000347579424117903">必須包含 Ctrl、Alt 鍵或搜尋鍵</translation> +<translation id="700203306553508933">將卡片資訊儲存至 Google Pay 以供使用</translation> <translation id="7002055706763150362">如要設定 Chromebook 專用 Smart Lock,請先輸入您的密碼,讓 Google 確認操作者是您本人。</translation> <translation id="7002454948392136538">選擇這位受監管使用者的管理員</translation> <translation id="7003339318920871147">網路資料庫</translation> @@ -3986,6 +4024,7 @@ <translation id="706626672220389329">掛接共用裝置時發生錯誤。指定的共用裝置已掛接。</translation> <translation id="7066944511817949584">無法連結至「<ph name="DEVICE_NAME" />」。</translation> <translation id="7067725467529581407">不再顯示這個訊息。</translation> +<translation id="7070484045139057854">可讀取及變更網站資料</translation> <translation id="7072010813301522126">捷徑名稱</translation> <translation id="707392107419594760">選擇鍵盤:</translation> <translation id="7075513071073410194">PKCS #1 MD5 (使用 RSA 加密)</translation> @@ -4115,6 +4154,7 @@ <translation id="7256710573727326513">在分頁中開啟</translation> <translation id="725758059478686223">列印服務</translation> <translation id="7257666756905341374">讀取你複製和貼上的資料</translation> +<translation id="7258697411818564379">PIN 碼新增成功</translation> <translation id="7260764918845374269">你的安全金鑰必須處於配對模式才會顯示。請按住安全金鑰上的按鈕至少 5 秒。</translation> <translation id="7262004276116528033">這是由 <ph name="SAML_DOMAIN" /> 代管的登入服務。</translation> <translation id="7268365133021434339">關閉分頁</translation> @@ -4262,6 +4302,7 @@ <translation id="7494694779888133066"><ph name="WIDTH" /> x <ph name="HEIGHT" /></translation> <translation id="7495778526395737099">忘記舊密碼了嗎?</translation> <translation id="7497215489070763236">伺服器 CA 憑證</translation> +<translation id="7497981768003291373">你最近並未擷取 WebRTC 文字記錄。</translation> <translation id="7502658306369382406">IPv6 位址</translation> <translation id="7503191893372251637">Netscape 憑證類型</translation> <translation id="7503821294401948377">無法載入瀏覽器動作的圖示「<ph name="ICON" />」。</translation> @@ -4303,6 +4344,7 @@ <translation id="7564847347806291057">結束處理程序</translation> <translation id="7566118625369982896">管理 Play 應用程式連結</translation> <translation id="7566723889363720618">F12</translation> +<translation id="7567772679638539078">將手指放在感應器上</translation> <translation id="756809126120519699">已清除 Chrome 資料</translation> <translation id="7568790562536448087">更新</translation> <translation id="7571643774869182231">空間不足,無法進行更新</translation> @@ -4465,6 +4507,7 @@ <ph name="LINE_BREAK2" /> 請少選幾張相片。</translation> <translation id="782590969421016895">使用目前的網頁</translation> +<translation id="7826346148677309647">你可以在 Play 商店中發掘更多適用於自己裝置的應用程式。</translation> <translation id="7826790948326204519"><ph name="BEGIN_H3" />偵錯功能<ph name="END_H3" /> <ph name="BR" /> 你只要啟用 Chrome 作業系統裝置的偵錯功能,即可在裝置上安裝並測試自訂程式碼。這項功能可讓你:<ph name="BR" /> @@ -4661,6 +4704,7 @@ <translation id="8059417245945632445">檢查裝置 (&I)</translation> <translation id="8063235345342641131">預設的綠色顯示圖片</translation> <translation id="8064671687106936412">金鑰:</translation> +<translation id="8065485338434000013">你有部分卡片只能在這部裝置上使用</translation> <translation id="806812017500012252">按標題重新排序</translation> <translation id="8068253693380742035">輕觸即可登入</translation> <translation id="8069615408251337349">Google 雲端列印</translation> @@ -4738,6 +4782,7 @@ <translation id="8191453843330043793">V8 Proxy 解析工具</translation> <translation id="8193175696669055101">裝置型號</translation> <translation id="8195027750202970175">佔磁碟容量</translation> +<translation id="8198323535106903877">系統將為你安裝這 <ph name="NUMBER_OF_APPS" /> 個應用程式</translation> <translation id="8199300056570174101">網路 (服務) 與裝置屬性</translation> <translation id="8200772114523450471">繼續</translation> <translation id="8202160505685531999">請再次輸入您的密碼,以更新您的 <ph name="DEVICE_TYPE" /> 設定檔。</translation> @@ -4957,7 +5002,6 @@ <translation id="8557930019681227453">資訊清單</translation> <translation id="8559694214572302298">影像解碼器</translation> <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation> -<translation id="8562084399541316921">繼續閱讀</translation> <translation id="8565650234829130278">試圖降級應用程式。</translation> <translation id="8569002732135253578">正在列印「<ph name="DOCUMENT_NAME" />」</translation> <translation id="8569682776816196752">找不到目的地</translation> @@ -5070,6 +5114,8 @@ <translation id="8716931980467311658">要將所有 Linux 應用程式和「Linux 檔案」資料夾中的資料從這部 <ph name="DEVICE_TYPE" /> 上刪除嗎?</translation> <translation id="8719653885894320876">「<ph name="PLUGIN_NAME" />」下載失敗</translation> <translation id="8723829621484579639">無痕模式子頁框:<ph name="PARENT_SITE" /></translation> +<translation id="8724405322205516354">當你看到這個圖示時,請使用你的指紋來驗證身分或核准購物交易。</translation> +<translation id="8724409975248965964">指紋新增成功</translation> <translation id="8724859055372736596">在資料夾中顯示(&S)</translation> <translation id="8725066075913043281">再試一次</translation> <translation id="8725178340343806893">我的收藏/書籤</translation> @@ -5150,6 +5196,7 @@ <translation id="8838770651474809439">漢堡</translation> <translation id="883911313571074303">為圖片加註</translation> <translation id="8845001906332463065">尋求協助</translation> +<translation id="8846132060409673887">閱讀這部電腦的製造商和型號資訊</translation> <translation id="8846141544112579928">正在搜尋鍵盤...</translation> <translation id="8847988622838149491">USB</translation> <translation id="8859057652521303089">選擇語言:</translation> @@ -5363,6 +5410,7 @@ <translation id="9161070040817969420">子頁框:<ph name="PARENT_SITE" /></translation> <translation id="916501514001398070">傳送系統資料。這個裝置目前會自動將診斷資料、裝置與應用程式使用情形資料傳送給 Google。擁有者強制啟用了這項設定。如果你另外開啟了「網路和應用程式活動」設定,這項資訊會儲存在你的帳戶中,方便你在「我的活動」中進行管理。<ph name="BEGIN_LINK1" />瞭解詳情<ph name="END_LINK1" /></translation> <translation id="916607977885256133">子母畫面</translation> +<translation id="9168436347345867845">稍後再說</translation> <translation id="9169496697824289689">查看鍵盤快速鍵</translation> <translation id="9169931577761441333">將 <ph name="APP_NAME" /> 新增至主畫面</translation> <translation id="9170848237812810038">取消(&U)</translation>
diff --git a/chrome/app/resources/google_chrome_strings_am.xtb b/chrome/app/resources/google_chrome_strings_am.xtb index b55521c..d180a86b 100644 --- a/chrome/app/resources/google_chrome_strings_am.xtb +++ b/chrome/app/resources/google_chrome_strings_am.xtb
@@ -28,6 +28,7 @@ <translation id="1587325591171447154"><ph name="FILE_NAME" /> አደገኛ ነው፣ ስለዚህ Chrome አግዶታል።</translation> <translation id="1619887657840448962">Chromeን ይበልጥ ደህንነቱ የተጠበቀ እንዲሆን ለማድረግ፣ በ<ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ውስጥ ያልተዘረዘረውን የሚከተለውን ቅጥያ አሰናክለነዋል እና እርስዎ ሳያውቁት የታከለ ሊሆን ይችላል።</translation> <translation id="1628000112320670027">Chrome ላይ እገዛ ያግኙ</translation> +<translation id="1662639173275167396">Chrome OS እና እንዲሁም <ph name="BEGIN_LINK_LINUX_OSS" />Linux (ቅድመ-ይሁንታ)<ph name="END_LINK_LINUX_OSS" /> ሊሠሩ የቻሉት በተጨማሪ <ph name="BEGIN_LINK_CROS_OSS" />የክፍት ምንጭ ሶፍትዌር<ph name="END_LINK_CROS_OSS" /> ነው።</translation> <translation id="1674870198290878346">አገናኝ በChrome ማንነት የ&ማያሳውቅ መስኮት ውስጥ ክፈት</translation> <translation id="1682634494516646069">Google Chrome የውሂብ አቃፊውን ማንበብ እና እሱ ላይ መጻፍ አይችልም፦
diff --git a/chrome/app/resources/google_chrome_strings_ar.xtb b/chrome/app/resources/google_chrome_strings_ar.xtb index c30b6d1..e1095d2 100644 --- a/chrome/app/resources/google_chrome_strings_ar.xtb +++ b/chrome/app/resources/google_chrome_strings_ar.xtb
@@ -26,6 +26,7 @@ <translation id="1587325591171447154">ملف <ph name="FILE_NAME" /> ضار، لذلك فقد حظره Chrome.</translation> <translation id="1619887657840448962">لجعل Chrome أكثر أمنًا، أوقفنا الإضافة التالية التي لم تُدرج في <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> وربما تكون قد أضيفت دون علمك.</translation> <translation id="1628000112320670027">الحصول على مساعدة في Chrome</translation> +<translation id="1662639173275167396">أصبح نظام التشغيل Chrome متاحًا من خلال <ph name="BEGIN_LINK_CROS_OSS" />برنامج مفتوح المصدر<ph name="END_LINK_CROS_OSS" />إضافي، كما في نظام التشغيل <ph name="BEGIN_LINK_LINUX_OSS" />Linux (إصدار تجريبي)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1674870198290878346">فتح الرابط في نافذة تصفح متخفٍ في Chrome</translation> <translation id="1682634494516646069">يتعذر على Google Chrome القراءة والكتابة في دليل البيانات الخاص به:
diff --git a/chrome/app/resources/google_chrome_strings_et.xtb b/chrome/app/resources/google_chrome_strings_et.xtb index 183e647..e42f4678 100644 --- a/chrome/app/resources/google_chrome_strings_et.xtb +++ b/chrome/app/resources/google_chrome_strings_et.xtb
@@ -26,6 +26,7 @@ <translation id="1587325591171447154"><ph name="FILE_NAME" /> on ohtlik, mistõttu Chrome blokeeris selle.</translation> <translation id="1619887657840448962">Chrome'i turvalisemaks muutmiseks keelasime järgmise laienduse, mida ei leidu veebipoes <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ja mis võidi lisada teie teadmata.</translation> <translation id="1628000112320670027">Chrome'i puhul abi hankimine</translation> +<translation id="1662639173275167396">Chrome OS töötab täiendava <ph name="BEGIN_LINK_CROS_OSS" />avatud lähtekoodiga tarkvara<ph name="END_LINK_CROS_OSS" /> toel, nagu ka näiteks <ph name="BEGIN_LINK_LINUX_OSS" />Linux (beetaversioon)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1674870198290878346">Ava link Chrome'i inko&gnito aknas</translation> <translation id="1682634494516646069">Google Chrome ei saa andmekataloogi lugeda ega sellesse kirjutada:
diff --git a/chrome/app/resources/google_chrome_strings_fa.xtb b/chrome/app/resources/google_chrome_strings_fa.xtb index ae2b738..d3f15530 100644 --- a/chrome/app/resources/google_chrome_strings_fa.xtb +++ b/chrome/app/resources/google_chrome_strings_fa.xtb
@@ -26,6 +26,7 @@ <translation id="1587325591171447154"><ph name="FILE_NAME" /> خطرناک است، بنابراین Chrome آن را مسدود کرده ست.</translation> <translation id="1619887657840448962">برای ایمنتر کردن Chrome، افزونه زیر را که در <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> فهرست نشده است و ممکن است بدون اطلاع شما اضافه شده باشد، غیرفعال کردیم.</translation> <translation id="1628000112320670027">دریافت کمک برای Chrome</translation> +<translation id="1662639173275167396">ساخت سیستمعامل Chrome به کمک <ph name="BEGIN_LINK_CROS_OSS" />نرمافزار منبع آزاد<ph name="END_LINK_CROS_OSS" /> دیگری (همانگونه که <ph name="BEGIN_LINK_LINUX_OSS" />Linux (بتا)<ph name="END_LINK_LINUX_OSS" /> است)، امکانپذیر شده است.</translation> <translation id="1674870198290878346">باز کردن پیوند در پنجره &ناشناس Chrome</translation> <translation id="1682634494516646069">Google Chrome نمیتواند مسیر دادههای خود را بخواند یا در آن بنویسد: <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome یک مرورگر وب است که برنامههای کاربردی و صفحات وب را در یک چشم به هم زدن اجرا و باز میکند. استفاده از آن سریع و آسان است و همیشه در دسترس است. با برنامههای حفاظت در برابر فیشینگ و بدافزار تعبیه شده در Google Chrome، وب را با امنیت بیشتر مرور کنید.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fil.xtb b/chrome/app/resources/google_chrome_strings_fil.xtb index 16e90049..6d504219 100644 --- a/chrome/app/resources/google_chrome_strings_fil.xtb +++ b/chrome/app/resources/google_chrome_strings_fil.xtb
@@ -28,6 +28,7 @@ <translation id="1587325591171447154">Mapanganib ang <ph name="FILE_NAME" />, kaya na-block ito ng Chrome.</translation> <translation id="1619887657840448962">Upang mas gawing ligtas ang Chrome, na-disable namin ang sumusunod na extension na hindi nakalista sa <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> na maaaring naidagdag nang hindi mo nalalalaman.</translation> <translation id="1628000112320670027">Humingi ng tulong sa Chrome</translation> +<translation id="1662639173275167396">Ginagawang posible ang Chrome OS ng karagdagang <ph name="BEGIN_LINK_CROS_OSS" />open source na software<ph name="END_LINK_CROS_OSS" />, gayundin ng <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1674870198290878346">Buksan ang link sa Inco&gnito Window ng Chrome</translation> <translation id="1682634494516646069">Hindi makapagbasa at makapagsulat ang Google Chrome sa direktoryo nito ng data:
diff --git a/chrome/app/resources/google_chrome_strings_hr.xtb b/chrome/app/resources/google_chrome_strings_hr.xtb index e1a6ba3..18215022 100644 --- a/chrome/app/resources/google_chrome_strings_hr.xtb +++ b/chrome/app/resources/google_chrome_strings_hr.xtb
@@ -26,6 +26,7 @@ <translation id="1587325591171447154">Datoteka <ph name="FILE_NAME" /> opasna je, pa ju je Chrome blokirao.</translation> <translation id="1619887657840448962">Kako bismo Chrome učinili sigurnijim, onemogućili smo sljedeće proširenje koje nije navedeno na stranici <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> i možda je dodano bez vašeg znanja.</translation> <translation id="1628000112320670027">Potraži pomoć za upotrebu Chromea</translation> +<translation id="1662639173275167396">OS Chrome omogućen je dodatnim <ph name="BEGIN_LINK_CROS_OSS" />softverom otvorenog izvornog koda<ph name="END_LINK_CROS_OSS" />, isto kao i <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1674870198290878346">Otvori vezu u ano&nimnom prozoru Chromea</translation> <translation id="1682634494516646069">Google Chrome ne može čitati iz svojeg podatkovnog direktorija niti u njega pisati: <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome jest web-preglednik koji web-stranice i aplikacije pokreće brzinom svjetlosti. Brz je, stabilan i jednostavan za upotrebu. Sigurnije pregledavajte web uz zaštitu protiv zlonamjernog i špijunskog softvera koja je ugrađena u Google Chrome.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hu.xtb b/chrome/app/resources/google_chrome_strings_hu.xtb index ca93ac3..ecd40d0 100644 --- a/chrome/app/resources/google_chrome_strings_hu.xtb +++ b/chrome/app/resources/google_chrome_strings_hu.xtb
@@ -26,6 +26,7 @@ <translation id="1587325591171447154">A(z) <ph name="FILE_NAME" /> veszélyes, ezért a Chrome letiltotta.</translation> <translation id="1619887657840448962">A Chrome biztonságosabbá tétele érdekében kikapcsoltuk a következő bővítményt, amely nem a(z) <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> szolgáltatásból származik, és előfordulhat, hogy az Ön tudta nélkül lett telepítve.</translation> <translation id="1628000112320670027">Segítség a Chrome használatával kapcsolatban</translation> +<translation id="1662639173275167396">A Chrome OS létrejöttéhez egyéb <ph name="BEGIN_LINK_CROS_OSS" />nyílt forráskódú szoftverek<ph name="END_LINK_CROS_OSS" /> is hozzájárultak, ahogyan a <ph name="BEGIN_LINK_LINUX_OSS" />Linux (béta)<ph name="END_LINK_LINUX_OSS" /> létrejöttéhez is.</translation> <translation id="1674870198290878346">Link megnyitása Chrome-inko&gnitóablakban</translation> <translation id="1682634494516646069">A Chrome nem tudja olvasni és írni az adatkönyvtárát: <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">A Google Chrome olyan böngésző, amely villámgyorsan futtatja a weboldalakat és az alkalmazásokat. Gyors, stabil és könnyen használható. A beépített, adathalászat és a kártékony programok elleni védelemmel biztonságosabban böngészhet az interneten.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_id.xtb b/chrome/app/resources/google_chrome_strings_id.xtb index 733aa2c..fc4e60e 100644 --- a/chrome/app/resources/google_chrome_strings_id.xtb +++ b/chrome/app/resources/google_chrome_strings_id.xtb
@@ -26,6 +26,7 @@ <translation id="1587325591171447154"><ph name="FILE_NAME" /> berbahaya, sehingga Chrome memblokirnya.</translation> <translation id="1619887657840448962">Agar Chrome lebih aman, kami menonaktifkan ekstensi berikut yang tidak tercantum dalam <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> dan mungkin telah ditambahkan tanpa sepengetahuan Anda.</translation> <translation id="1628000112320670027">Dapatkan bantuan Chrome</translation> +<translation id="1662639173275167396">Chrome OS terwujud karena <ph name="BEGIN_LINK_CROS_OSS" />software open source<ph name="END_LINK_CROS_OSS" /> tambahan, seperti <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1674870198290878346">Buka Link di Jendela Sa&maran Chrome</translation> <translation id="1682634494516646069">Google Chrome tidak dapat membaca dan menulis ke direktori datanya: <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome adalah browser web yang menjalankan halaman dan aplikasi web secepat kilat. Cepat, stabil, dan mudah digunakan. Jelajahi web secara lebih aman dengan perlindungan terhadap software perusak dan phishing yang disertakan dalam Google Chrome.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_it.xtb b/chrome/app/resources/google_chrome_strings_it.xtb index eea393c..c398724 100644 --- a/chrome/app/resources/google_chrome_strings_it.xtb +++ b/chrome/app/resources/google_chrome_strings_it.xtb
@@ -26,6 +26,7 @@ <translation id="1587325591171447154"><ph name="FILE_NAME" /> è pericoloso, pertanto è stato bloccato da Chrome.</translation> <translation id="1619887657840448962">Per rendere Chrome più sicuro, abbiamo disattivato la seguente estensione non presente nel <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> che potrebbe essere stata aggiunta a tua insaputa.</translation> <translation id="1628000112320670027">Ricevi assistenza per Chrome</translation> +<translation id="1662639173275167396">La realizzazione di Chrome OS è stata possibile grazie a <ph name="BEGIN_LINK_CROS_OSS" />software open source<ph name="END_LINK_CROS_OSS" /> aggiuntivo, come <ph name="BEGIN_LINK_LINUX_OSS" />Linux (beta)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1674870198290878346">Apri link in una finestra di navigazione in inco&gnito di Chrome</translation> <translation id="1682634494516646069">Google Chrome non è in grado di leggere e scrivere nella directory dei dati: <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome è un browser web che apre pagine e applicazioni web con grande velocità. È veloce, stabile e facile da utilizzare. Esplora il Web in modo più sicuro grazie alla protezione contro malware e phishing incorporata in Google Chrome.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ja.xtb b/chrome/app/resources/google_chrome_strings_ja.xtb index e7c5f69..880450097b 100644 --- a/chrome/app/resources/google_chrome_strings_ja.xtb +++ b/chrome/app/resources/google_chrome_strings_ja.xtb
@@ -26,6 +26,7 @@ <translation id="1587325591171447154"><ph name="FILE_NAME" /> は危険なファイルであるため、Chrome でブロックしました。</translation> <translation id="1619887657840448962">Chrome をより安全にご利用いただくために、<ph name="IDS_EXTENSION_WEB_STORE_TITLE" />で提供していない次の拡張機能を無効にしました。これは知らないうちに追加された可能性があります。</translation> <translation id="1628000112320670027">Chrome のヘルプを見る</translation> +<translation id="1662639173275167396">Chrome OS は、さらに追加の<ph name="BEGIN_LINK_CROS_OSS" />オープンソース ソフトウェア<ph name="END_LINK_CROS_OSS" />によって <ph name="BEGIN_LINK_LINUX_OSS" />Linux(ベータ版)<ph name="END_LINK_LINUX_OSS" />で実現しました。</translation> <translation id="1674870198290878346">Chrome のシークレット ウインドウでリンクを開く(&G)</translation> <translation id="1682634494516646069">Google Chrome はこのデータ ディレクトリへの読み書きを実行できません: <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome は、ウェブページやアプリケーションを高速に実行できるスピードと、高い安定性を兼ね備えた非常に使いやすいウェブブラウザです。不正なソフトウェアやフィッシングに対する保護機能が組み込まれており、ウェブを安全にブラウジングできます。</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kn.xtb b/chrome/app/resources/google_chrome_strings_kn.xtb index b6fc052..6721638 100644 --- a/chrome/app/resources/google_chrome_strings_kn.xtb +++ b/chrome/app/resources/google_chrome_strings_kn.xtb
@@ -10,17 +10,17 @@ <translation id="110877069173485804">ಇದು ನಿಮ್ಮ Chrome</translation> <translation id="1142745911746664600">Chrome ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ</translation> <translation id="1154147086299354128">ಮತ್ತು Chrome ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation> -<translation id="123620459398936149">ನಿಮ್ಮ ಡೇಟಾವನ್ನು Chrome OS ಗೆ ಸಿಂಕ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ನವೀಕರಿಸಿ.</translation> +<translation id="123620459398936149">ನಿಮ್ಮ ಡೇಟಾವನ್ನು Chrome OS ಗೆ ಸಿಂಕ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಿ.</translation> <translation id="127345590676626841">Chrome ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನವೀಕರಿಸುತ್ತದೆ ಈ ಮೂಲಕ ನೀವು ಯಾವಾಗಲೂ ತಾಜಾ ಆವೃತ್ತಿಯುನ್ನು ಹೊಂದಿರುತ್ತೀರಿ. ಈ ಡೌನ್ಲೋಡ್ ಸಂಪೂರ್ಣಗೊಂಡಾಗ, Chrome ಮರುಪ್ರಾರಂಭಿಸುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಮಾರ್ಗದಲ್ಲಿ ನೀವು ಇರಬೇಕಾಗುತ್ತದೆ.</translation> <translation id="1302523850133262269">ಇತ್ತೀಚಿನ ಸಿಸ್ಟಂ ನವೀಕರಣಗಳನ್ನು Chrome ಸ್ಥಾಪಿಸುವಾಗ ದಯವಿಟ್ಟು ಕಾಯಿರಿ.</translation> <translation id="1312676208694947750">{0,plural, =0{Chrome OS ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}=1{Chrome OS ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}one{# ದಿನಗಳಿಗಾಗಿ Chrome OS ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}other{# ದಿನಗಳಿಗಾಗಿ Chrome OS ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}}</translation> <translation id="137466361146087520">Google Chrome ಬೀಟಾ</translation> <translation id="1393853151966637042">Chrome ಅನ್ನು ಬಳಸಿಕೊಳ್ಳುವುದರೊಂದಿಗೆ ಸಹಾಯವನ್ನು ಪಡೆಯಿರಿ</translation> -<translation id="1399397803214730675">ಈ ಕಂಪ್ಯೂಟರ್ ಈಗಾಗಲೇ ತೀರಾ ಇತ್ತೀಚೆಗಿನ Google Chrome ಆವೃತ್ತಿಯನ್ನು ಹೊಂದಿದೆ. ಸಾಫ್ಟ್ವೇರ್ ಕಾರ್ಯ ನಿರ್ವಹಿಸದೆ ಇದ್ದರೆ, ದಯವಿಟ್ಟು Google Chrome ಅನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> +<translation id="1399397803214730675">ಈ ಕಂಪ್ಯೂಟರ್ ಈಗಾಗಲೇ ತೀರಾ ಇತ್ತೀಚಿನ Google Chrome ಆವೃತ್ತಿಯನ್ನು ಹೊಂದಿದೆ. ಸಾಫ್ಟ್ವೇರ್ ಕಾರ್ಯ ನಿರ್ವಹಿಸದೆ ಇದ್ದರೆ, ದಯವಿಟ್ಟು Google Chrome ಅನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="1434626383986940139">Chrome ಕ್ಯಾನರಿ ಅಪ್ಲಿಕೇಶನ್ಗಳು</translation> <translation id="1457721931618994305">Google Chrome ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="1469002951682717133">Chrome ಅಪ್ಲಿಕೇಶನ್ ಲಾಂಚರ್</translation> -<translation id="1553358976309200471">Chrome ನವೀಕರಿಸಿ</translation> +<translation id="1553358976309200471">Chrome ಅಪ್ಡೇಟ್ ಮಾಡಿ</translation> <translation id="1585657529869845941">ಇದು ಕಂಡುಬಂದಲ್ಲಿ, <ph name="BEGIN_BOLD" />ಹೇಗಾದರೂ ಬದಲಿಸಿ<ph name="END_BOLD" /> ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ</translation> <translation id="1587223624401073077">Google Chrome ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಬಳಸುತ್ತಿದೆ.</translation> <translation id="1587325591171447154"><ph name="FILE_NAME" /> ಅಪಾಯಕಾರಿಯಾಗಿದೆ, ಹಾಗಾಗಿ Chrome ಅದನ್ನು ನಿರ್ಬಂಧಿಸಿದೆ.</translation> @@ -53,7 +53,7 @@ <translation id="225363235161345695">{0,plural, =1{ಒಂದು ಗಂಟೆಯಲ್ಲಿ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}one{# ಗಂಟೆಗಳಲ್ಲಿ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}other{# ಗಂಟೆಗಳಲ್ಲಿ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}}</translation> <translation id="2286950485307333924">ನೀವು ಇದೀಗ Chrome ಗೆ ಸೈನ್ ಇನ್ ಆಗಿರುವಿರಿ</translation> <translation id="2290014774651636340">Google API ಕೀಗಳು ಕಾಣೆಯಾಗಿವೆ. Google Chrome ನ ಕೆಲವು ಕಾರ್ಯವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ.</translation> -<translation id="2290095356545025170">ನೀವು ಖಚಿತವಾಗಿ Google Chrome ಸ್ಥಾಪನೆಯನ್ನು ತೆಗೆಯಲು ಬಯಸುತ್ತೀರಾ?</translation> +<translation id="2290095356545025170">ನೀವು ಖಚಿತವಾಗಿ Google Chrome ಅನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ಬಯಸುತ್ತೀರಾ?</translation> <translation id="2309047409763057870">ಇದು Google Chrome ನ ದ್ವಿತೀಯ ಸ್ಥಾಪನೆಯಾಗಿದೆ ಮತ್ತು ಅದನ್ನು ನಿಮ್ಮ ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಆಗಿ ಮಾಡಲಾಗುವುದಿಲ್ಲ.</translation> <translation id="2334084861041072223">ಹಕ್ಕುಸ್ವಾಮ್ಯ <ph name="YEAR" /> Google Inc. ಎಲ್ಲಾ ಹಕ್ಕುಗಳನ್ನು ಕಾಯ್ದಿರಿಸಲಾಗಿದೆ.</translation> <translation id="2346876346033403680">ಈ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ Chrome ಗೆ ಯಾರೋ ಈ ಹಿಂದೆಯೇ <ph name="ACCOUNT_EMAIL_LAST" /> ಹೆಸರಿನಲ್ಲಿ ಸೈನ್ ಇನ್ ಮಾಡಿದ್ದಾರೆ. ಅದು ನಿಮ್ಮ ಖಾತೆಯಲ್ಲವಾದರೆ ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಇರಿಸಿಕೊಳ್ಳಲು ಹೊಸ Chrome ಬಳಕೆದಾರರನ್ನು ರಚಿಸಿ. @@ -64,9 +64,9 @@ <translation id="2429317896000329049">ನಿಮ್ಮ ಡೊಮೇನ್ನಲ್ಲಿ ಸಿಂಕ್ ಮಾಡುವ ಸೌಲಭ್ಯವಿಲ್ಲದ ಕಾರಣ Google Chrome ಗೆ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.</translation> <translation id="2436117022029368436">ಬ್ರೌಸಿಂಗ್ ಮತ್ತು Chrome ಅನ್ನು ಸುಧಾರಿಸಲು Google ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುತ್ತದೆ</translation> <translation id="2467438592969358367">Google Chrome ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ರಫ್ತು ಮಾಡಲು ಬಯಸುತ್ತದೆ. ಇದನ್ನು ಅನುಮತಿಸಲು ನಿಮ್ಮ Windows ಪಾಸ್ವರ್ಡ್ ಟೈಪ್ ಮಾಡಿ.</translation> -<translation id="2485422356828889247">ಅಸ್ಥಾಪಿಸು</translation> +<translation id="2485422356828889247">ಅನ್ಇನ್ಸ್ಟಾಲ್</translation> <translation id="2534507159460261402">Google Pay (Chrome ಗೆ ನಕಲಿಸಲಾಗಿದೆ)</translation> -<translation id="2535429035253759792">ಈ ಅಪ್ಡೇಟ್ ಅನ್ವಯಿಸಲು ನೀವು Chrome ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ ಎಂದು ನಿರ್ವಾಹಕ ನಿಮ್ಮನ್ನು ಕೇಳುತ್ತದೆ</translation> +<translation id="2535429035253759792">ಈ ಅಪ್ಡೇಟ್ ಅನ್ವಯಿಸಲು ನೀವು Chrome ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ ಎಂದು ನಿರ್ವಾಹಕವು ನಿಮ್ಮನ್ನು ವಿನಂತಿಸುತ್ತದೆ</translation> <translation id="2580411288591421699">ಪ್ರಸ್ತುತ ಚಾಲನೆಯಲ್ಲಿರುವ ಅದೇ Google Chrome ಆವೃತ್ತಿಯನ್ನು ಸ್ಥಾಪಿಸಲಾಗುವುದಿಲ್ಲ. ದಯವಿಟ್ಟು Google Chrome ಮುಚ್ಚಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="2586406160782125153">ಈ ಸಾಧನದಿಂದ ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ಇದು ಅಳಿಸುತ್ತದೆ. ನಂತರ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಮರುಪಡೆಯಲು, <ph name="USER_EMAIL" /> ನಂತೆ Chrome ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ.</translation> <translation id="2588322182880276190">Chrome ಲೋಗೊ</translation> @@ -136,10 +136,10 @@ <translation id="4567424176335768812"><ph name="USER_EMAIL_ADDRESS" /> ನಂತೆ ಸೈನ್ ಇನ್ ಮಾಡಿರುವಿರಿ. ನೀವು ಇದೀಗ ನಿಮ್ಮ ಎಲ್ಲಾ ಸೈನ್ ಇನ್ ಮಾಡಿರುವ ಸಾಧನಗಳಲ್ಲಿ ನಿಮ್ಮ ಬುಕ್ಮಾರ್ಕ್ಗಳು, ಇತಿಹಾಸ ಮತ್ತು ಇತರ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಪ್ರವೇಶಿಸಬಹುದು.</translation> <translation id="4571503333518166079">Chrome ಅಧಿಸೂಚನೆ ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ಹೋಗಿ</translation> <translation id="459622048091363950">Chrome ಒಮ್ಮೆ ಪ್ರವೇಶವನ್ನು ಪಡೆದ ಬಳಿಕ, ಪ್ರವೇಶಕ್ಕಾಗಿ ನಿಮ್ಮನ್ನು ಕೇಳಲು ವೆಬ್ಸೈಟ್ಗಳಿಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ.</translation> -<translation id="4600710005438004015">Chrome ಗೆ ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಗೆ ಅಪ್ಡೇಟ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ, ಆದ್ದರಿಂದಾಗಿ ನೀವು ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ಭದ್ರತೆ ಸರಿಪಡಿಸುವಿಕೆಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತಿರಬಹುದು.</translation> +<translation id="4600710005438004015">Chrome ಗೆ ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಗೆ ಅಪ್ಡೇಟ್ ಆಗಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ, ಆದ್ದರಿಂದ ನೀವು ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ಭದ್ರತೆ ಸರಿಪಡಿಸುವಿಕೆಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ.</translation> <translation id="4631713731678262610">Chrome ಮೆನುವಿನಲ್ಲಿ ಮರೆಮಾಡು</translation> <translation id="4633000520311261472">Chrome ಸುರಕ್ಷಿತವಾಗಿರಿಸುವಂತೆ ಮಾಡಲು, <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> ನಲ್ಲಿ ಪಟ್ಟಿ ಮಾಡಲಾದ ಕೆಲವು ವಿಸ್ತರಣೆಗಳನ್ನು ನಾವು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದೇವೆ ಮತ್ತು ಅವುಗಳನ್ನು ನಿಮ್ಮ ಅರಿವಿಲ್ಲದೆ ಸೇರಿಸಿರಬಹುದು.</translation> -<translation id="4664415150087723341">Google Chrome ಗೆ ವಿಶೇಷ ಸುರಕ್ಷತೆಯ ಅಪ್ಡೇಟ್ ಅನ್ನು ಈಗ ತಾನೇ ಅನ್ವಯಿಸಲಾಗಿದೆ; ಇದನ್ನು ಪರಿಣಾಮಕಾರಿಯನ್ನಾಗಿಸಲು ಇದೀಗ ನೀವು ಮರುಪ್ರಾರಂಭಿಸಬೇಕಾಗಿರುತ್ತದೆ (ನಿಮ್ಮ ಟ್ಯಾಬ್ಗಳನ್ನು ನಾವು ಮರುಸ್ಥಾಪಿಸುತ್ತೇವೆ).</translation> +<translation id="4664415150087723341">Google Chrome ಗೆ ವಿಶೇಷ ಸುರಕ್ಷತೆಯ ಅಪ್ಡೇಟ್ ಅನ್ನು ಈಗ ತಾನೇ ಅನ್ವಯಿಸಲಾಗಿದೆ; ಇದನ್ನು ಪರಿಣಾಮಕಾರಿಯನ್ನಾಗಿಸಲು ಇದೀಗ ನೀವು ಮರುಪ್ರಾರಂಭಿಸಬೇಕಾಗಿರುತ್ತದೆ (ನಿಮ್ಮ ಟ್ಯಾಬ್ಗಳನ್ನು ನಾವು ಪುನಃ ಇನ್ಸ್ಟಾಲ್ ಮಾಡುತ್ತೇವೆ).</translation> <translation id="4700157086864140907">Google ಹುಡುಕಾಟ ಮೂಲಕ ಬಳಸಲಾದ ಅದೇ ಕಾಗುಣಿತ ಪರೀಕ್ಷೆಯ ತಂತ್ರಜ್ಞಾನವನ್ನು ಬಳಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತಿರುವ, Google ಸೇವೆಗಳಿಗೆ ಬ್ರೌಸರ್ನಲ್ಲಿ ನೀವು ಟೈಪ್ ಮಾಡಿರುವುದನ್ನು ಕಳುಹಿಸುವುದರ ಮೂಲಕ Google Chrome ಉತ್ತಮ ಕಾಗುಣಿತ ಪರೀಕ್ಷೆಯನ್ನು ಒದಗಿಸಬಹುದು.</translation> <translation id="4728575227883772061">ಅನಿರ್ದಿಷ್ಟ ದೋಷದಿಂದಾಗಿ ಸ್ಥಾಪನೆ ವಿಫಲವಾಗಿದೆ. Google Chrome ಪ್ರಸ್ತುತ ಚಲಿಸುತ್ತಿದ್ದರೆ, ದಯವಿಟ್ಟು ಇದನ್ನು ಮುಚ್ಚಿ ಮತ್ತು ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="4750550185319565338"><ph name="PLUGIN_NAME" /> ಸಕ್ರಿಯಗೊಳಿಸಲು Chrome ಮರುಪ್ರಾರಂಭಿಸಿ</translation> @@ -154,7 +154,7 @@ <translation id="4953650215774548573">Google Chrome ಅನ್ನು ನಿಮ್ಮ ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ರೂಪದಲ್ಲಿ ಹೊಂದಿಸಿ</translation> <translation id="495931528404527476">Chrome ನಲ್ಲಿ</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> -<translation id="5028489144783860647">Google Chrome ನಲ್ಲಿ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ನವೀಕರಿಸಿ.</translation> +<translation id="5028489144783860647">Google Chrome ನಲ್ಲಿ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಿ.</translation> <translation id="5062123544085870375">Chrome OS ಮರುಪ್ರಾರಂಭಿಸಿ</translation> <translation id="5090044601776247154">Google Chrome 70 ರಿಂದ ಆರಂಭಗೊಂಡು, ಮೇಲ್ವಿಚಾರಣಾ ಬಳಕೆದಾರರ ಪ್ರೊಫೈಲ್ಗಳು ಇನ್ನು ಮುಂದೆ ಲಭ್ಯವಿರುವುದಿಲ್ಲ.</translation> <translation id="5132929315877954718">Google Chrome ಸಲುವಾಗಿ ಉತ್ಕೃಷ್ಟಮಟ್ಟದ ಅಪ್ಲಿಕೇಶನ್ಗಳು, ಗೇಮ್ಗಳು, ವಿಸ್ತರಣೆಗಳು ಹಾಗೂ ಥೀಮ್ಗಳನ್ನು ಅನ್ವೇಷಿಸಿ</translation> @@ -186,7 +186,7 @@ <translation id="6113794647360055231">Chrome ಇದೀಗ ಉತ್ತಮಗೊಂಡಿದೆ</translation> <translation id="6169866489629082767"><ph name="PAGE_TITLE" /> - Google Chrome</translation> <translation id="6173637689840186878"><ph name="PAGE_TITLE" /> - Google Chrome Beta</translation> -<translation id="61852838583753520">&Chrome OS ನವೀಕರಿಸಿ</translation> +<translation id="61852838583753520">&Chrome OS ಅಪ್ಡೇಟ್ ಮಾಡಿ</translation> <translation id="6235018212288296708">mDNS ಟ್ರಾಫಿಕ್ಗೆ ಅನುಮತಿಸುವ ನಿಟ್ಟಿನಲ್ಲಿ Google Chrome ಗೆ ಒಳಬರುವ ನಿಯಮ.</translation> <translation id="6291089322031436445">Chrome Dev ಅಪ್ಲಿಕೇಶನ್ಗಳು</translation> <translation id="6291549208091401781">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿನ ಎಲ್ಲ ಬಳಕೆದಾರರಿಗೆ ಈಗಾಗಲೇ Google Chrome ಸ್ಥಾಪಿತವಾಗಿದೆ.</translation> @@ -195,7 +195,7 @@ <translation id="6468844726266617801">{0,plural, =1{ಒಂದು ದಿನದೊಳಗೆ Chrome ಮರುಪ್ರಾರಂಭಿಸಿ}one{# ದಿನಗಳ ಒಳಗೆ Chrome ಮರುಪ್ರಾರಂಭಿಸಿ}other{# ದಿನಗಳ ಒಳಗೆ Chrome ಮರುಪ್ರಾರಂಭಿಸಿ}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> - Google Chrome Dev</translation> <translation id="6566149418543181476">Google Chrome ಅಪ್ಡೇಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ (<ph name="PROGRESS_PERCENT" />)</translation> -<translation id="6598387184982954187">ನಿಮ್ಮ Chrome ವಿಷಯವನ್ನು ಸಿಂಕ್ ಮಾಡಲು ನೀವು <ph name="PROFILE_EMAIL" /> ಅನ್ನು ಬಳಸುತ್ತಿರುವಿರಿ. Google ಖಾತೆಯಿಲ್ಲದೆ ನಿಮ್ಮ ಸಿಂಕ್ ಪ್ರಾಶಸ್ತ್ಯಗಳನ್ನು ನವೀಕರಿಸಲು ಅಥವಾ Chrome ಬಳಸಲು <ph name="SETTINGS_LINK" /> ಗೆ ಭೇಟಿ ನೀಡಿ.</translation> +<translation id="6598387184982954187">ನಿಮ್ಮ Chrome ವಿಷಯವನ್ನು ಸಿಂಕ್ ಮಾಡಲು ನೀವು <ph name="PROFILE_EMAIL" /> ಅನ್ನು ಬಳಸುತ್ತಿರುವಿರಿ. Google ಖಾತೆಯಿಲ್ಲದೆ ನಿಮ್ಮ ಸಿಂಕ್ ಪ್ರಾಶಸ್ತ್ಯಗಳನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಲು ಅಥವಾ Chrome ಬಳಸಲು <ph name="SETTINGS_LINK" /> ಗೆ ಭೇಟಿ ನೀಡಿ.</translation> <translation id="6600954340915313787">Chrome ಗೆ ನಕಲಿಸಲಾಗಿದೆ</translation> <translation id="6634887557811630702">Google Chrome ಅನ್ನು ನವೀಕರಿಸಿದೆ</translation> <translation id="6676384891291319759">ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ</translation> @@ -273,9 +273,9 @@ <translation id="8667808506758191620">ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ನವೀಕೃತವಾಗಿದೆ.</translation> <translation id="8669527147644353129">Google Chrome ಸಹಾಯಕ</translation> <translation id="8679801911857917785">ನೀವು Chrome ಪ್ರಾರಂಭಿಸಿದಾಗ ಕಾಣಿಸಿಕೊಳ್ಳುವ ಪುಟವನ್ನು ಕೂಡಾ ಇದು ನಿಯಂತ್ರಿಸುತ್ತದೆ.</translation> -<translation id="870251953148363156">&Google Chrome ನವೀಕರಿಸಿ</translation> +<translation id="870251953148363156">&Google Chrome ಅಪ್ಡೇಟ್ ಮಾಡಿ</translation> <translation id="873133009373065397">ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಅನ್ನು ನಿರ್ಧರಿಸಲು ಅಥವಾ ಹೊಂದಿಸಲು Google Chrome ಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ</translation> -<translation id="8736674169840206667">ಅಪ್ಡೇಟ್ ಅನ್ವಯಿಸಲು ನಿಮ್ಮ ನಿರ್ವಾಹಕರಿಗೆ ನೀವು Chrome ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸುವ ಅಗತ್ಯವಿದೆ</translation> +<translation id="8736674169840206667">ಅಪ್ಡೇಟ್ ಅನ್ವಯಿಸಲು ನೀವು Chrome ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕೆಂದು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಕೋರುತ್ತಿದ್ದಾರೆ</translation> <translation id="8791470158600044404">{0,plural, =1{1 ನಿಮಿಷದಲ್ಲಿ Chrome OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}one{# ನಿಮಿಷಗಳಲ್ಲಿ Chrome OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}other{# ನಿಮಿಷಗಳಲ್ಲಿ Chrome OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}}</translation> <translation id="8796108026289707191">ನೀವು ಇದೀಗ Google Chrome ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕು.</translation> <translation id="8823341990149967727">Chrome ನ ಅವಧಿ ಮುಗಿದಿದೆ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lt.xtb b/chrome/app/resources/google_chrome_strings_lt.xtb index fa698ea7..ae825d0 100644 --- a/chrome/app/resources/google_chrome_strings_lt.xtb +++ b/chrome/app/resources/google_chrome_strings_lt.xtb
@@ -28,6 +28,7 @@ <translation id="1587325591171447154">Failas „<ph name="FILE_NAME" />“ pavojingas, todėl „Chrome“ jį užblokavo.</translation> <translation id="1619887657840448962">Kad „Chrome“ būtų saugesnė, išjungėme toliau nurodytą plėtinį, kuris nepateiktas <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> sąraše ir tikriausiai buvo pridėtas be jūsų žinios.</translation> <translation id="1628000112320670027">Gaukite pagalbos dėl „Chrome“</translation> +<translation id="1662639173275167396">„Chrome“ OS pasiekiama naudojant papildomą <ph name="BEGIN_LINK_CROS_OSS" />atvirojo šaltinio programinę įrangą<ph name="END_LINK_CROS_OSS" /> (kaip ir <ph name="BEGIN_LINK_LINUX_OSS" />„Linux“ (beta versija)<ph name="END_LINK_LINUX_OSS" />).</translation> <translation id="1674870198290878346">Atidaryti nuorodą „Chrome“ inko&gnito lange</translation> <translation id="1682634494516646069">„Google Chrome“ negali skaityti ir rašyti į duomenų katalogą:
diff --git a/chrome/app/resources/google_chrome_strings_ml.xtb b/chrome/app/resources/google_chrome_strings_ml.xtb index d99898546..4d3b231 100644 --- a/chrome/app/resources/google_chrome_strings_ml.xtb +++ b/chrome/app/resources/google_chrome_strings_ml.xtb
@@ -88,7 +88,7 @@ <translation id="3080151273017101988">Google Chrome അടച്ചാലും പശ്ചാത്തല ആപ്ലിക്കേഷനുകള് പ്രവര്ത്തിപ്പിക്കുന്നത് തുടരുക</translation> <translation id="3089968997497233615">ഒരു പുതിയ സുരക്ഷിതമായGoogle Chrome ന്റെ പതിപ്പ് ലഭ്യമാണ്.</translation> <translation id="3149510190863420837">Chrome അപ്ലിക്കേഷനുകൾ</translation> -<translation id="3180085900771989961">നിങ്ങളുടെ മാനേജർ നീക്കംചെയ്ത് Chrome-ലേക്ക് തിരികെ ചേർക്കേണ്ടതാണ്.</translation> +<translation id="3180085900771989961">നിങ്ങളുടെ മാനേജർ നീക്കം ചെയ്ത് Chrome-ലേക്ക് തിരികെ ചേർക്കേണ്ടതാണ്.</translation> <translation id="3251381707915721925"><ph name="NEW_PROFILE_NAME" /> എന്നതിന് ഏതൊക്കെ വെബ്സൈറ്റുകൾ കാണാനാകുമെന്ന് സജ്ജമാക്കാൻ, <ph name="BEGIN_LINK_1" /><ph name="DISPLAY_LINK" /><ph name="END_LINK_1" />. സന്ദർശിച്ച് നിയന്ത്രണങ്ങളും ക്രമീകരണവും കോൺഫിഗർ ചെയ്യാം. നിങ്ങൾ ഡിഫോൾട്ട് ക്രമീകരണം മാറ്റുന്നില്ലെങ്കിൽ, <ph name="NEW_PROFILE_NAME" /> എന്നതിന് വെബിൽ എല്ലാ കാര്യങ്ങളും ബ്രൗസ് ചെയ്യാനാകും. നിങ്ങളുടെ അക്കൗണ്ട് ആക്സസ്സ് ചെയ്യുന്നതിൽ നിന്ന് <ph name="NEW_PROFILE_NAME" /> എന്നതിനെ തടയാൻ, Chrome ഉപയോഗിക്കാത്തപ്പോൾ നിങ്ങളുടെ പ്രൊഫൈൽ ലോക്ക് ചെയ്യുന്ന കാര്യം ഉറപ്പാക്കുക. ഇങ്ങനെ ചെയ്യാൻ, ബ്രൗസറിന് മുകളിൽ വലതുകോണിലുള്ള നിങ്ങളുടെ പ്രൊഫൈൽ പേരിൽ ക്ലിക്ക് ചെയ്ത്, "പുറത്ത് കടന്ന് ചൈൽഡ്ലോക്ക് ചെയ്യുക" തിരഞ്ഞെടുക്കുക. @@ -197,7 +197,7 @@ <translation id="6291089322031436445">Chrome Dev ആപ്പുകൾ</translation> <translation id="6291549208091401781">നിങ്ങളുടെ കമ്പ്യൂട്ടറിലെ എല്ലാ ഉപയോക്താക്കൾക്കുമായി Google Chrome നിലവിൽ ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്നു.</translation> <translation id="6338556085225130112">Google Chrome അപ്ഡേറ്റുചെയ്യുന്നു</translation> -<translation id="6368958679917195344">അനുബന്ധ <ph name="BEGIN_LINK_CROS_OSS" />ഓപ്പണ് ഉറവിട സോഫ്റ്റ്വെയര്<ph name="END_LINK_CROS_OSS" /> ഉപയോഗിച്ചാണ് Chrome OS നിര്മ്മിച്ചിരിക്കുന്നത്.</translation> +<translation id="6368958679917195344">അനുബന്ധ <ph name="BEGIN_LINK_CROS_OSS" />ഓപ്പണ് സോഴ്സ് സോഫ്റ്റ്വെയര്<ph name="END_LINK_CROS_OSS" /> ഉപയോഗിച്ചാണ് Chrome OS സാധ്യമാക്കിയിട്ടുള്ളത്.</translation> <translation id="6468844726266617801">{0,plural, =1{ഒരു ദിവസത്തിനുള്ളിൽ Chrome വീണ്ടും സമാരംഭിക്കുക}other{# ദിവസത്തിനുള്ളിൽ Chrome വീണ്ടും സമാരംഭിക്കുക}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> - Google Chrome Dev</translation> <translation id="6566149418543181476">Google Chrome അപ്ഡേറ്റുചെയ്യുന്നു, (<ph name="PROGRESS_PERCENT" />)</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ms.xtb b/chrome/app/resources/google_chrome_strings_ms.xtb index f479fae..d5c79ba 100644 --- a/chrome/app/resources/google_chrome_strings_ms.xtb +++ b/chrome/app/resources/google_chrome_strings_ms.xtb
@@ -26,6 +26,7 @@ <translation id="1587325591171447154"><ph name="FILE_NAME" /> berbahaya, jadi Chrome telah menyekat fail itu.</translation> <translation id="1619887657840448962">Untuk menjadikan Chrome lebih selamat, kami melumpuhkan sambungan berikut yang tidak disenaraikan dalam <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> dan mungkin telah ditambahkan tanpa pengetahuan anda.</translation> <translation id="1628000112320670027">Dapatkan bantuan berkenaan Chrome</translation> +<translation id="1662639173275167396">OS Chrome menjadi kenyataan dengan <ph name="BEGIN_LINK_CROS_OSS" />perisian sumber terbuka<ph name="END_LINK_CROS_OSS" /> tambahan, sebagaimana <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1674870198290878346">Buka Pautan dalam Tetingkap Inko&gnito Chrome</translation> <translation id="1682634494516646069">Google Chrome tidak dapat membaca atau menulis pada direktori datanya: <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome ialah penyemak imbas web yang menjalankan halaman web dan aplikasi dengan kelajuan kilat. Ia pantas, stabil dan mudah digunakan. Semak imbas web dengan lebih selamat dengan perlindungan daripada perisian berniat jahat dan pancingan data yang terbina dalam Google Chrome.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pl.xtb b/chrome/app/resources/google_chrome_strings_pl.xtb index e79a8bc..8234bcaed 100644 --- a/chrome/app/resources/google_chrome_strings_pl.xtb +++ b/chrome/app/resources/google_chrome_strings_pl.xtb
@@ -26,6 +26,7 @@ <translation id="1587325591171447154">Plik <ph name="FILE_NAME" /> jest niebezpieczny, dlatego został zablokowany przez Chrome.</translation> <translation id="1619887657840448962">Aby poprawić bezpieczeństwo Chrome, wyłączyliśmy to rozszerzenie. Nie jest ono dostępne w <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> i mogło zostać dodane bez Twojej wiedzy.</translation> <translation id="1628000112320670027">Pomoc do Chrome</translation> +<translation id="1662639173275167396">Opracowanie systemu operacyjnego Chrome było możliwe dzięki dodatkowemu <ph name="BEGIN_LINK_CROS_OSS" />oprogramowaniu open source<ph name="END_LINK_CROS_OSS" />. To samo dotyczy funkcji <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1674870198290878346">Otwórz link w oknie inco&gnito Chrome</translation> <translation id="1682634494516646069">Google Chrome nie może odczytać ani zapisać danych w katalogu <ph name="USER_DATA_DIRECTORY" />.</translation> <translation id="1698376642261615901">Google Chrome jest przeglądarką internetową, w której witryny internetowe i aplikacje są szybkie jak błyskawica. Jest szybka, stabilna i łatwa w obsłudze. Dzięki wbudowanej ochronie przed złośliwym oprogramowaniem i wyłudzaniem informacji przeglądanie internetu przy użyciu przeglądarki Google Chrome jest bezpieczniejsze.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pt-BR.xtb b/chrome/app/resources/google_chrome_strings_pt-BR.xtb index e37256a..26130ac 100644 --- a/chrome/app/resources/google_chrome_strings_pt-BR.xtb +++ b/chrome/app/resources/google_chrome_strings_pt-BR.xtb
@@ -26,6 +26,7 @@ <translation id="1587325591171447154">O arquivo <ph name="FILE_NAME" /> é perigoso. Por isso ele foi bloqueado pelo Chrome.</translation> <translation id="1619887657840448962">Para tornar o Chrome mais seguro, desativamos a extensão a seguir, que não está listada na <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> e pode ter sido adicionada sem seu conhecimento.</translation> <translation id="1628000112320670027">Ajuda com o Chrome</translation> +<translation id="1662639173275167396">O Chrome OS tornou-se possível graças a um outro <ph name="BEGIN_LINK_CROS_OSS" />software de código aberto<ph name="END_LINK_CROS_OSS" />, como o <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1674870198290878346">Abrir link na janela &sem rastros do Chrome</translation> <translation id="1682634494516646069">O Google Chrome não pode ler e gravar neste diretório de dados: <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">O Google Chrome é um navegador que executa páginas e aplicativos da web em alta velocidade. É rápido, estável e fácil de usar. Navegue pela web de forma segura com proteção contra malware e phishing integrada ao Google Chrome.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sk.xtb b/chrome/app/resources/google_chrome_strings_sk.xtb index bf53681..0df7425 100644 --- a/chrome/app/resources/google_chrome_strings_sk.xtb +++ b/chrome/app/resources/google_chrome_strings_sk.xtb
@@ -28,6 +28,7 @@ <translation id="1587325591171447154">Súbor <ph name="FILE_NAME" /> je nebezpečný, a preto ho Chrome zablokoval.</translation> <translation id="1619887657840448962">Z dôvodu zvýšenia bezpečnosti prehliadača Chrome sme zakázali nasledujúce rozšírenie, ktoré nie je uvedené v službe <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> a mohlo byť pridané bez vášho vedomia.</translation> <translation id="1628000112320670027">Pomoc s Chromom</translation> +<translation id="1662639173275167396">Chrome OS mohol vzniknúť vďaka ďalšiemu <ph name="BEGIN_LINK_CROS_OSS" />softvéru open source<ph name="END_LINK_CROS_OSS" />, ako je napríklad <ph name="BEGIN_LINK_LINUX_OSS" />Linux (beta)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1674870198290878346">Otvoriť odkaz v okne inko&gnito Chromu</translation> <translation id="1682634494516646069">Prehliadač Google Chrome nemôže čítať ani zapisovať do adresára s údajmi: <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome je webový prehliadač, ktorý spúšťa webové stránky a aplikácie rýchlosťou blesku. Je rýchly, stabilný a jednoduchý. Má v sebe vstavanú ochranu pred škodlivým softvérom a neoprávneným získavaním údajov, vďaka ktorej je prehliadanie webu bezpečnejšie.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sw.xtb b/chrome/app/resources/google_chrome_strings_sw.xtb index c5691e9..06c7739 100644 --- a/chrome/app/resources/google_chrome_strings_sw.xtb +++ b/chrome/app/resources/google_chrome_strings_sw.xtb
@@ -28,6 +28,7 @@ <translation id="1587325591171447154"><ph name="FILE_NAME" /> ni hatari, kwa hivyo Chromium imeizuia.</translation> <translation id="1619887657840448962">Ili kufanya Chrome salama zaidi, tumezima kiendelezi kinachofuata ambacho hakijaorodheshwa katika <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> na huenda kimeongezwa bila ridhaa yako.</translation> <translation id="1628000112320670027">Pata usaidizi wa kutumia Chrome</translation> +<translation id="1662639173275167396">Mfumo wa uendeshaji wa Chrome unawezeshwa na <ph name="BEGIN_LINK_CROS_OSS" />programu huria<ph name="END_LINK_CROS_OSS" /> za ziada, jinsi ilivyo katika <ph name="BEGIN_LINK_LINUX_OSS" />Linux (Beta)<ph name="END_LINK_LINUX_OSS" />.</translation> <translation id="1674870198290878346">Fungua Kiungo katika Dirisha Fiche la Chrome</translation> <translation id="1682634494516646069">Google Chrome haiwezi kusoma na kuandika kwenye saraka yake ya data:
diff --git a/chrome/app/resources/google_chrome_strings_ta.xtb b/chrome/app/resources/google_chrome_strings_ta.xtb index 0f8864bb..0dab2ef 100644 --- a/chrome/app/resources/google_chrome_strings_ta.xtb +++ b/chrome/app/resources/google_chrome_strings_ta.xtb
@@ -26,6 +26,7 @@ <translation id="1587325591171447154"><ph name="FILE_NAME" /> ஆபத்தானது என்பதால் Chrome அதைத் தடுத்துள்ளது.</translation> <translation id="1619887657840448962">Chromeஐப் பாதுகாப்பானதாக்க, <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> இல் பட்டியலிடப்படாத பின்வரும் நீட்டிப்பை முடக்கியுள்ளோம், மேலும் அது உங்களுக்குத் தெரியாமல் சேர்க்கப்பட்டிருக்கலாம்.</translation> <translation id="1628000112320670027">Chrome தொடர்பான உதவி பெறுக</translation> +<translation id="1662639173275167396">Chrome OS, <ph name="BEGIN_LINK_LINUX_OSS" />Linuxஸைப் (பீட்டா)<ph name="END_LINK_LINUX_OSS" /> போலவே கூடுதல் <ph name="BEGIN_LINK_CROS_OSS" />ஓப்பன் சோர்ஸ் மென்பொருளால்<ph name="END_LINK_CROS_OSS" /> உருவாக்கப்பட்டுள்ளது.</translation> <translation id="1674870198290878346">Chrome மறை&நிலை சாளரத்தில் இணைப்பைத் திற</translation> <translation id="1682634494516646069">பின்வரும் தரவுக் கோப்பகத்தில் Google Chrome படிக்கவும் எழுதவும் செய்யாது:<ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome என்ற வலை உலாவியானது, வலைப்பக்கங்களையும் பயன்பாடுகளையும் மின்னல் வேகத்தில் இயக்கும் திறன் கொண்டது. இது வேகமானது, நிலையானது மற்றும் பயன்படுத்துவதற்கு எளிதானது. Google Chrome இல் அமையப்பெற்றுள்ள தீப்பொருள் மற்றும் ஃபிஷிங் பாதுகாப்பைக் கொண்டு பாதுகாப்பாக வலையில் உலாவ முடியும்.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_th.xtb b/chrome/app/resources/google_chrome_strings_th.xtb index 139a2c2..828d2835 100644 --- a/chrome/app/resources/google_chrome_strings_th.xtb +++ b/chrome/app/resources/google_chrome_strings_th.xtb
@@ -26,6 +26,7 @@ <translation id="1587325591171447154"><ph name="FILE_NAME" /> เป็นอันตราย Chromium จึงบล็อกไว้</translation> <translation id="1619887657840448962">เพื่อให้ Chrome ปลอดภัยขึ้น เราได้ปิดส่วนขยายต่อไปนี้ซึ่งไม่ได้แสดงอยู่ใน <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> และอาจมีการเพิ่มเข้ามาโดยที่คุณไม่รู้ตัว</translation> <translation id="1628000112320670027">รับความช่วยเหลือเกี่ยวกับ Chrome</translation> +<translation id="1662639173275167396">Chrome OS เกิดขึ้นได้ด้วยการสนับสนุนจาก<ph name="BEGIN_LINK_CROS_OSS" />ซอฟต์แวร์โอเพนซอร์ส<ph name="END_LINK_CROS_OSS" />เพิ่มเติม เช่นเดียวกับ <ph name="BEGIN_LINK_LINUX_OSS" />Linux (เบต้า)<ph name="END_LINK_LINUX_OSS" /></translation> <translation id="1674870198290878346">เปิดลิงก์ในหน้าต่างที่ไม่ระบุตัวตนของ Chrome</translation> <translation id="1682634494516646069">Google Chrome ไม่สามารถอ่านและเขียนข้อมูลในไดเรกทอรีข้อมูล: <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome คือเว็บเบราว์เซอร์ที่แสดงหน้าเว็บและแอปพลิเคชันต่างๆ ได้รวดเร็วในพริบตา โดยทำงานได้เร็ว มีเสถียรภาพ และใช้งานง่าย ช่วยให้คุณเรียกดูเว็บได้อย่างปลอดภัยมากขึ้นด้วยการป้องกันมัลแวร์และฟิชชิงซึ่งมีอยู่ใน Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_uk.xtb b/chrome/app/resources/google_chrome_strings_uk.xtb index d1aabae..ed809757 100644 --- a/chrome/app/resources/google_chrome_strings_uk.xtb +++ b/chrome/app/resources/google_chrome_strings_uk.xtb
@@ -26,6 +26,7 @@ <translation id="1587325591171447154">Файл <ph name="FILE_NAME" /> небезпечний, тому Chrome заблокував його.</translation> <translation id="1619887657840448962">Щоб зробити Chrome безпечнішим, ми вимкнули наведене нижче розширення, установлене не із сайту <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> і, можливо, додане без вашого відома.</translation> <translation id="1628000112320670027">Довідка щодо Chrome</translation> +<translation id="1662639173275167396">ОС Chrome, як і <ph name="BEGIN_LINK_LINUX_OSS" />бета-версія Linux<ph name="END_LINK_LINUX_OSS" />, працюють завдяки додатковому <ph name="BEGIN_LINK_CROS_OSS" />програмному забезпеченню з відкритим кодом<ph name="END_LINK_CROS_OSS" />.</translation> <translation id="1674870198290878346">Відкрити посилання в аноні&мному вікні Chrome</translation> <translation id="1682634494516646069">Google Chrome не може читати та записувати у свій каталог даних: <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome – це веб-переглядач, який запускає веб-сторінки та програми з блискавичною швидкістю. Він швидкий, надійний і зручний у користуванні. Вбудований у Google Chrome захист від шкідливих програм і фішингу гарантує ще більшу безпеку під час перегляду веб-сторінок.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-TW.xtb b/chrome/app/resources/google_chrome_strings_zh-TW.xtb index 3572051..7dd232c 100644 --- a/chrome/app/resources/google_chrome_strings_zh-TW.xtb +++ b/chrome/app/resources/google_chrome_strings_zh-TW.xtb
@@ -26,6 +26,7 @@ <translation id="1587325591171447154"><ph name="FILE_NAME" /> 並不安全,因此遭到 Chrome 封鎖。</translation> <translation id="1619887657840448962">為了讓 Chrome 的安全性更有保障,我們停用了以下這個未列在「<ph name="IDS_EXTENSION_WEB_STORE_TITLE" />」中的擴充功能 (它可能是在您不知情的情況下加入瀏覽器)。</translation> <translation id="1628000112320670027">前往 Chrome 說明頁面</translation> +<translation id="1662639173275167396">Chrome 作業系統藉助了其他<ph name="BEGIN_LINK_CROS_OSS" />開放原始碼軟體<ph name="END_LINK_CROS_OSS" />的相關技術才得以問世,<ph name="BEGIN_LINK_LINUX_OSS" />Linux (測試版)<ph name="END_LINK_LINUX_OSS" /> 也是如此。</translation> <translation id="1674870198290878346">在 Chrome 無痕式視窗中開啟連結(&G)</translation> <translation id="1682634494516646069">Google Chrome 無法讀取及寫入資料目錄:<ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome 瀏覽器開啟網頁和執行應用程式的速度奇快無比!除了執行速度迅速、穩定且容易使用之外,內建防護機制還可讓你安心瀏覽網頁,無需擔心受到網路釣魚與惡意軟體的威脅。</translation>
diff --git a/chrome/app/theme/chrome_unscaled_resources.grd b/chrome/app/theme/chrome_unscaled_resources.grd index c9a1775..101ea60 100644 --- a/chrome/app/theme/chrome_unscaled_resources.grd +++ b/chrome/app/theme/chrome_unscaled_resources.grd
@@ -40,10 +40,6 @@ <if expr="not is_macosx and not is_win"> <include name="IDR_STATUS_TRAY_ICON" file="google_chrome/product_logo_22.png" type="BINDATA" /> </if> - <if expr="chromeos"> - <include name="IDR_CHROME_APP_ICON_32" file="google_chrome/chromeos/chrome_app_icon_32.png" type="BINDATA" /> - <include name="IDR_CHROME_APP_ICON_192" file="google_chrome/chromeos/chrome_app_icon_192.png" type="BINDATA" /> - </if> </if> <if expr="not _google_chrome"> <include name="IDR_PRODUCT_LOGO_64" file="chromium/product_logo_64.png" type="BINDATA" /> @@ -58,10 +54,6 @@ <if expr="not is_macosx and not is_win"> <include name="IDR_STATUS_TRAY_ICON" file="chromium/product_logo_22.png" type="BINDATA" /> </if> - <if expr="chromeos"> - <include name="IDR_CHROME_APP_ICON_32" file="chromium/chromeos/chrome_app_icon_32.png" type="BINDATA" /> - <include name="IDR_CHROME_APP_ICON_192" file="chromium/chromeos/chrome_app_icon_192.png" type="BINDATA" /> - </if> </if> <if expr="is_win"> <!-- Double-size profile avatar images used for generating .ico
diff --git a/chrome/app/theme/chromium/chromeos/chrome_app_icon_192.png b/chrome/app/theme/chromium/chromeos/chrome_app_icon_192.png deleted file mode 100644 index ef1b68c..0000000 --- a/chrome/app/theme/chromium/chromeos/chrome_app_icon_192.png +++ /dev/null Binary files differ
diff --git a/chrome/app/theme/chromium/chromeos/chrome_app_icon_32.png b/chrome/app/theme/chromium/chromeos/chrome_app_icon_32.png deleted file mode 100644 index 76555dc2..0000000 --- a/chrome/app/theme/chromium/chromeos/chrome_app_icon_32.png +++ /dev/null Binary files differ
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index 8a6de38b..3fc9073a 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -1564,8 +1564,6 @@ "thumbnails/thumbnailing_context.h", "tracing/background_tracing_field_trial.cc", "tracing/background_tracing_field_trial.h", - "tracing/chrome_browser_main_extra_parts_tracing.cc", - "tracing/chrome_browser_main_extra_parts_tracing.h", "tracing/chrome_tracing_delegate.cc", "tracing/chrome_tracing_delegate.h", "tracing/crash_service_uploader.cc", @@ -2139,6 +2137,8 @@ "android/explore_sites/explore_sites_service_impl.h", "android/explore_sites/explore_sites_store.cc", "android/explore_sites/explore_sites_store.h", + "android/explore_sites/import_catalog_task.cc", + "android/explore_sites/import_catalog_task.h", "android/explore_sites/ntp_json_fetcher.cc", "android/explore_sites/ntp_json_fetcher.h", "android/explore_sites/url_util.cc", @@ -2496,6 +2496,8 @@ "//components/payments/content/android", "//components/resources:components_resources", "//components/toolbar", + "//media/mojo/clients", + "//media/mojo/interfaces:constants", "//rlz:rlz_utils", "//sandbox", "//sandbox:sandbox_buildflags", @@ -3739,6 +3741,8 @@ "media/webrtc/tab_capture_access_handler.h", "metrics/extensions_metrics_provider.cc", "metrics/extensions_metrics_provider.h", + "policy/chrome_extension_policy_migrator.cc", + "policy/chrome_extension_policy_migrator.h", "renderer_context_menu/context_menu_content_type_app_mode.cc", "renderer_context_menu/context_menu_content_type_app_mode.h", "renderer_context_menu/context_menu_content_type_extension_popup.cc",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index bdf4dbf..c8cd8666 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -856,6 +856,36 @@ {"(Black on GoogleYellow050)", kAutofillPreviewStyleBlackOnYellow050, base::size(kAutofillPreviewStyleBlackOnYellow050), nullptr}}; +#if !defined(OS_ANDROID) +const FeatureEntry::FeatureParam kAutofillPrimaryInfoStyleMedium[] = { + {autofill::kAutofillPrimaryInfoFontWeightParameterName, + autofill::kAutofillPrimaryInfoFontWeightParameterMedium}, +}; +const FeatureEntry::FeatureParam kAutofillPrimaryInfoStyleSemiBold[] = { + {autofill::kAutofillPrimaryInfoFontWeightParameterName, + autofill::kAutofillPrimaryInfoFontWeightParameterSemiBold}, +}; +const FeatureEntry::FeatureParam kAutofillPrimaryInfoStyleBold[] = { + {autofill::kAutofillPrimaryInfoFontWeightParameterName, + autofill::kAutofillPrimaryInfoFontWeightParameterBold}, +}; +const FeatureEntry::FeatureParam kAutofillPrimaryInfoStyleExtraBold[] = { + {autofill::kAutofillPrimaryInfoFontWeightParameterName, + autofill::kAutofillPrimaryInfoFontWeightParameterExtraBold}, +}; + +const FeatureEntry::FeatureVariation kAutofillPrimaryInfoStyleVariations[] = { + {"(Medium)", kAutofillPrimaryInfoStyleMedium, + base::size(kAutofillPrimaryInfoStyleMedium), nullptr}, + {"(Semi-bold)", kAutofillPrimaryInfoStyleSemiBold, + base::size(kAutofillPrimaryInfoStyleSemiBold), nullptr}, + {"(Bold)", kAutofillPrimaryInfoStyleBold, + base::size(kAutofillPrimaryInfoStyleBold), nullptr}, + {"(Extra-bold)", kAutofillPrimaryInfoStyleExtraBold, + base::size(kAutofillPrimaryInfoStyleExtraBold), nullptr}, +}; +#endif // !defined(OS_ANDROID) + const FeatureEntry::Choice kAutoplayPolicyChoices[] = { {flags_ui::kGenericExperimentChoiceDefault, "", ""}, {flag_descriptions::kAutoplayPolicyNoUserGestureRequired, @@ -4056,6 +4086,18 @@ flag_descriptions::kAutofillCacheQueryResponsesName, flag_descriptions::kAutofillCacheQueryResponsesDescription, kOsAll, FEATURE_VALUE_TYPE(autofill::features::kAutofillCacheQueryResponses)}, + +#if !defined(OS_ANDROID) + {"autofill-primary-info-style", + flag_descriptions::kAutofillPrimaryInfoStyleExperimentName, + flag_descriptions::kAutofillPrimaryInfoStyleExperimentDescription, + kOsDesktop, + FEATURE_WITH_PARAMS_VALUE_TYPE( + autofill::kAutofillPrimaryInfoStyleExperiment, + kAutofillPrimaryInfoStyleVariations, + "AutofillPrimaryInfoStyleExperiment")}, +#endif // !defined(OS_ANDROID) + {"autofill-enable-company-name", flag_descriptions::kAutofillEnableCompanyNameName, flag_descriptions::kAutofillEnableCompanyNameDescription, kOsAll, @@ -4340,13 +4382,6 @@ FEATURE_VALUE_TYPE(chrome::android::kLongPressBackForHistory)}, #endif -#if defined(OS_ANDROID) - {"long-press-back-new-design", - flag_descriptions::kLongPressBackNewDesignName, - flag_descriptions::kLongPressBackNewDesignDescription, kOsAndroid, - FEATURE_VALUE_TYPE(chrome::android::kLongPressBackNewDesign)}, -#endif - {"sync-standalone-transport", flag_descriptions::kSyncStandaloneTransportName, flag_descriptions::kSyncStandaloneTransportDescription, kOsAll,
diff --git a/chrome/browser/android/DEPS b/chrome/browser/android/DEPS index 09022c2..a0b588f 100644 --- a/chrome/browser/android/DEPS +++ b/chrome/browser/android/DEPS
@@ -3,6 +3,8 @@ "+cc/layers/layer.h", "+chrome_jni_registration/chrome_jni_registration.h", "+device/vr/buildflags/buildflags.h", + "+media/gpu", + "+media/video", "+sandbox/linux/seccomp-bpf/sandbox_bpf.h", "+sandbox/linux/seccomp-bpf-helpers", "+sandbox/sandbox_buildflags.h",
diff --git a/chrome/browser/android/autofill_assistant/ui_controller_android.cc b/chrome/browser/android/autofill_assistant/ui_controller_android.cc index d13a15f4..71d3b3d 100644 --- a/chrome/browser/android/autofill_assistant/ui_controller_android.cc +++ b/chrome/browser/android/autofill_assistant/ui_controller_android.cc
@@ -63,16 +63,17 @@ void UiControllerAndroid::UpdateScripts( const std::vector<ScriptHandle>& scripts) { - // TODO(crbug.com/806868): Pass the handles directly instead of the path. std::vector<std::string> script_paths; + std::vector<std::string> script_names; for (const auto& script : scripts) { script_paths.emplace_back(script.path); + script_names.emplace_back(script.name); } - JNIEnv* env = AttachCurrentThread(); - auto jscripts = base::android::ToJavaArrayOfStrings(env, script_paths); Java_AutofillAssistantUiController_onUpdateScripts( - env, java_autofill_assistant_ui_controller_, jscripts); + env, java_autofill_assistant_ui_controller_, + base::android::ToJavaArrayOfStrings(env, script_names), + base::android::ToJavaArrayOfStrings(env, script_paths)); } void UiControllerAndroid::OnScriptSelected(
diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc index 922664e8..f01ac2e 100644 --- a/chrome/browser/android/chrome_feature_list.cc +++ b/chrome/browser/android/chrome_feature_list.cc
@@ -115,7 +115,6 @@ &kInflateToolbarOnBackgroundThread, &kLanguagesPreference, &kLongPressBackForHistory, - &kLongPressBackNewDesign, &kModalPermissionDialogView, &kNewContactsPicker, &kNewPhotoPicker, @@ -326,9 +325,6 @@ const base::Feature kLongPressBackForHistory{"LongPressBackForHistory", base::FEATURE_DISABLED_BY_DEFAULT}; -const base::Feature kLongPressBackNewDesign{"LongPressBackNewDesign", - base::FEATURE_DISABLED_BY_DEFAULT}; - const base::Feature kModalPermissionDialogView{ "ModalPermissionDialogView", base::FEATURE_DISABLED_BY_DEFAULT};
diff --git a/chrome/browser/android/chrome_feature_list.h b/chrome/browser/android/chrome_feature_list.h index bafd5fc1..78f01be 100644 --- a/chrome/browser/android/chrome_feature_list.h +++ b/chrome/browser/android/chrome_feature_list.h
@@ -57,7 +57,6 @@ extern const base::Feature kInflateToolbarOnBackgroundThread; extern const base::Feature kLanguagesPreference; extern const base::Feature kLongPressBackForHistory; -extern const base::Feature kLongPressBackNewDesign; extern const base::Feature kModalPermissionDialogView; extern const base::Feature kSearchEnginePromoExistingDevice; extern const base::Feature kSearchEnginePromoNewDevice;
diff --git a/chrome/browser/android/download/download_media_parser.cc b/chrome/browser/android/download/download_media_parser.cc index 45295b1..30aff33f 100644 --- a/chrome/browser/android/download/download_media_parser.cc +++ b/chrome/browser/android/download/download_media_parser.cc
@@ -10,7 +10,15 @@ #include "base/task/post_task.h" #include "base/task/task_traits.h" #include "chrome/browser/android/download/local_media_data_source_factory.h" +#include "content/public/browser/android/gpu_video_accelerator_factories_provider.h" #include "content/public/common/service_manager_connection.h" +#include "media/base/overlay_info.h" +#include "media/mojo/clients/mojo_video_decoder.h" +#include "media/mojo/interfaces/constants.mojom.h" +#include "media/mojo/interfaces/media_service.mojom.h" +#include "media/mojo/services/media_interface_provider.h" +#include "media/video/gpu_video_accelerator_factories.h" +#include "services/service_manager/public/cpp/connector.h" namespace { @@ -22,6 +30,12 @@ base::CompareCase::INSENSITIVE_ASCII); } +void OnRequestOverlayInfo(bool decoder_requires_restart_for_overlay, + const media::ProvideOverlayInfoCB& overlay_info_cb) { + // No android overlay associated with video thumbnail. + overlay_info_cb.Run(media::OverlayInfo()); +} + } // namespace DownloadMediaParser::DownloadMediaParser(int64_t size, @@ -34,6 +48,7 @@ parse_complete_cb_(std::move(parse_complete_cb)), file_task_runner_( base::CreateSingleThreadTaskRunnerWithTraits({base::MayBlock()})), + decode_done_(false), weak_factory_(this) {} DownloadMediaParser::~DownloadMediaParser() = default; @@ -64,8 +79,7 @@ } void DownloadMediaParser::OnConnectionError() { - if (parse_complete_cb_) - std::move(parse_complete_cb_).Run(false); + OnError(); } void DownloadMediaParser::OnMediaMetadataParsed( @@ -73,7 +87,7 @@ chrome::mojom::MediaMetadataPtr metadata, const std::vector<metadata::AttachedImage>& attached_images) { if (!parse_success) { - std::move(parse_complete_cb_).Run(false); + OnError(); return; } metadata_ = std::move(metadata); @@ -126,10 +140,108 @@ encoded_data_ = data; config_ = config; - // TODO(xingliu): Decode the video frame with MojoVideoDecoder. + content::CreateGpuVideoAcceleratorFactories(base::BindRepeating( + &DownloadMediaParser::OnGpuVideoAcceleratorFactoriesReady, + weak_factory_.GetWeakPtr())); +} + +void DownloadMediaParser::OnGpuVideoAcceleratorFactoriesReady( + std::unique_ptr<media::GpuVideoAcceleratorFactories> factories) { + gpu_factories_ = std::move(factories); + DecodeVideoFrame(); +} + +void DownloadMediaParser::DecodeVideoFrame() { + media::mojom::VideoDecoderPtr video_decoder_ptr; + GetMediaInterfaceFactory()->CreateVideoDecoder( + mojo::MakeRequest(&video_decoder_ptr)); + + // Build and config the decoder. + DCHECK(gpu_factories_); + decoder_ = std::make_unique<media::MojoVideoDecoder>( + base::ThreadTaskRunnerHandle::Get(), gpu_factories_.get(), this, + std::move(video_decoder_ptr), base::BindRepeating(&OnRequestOverlayInfo), + gfx::ColorSpace()); + + decoder_->Initialize( + config_, false, nullptr, + base::BindRepeating(&DownloadMediaParser::OnVideoDecoderInitialized, + weak_factory_.GetWeakPtr()), + base::BindRepeating(&DownloadMediaParser::OnVideoFrameDecoded, + weak_factory_.GetWeakPtr()), + base::RepeatingClosure()); +} + +void DownloadMediaParser::OnVideoDecoderInitialized(bool success) { + if (!success) { + OnError(); + return; + } + + // Build the video buffer to decode. + auto buffer = + media::DecoderBuffer::CopyFrom(&encoded_data_[0], encoded_data_.size()); + encoded_data_.clear(); + + // Decode one frame buffer, followed by eos buffer. + DCHECK_GE(decoder_->GetMaxDecodeRequests(), 2); + decoder_->Decode( + buffer, base::BindRepeating(&DownloadMediaParser::OnVideoBufferDecoded, + weak_factory_.GetWeakPtr())); + decoder_->Decode(media::DecoderBuffer::CreateEOSBuffer(), + base::BindRepeating(&DownloadMediaParser::OnEosBufferDecoded, + weak_factory_.GetWeakPtr())); +} + +void DownloadMediaParser::OnVideoBufferDecoded(media::DecodeStatus status) { + if (status != media::DecodeStatus::OK) + OnError(); +} + +void DownloadMediaParser::OnEosBufferDecoded(media::DecodeStatus status) { + if (status != media::DecodeStatus::OK) + OnError(); + + // Fails if no decoded video frame is generated when eos arrives. + if (!decode_done_) + OnError(); +} + +void DownloadMediaParser::OnVideoFrameDecoded( + const scoped_refptr<media::VideoFrame>& frame) { + DCHECK(frame); + DCHECK(frame->HasTextures()); + decode_done_ = true; + + // TODO(xingliu): render the |frame| in the browser process, with cc or skia + // or gl. The |frame| is associated with a native texture in GPU process. NotifyComplete(); } +media::mojom::InterfaceFactory* +DownloadMediaParser::GetMediaInterfaceFactory() { + if (!media_interface_factory_) { + service_manager::mojom::InterfaceProviderPtr interfaces; + media_interface_provider_ = std::make_unique<media::MediaInterfaceProvider>( + mojo::MakeRequest(&interfaces)); + media::mojom::MediaServicePtr media_service; + content::ServiceManagerConnection::GetForProcess() + ->GetConnector() + ->BindInterface(media::mojom::kMediaServiceName, &media_service); + media_service->CreateInterfaceFactory( + MakeRequest(&media_interface_factory_), std::move(interfaces)); + media_interface_factory_.set_connection_error_handler( + base::BindOnce(&DownloadMediaParser::OnDecoderConnectionError, + base::Unretained(this))); + } + + return media_interface_factory_.get(); +} + +void DownloadMediaParser::OnDecoderConnectionError() { + OnError(); +} + void DownloadMediaParser::OnMediaDataReady( chrome::mojom::MediaDataSource::ReadCallback callback, std::unique_ptr<std::string> data) {
diff --git a/chrome/browser/android/download/download_media_parser.h b/chrome/browser/android/download/download_media_parser.h index 33cc4d6f..d198ba8e 100644 --- a/chrome/browser/android/download/download_media_parser.h +++ b/chrome/browser/android/download/download_media_parser.h
@@ -18,14 +18,19 @@ #include "chrome/common/media_galleries/metadata_types.h" #include "chrome/services/media_gallery_util/public/cpp/media_parser_provider.h" #include "chrome/services/media_gallery_util/public/mojom/media_parser.mojom.h" +#include "media/base/media_log.h" +#include "media/mojo/interfaces/interface_factory.mojom.h" namespace media { +class GpuVideoAcceleratorFactories; +class MediaInterfaceProvider; +class MojoVideoDecoder; class VideoDecoderConfig; } // namespace media // Local media files parser is used to process local media files. This object // lives on main thread in browser process. -class DownloadMediaParser : public MediaParserProvider { +class DownloadMediaParser : public MediaParserProvider, public media::MediaLog { public: using ParseCompleteCB = base::OnceCallback<void(bool)>; @@ -58,6 +63,18 @@ const std::vector<uint8_t>& data, const media::VideoDecoderConfig& config); + // Decodes the video frame. + void OnGpuVideoAcceleratorFactoriesReady( + std::unique_ptr<media::GpuVideoAcceleratorFactories>); + void DecodeVideoFrame(); + void OnVideoDecoderInitialized(bool success); + void OnVideoBufferDecoded(media::DecodeStatus status); + void OnEosBufferDecoded(media::DecodeStatus status); + void OnVideoFrameDecoded( + const scoped_refptr<media::VideoFrame>& decoded_frame); + media::mojom::InterfaceFactory* GetMediaInterfaceFactory(); + void OnDecoderConnectionError(); + // Overlays media data source read operation. Gradually read data from media // file. void OnMediaDataReady(chrome::mojom::MediaDataSource::ReadCallback callback, @@ -83,7 +100,14 @@ // This data can be large for high resolution video, should be std::move or // cleared whenever possible. std::vector<uint8_t> encoded_data_; + + // Objects used to decode the video into media::VideoFrame. media::VideoDecoderConfig config_; + std::unique_ptr<media::MojoVideoDecoder> decoder_; + media::mojom::InterfaceFactoryPtr media_interface_factory_; + std::unique_ptr<media::MediaInterfaceProvider> media_interface_provider_; + std::unique_ptr<media::GpuVideoAcceleratorFactories> gpu_factories_; + bool decode_done_; base::WeakPtrFactory<DownloadMediaParser> weak_factory_;
diff --git a/chrome/browser/android/explore_sites/explore_sites_schema.cc b/chrome/browser/android/explore_sites/explore_sites_schema.cc index 401552d..d538ec8 100644 --- a/chrome/browser/android/explore_sites/explore_sites_schema.cc +++ b/chrome/browser/android/explore_sites/explore_sites_schema.cc
@@ -79,13 +79,20 @@ } // namespace // static +bool ExploreSitesSchema::InitMetaTable(sql::Database* db, + sql::MetaTable* meta_table) { + DCHECK(meta_table); + return meta_table->Init(db, kCurrentVersion, kCompatibleVersion); +} + +// static bool ExploreSitesSchema::CreateOrUpgradeIfNeeded(sql::Database* db) { DCHECK_GE(kCurrentVersion, kCompatibleVersion); if (!db) return false; sql::MetaTable meta_table; - if (!meta_table.Init(db, kCurrentVersion, kCompatibleVersion)) + if (!InitMetaTable(db, &meta_table)) return false; const int compatible_version = meta_table.GetCompatibleVersionNumber();
diff --git a/chrome/browser/android/explore_sites/explore_sites_schema.h b/chrome/browser/android/explore_sites/explore_sites_schema.h index 846afc81b..9736803 100644 --- a/chrome/browser/android/explore_sites/explore_sites_schema.h +++ b/chrome/browser/android/explore_sites/explore_sites_schema.h
@@ -9,6 +9,7 @@ namespace sql { class Database; +class MetaTable; } // namespace sql namespace explore_sites { @@ -20,6 +21,9 @@ static constexpr int kCurrentVersion = 1; static constexpr int kCompatibleVersion = 1; + // Initializes the given meta table using the appropriate versions. + static bool InitMetaTable(sql::Database* db, sql::MetaTable* meta_table); + // Creates or upgrade the database schema as needed from information stored in // a metadata table. Returns |true| if the database is ready to be used, // |false| if creation or upgrades failed.
diff --git a/chrome/browser/android/explore_sites/explore_sites_service_impl.cc b/chrome/browser/android/explore_sites/explore_sites_service_impl.cc index 6b26c52f..d06f6b6 100644 --- a/chrome/browser/android/explore_sites/explore_sites_service_impl.cc +++ b/chrome/browser/android/explore_sites/explore_sites_service_impl.cc
@@ -3,16 +3,41 @@ // found in the LICENSE file. #include "chrome/browser/android/explore_sites/explore_sites_service_impl.h" + +#include "chrome/browser/android/explore_sites/catalog.pb.h" +#include "chrome/browser/android/explore_sites/explore_sites_feature.h" #include "chrome/browser/android/explore_sites/explore_sites_store.h" +#include "chrome/browser/android/explore_sites/import_catalog_task.h" +#include "components/offline_pages/task/task.h" + +using offline_pages::Task; +using chrome::android::explore_sites::GetExploreSitesVariation; +using chrome::android::explore_sites::ExploreSitesVariation; namespace explore_sites { ExploreSitesServiceImpl::ExploreSitesServiceImpl( std::unique_ptr<ExploreSitesStore> store) - : explore_sites_store_(std::move(store)) {} + : task_queue_(this), explore_sites_store_(std::move(store)) {} ExploreSitesServiceImpl::~ExploreSitesServiceImpl() {} +bool ExploreSitesServiceImpl::IsExploreSitesEnabled() { + return GetExploreSitesVariation() == ExploreSitesVariation::ENABLED; +} + void ExploreSitesServiceImpl::Shutdown() {} +void ExploreSitesServiceImpl::OnTaskQueueIsIdle() {} + +void ExploreSitesServiceImpl::AddUpdatedCatalog( + int64_t catalog_timestamp, + std::unique_ptr<Catalog> catalog_proto) { + if (!IsExploreSitesEnabled()) + return; + + task_queue_.AddTask(std::make_unique<ImportCatalogTask>( + explore_sites_store_.get(), catalog_timestamp, std::move(catalog_proto))); +} + } // namespace explore_sites
diff --git a/chrome/browser/android/explore_sites/explore_sites_service_impl.h b/chrome/browser/android/explore_sites/explore_sites_service_impl.h index f12769e8..fd2f91d 100644 --- a/chrome/browser/android/explore_sites/explore_sites_service_impl.h +++ b/chrome/browser/android/explore_sites/explore_sites_service_impl.h
@@ -10,18 +10,33 @@ #include "base/macros.h" #include "chrome/browser/android/explore_sites/explore_sites_service.h" #include "chrome/browser/android/explore_sites/explore_sites_store.h" +#include "components/offline_pages/task/task_queue.h" + +using offline_pages::TaskQueue; namespace explore_sites { +class Catalog; -class ExploreSitesServiceImpl : public ExploreSitesService { +class ExploreSitesServiceImpl : public ExploreSitesService, + public TaskQueue::Delegate { public: explicit ExploreSitesServiceImpl(std::unique_ptr<ExploreSitesStore> store); ~ExploreSitesServiceImpl() override; + bool IsExploreSitesEnabled(); + + private: // KeyedService implementation: void Shutdown() override; - private: + // TaskQueue::Delegate implementation: + void OnTaskQueueIsIdle() override; + + void AddUpdatedCatalog(int64_t catalog_timestamp, + std::unique_ptr<Catalog> catalog_proto); + + // Used to control access to the ExploreSitesStore. + TaskQueue task_queue_; std::unique_ptr<ExploreSitesStore> explore_sites_store_; DISALLOW_COPY_AND_ASSIGN(ExploreSitesServiceImpl);
diff --git a/chrome/browser/android/explore_sites/explore_sites_store.cc b/chrome/browser/android/explore_sites/explore_sites_store.cc index fb62227..2129c208 100644 --- a/chrome/browser/android/explore_sites/explore_sites_store.cc +++ b/chrome/browser/android/explore_sites/explore_sites_store.cc
@@ -14,6 +14,7 @@ #include "base/single_thread_task_runner.h" #include "base/task_runner_util.h" #include "base/threading/thread_task_runner_handle.h" +#include "chrome/browser/android/explore_sites/explore_sites_schema.h" #include "sql/database.h" namespace explore_sites { @@ -53,7 +54,7 @@ } db->Preload(); - return true; // TODO(dewittj): Implement schema initialization. + return ExploreSitesSchema::CreateOrUpgradeIfNeeded(db); } void CloseDatabaseSync( @@ -106,6 +107,11 @@ ExploreSitesStore::~ExploreSitesStore() {} +void ExploreSitesStore::SetInitializationStatusForTest( + InitializationStatus status) { + initialization_status_ = status; +} + void ExploreSitesStore::Initialize(base::OnceClosure pending_command) { TRACE_EVENT_ASYNC_BEGIN1("explore_sites", "ExploreSitesStore", this, "is reopen", !last_closing_time_.is_null());
diff --git a/chrome/browser/android/explore_sites/explore_sites_store.h b/chrome/browser/android/explore_sites/explore_sites_store.h index e4634eb..3a6a354c 100644 --- a/chrome/browser/android/explore_sites/explore_sites_store.h +++ b/chrome/browser/android/explore_sites/explore_sites_store.h
@@ -115,6 +115,8 @@ return initialization_status_; } + void SetInitializationStatusForTest(InitializationStatus status); + private: using DatabaseUniquePtr = std::unique_ptr<sql::Database, base::OnTaskRunnerDeleter>;
diff --git a/chrome/browser/android/explore_sites/import_catalog_task.cc b/chrome/browser/android/explore_sites/import_catalog_task.cc new file mode 100644 index 0000000..ecc170f5 --- /dev/null +++ b/chrome/browser/android/explore_sites/import_catalog_task.cc
@@ -0,0 +1,134 @@ +// 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/android/explore_sites/import_catalog_task.h" + +#include "chrome/browser/android/explore_sites/explore_sites_schema.h" +#include "sql/database.h" +#include "sql/meta_table.h" +#include "sql/statement.h" +#include "sql/transaction.h" + +namespace explore_sites { +namespace { +static const char kDeleteExistingCategorySql[] = + "DELETE FROM categories WHERE version = ?"; +static const char kInsertCategorySql[] = R"( +INSERT INTO categories +(version, type, usable_on_ntp, label, image) +VALUES +(?, ?, ?, ?, ?);)"; + +static const char kDeleteExistingSiteSql[] = R"( +DELETE FROM sites +WHERE ( + SELECT COUNT(1) FROM categories + WHERE category_id = sites.category_id AND categories.version = ?) > 0 +)"; +static const char kInsertSiteSql[] = R"( +INSERT INTO sites +(url, category_id, title, favicon) +VALUES +(?, ?, ?, ?);)"; +} // namespace + +bool ImportCatalogSync(int64_t catalog_timestamp, + std::unique_ptr<Catalog> catalog_proto, + sql::Database* db) { + if (!db || !catalog_proto) + return false; + + sql::Transaction transaction(db); + if (!transaction.Begin()) + return false; + + sql::MetaTable meta_table; + if (!ExploreSitesSchema::InitMetaTable(db, &meta_table)) + return false; + + // If we are downloading a catalog that is the same version as the one + // currently in use, don't change it. This is an error, should have been + // caught before we got here. + int64_t current_catalog_timestamp = 0; + if (meta_table.GetValue("current_catalog", ¤t_catalog_timestamp) && + current_catalog_timestamp == catalog_timestamp) { + return false; + } + + // In case we get a duplicate timestamp for the downloading catalog, remove + // the catalog with the timestamp that matches the catalog we are importing. + sql::Statement site_clear_statement( + db->GetCachedStatement(SQL_FROM_HERE, kDeleteExistingSiteSql)); + site_clear_statement.BindInt64(0, catalog_timestamp); + site_clear_statement.Run(); + + sql::Statement category_clear_statement( + db->GetCachedStatement(SQL_FROM_HERE, kDeleteExistingCategorySql)); + category_clear_statement.BindInt64(0, catalog_timestamp); + category_clear_statement.Run(); + + // Update the downloading catalog version number to match what we are + // importing. + if (!meta_table.SetValue("downloading_catalog", catalog_timestamp)) + return false; + + // Then insert each category. + for (auto category : catalog_proto->categories()) { + sql::Statement category_statement( + db->GetCachedStatement(SQL_FROM_HERE, kInsertCategorySql)); + + int col = 0; + category_statement.BindInt64(col++, catalog_timestamp); + category_statement.BindInt(col++, static_cast<int>(category.type())); + category_statement.BindBool(col++, true); + category_statement.BindString(col++, category.localized_title()); + category_statement.BindString(col++, category.icon()); + + category_statement.Run(); + + int64_t category_id = db->GetLastInsertRowId(); + + for (auto site : category.sites()) { + sql::Statement site_statement( + db->GetCachedStatement(SQL_FROM_HERE, kInsertSiteSql)); + + col = 0; + site_statement.BindString(col++, site.site_url()); + site_statement.BindInt64(col++, category_id); + site_statement.BindString(col++, site.title()); + site_statement.BindString(col++, site.icon()); + + site_statement.Run(); + } + } + + return transaction.Commit(); +} + +ImportCatalogTask::ImportCatalogTask(ExploreSitesStore* store, + int64_t catalog_timestamp, + std::unique_ptr<Catalog> catalog_proto) + : store_(store), + catalog_timestamp_(catalog_timestamp), + catalog_proto_(std::move(catalog_proto)), + weak_ptr_factory_(this) {} + +ImportCatalogTask::~ImportCatalogTask() = default; + +void ImportCatalogTask::Run() { + store_->Execute(base::BindOnce(&ImportCatalogSync, catalog_timestamp_, + std::move(catalog_proto_)), + base::BindOnce(&ImportCatalogTask::FinishedExecuting, + weak_ptr_factory_.GetWeakPtr()), + false); +} + +void ImportCatalogTask::FinishedExecuting(bool result) { + complete_ = true; + result_ = result; + TaskComplete(); + DVLOG(1) << "Finished importing the catalog, result: " << result; +} + +} // namespace explore_sites
diff --git a/chrome/browser/android/explore_sites/import_catalog_task.h b/chrome/browser/android/explore_sites/import_catalog_task.h new file mode 100644 index 0000000..dbda1881 --- /dev/null +++ b/chrome/browser/android/explore_sites/import_catalog_task.h
@@ -0,0 +1,51 @@ +// 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_ANDROID_EXPLORE_SITES_IMPORT_CATALOG_TASK_H_ +#define CHROME_BROWSER_ANDROID_EXPLORE_SITES_IMPORT_CATALOG_TASK_H_ + +#include "chrome/browser/android/explore_sites/catalog.pb.h" +#include "chrome/browser/android/explore_sites/explore_sites_store.h" +#include "components/offline_pages/task/task.h" + +using offline_pages::Task; + +namespace explore_sites { + +// Takes a Catalog proto and adds records to the store as the "downloading" +// version. Another task promotes "downloading" to "current". +// It has the following behavior in edge cases: +// * If the timestamp matches the "current" version, it does nothing. This +// prevents stomping on the currently viewable catalog. +// * If the timestamp matches the "downloading" version, it overwrites it, +// since that version is not yet viewable by the user. +class ImportCatalogTask : public Task { + public: + ImportCatalogTask(ExploreSitesStore* store, + int64_t catalog_timestamp, + std::unique_ptr<Catalog> catalog_proto); + ~ImportCatalogTask() override; + + bool complete() const { return complete_; } + bool result() const { return result_; } + + private: + // Task implementation: + void Run() override; + + void FinishedExecuting(bool result); + + ExploreSitesStore* store_; // outlives this class. + int64_t catalog_timestamp_; + std::unique_ptr<Catalog> catalog_proto_; + + bool complete_ = false; + bool result_ = false; + + base::WeakPtrFactory<ImportCatalogTask> weak_ptr_factory_; +}; + +} // namespace explore_sites + +#endif // CHROME_BROWSER_ANDROID_EXPLORE_SITES_IMPORT_CATALOG_TASK_H_
diff --git a/chrome/browser/android/explore_sites/import_catalog_task_unittest.cc b/chrome/browser/android/explore_sites/import_catalog_task_unittest.cc new file mode 100644 index 0000000..124d8ec --- /dev/null +++ b/chrome/browser/android/explore_sites/import_catalog_task_unittest.cc
@@ -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. + +#include "chrome/browser/android/explore_sites/import_catalog_task.h" + +#include <memory> + +#include "base/logging.h" +#include "base/test/bind_test_util.h" +#include "base/test/mock_callback.h" +#include "chrome/browser/android/explore_sites/catalog.pb.h" +#include "chrome/browser/android/explore_sites/explore_sites_schema.h" +#include "components/offline_pages/task/task.h" +#include "components/offline_pages/task/task_test_base.h" +#include "sql/database.h" +#include "sql/meta_table.h" +#include "sql/statement.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +using offline_pages::TaskTestBase; + +namespace explore_sites { + +constexpr int64_t timestamp = 12345L; +const char kGoogleUrl[] = "https://www.google.com"; +const char kGoogleTitle[] = "Google Search"; +const char kGmailUrl[] = "https://mail.google.com/mail"; +const char kGmailTitle[] = "GMail"; +const char kGoogleCategoryTitle[] = "Goooogle"; +const char kIcon[] = + "data:image/gif;" + "base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="; + +class ExploreSitesImportCatalogTaskTest : public TaskTestBase { + public: + ExploreSitesImportCatalogTaskTest() = default; + ~ExploreSitesImportCatalogTaskTest() override = default; + + void SetUp() override { + store_ = std::make_unique<ExploreSitesStore>(task_runner()); + } + + ExploreSitesStore* store() { return store_.get(); } + + void ExecuteSync(base::RepeatingCallback<bool(sql::Database*)> query) { + store()->Execute(base::OnceCallback<bool(sql::Database*)>(query), + base::BindOnce([](bool result) { ASSERT_TRUE(result); }), + false); + RunUntilIdle(); + } + + private: + std::unique_ptr<ExploreSitesStore> store_; + + DISALLOW_COPY_AND_ASSIGN(ExploreSitesImportCatalogTaskTest); +}; + +TEST_F(ExploreSitesImportCatalogTaskTest, StoreFailure) { + store()->SetInitializationStatusForTest(InitializationStatus::FAILURE); + ImportCatalogTask task(store(), timestamp, std::make_unique<Catalog>()); + RunTask(&task); + + // A null catalog should be completed but return with an error. + EXPECT_TRUE(task.complete()); + EXPECT_FALSE(task.result()); +} + +TEST_F(ExploreSitesImportCatalogTaskTest, EmptyTask) { + ImportCatalogTask task(store(), timestamp, std::unique_ptr<Catalog>()); + RunTask(&task); + + // A null catalog should be completed but return with an error. + EXPECT_TRUE(task.complete()); + EXPECT_FALSE(task.result()); +} + +// This tests the behavior of the catalog task when there is already a catalog +// with the current timestamp in the database. This tests both the case where it +// is the "current" catalog, and where it is the "downloading" catalog. +TEST_F(ExploreSitesImportCatalogTaskTest, CatalogAlreadyInUse) { + // Successfully import a catalog with "timestamp". + ImportCatalogTask task(store(), timestamp, std::make_unique<Catalog>()); + RunTask(&task); + ASSERT_TRUE(task.result()); + + // Importing the same catalog again should cause a successful import, + // since the catalog was not "current". + ImportCatalogTask task2(store(), timestamp, std::make_unique<Catalog>()); + RunTask(&task2); + EXPECT_TRUE(task2.result()); + + // Now make the catalog "current". + ExecuteSync(base::BindLambdaForTesting([&](sql::Database* db) { + sql::MetaTable meta_table; + ExploreSitesSchema::InitMetaTable(db, &meta_table); + meta_table.SetValue("current_catalog", timestamp); + meta_table.DeleteKey("downloading_catalog"); + return true; + })); + + // Now it should fail to import another copy of the same catalog. + ImportCatalogTask task3(store(), timestamp, std::make_unique<Catalog>()); + RunTask(&task3); + EXPECT_TRUE(task3.complete()); + EXPECT_FALSE(task3.result()); +} + +TEST_F(ExploreSitesImportCatalogTaskTest, BasicCatalog) { + auto catalog = std::make_unique<Catalog>(); + auto* categories = catalog->mutable_categories(); + Category* first = categories->Add(); + first->set_type(Category_CategoryType_GOOGLE); + first->set_localized_title(kGoogleCategoryTitle); + first->set_icon(kIcon); + + auto* sites = first->mutable_sites(); + Site* google = sites->Add(); + google->set_title(kGoogleTitle); + google->set_site_url(kGoogleUrl); + google->set_icon(kIcon); + Site* gmail = sites->Add(); + gmail->set_title(kGmailTitle); + gmail->set_site_url(kGmailUrl); + gmail->set_icon(kIcon); + + ImportCatalogTask task(store(), timestamp, std::move(catalog)); + RunTask(&task); + + EXPECT_TRUE(task.complete()); + EXPECT_TRUE(task.result()); + + ExecuteSync(base::BindLambdaForTesting([&](sql::Database* db) { + sql::Statement cat_count_s( + db->GetUniqueStatement("SELECT COUNT(*) FROM categories")); + cat_count_s.Step(); + EXPECT_EQ(1, cat_count_s.ColumnInt(0)); + + sql::Statement cat_data_s(db->GetUniqueStatement( + "SELECT version, type, label, image, category_id FROM categories")); + cat_data_s.Step(); + EXPECT_EQ(timestamp, cat_data_s.ColumnInt64(0)); + EXPECT_EQ(static_cast<int>(Category_CategoryType_GOOGLE), + cat_data_s.ColumnInt(1)); + EXPECT_EQ(kGoogleCategoryTitle, cat_data_s.ColumnString(2)); + EXPECT_EQ(kIcon, cat_data_s.ColumnString(3)); + + // Extract category id for joining with sites. + int category_id = cat_data_s.ColumnInt(4); + + sql::Statement site_count_s( + db->GetUniqueStatement("SELECT COUNT(*) FROM sites")); + site_count_s.Step(); + EXPECT_EQ(2, site_count_s.ColumnInt(0)); + + sql::Statement site_data_s(db->GetUniqueStatement( + "SELECT url, category_id, title, favicon FROM sites")); + site_data_s.Step(); + EXPECT_EQ(kGoogleUrl, site_data_s.ColumnString(0)); + EXPECT_EQ(category_id, site_data_s.ColumnInt(1)); + EXPECT_EQ(kGoogleTitle, site_data_s.ColumnString(2)); + EXPECT_EQ(kIcon, site_data_s.ColumnString(3)); + + site_data_s.Step(); + EXPECT_EQ(kGmailUrl, site_data_s.ColumnString(0)); + EXPECT_EQ(category_id, site_data_s.ColumnInt(1)); + EXPECT_EQ(kGmailTitle, site_data_s.ColumnString(2)); + EXPECT_EQ(kIcon, site_data_s.ColumnString(3)); + return true; + })); +} + +} // namespace explore_sites
diff --git a/chrome/browser/android/vr/BUILD.gn b/chrome/browser/android/vr/BUILD.gn index 6558180..07a9d75 100644 --- a/chrome/browser/android/vr/BUILD.gn +++ b/chrome/browser/android/vr/BUILD.gn
@@ -22,10 +22,10 @@ "browser_renderer_factory.cc", "browser_renderer_factory.h", "gl_browser_interface.h", - "gvr_controller_delegate.cc", - "gvr_controller_delegate.h", "gvr_graphics_delegate.cc", "gvr_graphics_delegate.h", + "gvr_input_delegate.cc", + "gvr_input_delegate.h", "gvr_keyboard_delegate.cc", "gvr_keyboard_delegate.h", "gvr_keyboard_shim.cc",
diff --git a/chrome/browser/android/vr/browser_renderer_factory.cc b/chrome/browser/android/vr/browser_renderer_factory.cc index 30339e2..6999e00b 100644 --- a/chrome/browser/android/vr/browser_renderer_factory.cc +++ b/chrome/browser/android/vr/browser_renderer_factory.cc
@@ -7,7 +7,7 @@ #include <utility> #include "base/threading/thread_task_runner_handle.h" -#include "chrome/browser/android/vr/gvr_controller_delegate.h" +#include "chrome/browser/android/vr/gvr_input_delegate.h" #include "chrome/browser/android/vr/gvr_keyboard_delegate.h" #include "chrome/browser/android/vr/gvr_scheduler_delegate.h" #include "chrome/browser/android/vr/vr_gl_thread.h" @@ -63,8 +63,8 @@ vr_gl_thread, vr_gl_thread, std::move(keyboard_delegate), std::move(text_input_delegate), std::move(audio_delegate), params->ui_initial_state); - auto controller_delegate = - std::make_unique<GvrControllerDelegate>(params->gvr_api, vr_gl_thread); + auto input_delegate = + std::make_unique<GvrInputDelegate>(params->gvr_api, vr_gl_thread); auto graphics_delegate = std::make_unique<GvrGraphicsDelegate>( vr_gl_thread, base::BindOnce(&UiInterface::OnGlInitialized, base::Unretained(ui.get())), @@ -84,8 +84,8 @@ params->ui_initial_state.in_web_vr)); auto browser_renderer = std::make_unique<BrowserRenderer>( std::move(ui), std::move(scheduler_delegate), - std::move(graphics_delegate), std::move(controller_delegate), - vr_gl_thread, kSlidingAverageSize); + std::move(graphics_delegate), std::move(input_delegate), vr_gl_thread, + kSlidingAverageSize); return browser_renderer; }
diff --git a/chrome/browser/android/vr/gvr_controller_delegate.cc b/chrome/browser/android/vr/gvr_input_delegate.cc similarity index 82% rename from chrome/browser/android/vr/gvr_controller_delegate.cc rename to chrome/browser/android/vr/gvr_input_delegate.cc index f5543b0..165a1e4 100644 --- a/chrome/browser/android/vr/gvr_controller_delegate.cc +++ b/chrome/browser/android/vr/gvr_input_delegate.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/android/vr/gvr_controller_delegate.h" +#include "chrome/browser/android/vr/gvr_input_delegate.h" #include <utility> @@ -12,6 +12,7 @@ #include "chrome/browser/vr/model/controller_model.h" #include "chrome/browser/vr/pose_util.h" #include "chrome/browser/vr/render_info.h" +#include "device/vr/android/gvr/gvr_delegate.h" namespace { constexpr gfx::Vector3dF kForwardVector = {0.0f, 0.0f, -1.0f}; @@ -19,15 +20,23 @@ namespace vr { -GvrControllerDelegate::GvrControllerDelegate(gvr::GvrApi* gvr_api, - GlBrowserInterface* browser) - : controller_(std::make_unique<VrController>(gvr_api)), browser_(browser) {} +GvrInputDelegate::GvrInputDelegate(gvr::GvrApi* gvr_api, + GlBrowserInterface* browser) + : controller_(std::make_unique<VrController>(gvr_api)), + gvr_api_(gvr_api), + browser_(browser) {} -GvrControllerDelegate::~GvrControllerDelegate() = default; +GvrInputDelegate::~GvrInputDelegate() = default; -void GvrControllerDelegate::UpdateController(const gfx::Transform& head_pose, - base::TimeTicks current_time, - bool is_webxr_frame) { +gfx::Transform GvrInputDelegate::GetHeadPose() { + gfx::Transform head_pose; + device::GvrDelegate::GetGvrPoseWithNeckModel(gvr_api_, &head_pose); + return head_pose; +} + +void GvrInputDelegate::UpdateController(const gfx::Transform& head_pose, + base::TimeTicks current_time, + bool is_webxr_frame) { controller_->UpdateState(head_pose); device::GvrGamepadData controller_data = controller_->GetGamepadData(); @@ -36,7 +45,7 @@ browser_->UpdateGamepadData(controller_data); } -ControllerModel GvrControllerDelegate::GetModel( +ControllerModel GvrInputDelegate::GetControllerModel( const gfx::Transform& head_pose) { gfx::Vector3dF head_direction = GetForwardVector(head_pose); @@ -88,15 +97,13 @@ return controller_model; } -InputEventList GvrControllerDelegate::GetGestures( - base::TimeTicks current_time) { +InputEventList GvrInputDelegate::GetGestures(base::TimeTicks current_time) { if (!controller_->IsConnected()) return {}; return gesture_detector_.DetectGestures(*controller_, current_time); } -device::mojom::XRInputSourceStatePtr -GvrControllerDelegate::GetInputSourceState() { +device::mojom::XRInputSourceStatePtr GvrInputDelegate::GetInputSourceState() { device::mojom::XRInputSourceStatePtr state = device::mojom::XRInputSourceState::New(); state->description = device::mojom::XRInputSourceDescription::New(); @@ -141,11 +148,11 @@ return state; } -void GvrControllerDelegate::OnResume() { +void GvrInputDelegate::OnResume() { controller_->OnResume(); } -void GvrControllerDelegate::OnPause() { +void GvrInputDelegate::OnPause() { controller_->OnPause(); }
diff --git a/chrome/browser/android/vr/gvr_controller_delegate.h b/chrome/browser/android/vr/gvr_input_delegate.h similarity index 60% rename from chrome/browser/android/vr/gvr_controller_delegate.h rename to chrome/browser/android/vr/gvr_input_delegate.h index 8c3c9437..de519dc0 100644 --- a/chrome/browser/android/vr/gvr_controller_delegate.h +++ b/chrome/browser/android/vr/gvr_input_delegate.h
@@ -2,14 +2,14 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_ANDROID_VR_GVR_CONTROLLER_DELEGATE_H_ -#define CHROME_BROWSER_ANDROID_VR_GVR_CONTROLLER_DELEGATE_H_ +#ifndef CHROME_BROWSER_ANDROID_VR_GVR_INPUT_DELEGATE_H_ +#define CHROME_BROWSER_ANDROID_VR_GVR_INPUT_DELEGATE_H_ #include <memory> #include "base/macros.h" #include "chrome/browser/android/vr/vr_controller.h" -#include "chrome/browser/vr/controller_delegate.h" +#include "chrome/browser/vr/input_delegate.h" namespace gvr { class GvrApi; @@ -20,16 +20,17 @@ class GestureDetector; class GlBrowserInterface; -class GvrControllerDelegate : public ControllerDelegate { +class GvrInputDelegate : public InputDelegate { public: - GvrControllerDelegate(gvr::GvrApi* gvr_api, GlBrowserInterface* browser); - ~GvrControllerDelegate() override; + GvrInputDelegate(gvr::GvrApi* gvr_api, GlBrowserInterface* browser); + ~GvrInputDelegate() override; - // ControllerDelegate implementation. + // InputDelegate implementation. + gfx::Transform GetHeadPose() override; void UpdateController(const gfx::Transform& head_pose, base::TimeTicks current_time, bool is_webxr_frame) override; - ControllerModel GetModel(const gfx::Transform& head_pose) override; + ControllerModel GetControllerModel(const gfx::Transform& head_pose) override; InputEventList GetGestures(base::TimeTicks current_time) override; device::mojom::XRInputSourceStatePtr GetInputSourceState() override; void OnResume() override; @@ -38,13 +39,14 @@ private: std::unique_ptr<VrController> controller_; GestureDetector gesture_detector_; + gvr::GvrApi* gvr_api_; GlBrowserInterface* browser_; bool was_select_button_down_ = false; - DISALLOW_COPY_AND_ASSIGN(GvrControllerDelegate); + DISALLOW_COPY_AND_ASSIGN(GvrInputDelegate); }; } // namespace vr -#endif // CHROME_BROWSER_ANDROID_VR_GVR_CONTROLLER_DELEGATE_H_ +#endif // CHROME_BROWSER_ANDROID_VR_GVR_INPUT_DELEGATE_H_
diff --git a/chrome/browser/android/vr/gvr_scheduler_delegate.cc b/chrome/browser/android/vr/gvr_scheduler_delegate.cc index 44b0b72d..bdb568c5c 100644 --- a/chrome/browser/android/vr/gvr_scheduler_delegate.cc +++ b/chrome/browser/android/vr/gvr_scheduler_delegate.cc
@@ -64,19 +64,20 @@ SchedulerUiInterface* ui, gvr::GvrApi* gvr_api, GvrGraphicsDelegate* graphics, - bool start_in_web_xr_mode, + bool start_in_webxr_mode, bool cardboard_gamepad, size_t sliding_time_size) - : browser_(browser), + : BaseSchedulerDelegate(ui, + start_in_webxr_mode, + kWebVrSpinnerTimeoutSeconds, + kWebVrInitialFrameTimeoutSeconds), + browser_(browser), gvr_api_(gvr_api), - ui_(ui), webvr_vsync_align_( base::FeatureList::IsEnabled(features::kWebVrVsyncAlign)), - web_xr_mode_(start_in_web_xr_mode), cardboard_gamepad_(cardboard_gamepad), vsync_helper_(base::BindRepeating(&GvrSchedulerDelegate::OnVSync, base::Unretained(this))), - task_runner_(base::ThreadTaskRunnerHandle::Get()), presentation_binding_(this), frame_data_binding_(this), graphics_(graphics), @@ -84,7 +85,7 @@ webvr_js_time_(sliding_time_size), webvr_js_wait_time_(sliding_time_size), weak_ptr_factory_(this) { - if (cardboard_gamepad_ && web_xr_mode_) + if (cardboard_gamepad_ && webxr_mode()) browser_->ToggleCardboardGamepad(true); } @@ -98,10 +99,6 @@ browser_renderer_ = browser_renderer; } -gfx::Transform GvrSchedulerDelegate::GetHeadPose() { - return head_pose_; -} - void GvrSchedulerDelegate::AddInputSourceState( device::mojom::XRInputSourceStatePtr state) { input_states_.push_back(std::move(state)); @@ -110,23 +107,17 @@ void GvrSchedulerDelegate::OnPause() { vsync_helper_.CancelVSyncRequest(); gvr_api_->PauseTracking(); - webvr_frame_timeout_.Cancel(); - webvr_spinner_timeout_.Cancel(); + CancelWebXrFrameTimeout(); } void GvrSchedulerDelegate::OnResume() { gvr_api_->RefreshViewerProfile(); gvr_api_->ResumeTracking(); OnVSync(base::TimeTicks::Now()); - if (web_xr_mode_) + if (webxr_mode()) ScheduleOrCancelWebVrFrameTimeout(); } -void GvrSchedulerDelegate::OnExitPresent() { - webvr_frame_timeout_.Cancel(); - webvr_spinner_timeout_.Cancel(); -} - void GvrSchedulerDelegate::OnTriggerEvent(bool pressed) { if (pressed) { cardboard_trigger_pressed_ = true; @@ -137,19 +128,12 @@ } void GvrSchedulerDelegate::SetWebXrMode(bool enabled) { - web_xr_mode_ = enabled; - - if (web_xr_mode_ && submit_client_) { - ScheduleOrCancelWebVrFrameTimeout(); - } else { - webvr_frame_timeout_.Cancel(); - webvr_frames_received_ = 0; - } + BaseSchedulerDelegate::SetWebXrMode(enabled); if (cardboard_gamepad_) browser_->ToggleCardboardGamepad(enabled); - if (!web_xr_mode_) { + if (!webxr_mode()) { // Closing presentation bindings ensures we won't get any mojo calls such // as SubmitFrame from this session anymore. This makes it legal to cancel // an outstanding animating frame (if any). @@ -218,7 +202,8 @@ session->submit_frame_sink = std::move(submit_frame_sink); session->display_info = std::move(display_info); - ScheduleOrCancelWebVrFrameTimeout(); + if (CanSendWebXrVSync()) + ScheduleWebXrFrameTimeout(); browser_->SendRequestPresentReply(std::move(session)); } @@ -360,7 +345,7 @@ // due to an active exclusive UI such as a permission prompt, or after // exiting a presentation session when a pending frame arrives late. DVLOG(1) << __func__ << ": discarding frame, " - << (web_xr_mode_ ? "UI is active" : "not presenting"); + << (webxr_mode() ? "UI is active" : "not presenting"); WebXrCancelProcessingFrameAfterTransfer(); // We're no longer in processing state, unblock pending processing frames. webxr_.TryDeferredProcessing(); @@ -383,39 +368,16 @@ // TODO(mthiesse): We should also timeout after the initial frame to prevent // bad experiences, but we have to be careful to handle things like splash // screens correctly. For now just ensure we receive a first frame. - if (!web_xr_mode_ || webvr_frames_received_ > 0) { - if (!webvr_frame_timeout_.IsCancelled()) - webvr_frame_timeout_.Cancel(); - if (!webvr_spinner_timeout_.IsCancelled()) - webvr_spinner_timeout_.Cancel(); + if (!webxr_mode() || webxr_frames_received() > 0) { + CancelWebXrFrameTimeout(); return; } - if (CanSendWebXrVSync() && submit_client_) { - webvr_spinner_timeout_.Reset(base::BindOnce( - &GvrSchedulerDelegate::OnWebXrTimeoutImminent, base::Unretained(this))); - task_runner_->PostDelayedTask( - FROM_HERE, webvr_spinner_timeout_.callback(), - base::TimeDelta::FromSeconds(kWebVrSpinnerTimeoutSeconds)); - webvr_frame_timeout_.Reset(base::BindOnce( - &GvrSchedulerDelegate::OnWebXrFrameTimedOut, base::Unretained(this))); - task_runner_->PostDelayedTask( - FROM_HERE, webvr_frame_timeout_.callback(), - base::TimeDelta::FromSeconds(kWebVrInitialFrameTimeoutSeconds)); - } + if (CanSendWebXrVSync() && submit_client_) + ScheduleWebXrFrameTimeout(); } bool GvrSchedulerDelegate::CanSendWebXrVSync() const { - return web_xr_mode_ && !showing_vr_dialog_; -} - -void GvrSchedulerDelegate::OnWebXrFrameTimedOut() { - DCHECK(ui_); - ui_->OnWebXrTimedOut(); -} - -void GvrSchedulerDelegate::OnWebXrTimeoutImminent() { - DCHECK(ui_); - ui_->OnWebXrTimeoutImminent(); + return webxr_mode() && !showing_vr_dialog_; } void GvrSchedulerDelegate::OnVSync(base::TimeTicks frame_time) { @@ -440,16 +402,10 @@ pending_time_ = frame_time; WebXrTryStartAnimatingFrame(true); - if (ShouldDrawWebVr()) { - // When drawing WebVR, controller input doesn't need to be synchronized with - // rendering as WebVR uses the gamepad api. To ensure we always handle input - // like app button presses, process the controller here. - device::GvrDelegate::GetGvrPoseWithNeckModel(gvr_api_, &head_pose_); - DCHECK(browser_renderer_); + if (ShouldDrawWebVr()) browser_renderer_->ProcessControllerInputForWebXr(frame_time); - } else { + else DrawFrame(-1, frame_time); - } } void GvrSchedulerDelegate::DrawFrame(int16_t frame_index, @@ -468,7 +424,7 @@ } DCHECK(browser_renderer_); - if (web_xr_mode_ && !ShouldDrawWebVr()) { + if (webxr_mode() && !ShouldDrawWebVr()) { // We're in a WebVR session, but don't want to draw WebVR frames, i.e. // because UI has taken over for a permissions prompt. Do state cleanup if // needed. @@ -492,20 +448,6 @@ // of them. DCHECK(!is_webxr_frame || webxr_.HaveProcessingFrame()); - // When using async reprojection, we need to know which pose was - // used in the WebVR app for drawing this frame and supply it when - // submitting. Technically we don't need a pose if not reprojecting, - // but keeping it uninitialized seems likely to cause problems down - // the road. Copying it is cheaper than fetching a new one. - if (is_webxr_frame) { - // Copy into render info for overlay UI. WebVR doesn't use this. - DCHECK(webxr_.HaveProcessingFrame()); - WebXrFrame* frame = webxr_.GetProcessingFrame(); - head_pose_ = frame->head_pose; - } else { - device::GvrDelegate::GetGvrPoseWithNeckModel(gvr_api_, &head_pose_); - } - graphics_->UpdateViewports(); if (is_webxr_frame) { @@ -519,12 +461,18 @@ if (!graphics_->AcquireGvrFrame(frame_index)) return; - if (is_webxr_frame) - browser_renderer_->DrawWebXrFrame(current_time); - else + if (is_webxr_frame) { + // When using async reprojection, we need to know which pose was + // used in the WebVR app for drawing this frame and supply it when + // submitting. Technically we don't need a pose if not reprojecting, + // but keeping it uninitialized seems likely to cause problems down + // the road. Copying it is cheaper than fetching a new one. + DCHECK(webxr_.HaveProcessingFrame()); + browser_renderer_->DrawWebXrFrame(current_time, + webxr_.GetProcessingFrame()->head_pose); + } else { browser_renderer_->DrawBrowserFrame(current_time); - - SubmitDrawnFrame(is_webxr_frame); + } } void GvrSchedulerDelegate::UpdatePendingBounds(int16_t frame_index) { @@ -559,19 +507,10 @@ } } -void GvrSchedulerDelegate::SubmitDrawnFrame(bool is_webxr_frame) { - // GVR submit needs the exact head pose that was used for rendering. - gfx::Transform submit_head_pose; - if (is_webxr_frame) { - // Don't use render_info_.head_pose here, that may have been - // overwritten by OnVSync's controller handling. We need the pose that was - // sent to JS. - submit_head_pose = webxr_.GetProcessingFrame()->head_pose; - } else { - submit_head_pose = head_pose_; - } +void GvrSchedulerDelegate::SubmitDrawnFrame(FrameType frame_type, + const gfx::Transform& head_pose) { std::unique_ptr<gl::GLFenceEGL> fence = nullptr; - if (is_webxr_frame && graphics_->DoesSurfacelessRendering()) { + if (frame_type == kWebXrFrame && graphics_->DoesSurfacelessRendering()) { webxr_.GetProcessingFrame()->time_copied = base::TimeTicks::Now(); if (webxr_use_gpu_fence_) { // Continue with submit once the previous frame's GL fence signals that @@ -597,22 +536,21 @@ webxr_delayed_gvr_submit_.Reset( base::BindRepeating(&GvrSchedulerDelegate::DrawFrameSubmitWhenReady, base::Unretained(this))); - task_runner_->PostTask( - FROM_HERE, - base::BindOnce(webxr_delayed_gvr_submit_.callback(), is_webxr_frame, - submit_head_pose, base::Passed(&fence))); + task_runner()->PostTask( + FROM_HERE, base::BindOnce(webxr_delayed_gvr_submit_.callback(), + frame_type, head_pose, base::Passed(&fence))); } else { // Continue with submit immediately. - DrawFrameSubmitNow(is_webxr_frame, submit_head_pose); + DrawFrameSubmitNow(frame_type, head_pose); } } void GvrSchedulerDelegate::DrawFrameSubmitWhenReady( - bool is_webxr_frame, + FrameType frame_type, const gfx::Transform& head_pose, std::unique_ptr<gl::GLFenceEGL> fence) { - TRACE_EVENT1("gpu", __func__, "is_webxr_frame", is_webxr_frame); - DVLOG(2) << __func__ << ": is_webxr_frame=" << is_webxr_frame; + TRACE_EVENT1("gpu", __func__, "frame_type", frame_type); + DVLOG(2) << __func__ << ": frame_type=" << frame_type; bool use_polling = webxr_.mailbox_bridge_ready() && mailbox_bridge_->IsGpuWorkaroundEnabled( gpu::DONT_USE_EGLCLIENTWAITSYNC_WITH_TIMEOUT); @@ -632,15 +570,15 @@ // avoids excessive waiting on devices which don't handle timeouts // correctly. Downside is that the completion status is only detected // with a delay of up to one polling interval. - task_runner_->PostDelayedTask( + task_runner()->PostDelayedTask( FROM_HERE, - base::BindOnce(webxr_delayed_gvr_submit_.callback(), is_webxr_frame, + base::BindOnce(webxr_delayed_gvr_submit_.callback(), frame_type, head_pose, base::Passed(&fence)), kWebVRFenceCheckPollInterval); } else { - task_runner_->PostTask( + task_runner()->PostTask( FROM_HERE, - base::BindOnce(webxr_delayed_gvr_submit_.callback(), is_webxr_frame, + base::BindOnce(webxr_delayed_gvr_submit_.callback(), frame_type, head_pose, base::Passed(&fence))); } return; @@ -654,7 +592,7 @@ } webxr_delayed_gvr_submit_.Cancel(); - DrawFrameSubmitNow(is_webxr_frame, head_pose); + DrawFrameSubmitNow(frame_type, head_pose); } void GvrSchedulerDelegate::AddWebVrRenderTimeEstimate( @@ -670,14 +608,13 @@ } } -void GvrSchedulerDelegate::DrawFrameSubmitNow(bool is_webxr_frame, +void GvrSchedulerDelegate::DrawFrameSubmitNow(FrameType frame_type, const gfx::Transform& head_pose) { - TRACE_EVENT1("gpu", "GvrSchedulerDelegate::DrawFrameSubmitNow", - "is_webxr_frame", is_webxr_frame); - + TRACE_EVENT1("gpu", "GvrSchedulerDelegate::DrawFrameSubmitNow", "frame_type", + frame_type); { std::unique_ptr<ScopedGpuTrace> browser_gpu_trace; - if (gl::GLFence::IsGpuFenceSupported() && is_webxr_frame) { + if (gl::GLFence::IsGpuFenceSupported() && frame_type == kWebXrFrame) { // This fence instance is created for the tracing side effect. Insert it // before GVR submit. Then replace the previous instance below after GVR // submit completes, at which point the previous fence (if any) should be @@ -701,7 +638,7 @@ // false for a WebVR frame. Ignore the ShouldDrawWebVr status to ensure we // send render notifications while paused for exclusive UI mode. Skip the // steps if we lost the processing state, that means presentation has ended. - if (is_webxr_frame && webxr_.HaveProcessingFrame()) { + if (frame_type == kWebXrFrame && webxr_.HaveProcessingFrame()) { // Report rendering completion to the Renderer so that it's permitted to // submit a fresh frame. We could do this earlier, as soon as the frame // got pulled off the transfer surface, but that results in overstuffed @@ -731,7 +668,7 @@ DVLOG(1) << "fps: " << vr_ui_fps_meter_.GetFPS(); TRACE_COUNTER1("gpu", "VR UI FPS", vr_ui_fps_meter_.GetFPS()); - if (is_webxr_frame) { + if (frame_type == kWebXrFrame) { // We finished processing a frame, this may make pending WebVR // work eligible to proceed. webxr_.TryDeferredProcessing(); @@ -771,7 +708,7 @@ return false; } - if (!web_xr_mode_) { + if (!webxr_mode()) { DVLOG(2) << __func__ << ": no active session, ignore"; return false; } @@ -835,7 +772,7 @@ } bool GvrSchedulerDelegate::ShouldDrawWebVr() { - return web_xr_mode_ && !showing_vr_dialog_ && webvr_frames_received_ > 0; + return webxr_mode() && !showing_vr_dialog_ && webxr_frames_received() > 0; } void GvrSchedulerDelegate::WebXrCancelAnimatingFrame() { @@ -1132,7 +1069,7 @@ } void GvrSchedulerDelegate::ClosePresentationBindings() { - webvr_frame_timeout_.Cancel(); + CancelWebXrFrameTimeout(); submit_client_.reset(); if (!get_frame_data_callback_.is_null()) { // When this Presentation provider is going away we have to respond to @@ -1302,19 +1239,6 @@ return true; } -void GvrSchedulerDelegate::OnNewWebXrFrame() { - ui_->OnWebXrFrameAvailable(); - - if (web_xr_mode_) { - ++webvr_frames_received_; - - webxr_fps_meter_.AddFrame(base::TimeTicks::Now()); - TRACE_COUNTER1("gpu", "WebVR FPS", webxr_fps_meter_.GetFPS()); - } - - ScheduleOrCancelWebVrFrameTimeout(); -} - void GvrSchedulerDelegate::ProcessWebVrFrameFromMailbox( int16_t frame_index, const gpu::MailboxHolder& mailbox) {
diff --git a/chrome/browser/android/vr/gvr_scheduler_delegate.h b/chrome/browser/android/vr/gvr_scheduler_delegate.h index e4583e09..9f72bdc 100644 --- a/chrome/browser/android/vr/gvr_scheduler_delegate.h +++ b/chrome/browser/android/vr/gvr_scheduler_delegate.h
@@ -17,17 +17,12 @@ #include "chrome/browser/android/vr/android_vsync_helper.h" #include "chrome/browser/android/vr/gvr_graphics_delegate.h" #include "chrome/browser/android/vr/web_xr_presentation_state.h" -#include "chrome/browser/vr/fps_meter.h" -#include "chrome/browser/vr/scheduler_delegate.h" +#include "chrome/browser/vr/base_scheduler_delegate.h" #include "chrome/browser/vr/sliding_average.h" #include "device/vr/public/mojom/vr_service.mojom.h" #include "mojo/public/cpp/bindings/binding.h" #include "ui/gfx/transform.h" -namespace base { -class SingleThreadTaskRunner; -} - namespace gfx { class GpuFence; } @@ -52,15 +47,15 @@ // Apart from scheduling, this class implements the XR providers and the // transport logic. -class GvrSchedulerDelegate : public SchedulerDelegate, - device::mojom::XRPresentationProvider, - device::mojom::XRFrameDataProvider { +class GvrSchedulerDelegate : public BaseSchedulerDelegate, + public device::mojom::XRPresentationProvider, + public device::mojom::XRFrameDataProvider { public: GvrSchedulerDelegate(GlBrowserInterface* browser, SchedulerUiInterface* ui, gvr::GvrApi* gvr_api, GvrGraphicsDelegate* graphics, - bool start_in_web_xr_mode, + bool start_in_webxr_mode, bool cardboard_gamepad, size_t sliding_time_size); ~GvrSchedulerDelegate() override; @@ -69,14 +64,14 @@ private: // SchedulerDelegate overrides. - gfx::Transform GetHeadPose() override; void AddInputSourceState(device::mojom::XRInputSourceStatePtr state) override; void OnPause() override; void OnResume() override; - void OnExitPresent() override; void OnTriggerEvent(bool pressed) override; void SetWebXrMode(bool enabled) override; void SetShowingVrDialog(bool showing) override; + void SubmitDrawnFrame(FrameType frame_type, + const gfx::Transform& head_pose) override; void SetBrowserRenderer( SchedulerBrowserRendererInterface* browser_renderer) override; void ConnectPresentingService( @@ -86,17 +81,15 @@ void GvrInit(); void ScheduleOrCancelWebVrFrameTimeout(); bool CanSendWebXrVSync() const; - void OnWebXrTimeoutImminent(); - void OnWebXrFrameTimedOut(); void OnVSync(base::TimeTicks frame_time); void DrawFrame(int16_t frame_index, base::TimeTicks current_time); void WebVrSendRenderNotification(bool was_rendered); void UpdatePendingBounds(int16_t frame_index); - void SubmitDrawnFrame(bool is_webxr_frame); - void DrawFrameSubmitWhenReady(bool is_webxr_frame, + void DrawFrameSubmitWhenReady(FrameType frame_type, const gfx::Transform& head_pose, std::unique_ptr<gl::GLFenceEGL> fence); - void DrawFrameSubmitNow(bool is_webxr_frame, const gfx::Transform& head_pose); + void DrawFrameSubmitNow(FrameType frame_type, + const gfx::Transform& head_pose); // Used for discarding unwanted WebXR frames while UI is showing. We can't // safely cancel frames from processing start until they show up in @@ -164,7 +157,6 @@ bool SubmitFrameCommon(int16_t frame_index, base::TimeDelta time_waited); bool IsSubmitFrameExpected(int16_t frame_index); - void OnNewWebXrFrame(); void OnWebXrTokenSignaled(int16_t frame_index, std::unique_ptr<gfx::GpuFence> gpu_fence); @@ -179,14 +171,12 @@ GlBrowserInterface* browser_; gvr::GvrApi* gvr_api_; - SchedulerUiInterface* ui_ = nullptr; SchedulerBrowserRendererInterface* browser_renderer_ = nullptr; // Set from feature flags. const bool webvr_vsync_align_; WebXrPresentationState webxr_; - bool web_xr_mode_ = false; bool showing_vr_dialog_ = false; bool cardboard_gamepad_ = false; // TODO(acondor): Move trigger data to controller delegate. @@ -202,19 +192,12 @@ bool webxr_use_shared_buffer_draw_ = false; AndroidVSyncHelper vsync_helper_; - scoped_refptr<base::SingleThreadTaskRunner> task_runner_; - - base::CancelableOnceClosure webvr_frame_timeout_; - base::CancelableOnceClosure webvr_spinner_timeout_; - - gfx::Transform head_pose_; mojo::Binding<device::mojom::XRPresentationProvider> presentation_binding_; mojo::Binding<device::mojom::XRFrameDataProvider> frame_data_binding_; std::vector<device::mojom::XRInputSourceStatePtr> input_states_; device::mojom::XRPresentationClientPtr submit_client_; - uint64_t webvr_frames_received_ = 0; base::queue<uint16_t> pending_frames_; base::queue<std::pair<WebXrPresentationState::FrameIndexType, WebVrBounds>> @@ -245,14 +228,13 @@ // for later. If we exit WebVR before it is executed, we need to // cancel it to avoid inconsistent state. base::CancelableOnceCallback< - void(bool, const gfx::Transform&, std::unique_ptr<gl::GLFenceEGL>)> + void(FrameType, const gfx::Transform&, std::unique_ptr<gl::GLFenceEGL>)> webxr_delayed_gvr_submit_; std::unique_ptr<MailboxToSurfaceBridge> mailbox_bridge_; std::unique_ptr<ScopedGpuTrace> gpu_trace_; FPSMeter vr_ui_fps_meter_; - FPSMeter webxr_fps_meter_; // Render time is from JS submitFrame to estimated render completion. // This is an estimate when submitting incomplete frames to GVR.
diff --git a/chrome/browser/android/webapk/webapk.proto b/chrome/browser/android/webapk/webapk.proto index 183c5b8..dcdbc243 100644 --- a/chrome/browser/android/webapk/webapk.proto +++ b/chrome/browser/android/webapk/webapk.proto
@@ -45,6 +45,7 @@ THEME_COLOR_DIFFERS = 10; ORIENTATION_DIFFERS = 11; DISPLAY_MODE_DIFFERS = 12; + WEB_SHARE_TARGET_DIFFERS = 13; } // Package name of the WebAPK.
diff --git a/chrome/browser/android/webapk/webapk_installer.cc b/chrome/browser/android/webapk/webapk_installer.cc index 7e2d2b5..6419b4e 100644 --- a/chrome/browser/android/webapk/webapk_installer.cc +++ b/chrome/browser/android/webapk/webapk_installer.cc
@@ -143,6 +143,8 @@ return webapk::WebApk::ORIENTATION_DIFFERS; case WebApkUpdateReason::DISPLAY_MODE_DIFFERS: return webapk::WebApk::DISPLAY_MODE_DIFFERS; + case WebApkUpdateReason::WEB_SHARE_TARGET_DIFFERS: + return webapk::WebApk::WEB_SHARE_TARGET_DIFFERS; } }
diff --git a/chrome/browser/android/webapk/webapk_types.h b/chrome/browser/android/webapk/webapk_types.h index 9b060708..5269faf0 100644 --- a/chrome/browser/android/webapk/webapk_types.h +++ b/chrome/browser/android/webapk/webapk_types.h
@@ -22,6 +22,7 @@ THEME_COLOR_DIFFERS, ORIENTATION_DIFFERS, DISPLAY_MODE_DIFFERS, + WEB_SHARE_TARGET_DIFFERS, }; #endif // CHROME_BROWSER_ANDROID_WEBAPK_WEBAPK_TYPES_H_
diff --git a/chrome/browser/android/webapk/webapk_update_data_fetcher.cc b/chrome/browser/android/webapk/webapk_update_data_fetcher.cc index 35068a9..0c81fba 100644 --- a/chrome/browser/android/webapk/webapk_update_data_fetcher.cc +++ b/chrome/browser/android/webapk/webapk_update_data_fetcher.cc
@@ -9,6 +9,8 @@ #include "base/android/jni_array.h" #include "base/android/jni_string.h" +#include "base/strings/stringprintf.h" +#include "base/strings/utf_string_conversions.h" #include "chrome/browser/android/color_helpers.h" #include "chrome/browser/android/shortcut_helper.h" #include "chrome/browser/android/webapk/webapk_icon_hasher.h" @@ -206,27 +208,41 @@ base::android::ConvertUTF8ToJavaString( env, info_.best_primary_icon_url.spec()); ScopedJavaLocalRef<jstring> java_primary_icon_murmur2_hash = - base::android::ConvertUTF8ToJavaString(env, - primary_icon_murmur2_hash); + base::android::ConvertUTF8ToJavaString(env, primary_icon_murmur2_hash); ScopedJavaLocalRef<jobject> java_primary_icon = gfx::ConvertToJavaBitmap(&primary_icon_); ScopedJavaLocalRef<jstring> java_badge_icon_url = base::android::ConvertUTF8ToJavaString(env, info_.best_badge_icon_url.spec()); ScopedJavaLocalRef<jstring> java_badge_icon_murmur2_hash = - base::android::ConvertUTF8ToJavaString(env, - badge_icon_murmur2_hash); + base::android::ConvertUTF8ToJavaString(env, badge_icon_murmur2_hash); ScopedJavaLocalRef<jobject> java_badge_icon; if (!badge_icon_.drawsNothing()) - java_badge_icon = gfx::ConvertToJavaBitmap(&badge_icon_); + java_badge_icon = gfx::ConvertToJavaBitmap(&badge_icon_); ScopedJavaLocalRef<jobjectArray> java_icon_urls = base::android::ToJavaArrayOfStrings(env, info_.icon_urls); + ScopedJavaLocalRef<jstring> java_share_action; + ScopedJavaLocalRef<jstring> java_share_params_title; + ScopedJavaLocalRef<jstring> java_share_params_text; + ScopedJavaLocalRef<jstring> java_share_params_url; + if (info_.share_target.has_value()) { + java_share_action = base::android::ConvertUTF8ToJavaString( + env, info_.share_target->action.spec()); + java_share_params_title = base::android::ConvertUTF16ToJavaString( + env, info_.share_target->params.title); + java_share_params_text = base::android::ConvertUTF16ToJavaString( + env, info_.share_target->params.text); + java_share_params_url = base::android::ConvertUTF16ToJavaString( + env, info_.share_target->params.url); + } + Java_WebApkUpdateDataFetcher_onDataAvailable( env, java_ref_, java_url, java_scope, java_name, java_short_name, java_primary_icon_url, java_primary_icon_murmur2_hash, java_primary_icon, java_badge_icon_url, java_badge_icon_murmur2_hash, java_badge_icon, java_icon_urls, info_.display, info_.orientation, OptionalSkColorToJavaColor(info_.theme_color), - OptionalSkColorToJavaColor(info_.background_color)); + OptionalSkColorToJavaColor(info_.background_color), java_share_action, + java_share_params_title, java_share_params_text, java_share_params_url); }
diff --git a/chrome/browser/apps/guest_view/web_view_browsertest.cc b/chrome/browser/apps/guest_view/web_view_browsertest.cc index 5adbc7f33..ce14f12 100644 --- a/chrome/browser/apps/guest_view/web_view_browsertest.cc +++ b/chrome/browser/apps/guest_view/web_view_browsertest.cc
@@ -3977,97 +3977,6 @@ guest_frame_observer.WaitForScrollOffset(default_offset); } -#if defined(USE_AURA) -class WebViewGuestTouchFocusBrowserPluginSpecificTest - : public WebViewBrowserPluginSpecificTest { - public: - WebViewGuestTouchFocusBrowserPluginSpecificTest() {} - void SetUpCommandLine(base::CommandLine* command_line) override { - WebViewBrowserPluginSpecificTest::SetUpCommandLine(command_line); - - command_line->AppendSwitchASCII( - switches::kTouchEventFeatureDetection, - switches::kTouchEventFeatureDetectionEnabled); - } - - private: - DISALLOW_COPY_AND_ASSIGN(WebViewGuestTouchFocusBrowserPluginSpecificTest); -}; - -class FocusChangeWaiter { - public: - explicit FocusChangeWaiter(content::WebContents* web_contents, - bool expected_focus) - : web_contents_(web_contents), expected_focus_(expected_focus) {} - ~FocusChangeWaiter() {} - - void WaitForFocusChange() { - while (expected_focus_ != - IsWebContentsBrowserPluginFocused(web_contents_)) { - base::RunLoop().RunUntilIdle(); - } - } - - private: - content::WebContents* web_contents_; - bool expected_focus_; -}; - -IN_PROC_BROWSER_TEST_F(WebViewGuestTouchFocusBrowserPluginSpecificTest, - TouchFocusesBrowserPluginInEmbedder) { - // This test is only relevant for non-OOPIF WebView. - ASSERT_FALSE( - base::FeatureList::IsEnabled(::features::kGuestViewCrossProcessFrames)); - - LoadAppWithGuest("web_view/guest_focus_test"); - - // Lookup relevant information about guest and embedder. - content::WebContents* embedder_contents = GetEmbedderWebContents(); - - std::vector<content::WebContents*> guest_web_contents_list; - GetGuestViewManager()->WaitForNumGuestsCreated(1u); - GetGuestViewManager()->GetGuestWebContentsList(&guest_web_contents_list); - ASSERT_EQ(1u, guest_web_contents_list.size()); - - content::WebContents* guest_contents = guest_web_contents_list[0]; - - gfx::Rect embedder_rect = embedder_contents->GetContainerBounds(); - gfx::Rect guest_rect = guest_contents->GetContainerBounds(); - - guest_rect.set_x(guest_rect.x() - embedder_rect.x()); - guest_rect.set_y(guest_rect.y() - embedder_rect.y()); - embedder_rect.set_x(0); - embedder_rect.set_y(0); - - // Don't send events that need to be routed until we know the child's surface - // is ready for hit testing. - content::WaitForHitTestDataOrGuestSurfaceReady(guest_contents); - - // 1) BrowserPlugin should not be focused at start. - EXPECT_FALSE(IsWebContentsBrowserPluginFocused(guest_contents)); - - // 2) Send touch event to guest, now BrowserPlugin should get focus. - { - gfx::Point point = guest_rect.CenterPoint(); - FocusChangeWaiter focus_waiter(guest_contents, true); - SendRoutedTouchTapSequence(embedder_contents, point); - SendRoutedGestureTapSequence(embedder_contents, point); - focus_waiter.WaitForFocusChange(); - EXPECT_TRUE(IsWebContentsBrowserPluginFocused(guest_contents)); - } - - // 3) Send touch start to embedder, now BrowserPlugin should lose focus. - { - gfx::Point point(10, 10); - FocusChangeWaiter focus_waiter(guest_contents, false); - SendRoutedTouchTapSequence(embedder_contents, point); - SendRoutedGestureTapSequence(embedder_contents, point); - focus_waiter.WaitForFocusChange(); - EXPECT_FALSE(IsWebContentsBrowserPluginFocused(guest_contents)); - } -} -#endif - INSTANTIATE_TEST_CASE_P(WebViewScrollBubbling, WebViewGuestScrollTouchTest, testing::Bool());
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc index 7ea9906af..e98a8199 100644 --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.cc
@@ -29,6 +29,7 @@ #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_list.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" +#include "chrome/browser/unified_consent/unified_consent_service_factory.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" #include "components/browser_sync/profile_sync_service.h" @@ -37,6 +38,7 @@ #include "components/omnibox/browser/autocomplete_match.h" #include "components/prefs/pref_service.h" #include "components/signin/core/browser/signin_manager.h" +#include "components/unified_consent/unified_consent_service.h" #include "components/unified_consent/url_keyed_data_collection_consent_helper.h" #include "content/public/browser/navigation_entry.h" #include "content/public/browser/notification_service.h" @@ -279,6 +281,19 @@ return signin_manager != nullptr && signin_manager->IsAuthenticated(); } +bool ChromeAutocompleteProviderClient::IsUnifiedConsentGiven() const { + unified_consent::UnifiedConsentService* consent_service = + UnifiedConsentServiceFactory::GetForProfile(profile_); + return consent_service && consent_service->IsUnifiedConsentGiven(); +} + +bool ChromeAutocompleteProviderClient::IsSyncActive() const { + syncer::SyncService* sync = + ProfileSyncServiceFactory::GetInstance()->GetSyncServiceForBrowserContext( + profile_); + return sync && sync->IsSyncActive(); +} + void ChromeAutocompleteProviderClient::Classify( const base::string16& text, bool prefer_keyword,
diff --git a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h index 57585bc..6eda7d2 100644 --- a/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h +++ b/chrome/browser/autocomplete/chrome_autocomplete_provider_client.h
@@ -55,6 +55,8 @@ bool SearchSuggestEnabled() const override; bool IsPersonalizedUrlDataCollectionActive() const override; bool IsAuthenticated() const override; + bool IsUnifiedConsentGiven() const override; + bool IsSyncActive() const override; void Classify( const base::string16& text, bool prefer_keyword,
diff --git a/chrome/browser/autofill/OWNERS b/chrome/browser/autofill/OWNERS index 4afcbe9..4204dac6 100644 --- a/chrome/browser/autofill/OWNERS +++ b/chrome/browser/autofill/OWNERS
@@ -1,7 +1,3 @@ -estade@chromium.org -mathp@chromium.org -rogerm@chromium.org -sebsg@chromium.org -vabr@chromium.org + file://components/autofill/OWNERS # COMPONENT: UI>Browser>Autofill
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc index 6d1a2e8..d67f4f5d 100644 --- a/chrome/browser/chrome_browser_main.cc +++ b/chrome/browser/chrome_browser_main.cc
@@ -135,10 +135,10 @@ #include "components/language/core/browser/pref_names.h" #include "components/language/core/common/language_experiments.h" #include "components/language_usage_metrics/language_usage_metrics.h" -#include "components/metrics/call_stack_profile_builder.h" #include "components/metrics/call_stack_profile_metrics_provider.h" #include "components/metrics/call_stack_profile_params.h" #include "components/metrics/expired_histogram_util.h" +#include "components/metrics/legacy_call_stack_profile_builder.h" #include "components/metrics/metrics_reporting_default_state.h" #include "components/metrics/metrics_service.h" #include "components/metrics_services_manager/metrics_services_manager.h" @@ -2120,8 +2120,8 @@ } void ChromeBrowserMainParts::PreShutdown() { - metrics::CallStackProfileBuilder::SetProcessMilestone( - metrics::CallStackProfileBuilder::SHUTDOWN_START); + metrics::LegacyCallStackProfileBuilder::SetProcessMilestone( + metrics::LegacyCallStackProfileBuilder::SHUTDOWN_START); } void ChromeBrowserMainParts::PostDestroyThreads() {
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc index 023bae87..127e680 100644 --- a/chrome/browser/chrome_content_browser_client.cc +++ b/chrome/browser/chrome_content_browser_client.cc
@@ -117,7 +117,6 @@ #include "chrome/browser/subresource_filter/chrome_subresource_filter_client.h" #include "chrome/browser/sync_file_system/local/sync_file_system_backend.h" #include "chrome/browser/tab_contents/tab_util.h" -#include "chrome/browser/tracing/chrome_browser_main_extra_parts_tracing.h" #include "chrome/browser/tracing/chrome_tracing_delegate.h" #include "chrome/browser/translate/translate_service.h" #include "chrome/browser/ui/blocked_content/blocked_window_params.h" @@ -1134,7 +1133,6 @@ main_parts->AddParts(new ChromeBrowserMainExtraPartsResourceCoordinator); main_parts->AddParts(new ChromeBrowserMainExtraPartsProfiling); - main_parts->AddParts(new ChromeBrowserMainExtraPartsTracing); chrome::AddMetricsExtraParts(main_parts);
diff --git a/chrome/browser/chromeos/BUILD.gn b/chrome/browser/chromeos/BUILD.gn index 314336a..a63f940 100644 --- a/chrome/browser/chromeos/BUILD.gn +++ b/chrome/browser/chromeos/BUILD.gn
@@ -278,6 +278,8 @@ "accessibility/spoken_feedback_event_rewriter_delegate.h", "accessibility/switch_access_event_handler.cc", "accessibility/switch_access_event_handler.h", + "accessibility/switch_access_panel.cc", + "accessibility/switch_access_panel.h", "account_mapper_util.cc", "account_mapper_util.h", "app_mode/app_launch_utils.cc",
diff --git a/chrome/browser/chromeos/accessibility/accessibility_manager.cc b/chrome/browser/chromeos/accessibility/accessibility_manager.cc index 72c21cd..63f497a 100644 --- a/chrome/browser/chromeos/accessibility/accessibility_manager.cc +++ b/chrome/browser/chromeos/accessibility/accessibility_manager.cc
@@ -122,6 +122,14 @@ return BrailleController::GetInstance(); } +void EnableChromeVoxAfterSwitchAccessMetric(bool val) { + UMA_HISTOGRAM_BOOLEAN("Accessibility.CrosChromeVoxAfterSwitchAccess", val); +} + +void EnableSwitchAccessAfterChromeVoxMetric(bool val) { + UMA_HISTOGRAM_BOOLEAN("Accessibility.CrosSwitchAccessAfterChromeVox", val); +} + } // namespace class AccessibilityPanelWidgetObserver : public views::WidgetObserver { @@ -390,6 +398,15 @@ if (!profile_) return; + if (enabled) { + if (IsSwitchAccessEnabled()) { + SetSwitchAccessEnabled(false); + EnableChromeVoxAfterSwitchAccessMetric(true); + } else { + EnableChromeVoxAfterSwitchAccessMetric(false); + } + } + PrefService* pref_service = profile_->GetPrefs(); pref_service->SetBoolean(ash::prefs::kAccessibilitySpokenFeedbackEnabled, enabled); @@ -403,6 +420,17 @@ const bool enabled = profile_->GetPrefs()->GetBoolean( ash::prefs::kAccessibilitySpokenFeedbackEnabled); + if (enabled) { + if (IsSwitchAccessEnabled()) { + LOG(ERROR) << "Switch Access and ChromeVox is not supported."; + LOG(WARNING) << "Disabling Switch Access."; + SetSwitchAccessEnabled(false); + EnableChromeVoxAfterSwitchAccessMetric(true); + } else { + EnableChromeVoxAfterSwitchAccessMetric(false); + } + } + user_manager::known_user::SetBooleanPref( multi_user_util::GetAccountIdFromProfile(profile_), kUserSpokenFeedbackEnabled, enabled); @@ -788,6 +816,15 @@ if (!profile_) return; + if (enabled) { + if (IsSpokenFeedbackEnabled()) { + LOG(ERROR) << "Enabling Switch Access with ChromeVox is not supported."; + EnableSwitchAccessAfterChromeVoxMetric(true); + return; + } + EnableSwitchAccessAfterChromeVoxMetric(false); + } + PrefService* pref_service = profile_->GetPrefs(); pref_service->SetBoolean(ash::prefs::kAccessibilitySwitchAccessEnabled, enabled); @@ -817,12 +854,25 @@ return; } + if (enabled) { + if (IsSpokenFeedbackEnabled()) { + LOG(ERROR) << "Enabling Switch Access with ChromeVox is not supported."; + SetSwitchAccessEnabled(false); + EnableSwitchAccessAfterChromeVoxMetric(true); + return; + } + EnableSwitchAccessAfterChromeVoxMetric(false); + } + if (switch_access_enabled_ == enabled) return; switch_access_enabled_ = enabled; if (enabled) { - switch_access_loader_->Load(profile_, base::Closure() /* done_cb */); + switch_access_loader_->Load( + profile_, + base::BindRepeating(&AccessibilityManager::PostLoadSwitchAccess, + weak_ptr_factory_.GetWeakPtr())); switch_access_event_handler_.reset( new chromeos::SwitchAccessEventHandler()); } else { @@ -1300,12 +1350,34 @@ TtsController::GetInstance()->Stop(); } +void AccessibilityManager::PostLoadSwitchAccess() { + if (!switch_access_panel_) { + switch_access_panel_ = new SwitchAccessPanel(profile_); + switch_access_panel_widget_observer_.reset( + new AccessibilityPanelWidgetObserver( + switch_access_panel_->GetWidget(), + base::BindOnce(&AccessibilityManager::OnSwitchAccessPanelDestroying, + base::Unretained(this)))); + } +} + void AccessibilityManager::PostUnloadSwitchAccess() { // Do any teardown work needed immediately after SwitchAccess actually // unloads. // Clear the accessibility focus ring. HideFocusRing(extension_misc::kSwitchAccessExtensionId); + + // Close the context menu + if (switch_access_panel_) { + switch_access_panel_->Close(); + switch_access_panel_ = nullptr; + } +} + +void AccessibilityManager::OnSwitchAccessPanelDestroying() { + switch_access_panel_widget_observer_.reset(nullptr); + switch_access_panel_ = nullptr; } void AccessibilityManager::SetKeyboardListenerExtensionId(
diff --git a/chrome/browser/chromeos/accessibility/accessibility_manager.h b/chrome/browser/chromeos/accessibility/accessibility_manager.h index a34823d..fa1a161 100644 --- a/chrome/browser/chromeos/accessibility/accessibility_manager.h +++ b/chrome/browser/chromeos/accessibility/accessibility_manager.h
@@ -19,6 +19,7 @@ #include "base/scoped_observer.h" #include "base/time/time.h" #include "chrome/browser/chromeos/accessibility/chromevox_panel.h" +#include "chrome/browser/chromeos/accessibility/switch_access_panel.h" #include "chrome/browser/extensions/api/braille_display_private/braille_controller.h" #include "chromeos/audio/cras_audio_handler.h" #include "components/prefs/pref_change_registrar.h" @@ -257,9 +258,9 @@ // touch events are anchored at this point. void SetTouchAccessibilityAnchorPoint(const gfx::Point& anchor_point); - // Called by our widget observer when the ChromeVoxPanel is closing. - void OnChromeVoxPanelClosing(); + // Called by our widget observer when the respective panel is closing. void OnChromeVoxPanelDestroying(); + void OnSwitchAccessPanelDestroying(); // Profile having the a11y context. Profile* profile() { return profile_; } @@ -333,7 +334,9 @@ void PostSwitchChromeVoxProfile(); void PostUnloadSelectToSpeak(); + void PostLoadSwitchAccess(); void PostUnloadSwitchAccess(); + void UpdateAlwaysShowMenuFromPref(); void OnLargeCursorChanged(); void OnStickyKeysChanged(); @@ -411,6 +414,10 @@ std::unique_ptr<AccessibilityPanelWidgetObserver> chromevox_panel_widget_observer_; + SwitchAccessPanel* switch_access_panel_; + std::unique_ptr<AccessibilityPanelWidgetObserver> + switch_access_panel_widget_observer_; + std::string keyboard_listener_extension_id_; bool keyboard_listener_capture_; @@ -451,7 +458,6 @@ base::WeakPtrFactory<AccessibilityManager> weak_ptr_factory_; friend class DictationTest; - friend class SwitchAccessTest; DISALLOW_COPY_AND_ASSIGN(AccessibilityManager); };
diff --git a/chrome/browser/chromeos/accessibility/accessibility_panel.cc b/chrome/browser/chromeos/accessibility/accessibility_panel.cc index d4222d5c..24125a7 100644 --- a/chrome/browser/chromeos/accessibility/accessibility_panel.cc +++ b/chrome/browser/chromeos/accessibility/accessibility_panel.cc
@@ -12,7 +12,9 @@ #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h" #include "chrome/browser/ui/ash/ash_util.h" #include "content/public/browser/web_contents.h" +#include "content/public/common/service_manager_connection.h" #include "extensions/browser/view_type_utils.h" +#include "services/service_manager/public/cpp/connector.h" #include "ui/base/ui_base_features.h" #include "ui/display/display.h" #include "ui/display/screen.h" @@ -84,6 +86,17 @@ AccessibilityPanel::~AccessibilityPanel() = default; +// static +ash::mojom::AccessibilityControllerPtr +AccessibilityPanel::GetAccessibilityController() { + // Connect to the accessibility mojo interface in ash. + ash::mojom::AccessibilityControllerPtr accessibility_controller; + content::ServiceManagerConnection::GetForProcess() + ->GetConnector() + ->BindInterface(ash::mojom::kServiceName, &accessibility_controller); + return accessibility_controller; +} + void AccessibilityPanel::CloseNow() { widget_->CloseNow(); }
diff --git a/chrome/browser/chromeos/accessibility/accessibility_panel.h b/chrome/browser/chromeos/accessibility/accessibility_panel.h index 763d9d6..4cfcdcf 100644 --- a/chrome/browser/chromeos/accessibility/accessibility_panel.h +++ b/chrome/browser/chromeos/accessibility/accessibility_panel.h
@@ -7,6 +7,8 @@ #include <stdint.h> +#include "ash/public/interfaces/accessibility_controller.mojom.h" +#include "ash/public/interfaces/constants.mojom.h" #include "base/macros.h" #include "content/public/browser/web_contents_delegate.h" #include "ui/views/widget/widget_delegate.h" @@ -19,6 +21,8 @@ class Widget; } +const char EXTENSION_PREFIX[] = "chrome-extension://"; + // Creates a panel onscreen on which an accessibility extension can draw a // custom UI. class AccessibilityPanel : public views::WidgetDelegate, @@ -44,6 +48,7 @@ protected: // Returns the web contents, so subclasses can monitor for changes. content::WebContents* GetWebContents(); + static ash::mojom::AccessibilityControllerPtr GetAccessibilityController(); private: class AccessibilityPanelWebContentsObserver;
diff --git a/chrome/browser/chromeos/accessibility/chromevox_panel.cc b/chrome/browser/chromeos/accessibility/chromevox_panel.cc index 7fba88fb..deadc8f 100644 --- a/chrome/browser/chromeos/accessibility/chromevox_panel.cc +++ b/chrome/browser/chromeos/accessibility/chromevox_panel.cc
@@ -4,6 +4,7 @@ #include "chrome/browser/chromeos/accessibility/chromevox_panel.h" +#include "ash/public/interfaces/accessibility_controller.mojom.h" #include "ash/public/interfaces/constants.mojom.h" #include "chrome/browser/chromeos/accessibility/accessibility_manager.h" #include "content/public/common/service_manager_connection.h" @@ -20,15 +21,6 @@ const char kWidgetName[] = "ChromeVoxPanel"; const int kPanelHeight = 35; -ash::mojom::AccessibilityControllerPtr GetAccessibilityController() { - // Connect to the accessibility mojo interface in ash. - ash::mojom::AccessibilityControllerPtr accessibility_controller; - content::ServiceManagerConnection::GetForProcess() - ->GetConnector() - ->BindInterface(ash::mojom::kServiceName, &accessibility_controller); - return accessibility_controller; -} - } // namespace class ChromeVoxPanel::ChromeVoxPanelWebContentsObserver @@ -95,7 +87,7 @@ } std::string ChromeVoxPanel::GetUrlForContent() { - std::string url("chrome-extension://"); + std::string url(EXTENSION_PREFIX); url += extension_misc::kChromeVoxExtensionId; url += kChromeVoxPanelRelativeUrl;
diff --git a/chrome/browser/chromeos/accessibility/switch_access_browsertest.cc b/chrome/browser/chromeos/accessibility/switch_access_browsertest.cc deleted file mode 100644 index ff01338..0000000 --- a/chrome/browser/chromeos/accessibility/switch_access_browsertest.cc +++ /dev/null
@@ -1,64 +0,0 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "base/command_line.h" -#include "chrome/browser/chromeos/accessibility/accessibility_manager.h" -#include "chrome/browser/ui/browser.h" -#include "chrome/test/base/in_process_browser_test.h" -#include "chrome/test/base/interactive_test_utils.h" -#include "chromeos/chromeos_switches.h" -#include "content/public/test/browser_test_utils.h" - -namespace chromeos { - -class SwitchAccessTest : public InProcessBrowserTest { - public: - void SendVirtualKeyPress(ui::KeyboardCode key) { - ASSERT_NO_FATAL_FAILURE(ASSERT_TRUE(ui_test_utils::SendKeyPressToWindowSync( - nullptr, key, false, false, false, false))); - } - - void EnableSwitchAccess(const std::set<int>& key_codes = {'1', '2', '3', - '4'}) { - base::CommandLine::ForCurrentProcess()->AppendSwitch( - chromeos::switches::kEnableExperimentalAccessibilityFeatures); - - AccessibilityManager* manager = AccessibilityManager::Get(); - manager->SetSwitchAccessEnabled(true); - manager->SetSwitchAccessKeys(key_codes); - - EXPECT_TRUE(manager->IsSwitchAccessEnabled()); - } - - protected: - SwitchAccessTest() = default; - ~SwitchAccessTest() override = default; - - void SetUpOnMainThread() override {} -}; - -IN_PROC_BROWSER_TEST_F(SwitchAccessTest, IgnoresVirtualKeyEvents) { - EnableSwitchAccess({'1', '2', '3', '4'}); - - // Load a webpage with a text box - ui_test_utils::NavigateToURL( - browser(), GURL("data:text/html;charset=utf-8,<input type=text id=in>")); - - // Put focus in the text box - SendVirtualKeyPress(ui::KeyboardCode::VKEY_TAB); - - // Send a virtual key event for one of the keys taken by switch access - SendVirtualKeyPress(ui::KeyboardCode::VKEY_1); - - // Check that the text field received the keystroke - std::string output; - std::string script = - "window.domAutomationController.send(" - "document.getElementById('in').value)"; - ASSERT_TRUE(ExecuteScriptAndExtractString( - browser()->tab_strip_model()->GetWebContentsAt(0), script, &output)); - EXPECT_STREQ(output.c_str(), "1"); -} - -} // namespace chromeos
diff --git a/chrome/browser/chromeos/accessibility/switch_access_event_handler.cc b/chrome/browser/chromeos/accessibility/switch_access_event_handler.cc index 4f92eb98..c9b9cde 100644 --- a/chrome/browser/chromeos/accessibility/switch_access_event_handler.cc +++ b/chrome/browser/chromeos/accessibility/switch_access_event_handler.cc
@@ -32,9 +32,6 @@ void SwitchAccessEventHandler::OnKeyEvent(ui::KeyEvent* event) { DCHECK(event); - if (!event->HasNativeEvent()) - return; - ui::KeyboardCode key_code = event->key_code(); if (captured_keys_.find(key_code) != captured_keys_.end()) { CancelEvent(event);
diff --git a/chrome/browser/chromeos/accessibility/switch_access_panel.cc b/chrome/browser/chromeos/accessibility/switch_access_panel.cc new file mode 100644 index 0000000..3861c14 --- /dev/null +++ b/chrome/browser/chromeos/accessibility/switch_access_panel.cc
@@ -0,0 +1,30 @@ +// 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/chromeos/accessibility/switch_access_panel.h" + +#include "ash/public/interfaces/accessibility_controller.mojom.h" +#include "ash/public/interfaces/constants.mojom.h" +#include "content/public/common/service_manager_connection.h" +#include "services/service_manager/public/cpp/connector.h" +#include "ui/views/widget/widget.h" + +namespace { + +const char kWidgetName[] = "SwitchAccessPanel"; +const int kPanelHeight = 50; + +} // namespace + +// static +const std::string urlForContent = std::string(EXTENSION_PREFIX) + + extension_misc::kSwitchAccessExtensionId + + "/panel.html"; + +SwitchAccessPanel::SwitchAccessPanel(content::BrowserContext* browser_context) + : AccessibilityPanel(browser_context, urlForContent, kWidgetName) { + gfx::Rect bounds(0, 0, 0 /* overridden */, kPanelHeight); + GetAccessibilityController()->SetAccessibilityPanelBounds( + bounds, ash::mojom::AccessibilityPanelState::FULL_WIDTH); +}
diff --git a/chrome/browser/chromeos/accessibility/switch_access_panel.h b/chrome/browser/chromeos/accessibility/switch_access_panel.h new file mode 100644 index 0000000..f3e61069 --- /dev/null +++ b/chrome/browser/chromeos/accessibility/switch_access_panel.h
@@ -0,0 +1,21 @@ +// 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_CHROMEOS_ACCESSIBILITY_SWITCH_ACCESS_PANEL_H_ +#define CHROME_BROWSER_CHROMEOS_ACCESSIBILITY_SWITCH_ACCESS_PANEL_H_ + +#include "base/macros.h" +#include "chrome/browser/chromeos/accessibility/accessibility_panel.h" +#include "chrome/common/extensions/extension_constants.h" + +// Shows a context menu of controls for Switch Access users +class SwitchAccessPanel : public AccessibilityPanel { + public: + explicit SwitchAccessPanel(content::BrowserContext* browser_context); + ~SwitchAccessPanel() override = default; + + DISALLOW_COPY_AND_ASSIGN(SwitchAccessPanel); +}; + +#endif // CHROME_BROWSER_CHROMEOS_ACCESSIBILITY_SWITCH_ACCESS_PANEL_H_
diff --git a/chrome/browser/chromeos/arc/icon_decode_request.cc b/chrome/browser/chromeos/arc/icon_decode_request.cc index baedc54..0856a7d 100644 --- a/chrome/browser/chromeos/arc/icon_decode_request.cc +++ b/chrome/browser/chromeos/arc/icon_decode_request.cc
@@ -58,8 +58,11 @@ // ARC icon. const gfx::ImageSkia* icon_to_scale; if (decoded_icon_.isNull()) { - int resource_id = - scale >= 1.5f ? IDR_ARC_SUPPORT_ICON_96 : IDR_ARC_SUPPORT_ICON_48; + const int resource_size_in_px = + static_cast<int>(resource_size_in_dip_ * scale + 0.5); + const int resource_id = resource_size_in_px <= 32 + ? IDR_ARC_SUPPORT_ICON_32 + : IDR_ARC_SUPPORT_ICON_192; icon_to_scale = ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(resource_id); } else {
diff --git a/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client.cc b/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client.cc index 3d7658c..ba33cde 100644 --- a/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client.cc +++ b/chrome/browser/chromeos/arc/voice_interaction/voice_interaction_controller_client.cc
@@ -130,8 +130,6 @@ void VoiceInteractionControllerClient::NotifyNotificationEnabled() { DCHECK(profile_); PrefService* prefs = profile_->GetPrefs(); - // Make sure voice interaction is enabled. - DCHECK(prefs->GetBoolean(prefs::kVoiceInteractionEnabled)); bool enabled = prefs->GetBoolean(prefs::kVoiceInteractionNotificationEnabled); voice_interaction_controller_->NotifyNotificationEnabled(enabled); } @@ -219,10 +217,9 @@ NotifySettingsEnabled(); NotifyContextEnabled(); NotifyLocaleChanged(); - if (prefs->GetBoolean(prefs::kVoiceInteractionEnabled)) { + NotifyNotificationEnabled(); + if (prefs->GetBoolean(prefs::kVoiceInteractionEnabled)) NotifyHotwordEnabled(); - NotifyNotificationEnabled(); - } } void VoiceInteractionControllerClient::Observe(
diff --git a/chrome/browser/chromeos/drive/drive_integration_service.cc b/chrome/browser/chromeos/drive/drive_integration_service.cc index 36591925..4f8bd2b 100644 --- a/chrome/browser/chromeos/drive/drive_integration_service.cc +++ b/chrome/browser/chromeos/drive/drive_integration_service.cc
@@ -541,8 +541,7 @@ ->GetSharedURLLoaderFactory(); } drive_service_ = std::make_unique<DriveAPIService>( - oauth_service, g_browser_process->system_request_context(), - url_loader_factory, blocking_task_runner_.get(), + oauth_service, url_loader_factory, blocking_task_runner_.get(), GURL(google_apis::DriveApiUrlGenerator::kBaseUrlForProduction), GURL(google_apis::DriveApiUrlGenerator::kBaseThumbnailUrlForProduction), GetDriveUserAgent(), NO_TRAFFIC_ANNOTATION_YET);
diff --git a/chrome/browser/chromeos/extensions/default_keyboard_extension_browser_test.cc b/chrome/browser/chromeos/extensions/default_keyboard_extension_browser_test.cc index 78cf33d..929ea53 100644 --- a/chrome/browser/chromeos/extensions/default_keyboard_extension_browser_test.cc +++ b/chrome/browser/chromeos/extensions/default_keyboard_extension_browser_test.cc
@@ -7,7 +7,6 @@ #include <vector> -#include "ash/shell.h" #include "base/command_line.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" @@ -87,17 +86,9 @@ EXPECT_TRUE(ExecuteWebUIResourceTest(web_contents, resource_ids)); } -void DefaultKeyboardExtensionBrowserTest::ShowVirtualKeyboard() { - aura::Window* window = ash::Shell::GetPrimaryRootWindow(); - ui::InputMethod* input_method = window->GetHost()->GetInputMethod(); - ASSERT_TRUE(input_method); - input_method->ShowVirtualKeyboardIfEnabled(); -} - content::WebContents* DefaultKeyboardExtensionBrowserTest::GetKeyboardWebContents( const std::string& id) { - ShowVirtualKeyboard(); GURL url = extensions::Extension::GetBaseURLFromExtensionId(id); std::unique_ptr<content::RenderWidgetHostIterator> widgets( content::RenderWidgetHost::GetRenderWidgetHosts());
diff --git a/chrome/browser/chromeos/extensions/default_keyboard_extension_browser_test.h b/chrome/browser/chromeos/extensions/default_keyboard_extension_browser_test.h index 599d0b0..8241dc1c 100644 --- a/chrome/browser/chromeos/extensions/default_keyboard_extension_browser_test.h +++ b/chrome/browser/chromeos/extensions/default_keyboard_extension_browser_test.h
@@ -44,8 +44,6 @@ void RunTest(const base::FilePath& file, const DefaultKeyboardExtensionBrowserTestConfig& config); - void ShowVirtualKeyboard(); - // Returns the WebContents that the keyboard with extension |id| is in. content::WebContents* GetKeyboardWebContents(const std::string& id);
diff --git a/chrome/browser/chromeos/login/session/user_session_manager.cc b/chrome/browser/chromeos/login/session/user_session_manager.cc index 8a01995..97ad9a1 100644 --- a/chrome/browser/chromeos/login/session/user_session_manager.cc +++ b/chrome/browser/chromeos/login/session/user_session_manager.cc
@@ -374,6 +374,11 @@ } #endif +bool IsOnlineSignin(const UserContext& user_context) { + return user_context.GetAuthFlow() == UserContext::AUTH_FLOW_GAIA_WITH_SAML || + user_context.GetAuthFlow() == UserContext::AUTH_FLOW_GAIA_WITHOUT_SAML; +} + } // namespace UserSessionManagerDelegate::~UserSessionManagerDelegate() {} @@ -966,10 +971,8 @@ // Otherwise, auth token dependent code would be in an invalid state. // Important piece such as policy code might be broken because of this and // subject to an exploit. See http://crbug.com/677312. - const bool is_online_signin = - user_context_.GetAuthFlow() == UserContext::AUTH_FLOW_GAIA_WITH_SAML || - user_context_.GetAuthFlow() == UserContext::AUTH_FLOW_GAIA_WITHOUT_SAML; - if (is_online_signin && state == OAuth2LoginManager::SESSION_RESTORE_FAILED) { + if (IsOnlineSignin(user_context_) && + state == OAuth2LoginManager::SESSION_RESTORE_FAILED) { LOG(ERROR) << "Session restore failed for online sign-in, terminating session."; chrome::AttemptUserExit(); @@ -1235,12 +1238,18 @@ bool is_child = user->GetType() == user_manager::USER_TYPE_CHILD; DCHECK(is_child == (user_context.GetUserType() == user_manager::USER_TYPE_CHILD)); - AccountTrackerServiceFactory::GetForProfile(profile)->SetIsChildAccount( - account_id, is_child); + AccountTrackerService* account_tracker = + AccountTrackerServiceFactory::GetForProfile(profile); + account_tracker->SetIsChildAccount(account_id, is_child); VLOG(1) << "Seed IdentityManager and SigninManagerBase with the " << "authenticated account info, success=" << SigninManagerFactory::GetForProfile(profile)->IsAuthenticated(); + if (IsOnlineSignin(user_context)) { + account_tracker->SetIsAdvancedProtectionAccount( + account_id, user_context.IsUnderAdvancedProtection()); + } + // Backfill GAIA ID in user prefs stored in Local State. std::string tmp_gaia_id; if (!user_manager::known_user::FindGaiaID(user_context.GetAccountId(),
diff --git a/chrome/browser/chromeos/login/signin/oauth2_browsertest.cc b/chrome/browser/chromeos/login/signin/oauth2_browsertest.cc index 75a0ca1..76981a45 100644 --- a/chrome/browser/chromeos/login/signin/oauth2_browsertest.cc +++ b/chrome/browser/chromeos/login/signin/oauth2_browsertest.cc
@@ -25,6 +25,7 @@ #include "chrome/browser/chromeos/login/wizard_controller.h" #include "chrome/browser/extensions/chrome_extension_test_notification_observer.h" #include "chrome/browser/profiles/profile_manager.h" +#include "chrome/browser/signin/account_tracker_service_factory.h" #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" #include "chrome/browser/signin/signin_error_controller_factory.h" #include "chrome/browser/ui/browser.h" @@ -83,6 +84,14 @@ const char kTestSessionLSIDCookie[] = "fake-session-LSID-cookie"; const char kTestSession2SIDCookie[] = "fake-session2-SID-cookie"; const char kTestSession2LSIDCookie[] = "fake-session2-LSID-cookie"; +const char kTestIdTokenAdvancedProtectionEnabled[] = + "dummy-header." + "eyAic2VydmljZXMiOiBbInRpYSJdIH0=" // payload: { "services": ["tia"] } + ".dummy-signature"; +const char kTestIdTokenAdvancedProtectionDisabled[] = + "dummy-header." + "eyAic2VydmljZXMiOiBbXSB9" // payload: { "services": [] } + ".dummy-signature"; std::string PickAccountId(Profile* profile, const std::string& gaia_id, @@ -230,7 +239,7 @@ base::Bind(&OAuth2Test::InterceptRequest, base::Unretained(this))); } - void SetupGaiaServerForNewAccount() { + void SetupGaiaServerForNewAccount(bool is_under_advanced_protection) { FakeGaia::MergeSessionParams params; params.auth_sid_cookie = kTestAuthSIDCookie; params.auth_lsid_cookie = kTestAuthLSIDCookie; @@ -240,6 +249,9 @@ params.gaia_uber_token = kTestGaiaUberToken; params.session_sid_cookie = kTestSessionSIDCookie; params.session_lsid_cookie = kTestSessionLSIDCookie; + params.id_token = is_under_advanced_protection + ? kTestIdTokenAdvancedProtectionEnabled + : kTestIdTokenAdvancedProtectionDisabled; fake_gaia_->SetMergeSessionParams(params); SetupFakeGaiaForLogin(kTestEmail, kTestGaiaId, kTestRefreshToken); } @@ -375,8 +387,9 @@ EXPECT_EQ(merge_session_waiter.final_state(), final_state); } - void StartNewUserSession(bool wait_for_merge) { - SetupGaiaServerForNewAccount(); + void StartNewUserSession(bool wait_for_merge, + bool is_under_advanced_protection) { + SetupGaiaServerForNewAccount(is_under_advanced_protection); SimulateNetworkOnline(); WaitForGaiaPageLoad(); @@ -479,7 +492,8 @@ // PRE_MergeSession is testing merge session for a new profile. IN_PROC_BROWSER_TEST_F(OAuth2Test, PRE_PRE_PRE_MergeSession) { - StartNewUserSession(true); + StartNewUserSession(/*wait_for_merge=*/true, + /*is_under_advanced_protectionis_true=*/false); // Check for existence of refresh token. std::string account_id = PickAccountId(profile(), kTestGaiaId, kTestEmail); ProfileOAuth2TokenService* token_service = @@ -558,7 +572,8 @@ // Sets up a new user with stored refresh token. IN_PROC_BROWSER_TEST_F(OAuth2Test, PRE_OverlappingContinueSessionRestore) { - StartNewUserSession(true); + StartNewUserSession(/*wait_for_merge=*/true, + /*is_under_advanced_protectionis_true=*/false); } // Tests that ContinueSessionRestore could be called multiple times. @@ -642,9 +657,33 @@ WaitForMergeSessionCompletion(OAuth2LoginManager::SESSION_RESTORE_FAILED); } +IN_PROC_BROWSER_TEST_F(OAuth2Test, VerifyInAdvancedProtectionAfterOnlineAuth) { + StartNewUserSession(/*wait_for_merge=*/true, + /*is_under_advanced_protectionis_true=*/true); + + // Verify that AccountInfo is properly updated. + AccountTrackerService* account_tracker = + AccountTrackerServiceFactory::GetInstance()->GetForProfile(profile()); + EXPECT_TRUE( + account_tracker->GetAccountInfo(kTestEmail).is_under_advanced_protection); +} + +IN_PROC_BROWSER_TEST_F(OAuth2Test, + VerifyNotInAdvancedProtectionAfterOnlineAuth) { + StartNewUserSession(/*wait_for_merge=*/true, + /*is_under_advanced_protectionis_true=*/false); + + // Verify that AccountInfo is properly updated. + AccountTrackerService* account_tracker = + AccountTrackerServiceFactory::GetInstance()->GetForProfile(profile()); + EXPECT_FALSE( + account_tracker->GetAccountInfo(kTestEmail).is_under_advanced_protection); +} + // Sets up a new user with stored refresh token. IN_PROC_BROWSER_TEST_F(OAuth2Test, PRE_SetInvalidTokenStatus) { - StartNewUserSession(true); + StartNewUserSession(/*wait_for_merge=*/true, + /*is_under_advanced_protectionis_true=*/false); } // Tests that an auth error reported by SigninErrorController marks invalid auth @@ -861,7 +900,8 @@ } IN_PROC_BROWSER_TEST_F(MergeSessionTest, PageThrottle) { - StartNewUserSession(false); + StartNewUserSession(/*wait_for_merge=*/false, + /*is_under_advanced_protectionis_true=*/false); // Try to open a page from google.com. Browser* browser = FindOrCreateVisibleBrowser(profile()); @@ -907,7 +947,8 @@ } IN_PROC_BROWSER_TEST_F(MergeSessionTest, XHRThrottle) { - StartNewUserSession(false); + StartNewUserSession(/*wait_for_merge=*/false, + /*is_under_advanced_protectionis_true=*/false); // Wait until we get send merge session request. WaitForMergeSessionToStart();
diff --git a/chrome/browser/chromeos/login/signin/oauth2_token_initializer.cc b/chrome/browser/chromeos/login/signin/oauth2_token_initializer.cc index b6956e3e..8b33a9d 100644 --- a/chrome/browser/chromeos/login/signin/oauth2_token_initializer.cc +++ b/chrome/browser/chromeos/login/signin/oauth2_token_initializer.cc
@@ -35,6 +35,8 @@ user_context_.SetAuthCode(std::string()); user_context_.SetRefreshToken(result.refresh_token); user_context_.SetAccessToken(result.access_token); + user_context_.SetIsUnderAdvancedProtection( + result.is_under_advanced_protection); const bool support_usm = base::FeatureList::IsEnabled(features::kCrOSEnableUSMUserService);
diff --git a/chrome/browser/chromeos/resource_reporter/resource_reporter_unittest.cc b/chrome/browser/chromeos/resource_reporter/resource_reporter_unittest.cc index 64af5d51..31a3549 100644 --- a/chrome/browser/chromeos/resource_reporter/resource_reporter_unittest.cc +++ b/chrome/browser/chromeos/resource_reporter/resource_reporter_unittest.cc
@@ -11,7 +11,7 @@ #include <vector> #include "base/macros.h" -#include "base/memory/memory_pressure_monitor.h" +#include "base/memory/fake_memory_pressure_monitor.h" #include "base/run_loop.h" #include "base/strings/utf_string_conversions.h" #include "base/sys_info.h" @@ -112,31 +112,6 @@ DISALLOW_COPY_AND_ASSIGN(DummyTaskManager); }; -class DummyMemoryPressureMonitor : public base::MemoryPressureMonitor { - public: - DummyMemoryPressureMonitor() - : MemoryPressureMonitor(), - memory_pressure_level_( - MemoryPressureLevel::MEMORY_PRESSURE_LEVEL_NONE) {} - ~DummyMemoryPressureMonitor() override {} - - void SetAndNotifyMemoryPressure(MemoryPressureLevel level) { - memory_pressure_level_ = level; - base::MemoryPressureListener::SimulatePressureNotification(level); - } - - // base::CriticalMemoryPressureMonitor: - MemoryPressureLevel GetCurrentPressureLevel() override { - return memory_pressure_level_; - } - void SetDispatchCallback(const DispatchCallback& callback) override {} - - private: - MemoryPressureLevel memory_pressure_level_; - - DISALLOW_COPY_AND_ASSIGN(DummyMemoryPressureMonitor); -}; - } // namespace class ResourceReporterTest : public testing::Test { @@ -165,12 +140,12 @@ return ResourceReporter::GetInstance(); } - DummyMemoryPressureMonitor* monitor() { return &monitor_; } + base::test::FakeMemoryPressureMonitor* monitor() { return &monitor_; } private: content::TestBrowserThreadBundle thread_bundle_; - DummyMemoryPressureMonitor monitor_; + base::test::FakeMemoryPressureMonitor monitor_; DummyTaskManager task_manager_;
diff --git a/chrome/browser/component_updater/cros_component_installer_chromeos.cc b/chrome/browser/component_updater/cros_component_installer_chromeos.cc index dd80dbf..9e22c45b 100644 --- a/chrome/browser/component_updater/cros_component_installer_chromeos.cc +++ b/chrome/browser/component_updater/cros_component_installer_chromeos.cc
@@ -32,7 +32,7 @@ // All downloadable Chrome OS components. const ComponentConfig kConfigs[] = { - {"epson-inkjet-printer-escpr", "2.1", + {"epson-inkjet-printer-escpr", "3.0", "1913a5e0a6cad30b6f03e176177e0d7ed62c5d6700a9c66da556d7c3f5d6a47e"}, {"cros-termina", "710.1", "e9d960f84f628e1f42d05de4046bb5b3154b6f1f65c08412c6af57a29aecaffb"},
diff --git a/chrome/browser/conflicts/enumerate_shell_extensions_win.cc b/chrome/browser/conflicts/enumerate_shell_extensions_win.cc index b99d3a50..ddffcf8 100644 --- a/chrome/browser/conflicts/enumerate_shell_extensions_win.cc +++ b/chrome/browser/conflicts/enumerate_shell_extensions_win.cc
@@ -8,7 +8,6 @@ #include "base/files/file_path.h" #include "base/memory/ref_counted.h" -#include "base/metrics/histogram_macros.h" #include "base/sequenced_task_runner.h" #include "base/strings/string16.h" #include "base/strings/stringprintf.h" @@ -19,31 +18,168 @@ #include "base/win/registry.h" #include "chrome/browser/conflicts/module_info_util_win.h" +// The following link explains how Shell extensions are registered on Windows. +// Different types of handlers can be applied to different types of Shell +// objects. +// https://docs.microsoft.com/en-us/windows/desktop/shell/reg-shell-exts + namespace { +// The different kinds of shell objects that can be affected by a shell +// extension. +constexpr wchar_t kEverything[] = L"*"; +constexpr wchar_t kAllFileSystemObjects[] = L"AllFileSystemObjects"; +constexpr wchar_t kDesktopBackground[] = L"DesktopBackground"; +constexpr wchar_t kDirectory[] = L"Directory"; +constexpr wchar_t kDirectoryBackground[] = L"Directory\\Background"; +constexpr wchar_t kDrive[] = L"Drive"; +constexpr wchar_t kFolder[] = L"Folder"; +constexpr wchar_t kNetServer[] = L"NetServer"; +constexpr wchar_t kNetShare[] = L"NetShare"; +constexpr wchar_t kNetwork[] = L"Network"; +constexpr wchar_t kPrinters[] = L"Printers"; + +// Retrieves the path to the registry key that contains all the shell extensions +// of type |shell_extension_type| that apply to |shell_object_type|. +base::string16 GetShellExtensionTypePath(const wchar_t* shell_extension_type, + const wchar_t* shell_object_type) { + return base::StringPrintf(L"%ls\\shellex\\%ls", shell_object_type, + shell_extension_type); +} + +// Returns the path to the DLL for an InProcServer32 registration. +base::FilePath GetInProcServerPath(const wchar_t* guid) { + base::string16 key = base::StringPrintf(kClassIdRegistryKeyFormat, guid); + + base::win::RegKey clsid; + if (clsid.Open(HKEY_CLASSES_ROOT, key.c_str(), KEY_QUERY_VALUE) != + ERROR_SUCCESS) { + return base::FilePath(); + } + + base::string16 dll_path; + if (clsid.ReadValue(L"", &dll_path) != ERROR_SUCCESS) + return base::FilePath(); + + return base::FilePath(std::move(dll_path)); +} + +// Reads all the shell extensions of type |shell_extension_type| that are +// applied to |shell_object_types| and forwards them to |callback|. void ReadShellExtensions( - HKEY parent, - const base::RepeatingCallback<void(const base::FilePath&)>& callback, - int* nb_shell_extensions) { - for (base::win::RegistryValueIterator iter(parent, - kShellExtensionRegistryKey); + const wchar_t* shell_extension_type, + const wchar_t* shell_object_type, + const base::RepeatingCallback<void(const base::FilePath&)>& callback) { + base::string16 path = + GetShellExtensionTypePath(shell_extension_type, shell_object_type); + + DCHECK_NE(path.back(), L'\\'); + + base::string16 guid; + for (base::win::RegistryKeyIterator iter(HKEY_CLASSES_ROOT, path.c_str()); iter.Valid(); ++iter) { - base::string16 key = - base::StringPrintf(kClassIdRegistryKeyFormat, iter.Name()); - - base::win::RegKey clsid; - if (clsid.Open(HKEY_CLASSES_ROOT, key.c_str(), KEY_READ) != ERROR_SUCCESS) + base::string16 shell_extension_reg_path = path + L"\\" + iter.Name(); + base::win::RegKey reg_key( + HKEY_CLASSES_ROOT, shell_extension_reg_path.c_str(), KEY_QUERY_VALUE); + if (!reg_key.Valid()) continue; - base::string16 dll; - if (clsid.ReadValue(L"", &dll) != ERROR_SUCCESS) + guid.clear(); + reg_key.ReadValue(nullptr, &guid); + if (guid.empty()) continue; - (*nb_shell_extensions)++; - callback.Run(base::FilePath(dll)); + base::FilePath shell_extension_path = GetInProcServerPath(guid.c_str()); + if (shell_extension_path.empty()) + continue; + + callback.Run(shell_extension_path); } } +// Reads all the shell extensions that are in the Approved list and forwards +// them to |callback|. +void ReadApprovedShellExtensions( + HKEY parent, + const base::RepeatingCallback<void(const base::FilePath&)>& callback) { + for (base::win::RegistryValueIterator iter( + parent, kApprovedShellExtensionRegistryKey); + iter.Valid(); ++iter) { + // Skip the key's default value. + if (!*iter.Name()) + continue; + + base::FilePath shell_extension_path = GetInProcServerPath(iter.Name()); + if (shell_extension_path.empty()) + continue; + + callback.Run(shell_extension_path); + } +} + +// Reads all the shell extensions of type ColumnHandlers. +void ReadColumnHandlers( + const base::RepeatingCallback<void(const base::FilePath&)>& callback) { + // Column handlers can only be applied to folders. + ReadShellExtensions(L"ColumnHandlers", kFolder, callback); +} + +// Reads all the shell extensions of type CopyHookHandlers. +void ReadCopyHookHandlers( + const base::RepeatingCallback<void(const base::FilePath&)>& callback) { + static constexpr const wchar_t* kSupportedShellObjects[] = { + kDirectory, kPrinters, + }; + + for (const auto* shell_object : kSupportedShellObjects) + ReadShellExtensions(L"CopyHookHandlers", shell_object, callback); +} + +// Reads all the shell extensions of type DragDropHandlers. +void ReadDragDropHandlers( + const base::RepeatingCallback<void(const base::FilePath&)>& callback) { + static constexpr const wchar_t* kSupportedShellObjects[] = { + kDirectory, kDrive, kFolder, + }; + + for (const auto* shell_object : kSupportedShellObjects) + ReadShellExtensions(L"DragDropHandlers", shell_object, callback); +} + +// Reads all the shell extensions of type ContextMenuHandlers and +// PropertySheetHandlers. +void ReadContextMenuAndPropertySheetHandlers( + const base::RepeatingCallback<void(const base::FilePath&)>& callback) { + static constexpr const wchar_t* kHandlerTypes[] = { + L"ContextMenuHandlers", L"PropertySheetHandlers", + }; + + // This list is not exhaustive and does not cover cases where a shell + // extension is installed for a specific file extension or a specific + // executable. It should still pick up all the general-purpose shell + // extensions. + static constexpr const wchar_t* kSupportedShellObjects[] = { + kEverything, + kAllFileSystemObjects, + kFolder, + kDirectory, + kDirectoryBackground, + kDesktopBackground, + kDrive, + kNetwork, + kNetShare, + kNetServer, + kPrinters, + }; + + for (const auto* handler_type : kHandlerTypes) { + for (const auto* shell_object : kSupportedShellObjects) + ReadShellExtensions(handler_type, shell_object, callback); + } +} + +// Retrieves the module size and time date stamp for the shell extension and +// forwards it to the callback on |task_runner|. void OnShellExtensionPathEnumerated( scoped_refptr<base::SequencedTaskRunner> task_runner, OnShellExtensionEnumeratedCallback on_shell_extension_enumerated, @@ -73,9 +209,12 @@ } // namespace -const wchar_t kShellExtensionRegistryKey[] = +const wchar_t kApprovedShellExtensionRegistryKey[] = L"Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved"; +const base::Feature kExtendedShellExtensionsEnumeration{ + "ExtendedShellExtensionsEnumeration", base::FEATURE_DISABLED_BY_DEFAULT}; + void EnumerateShellExtensions( OnShellExtensionEnumeratedCallback on_shell_extension_enumerated, base::OnceClosure on_enumeration_finished) { @@ -95,12 +234,15 @@ const base::RepeatingCallback<void(const base::FilePath&)>& callback) { base::ScopedBlockingCall scoped_blocking_call(base::BlockingType::MAY_BLOCK); - int nb_shell_extensions = 0; - ReadShellExtensions(HKEY_LOCAL_MACHINE, callback, &nb_shell_extensions); - ReadShellExtensions(HKEY_CURRENT_USER, callback, &nb_shell_extensions); + ReadApprovedShellExtensions(HKEY_LOCAL_MACHINE, callback); + ReadApprovedShellExtensions(HKEY_CURRENT_USER, callback); - UMA_HISTOGRAM_COUNTS_100("ThirdPartyModules.ShellExtensionsCount2", - nb_shell_extensions); + if (base::FeatureList::IsEnabled(kExtendedShellExtensionsEnumeration)) { + ReadColumnHandlers(callback); + ReadCopyHookHandlers(callback); + ReadDragDropHandlers(callback); + ReadContextMenuAndPropertySheetHandlers(callback); + } } } // namespace internal
diff --git a/chrome/browser/conflicts/enumerate_shell_extensions_win.h b/chrome/browser/conflicts/enumerate_shell_extensions_win.h index 34a3921..3e728b52 100644 --- a/chrome/browser/conflicts/enumerate_shell_extensions_win.h +++ b/chrome/browser/conflicts/enumerate_shell_extensions_win.h
@@ -8,13 +8,18 @@ #include <stdint.h> #include "base/callback_forward.h" +#include "base/feature_list.h" namespace base { class FilePath; } // The path to the registry key where shell extensions are registered. -extern const wchar_t kShellExtensionRegistryKey[]; +extern const wchar_t kApprovedShellExtensionRegistryKey[]; + +// This feature controls whether additional locations are enumerated to find +// shell extensions in the registry. +extern const base::Feature kExtendedShellExtensionsEnumeration; // Finds shell extensions installed on the computer by enumerating the registry. // In addition to the file path, the SizeOfImage and TimeDateStamp of the module
diff --git a/chrome/browser/conflicts/enumerate_shell_extensions_win_unittest.cc b/chrome/browser/conflicts/enumerate_shell_extensions_win_unittest.cc index 80817946..1cfe07f5 100644 --- a/chrome/browser/conflicts/enumerate_shell_extensions_win_unittest.cc +++ b/chrome/browser/conflicts/enumerate_shell_extensions_win_unittest.cc
@@ -4,7 +4,6 @@ #include "chrome/browser/conflicts/enumerate_shell_extensions_win.h" -#include <tuple> #include <vector> #include "base/bind.h" @@ -12,6 +11,7 @@ #include "base/path_service.h" #include "base/stl_util.h" #include "base/strings/stringprintf.h" +#include "base/test/scoped_feature_list.h" #include "base/test/scoped_task_environment.h" #include "base/test/test_reg_util_win.h" #include "chrome/browser/conflicts/module_info_util_win.h" @@ -48,9 +48,9 @@ // Adds a fake shell extension entry to the registry that should be found by // the ShellExtensionEnumerator. The call must be wrapped inside an // ASSERT_NO_FATAL_FAILURE. -void RegisterFakeShellExtension(HKEY key, - const wchar_t* guid, - const wchar_t* path) { +void RegisterFakeApprovedShellExtension(HKEY key, + const wchar_t* guid, + const wchar_t* path) { base::win::RegKey class_id( HKEY_CLASSES_ROOT, base::StringPrintf(kClassIdRegistryKeyFormat, guid).c_str(), KEY_WRITE); @@ -58,10 +58,34 @@ ASSERT_EQ(ERROR_SUCCESS, class_id.WriteValue(nullptr, path)); - base::win::RegKey registration(key, kShellExtensionRegistryKey, KEY_WRITE); + base::win::RegKey registration(key, kApprovedShellExtensionRegistryKey, + KEY_WRITE); ASSERT_EQ(ERROR_SUCCESS, registration.WriteValue(guid, L"")); } +// Adds a fake shell extension entry to the registry that should be found by +// the ShellExtensionEnumerator. The call must be wrapped inside an +// ASSERT_NO_FATAL_FAILURE. +void RegisterFakeShellExtension(const wchar_t* guid, + const wchar_t* path, + const wchar_t* shell_extension_type, + const wchar_t* shell_object_type) { + base::win::RegKey class_id( + HKEY_CLASSES_ROOT, + base::StringPrintf(kClassIdRegistryKeyFormat, guid).c_str(), KEY_WRITE); + ASSERT_TRUE(class_id.Valid()); + + ASSERT_EQ(ERROR_SUCCESS, class_id.WriteValue(nullptr, path)); + + base::win::RegKey registration( + HKEY_CLASSES_ROOT, + base::StringPrintf(L"%ls\\shellex\\%ls\\&ls", shell_object_type, + shell_extension_type, guid) + .c_str(), + KEY_WRITE); + ASSERT_EQ(ERROR_SUCCESS, registration.WriteValue(nullptr, guid)); +} + void OnShellExtensionPathEnumerated( std::vector<base::FilePath>* shell_extension_paths, const base::FilePath& path) { @@ -82,20 +106,23 @@ } // namespace -// Registers a few fake shell extensions then see if +// Registers a few fake approved shell extensions then see if // EnumerateShellExtensionPaths() finds them. -TEST_F(EnumerateShellExtensionsTest, EnumerateShellExtensionPaths) { - const std::tuple<HKEY, const wchar_t*, const wchar_t*> test_cases[] = { +TEST_F(EnumerateShellExtensionsTest, EnumerateApprovedShellExtensionPaths) { + struct { + HKEY hkey_root; + const wchar_t* guid; + const wchar_t* path; + } kTestCases[] = { {HKEY_CURRENT_USER, L"{FAKE_GUID_0001}", L"c:\\module.dll"}, {HKEY_LOCAL_MACHINE, L"{FAKE_GUID_0002}", L"c:\\dir\\shell_ext.dll"}, {HKEY_LOCAL_MACHINE, L"{FAKE_GUID_0003}", L"c:\\path\\test.dll"}, }; - // Register all fake shell extensions in test_cases. - for (const auto& test_case : test_cases) { - ASSERT_NO_FATAL_FAILURE(RegisterFakeShellExtension(std::get<0>(test_case), - std::get<1>(test_case), - std::get<2>(test_case))); + // Register all fake shell extensions in kTestCases. + for (const auto& test_case : kTestCases) { + ASSERT_NO_FATAL_FAILURE(RegisterFakeApprovedShellExtension( + test_case.hkey_root, test_case.guid, test_case.path)); } std::vector<base::FilePath> shell_extension_paths; @@ -104,18 +131,18 @@ base::Unretained(&shell_extension_paths))); ASSERT_EQ(3u, shell_extension_paths.size()); - for (size_t i = 0; i < arraysize(test_cases); i++) { + for (size_t i = 0; i < base::size(kTestCases); i++) { // The inefficiency is fine as long as the number of test cases stays small. - EXPECT_TRUE(base::ContainsValue( - shell_extension_paths, base::FilePath(std::get<2>(test_cases[i])))); + EXPECT_TRUE(base::ContainsValue(shell_extension_paths, + base::FilePath(kTestCases[i].path))); } } -TEST_F(EnumerateShellExtensionsTest, EnumerateShellExtensions) { +TEST_F(EnumerateShellExtensionsTest, EnumerateApprovedShellExtensions) { // Use the current exe file as an arbitrary module that exists. base::FilePath file_exe; ASSERT_TRUE(base::PathService::Get(base::FILE_EXE, &file_exe)); - ASSERT_NO_FATAL_FAILURE(RegisterFakeShellExtension( + ASSERT_NO_FATAL_FAILURE(RegisterFakeApprovedShellExtension( HKEY_LOCAL_MACHINE, L"{FAKE_GUID}", file_exe.value().c_str())); std::vector<base::FilePath> shell_extension_paths; @@ -132,3 +159,43 @@ ASSERT_EQ(1u, shell_extension_paths.size()); EXPECT_EQ(file_exe, shell_extension_paths[0]); } + +TEST_F(EnumerateShellExtensionsTest, EnumerateShellExtensionPaths) { + base::test::ScopedFeatureList scoped_feature_list; + scoped_feature_list.InitAndEnableFeature(kExtendedShellExtensionsEnumeration); + + struct { + const wchar_t* guid; + const wchar_t* path; + const wchar_t* shell_extension_type; + const wchar_t* shell_object_type; + } kTestCases[] = { + {L"{FAKE_GUID_0001}", L"c:\\module.dll", L"ColumnHandlers", L"Folder"}, + {L"{FAKE_GUID_0002}", L"c:\\dir\\shell_ext.dll", L"ContextMenuHandlers", + L"*"}, + {L"{FAKE_GUID_0003}", L"c:\\path\\test.dll", L"CopyHookHandlers", + L"Printers"}, + {L"{FAKE_GUID_0004}", L"c:\\foo\\bar.dll", L"DragDropHandlers", L"Drive"}, + {L"{FAKE_GUID_0005}", L"c:\\foo\\baz.dll", L"PropertySheetHandlers", + L"AllFileSystemObjects"}, + }; + + // Register all fake shell extensions in kTestCases. + for (const auto& test_case : kTestCases) { + ASSERT_NO_FATAL_FAILURE(RegisterFakeShellExtension( + test_case.guid, test_case.path, test_case.shell_extension_type, + test_case.shell_object_type)); + } + + std::vector<base::FilePath> shell_extension_paths; + internal::EnumerateShellExtensionPaths( + base::BindRepeating(&OnShellExtensionPathEnumerated, + base::Unretained(&shell_extension_paths))); + + ASSERT_EQ(5u, shell_extension_paths.size()); + for (size_t i = 0; i < base::size(kTestCases); ++i) { + // The inefficiency is fine as long as the number of test cases stays small. + EXPECT_TRUE(base::ContainsValue(shell_extension_paths, + base::FilePath(kTestCases[i].path))); + } +}
diff --git a/chrome/browser/conflicts/third_party_metrics_recorder_win.cc b/chrome/browser/conflicts/third_party_metrics_recorder_win.cc index eebdbb4..12e3575 100644 --- a/chrome/browser/conflicts/third_party_metrics_recorder_win.cc +++ b/chrome/browser/conflicts/third_party_metrics_recorder_win.cc
@@ -66,6 +66,9 @@ if (module_data.module_properties & ModuleInfoData::kPropertyLoadedModule) AddUnsignedModuleToCrashkeys(module_data.inspection_result->basename); } + + if (module_data.module_properties & ModuleInfoData::kPropertyShellExtension) + shell_extensions_count_++; } void ThirdPartyMetricsRecorder::OnModuleDatabaseIdle() { @@ -89,6 +92,9 @@ module_count_, 1, 500, 50); base::UmaHistogramCustomCounts("ThirdPartyModules.Modules.Unsigned", unsigned_module_count_, 1, 500, 50); + + base::UmaHistogramCounts100("ThirdPartyModules.ShellExtensionsCount3", + shell_extensions_count_); } void ThirdPartyMetricsRecorder::AddUnsignedModuleToCrashkeys(
diff --git a/chrome/browser/conflicts/third_party_metrics_recorder_win.h b/chrome/browser/conflicts/third_party_metrics_recorder_win.h index 8088cb2f..dd411714 100644 --- a/chrome/browser/conflicts/third_party_metrics_recorder_win.h +++ b/chrome/browser/conflicts/third_party_metrics_recorder_win.h
@@ -54,6 +54,9 @@ size_t loaded_third_party_module_count_ = 0; size_t not_loaded_third_party_module_count_ = 0; + // Counts the number of shell extensions. + size_t shell_extensions_count_ = 0; + DISALLOW_COPY_AND_ASSIGN(ThirdPartyMetricsRecorder); };
diff --git a/chrome/browser/extensions/active_tab_permission_granter.cc b/chrome/browser/extensions/active_tab_permission_granter.cc index 92e4877c..a636017 100644 --- a/chrome/browser/extensions/active_tab_permission_granter.cc +++ b/chrome/browser/extensions/active_tab_permission_granter.cc
@@ -73,23 +73,25 @@ tab_process->Send(create_message.Run(false)); } -std::unique_ptr<ActiveTabPermissionGranter::Delegate>& GetDelegateWrapper() { +std::unique_ptr<ActiveTabPermissionGranter::Delegate>& +GetActiveTabPermissionGranterDelegateWrapper() { static base::NoDestructor< std::unique_ptr<ActiveTabPermissionGranter::Delegate>> delegate_wrapper; return *delegate_wrapper; } -ActiveTabPermissionGranter::Delegate* GetDelegate() { - return GetDelegateWrapper().get(); +ActiveTabPermissionGranter::Delegate* GetActiveTabPermissionGranterDelegate() { + return GetActiveTabPermissionGranterDelegateWrapper().get(); } // Returns true if activeTab is allowed to be granted to the extension. This can // return false for platform-specific implementations. bool ShouldGrantActiveTabOrPrompt(const Extension* extension, content::WebContents* web_contents) { - return !GetDelegate() || - GetDelegate()->ShouldGrantActiveTabOrPrompt(extension, web_contents); + return !GetActiveTabPermissionGranterDelegate() || + GetActiveTabPermissionGranterDelegate()->ShouldGrantActiveTabOrPrompt( + extension, web_contents); } } // namespace @@ -109,7 +111,7 @@ // static void ActiveTabPermissionGranter::SetPlatformDelegate( std::unique_ptr<Delegate> delegate) { - GetDelegateWrapper() = std::move(delegate); + GetActiveTabPermissionGranterDelegateWrapper() = std::move(delegate); } void ActiveTabPermissionGranter::GrantIfRequested(const Extension* extension) {
diff --git a/chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_policy_migrator.cc b/chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_policy_migrator.cc index 50cf0293..456d3ce 100644 --- a/chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_policy_migrator.cc +++ b/chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_policy_migrator.cc
@@ -11,12 +11,14 @@ namespace { -// Extension ID for the Chrome Reporting Extension. +// Hash of the Extension ID for the Chrome Reporting Extension. // https://chrome.google.com/webstore/detail/chrome-reporting-extensio/emahakmocgideepebncgnmlmliepgpgb -const char kStableExtensionId[] = "emahakmocgideepebncgnmlmliepgpgb"; +const char kStableHashedExtensionId[] = + "FD15C63ABA854733FDCBC1D4D34A71E963A12ABD"; -// Beta extension ID. -const char kBetaExtensionId[] = "kigjhoekjcpdfjpimbdjegmgecmlicaf"; +// Hash of the beta extension ID. +const char kBetaHashedExtensionId[] = + "08455FA7CB8734168378F731B00B354CEEE0088F"; const policy::ExtensionPolicyMigrator::Migration kMigrations[] = { {"report_version_data", policy::key::kReportVersionData}, @@ -32,8 +34,8 @@ EnterpriseReportingPolicyMigrator::~EnterpriseReportingPolicyMigrator() {} void EnterpriseReportingPolicyMigrator::Migrate(policy::PolicyBundle* bundle) { - CopyPoliciesIfUnset(bundle, kStableExtensionId, kMigrations); - CopyPoliciesIfUnset(bundle, kBetaExtensionId, kMigrations); + CopyPoliciesIfUnset(bundle, kStableHashedExtensionId, kMigrations); + CopyPoliciesIfUnset(bundle, kBetaHashedExtensionId, kMigrations); } } // namespace enterprise_reporting
diff --git a/chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_policy_migrator.h b/chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_policy_migrator.h index f08a41a..cec6057e 100644 --- a/chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_policy_migrator.h +++ b/chrome/browser/extensions/api/enterprise_reporting_private/enterprise_reporting_policy_migrator.h
@@ -5,13 +5,13 @@ #ifndef CHROME_BROWSER_EXTENSIONS_API_ENTERPRISE_REPORTING_PRIVATE_ENTERPRISE_REPORTING_POLICY_MIGRATOR_H_ #define CHROME_BROWSER_EXTENSIONS_API_ENTERPRISE_REPORTING_PRIVATE_ENTERPRISE_REPORTING_POLICY_MIGRATOR_H_ -#include "components/policy/core/common/extension_policy_migrator.h" +#include "chrome/browser/policy/chrome_extension_policy_migrator.h" namespace extensions { namespace enterprise_reporting { class EnterpriseReportingPolicyMigrator - : public policy::ExtensionPolicyMigrator { + : public policy::ChromeExtensionPolicyMigrator { public: EnterpriseReportingPolicyMigrator(); ~EnterpriseReportingPolicyMigrator() override;
diff --git a/chrome/browser/extensions/api/instance_id/instance_id_api.cc b/chrome/browser/extensions/api/instance_id/instance_id_api.cc index 4f1b565..528f8a4 100644 --- a/chrome/browser/extensions/api/instance_id/instance_id_api.cc +++ b/chrome/browser/extensions/api/instance_id/instance_id_api.cc
@@ -50,11 +50,9 @@ } // namespace -InstanceIDApiFunction::InstanceIDApiFunction() { -} +InstanceIDApiFunction::InstanceIDApiFunction() = default; -InstanceIDApiFunction::~InstanceIDApiFunction() { -} +InstanceIDApiFunction::~InstanceIDApiFunction() = default; ExtensionFunction::ResponseAction InstanceIDApiFunction::Run() { if (Profile::FromBrowserContext(browser_context())->IsOffTheRecord()) { @@ -130,6 +128,9 @@ if (params->get_token_params.options.get()) options = params->get_token_params.options->additional_properties; + UMA_HISTOGRAM_COUNTS_100("Extensions.InstanceID.GetToken.OptionsCount", + options.size()); + GetInstanceID()->GetToken( params->get_token_params.authorized_entity, params->get_token_params.scope,
diff --git a/chrome/browser/extensions/api/sync_file_system/sync_file_system_browsertest.cc b/chrome/browser/extensions/api/sync_file_system/sync_file_system_browsertest.cc index 233bfca0c..7e828d1f 100644 --- a/chrome/browser/extensions/api/sync_file_system/sync_file_system_browsertest.cc +++ b/chrome/browser/extensions/api/sync_file_system/sync_file_system_browsertest.cc
@@ -40,7 +40,6 @@ std::unique_ptr<drive::DriveServiceInterface> CreateDriveService( OAuth2TokenService* oauth2_token_service, - net::URLRequestContextGetter* url_request_context_getter, scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, base::SequencedTaskRunner* blocking_task_runner) override { std::unique_ptr<drive::FakeDriveService> drive_service( @@ -96,7 +95,6 @@ extension_service, fake_signin_manager_.get(), // signin_manager nullptr, // token_service - nullptr, // request_context nullptr, // url_loader_factory std::move(drive_service_factory), in_memory_env_.get()); remote_service_->SetSyncEnabled(true);
diff --git a/chrome/browser/extensions/chrome_component_extension_resource_manager.cc b/chrome/browser/extensions/chrome_component_extension_resource_manager.cc index d02f2d87..cce474c 100644 --- a/chrome/browser/extensions/chrome_component_extension_resource_manager.cc +++ b/chrome/browser/extensions/chrome_component_extension_resource_manager.cc
@@ -27,9 +27,9 @@ static const GritResourceMap kExtraComponentExtensionResources[] = { {"web_store/webstore_icon_128.png", IDR_WEBSTORE_ICON}, {"web_store/webstore_icon_16.png", IDR_WEBSTORE_ICON_16}, + {"chrome_app/product_logo_128.png", IDR_PRODUCT_LOGO_128}, + {"chrome_app/product_logo_16.png", IDR_PRODUCT_LOGO_16}, #if defined(OS_CHROMEOS) - {"chrome_app/chrome_app_icon_32.png", IDR_CHROME_APP_ICON_32}, - {"chrome_app/chrome_app_icon_192.png", IDR_CHROME_APP_ICON_192}, {"webstore_widget/app/icons/icon_16.png", IDR_WEBSTORE_ICON_16}, {"webstore_widget/app/icons/icon_32.png", IDR_WEBSTORE_ICON_32}, {"webstore_widget/app/icons/icon_128.png", IDR_WEBSTORE_ICON},
diff --git a/chrome/browser/extensions/extension_tab_util.cc b/chrome/browser/extensions/extension_tab_util.cc index 476c39c..887f2cad 100644 --- a/chrome/browser/extensions/extension_tab_util.cc +++ b/chrome/browser/extensions/extension_tab_util.cc
@@ -106,14 +106,15 @@ return SessionTabHelper::IdForTab(web_contents).id(); } -std::unique_ptr<ExtensionTabUtil::Delegate>& GetDelegateWrapper() { +std::unique_ptr<ExtensionTabUtil::Delegate>& +GetExtensionTabUtilDelegateWrapper() { static base::NoDestructor<std::unique_ptr<ExtensionTabUtil::Delegate>> delegate_wrapper; return *delegate_wrapper; } -ExtensionTabUtil::Delegate* GetDelegate() { - return GetDelegateWrapper().get(); +ExtensionTabUtil::Delegate* GetExtensionTabUtilDelegate() { + return GetExtensionTabUtilDelegateWrapper().get(); } } // namespace @@ -500,7 +501,7 @@ // static void ExtensionTabUtil::SetPlatformDelegate(std::unique_ptr<Delegate> delegate) { - GetDelegateWrapper() = std::move(delegate); + GetExtensionTabUtilDelegateWrapper() = std::move(delegate); } // static @@ -530,8 +531,10 @@ tab->title.reset(); tab->fav_icon_url.reset(); } - if (GetDelegate()) - GetDelegate()->ScrubTabForExtension(extension, contents, tab); + if (GetExtensionTabUtilDelegate()) { + GetExtensionTabUtilDelegate()->ScrubTabForExtension(extension, contents, + tab); + } } bool ExtensionTabUtil::GetTabStripModel(const WebContents* web_contents,
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index 11f9983..4792f43 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -2503,11 +2503,6 @@ const char kLongPressBackForHistoryDescription[] = "Long press system back button to show navigation history if enabled"; -const char kLongPressBackNewDesignName[] = "Long Press Back New Design"; -const char kLongPressBackNewDesignDescription[] = - "Long press system back button to show material design refreshed navigation" - " popup if enabled"; - const char kLsdPermissionPromptName[] = "Location Settings Dialog Permission Prompt"; const char kLsdPermissionPromptDescription[] = @@ -2770,6 +2765,12 @@ const char kAutofillDropdownLayoutDescription[] = "Alternate visual designs for the Autofill dropdown."; +const char kAutofillPrimaryInfoStyleExperimentName[] = + "Autofill experiment with primary info style"; +const char kAutofillPrimaryInfoStyleExperimentDescription[] = + "Allow experimentation with different typefaces for primary info on the " + "Autofill dropdown (addresses and payment methods)"; + const char kDoodlesOnLocalNtpName[] = "Enable doodles on the local NTP"; const char kDoodlesOnLocalNtpDescription[] = "Show doodles on the local New Tab page if Google is the default search "
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index baa2ebe5..650842b 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -1507,9 +1507,6 @@ extern const char kLongPressBackForHistoryName[]; extern const char kLongPressBackForHistoryDescription[]; -extern const char kLongPressBackNewDesignName[]; -extern const char kLongPressBackNewDesignDescription[]; - extern const char kLsdPermissionPromptName[]; extern const char kLsdPermissionPromptDescription[]; @@ -1673,6 +1670,9 @@ extern const char kAutofillDropdownLayoutName[]; extern const char kAutofillDropdownLayoutDescription[]; +extern const char kAutofillPrimaryInfoStyleExperimentName[]; +extern const char kAutofillPrimaryInfoStyleExperimentDescription[]; + extern const char kDoodlesOnLocalNtpName[]; extern const char kDoodlesOnLocalNtpDescription[];
diff --git a/chrome/browser/guest_view/mime_handler_view/chrome_mime_handler_view_browsertest.cc b/chrome/browser/guest_view/mime_handler_view/chrome_mime_handler_view_browsertest.cc index a96662d8..756ef72 100644 --- a/chrome/browser/guest_view/mime_handler_view/chrome_mime_handler_view_browsertest.cc +++ b/chrome/browser/guest_view/mime_handler_view/chrome_mime_handler_view_browsertest.cc
@@ -18,6 +18,7 @@ #include "content/public/browser/web_contents.h" #include "content/public/common/content_switches.h" #include "content/public/test/browser_test_utils.h" +#include "content/public/test/hit_test_region_observer.h" #include "content/public/test/test_renderer_host.h" #include "extensions/browser/api/extensions_api_client.h" #include "extensions/browser/guest_view/mime_handler_view/test_mime_handler_view_guest.h" @@ -131,6 +132,26 @@ DISALLOW_COPY_AND_ASSIGN(ChromeMimeHandlerViewBrowserPluginTest); }; +// Helper class to monitor focus on a WebContents with BrowserPlugin (guest). +class FocusChangeWaiter { + public: + explicit FocusChangeWaiter(content::WebContents* web_contents, + bool expected_focus) + : web_contents_(web_contents), expected_focus_(expected_focus) {} + ~FocusChangeWaiter() {} + + void WaitForFocusChange() { + while (expected_focus_ != + IsWebContentsBrowserPluginFocused(web_contents_)) { + base::RunLoop().RunUntilIdle(); + } + } + + private: + content::WebContents* web_contents_; + bool expected_focus_; +}; + // Flaky under MSan: https://crbug.com/837757 #if defined(MEMORY_SANITIZER) #define MAYBE_BP_AutoResizeMessages DISABLED_AutoResizeMessages @@ -255,6 +276,49 @@ waiter.Wait(); EXPECT_TRUE(aura_webview->HasFocus()); } + +IN_PROC_BROWSER_TEST_F(ChromeMimeHandlerViewBrowserPluginTest, + TouchFocusesBrowserPluginInEmbedder) { + InitializeTestPage(embedded_test_server()->GetURL("/test_embedded.html")); + + auto embedder_rect = embedder_web_contents()->GetContainerBounds(); + auto guest_rect = guest_web_contents()->GetContainerBounds(); + + guest_rect.set_x(guest_rect.x() - embedder_rect.x()); + guest_rect.set_y(guest_rect.y() - embedder_rect.y()); + embedder_rect.set_x(0); + embedder_rect.set_y(0); + + // Don't send events that need to be routed until we know the child's surface + // is ready for hit testing. + content::WaitForHitTestDataOrGuestSurfaceReady(guest_web_contents()); + + // 1) BrowserPlugin should not be focused at start. + ASSERT_FALSE(IsWebContentsBrowserPluginFocused(guest_web_contents())); + + // 2) Send touch event to guest, now BrowserPlugin should get focus. + { + gfx::Point point = guest_rect.CenterPoint(); + FocusChangeWaiter focus_waiter(guest_web_contents(), true); + SendRoutedTouchTapSequence(embedder_web_contents(), point); + SendRoutedGestureTapSequence(embedder_web_contents(), point); + focus_waiter.WaitForFocusChange(); + ASSERT_TRUE(IsWebContentsBrowserPluginFocused(guest_web_contents())); + } + + // 3) Send touch start to embedder, now BrowserPlugin should lose focus. + { + // Choose a point outside of guest (but inside the embedder). + gfx::Point point = guest_rect.bottom_right(); + point += gfx::Vector2d(10, 10); + EXPECT_TRUE(embedder_rect.Contains(point)); + FocusChangeWaiter focus_waiter(guest_web_contents(), false); + SendRoutedTouchTapSequence(embedder_web_contents(), point); + SendRoutedGestureTapSequence(embedder_web_contents(), point); + focus_waiter.WaitForFocusChange(); + ASSERT_FALSE(IsWebContentsBrowserPluginFocused(guest_web_contents())); + } +} #endif // USE_AURA class ChromeMimeHandlerViewBrowserPluginScrollTest
diff --git a/chrome/browser/interstitials/OWNERS b/chrome/browser/interstitials/OWNERS index 0e2dd174..f385dce 100644 --- a/chrome/browser/interstitials/OWNERS +++ b/chrome/browser/interstitials/OWNERS
@@ -1,3 +1,4 @@ +carlosil@chromium.org estark@chromium.org felt@chromium.org mattm@chromium.org
diff --git a/chrome/browser/memory_details_android.cc b/chrome/browser/memory_details_android.cc index a19301de..027e328 100644 --- a/chrome/browser/memory_details_android.cc +++ b/chrome/browser/memory_details_android.cc
@@ -12,7 +12,7 @@ #include "base/bind.h" #include "base/process/process_iterator.h" #include "base/strings/utf_string_conversions.h" -#include "base/threading/thread_restrictions.h" +#include "base/threading/scoped_blocking_call.h" #include "chrome/common/chrome_constants.h" #include "chrome/grit/chromium_strings.h" #include "content/public/browser/browser_thread.h" @@ -113,7 +113,7 @@ void MemoryDetails::CollectProcessData( const std::vector<ProcessMemoryInformation>& chrome_processes) { - base::AssertBlockingAllowed(); + base::ScopedBlockingCall scoped_blocking_call(base::BlockingType::WILL_BLOCK); std::vector<ProcessMemoryInformation> all_processes(chrome_processes); AddNonChildChromeProcesses(&all_processes);
diff --git a/chrome/browser/net/system_network_context_manager.cc b/chrome/browser/net/system_network_context_manager.cc index 92b67ed..212b313 100644 --- a/chrome/browser/net/system_network_context_manager.cc +++ b/chrome/browser/net/system_network_context_manager.cc
@@ -5,10 +5,8 @@ #include "chrome/browser/net/system_network_context_manager.h" #include <set> -#include <string> #include <unordered_map> #include <utility> -#include <vector> #include "base/command_line.h" #include "base/feature_list.h" @@ -97,31 +95,38 @@ local_state->GetList(prefs::kDnsOverHttpsServers)->GetList(); const auto& doh_server_method_list = local_state->GetList(prefs::kDnsOverHttpsServerMethods)->GetList(); - DCHECK_EQ(doh_server_list.size(), doh_server_method_list.size()); - for (size_t i = 0; - i < doh_server_list.size() && i < doh_server_method_list.size(); ++i) { - if (!doh_server_list[i].is_string() || - !doh_server_method_list[i].is_string()) { - continue; + // The two lists may have mismatched lengths during a pref change. Just skip + // the DOH server list updates then, as the configuration may be incorrect. + // + // TODO(mmenke): May need to improve safety here when / if DNS over HTTPS is + // exposed via settings, as it's possible for the old and new lengths to be + // the same, but the servers not to match. Either a PostTask or merging the + // prefs would work around that. + if (doh_server_list.size() == doh_server_method_list.size()) { + for (size_t i = 0; i < doh_server_list.size(); ++i) { + if (!doh_server_list[i].is_string() || + !doh_server_method_list[i].is_string()) { + continue; + } + + if (!net::IsValidDoHTemplate(doh_server_list[i].GetString(), + doh_server_method_list[i].GetString())) { + continue; + } + + if (!dns_over_https_servers->has_value()) { + *dns_over_https_servers = base::make_optional< + std::vector<network::mojom::DnsOverHttpsServerPtr>>(); + } + + network::mojom::DnsOverHttpsServerPtr dns_over_https_server = + network::mojom::DnsOverHttpsServer::New(); + dns_over_https_server->server_template = doh_server_list[i].GetString(); + dns_over_https_server->use_post = + (doh_server_method_list[i].GetString() == "POST"); + (*dns_over_https_servers)->emplace_back(std::move(dns_over_https_server)); } - - if (!net::IsValidDoHTemplate(doh_server_list[i].GetString(), - doh_server_method_list[i].GetString())) { - continue; - } - - if (!dns_over_https_servers->has_value()) { - *dns_over_https_servers = base::make_optional< - std::vector<network::mojom::DnsOverHttpsServerPtr>>(); - } - - network::mojom::DnsOverHttpsServerPtr dns_over_https_server = - network::mojom::DnsOverHttpsServer::New(); - dns_over_https_server->server_template = doh_server_list[i].GetString(); - dns_over_https_server->use_post = - (doh_server_method_list[i].GetString() == "POST"); - (*dns_over_https_servers)->emplace_back(std::move(dns_over_https_server)); } *stub_resolver_enabled = @@ -624,6 +629,23 @@ url_loader_factory_.FlushForTesting(); } +void SystemNetworkContextManager::GetStubResolverConfigForTesting( + bool* stub_resolver_enabled, + base::Optional<std::vector<network::mojom::DnsOverHttpsServerPtr>>* + dns_over_https_servers) { + GetStubResolverConfig(stub_resolver_enabled, dns_over_https_servers); +} + +network::mojom::HttpAuthStaticParamsPtr +SystemNetworkContextManager::GetHttpAuthStaticParamsForTesting() { + return CreateHttpAuthStaticParams(); +} + +network::mojom::HttpAuthDynamicParamsPtr +SystemNetworkContextManager::GetHttpAuthDynamicParamsForTesting() { + return CreateHttpAuthDynamicParams(); +} + network::mojom::NetworkContextParamsPtr SystemNetworkContextManager::CreateNetworkContextParams() { // TODO(mmenke): Set up parameters here (in memory cookie store, etc).
diff --git a/chrome/browser/net/system_network_context_manager.h b/chrome/browser/net/system_network_context_manager.h index a05c31a5..c3a7e23 100644 --- a/chrome/browser/net/system_network_context_manager.h +++ b/chrome/browser/net/system_network_context_manager.h
@@ -7,6 +7,7 @@ #include <memory> #include <string> +#include <vector> #include "base/macros.h" #include "base/memory/ref_counted.h" @@ -124,6 +125,17 @@ // use only. void FlushNetworkInterfaceForTesting(); + // Returns configuration that would be sent to the stub DNS resolver. + static void GetStubResolverConfigForTesting( + bool* stub_resolver_enabled, + base::Optional<std::vector<network::mojom::DnsOverHttpsServerPtr>>* + dns_over_https_servers); + + static network::mojom::HttpAuthStaticParamsPtr + GetHttpAuthStaticParamsForTesting(); + static network::mojom::HttpAuthDynamicParamsPtr + GetHttpAuthDynamicParamsForTesting(); + private: class URLLoaderFactoryForSystem;
diff --git a/chrome/browser/net/system_network_context_manager_browsertest.cc b/chrome/browser/net/system_network_context_manager_browsertest.cc new file mode 100644 index 0000000..5175d646 --- /dev/null +++ b/chrome/browser/net/system_network_context_manager_browsertest.cc
@@ -0,0 +1,273 @@ +// 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/net/system_network_context_manager.h" + +#include <string> +#include <vector> + +#include "base/feature_list.h" +#include "base/optional.h" +#include "base/test/scoped_feature_list.h" +#include "base/values.h" +#include "build/build_config.h" +#include "chrome/browser/browser_process.h" +#include "chrome/common/chrome_features.h" +#include "chrome/common/pref_names.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "components/prefs/pref_service.h" +#include "services/network/public/mojom/network_context.mojom.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace { + +void GetStubResolverConfig( + bool* stub_resolver_enabled, + base::Optional<std::vector<network::mojom::DnsOverHttpsServerPtr>>* + dns_over_https_servers) { + dns_over_https_servers->reset(); + + SystemNetworkContextManager::GetStubResolverConfigForTesting( + stub_resolver_enabled, dns_over_https_servers); +} + +// Checks the values returned by GetStubResolverConfigForTesting() match +// |async_dns_feature_enabled| (With empty DNS over HTTPS prefs). Then sets +// various DNS over HTTPS servers, and makes sure the settings are respected. +void RunStubResolverConfigTests(bool async_dns_feature_enabled) { + // Check initial state. + bool stub_resolver_enabled = !async_dns_feature_enabled; + base::Optional<std::vector<network::mojom::DnsOverHttpsServerPtr>> + dns_over_https_servers; + GetStubResolverConfig(&stub_resolver_enabled, &dns_over_https_servers); + EXPECT_EQ(async_dns_feature_enabled, stub_resolver_enabled); + EXPECT_FALSE(dns_over_https_servers.has_value()); + + // Check state after setting various DNS over HTTPS preferences. + + // The POST template is only valid for POSTs, though the GET template is + // technically valid for both POSTs and GETs. + const char kGoodPostTemplate[] = "https://foo.test/"; + const char kGoodGetTemplate[] = "https://bar.test/dns-query{?dns}"; + const char kBadTemplate[] = "dns-query{?dns}"; + + const char kPost[] = "POST"; + // The code actually looks for POST and not-POST, but may as well use "GET" + // for not-POST. + const char kGet[] = "GET"; + + PrefService* local_state = g_browser_process->local_state(); + base::Value servers(base::Value::Type::LIST); + base::Value methods(base::Value::Type::LIST); + + // Test cases with server and method length mismatches. This shouldn't happen + // at steady state, but can happen during pref changes. + + servers.GetList().push_back(base::Value(kGoodGetTemplate)); + local_state->Set(prefs::kDnsOverHttpsServers, servers); + local_state->Set(prefs::kDnsOverHttpsServerMethods, methods); + GetStubResolverConfig(&stub_resolver_enabled, &dns_over_https_servers); + EXPECT_EQ(async_dns_feature_enabled, stub_resolver_enabled); + EXPECT_FALSE(dns_over_https_servers.has_value()); + servers.GetList().clear(); + methods.GetList().clear(); + + methods.GetList().push_back(base::Value(kPost)); + local_state->Set(prefs::kDnsOverHttpsServers, servers); + local_state->Set(prefs::kDnsOverHttpsServerMethods, methods); + GetStubResolverConfig(&stub_resolver_enabled, &dns_over_https_servers); + EXPECT_EQ(async_dns_feature_enabled, stub_resolver_enabled); + EXPECT_FALSE(dns_over_https_servers.has_value()); + servers.GetList().clear(); + methods.GetList().clear(); + + // Test case with incorrect server type. + servers.GetList().push_back(base::Value(15)); + methods.GetList().push_back(base::Value(kPost)); + local_state->Set(prefs::kDnsOverHttpsServers, servers); + local_state->Set(prefs::kDnsOverHttpsServerMethods, methods); + GetStubResolverConfig(&stub_resolver_enabled, &dns_over_https_servers); + EXPECT_EQ(async_dns_feature_enabled, stub_resolver_enabled); + EXPECT_FALSE(dns_over_https_servers.has_value()); + servers.GetList().clear(); + methods.GetList().clear(); + + // Test case with incorrect method type. + servers.GetList().push_back(base::Value(kGoodGetTemplate)); + methods.GetList().push_back(base::Value(3.14)); + local_state->Set(prefs::kDnsOverHttpsServers, servers); + local_state->Set(prefs::kDnsOverHttpsServerMethods, methods); + GetStubResolverConfig(&stub_resolver_enabled, &dns_over_https_servers); + EXPECT_EQ(async_dns_feature_enabled, stub_resolver_enabled); + EXPECT_FALSE(dns_over_https_servers.has_value()); + servers.GetList().clear(); + methods.GetList().clear(); + + // Test case with one bad template. + servers.GetList().push_back(base::Value(kBadTemplate)); + methods.GetList().push_back(base::Value(kPost)); + local_state->Set(prefs::kDnsOverHttpsServers, servers); + local_state->Set(prefs::kDnsOverHttpsServerMethods, methods); + GetStubResolverConfig(&stub_resolver_enabled, &dns_over_https_servers); + EXPECT_EQ(async_dns_feature_enabled, stub_resolver_enabled); + EXPECT_FALSE(dns_over_https_servers.has_value()); + servers.GetList().clear(); + methods.GetList().clear(); + + // Test case with one good template. + servers.GetList().push_back(base::Value(kGoodPostTemplate)); + methods.GetList().push_back(base::Value(kPost)); + local_state->Set(prefs::kDnsOverHttpsServers, servers); + local_state->Set(prefs::kDnsOverHttpsServerMethods, methods); + GetStubResolverConfig(&stub_resolver_enabled, &dns_over_https_servers); + EXPECT_EQ(true, stub_resolver_enabled); + ASSERT_TRUE(dns_over_https_servers.has_value()); + ASSERT_EQ(1u, dns_over_https_servers->size()); + EXPECT_EQ(kGoodPostTemplate, dns_over_https_servers->at(0)->server_template); + EXPECT_EQ(true, dns_over_https_servers->at(0)->use_post); + servers.GetList().clear(); + methods.GetList().clear(); + + // Test case with one good template, one bad one. + servers.GetList().push_back(base::Value(kGoodGetTemplate)); + methods.GetList().push_back(base::Value(kGet)); + servers.GetList().push_back(base::Value(kBadTemplate)); + methods.GetList().push_back(base::Value(kPost)); + local_state->Set(prefs::kDnsOverHttpsServers, servers); + local_state->Set(prefs::kDnsOverHttpsServerMethods, methods); + GetStubResolverConfig(&stub_resolver_enabled, &dns_over_https_servers); + EXPECT_EQ(true, stub_resolver_enabled); + ASSERT_TRUE(dns_over_https_servers.has_value()); + ASSERT_EQ(1u, dns_over_https_servers->size()); + EXPECT_EQ(kGoodGetTemplate, dns_over_https_servers->at(0)->server_template); + EXPECT_EQ(false, dns_over_https_servers->at(0)->use_post); + servers.GetList().clear(); + methods.GetList().clear(); + + // Test case with two good templates. + servers.GetList().push_back(base::Value(kGoodPostTemplate)); + methods.GetList().push_back(base::Value(kPost)); + servers.GetList().push_back(base::Value(kGoodGetTemplate)); + methods.GetList().push_back(base::Value(kGet)); + local_state->Set(prefs::kDnsOverHttpsServers, servers); + local_state->Set(prefs::kDnsOverHttpsServerMethods, methods); + GetStubResolverConfig(&stub_resolver_enabled, &dns_over_https_servers); + EXPECT_EQ(true, stub_resolver_enabled); + ASSERT_TRUE(dns_over_https_servers.has_value()); + ASSERT_EQ(2u, dns_over_https_servers->size()); + EXPECT_EQ(kGoodPostTemplate, dns_over_https_servers->at(0)->server_template); + EXPECT_EQ(true, dns_over_https_servers->at(0)->use_post); + EXPECT_EQ(kGoodGetTemplate, dns_over_https_servers->at(1)->server_template); + EXPECT_EQ(false, dns_over_https_servers->at(1)->use_post); + servers.GetList().clear(); + methods.GetList().clear(); +} + +} // namespace + +using SystemNetworkContextManagerBrowsertest = InProcessBrowserTest; + +IN_PROC_BROWSER_TEST_F(SystemNetworkContextManagerBrowsertest, + StubResolverDefaultConfig) { + RunStubResolverConfigTests(base::FeatureList::IsEnabled(features::kAsyncDns)); +} + +IN_PROC_BROWSER_TEST_F(SystemNetworkContextManagerBrowsertest, + StaticAuthParams) { + // Test defaults. + network::mojom::HttpAuthStaticParamsPtr static_params = + SystemNetworkContextManager::GetHttpAuthStaticParamsForTesting(); + EXPECT_THAT(static_params->supported_schemes, + testing::ElementsAre("basic", "digest", "ntlm", "negotiate")); + EXPECT_EQ("", static_params->gssapi_library_name); + + // Test that prefs are reflected in params. + + PrefService* local_state = g_browser_process->local_state(); + + local_state->SetString(prefs::kAuthSchemes, "basic"); + static_params = + SystemNetworkContextManager::GetHttpAuthStaticParamsForTesting(); + EXPECT_THAT(static_params->supported_schemes, testing::ElementsAre("basic")); + +#if defined(OS_POSIX) && !defined(OS_ANDROID) && !defined(OS_CHROMEOS) + const char dev_null[] = "/dev/null"; + local_state->SetString(prefs::kGSSAPILibraryName, dev_null); + static_params = + SystemNetworkContextManager::GetHttpAuthStaticParamsForTesting(); + EXPECT_EQ(dev_null, static_params->gssapi_library_name); +#endif +} + +IN_PROC_BROWSER_TEST_F(SystemNetworkContextManagerBrowsertest, AuthParams) { + // Test defaults. + network::mojom::HttpAuthDynamicParamsPtr dynamic_params = + SystemNetworkContextManager::GetHttpAuthDynamicParamsForTesting(); + EXPECT_EQ(false, dynamic_params->negotiate_disable_cname_lookup); + EXPECT_EQ(false, dynamic_params->enable_negotiate_port); + EXPECT_EQ("", dynamic_params->server_whitelist); + EXPECT_EQ("", dynamic_params->delegate_whitelist); + + PrefService* local_state = g_browser_process->local_state(); + + local_state->SetBoolean(prefs::kDisableAuthNegotiateCnameLookup, true); + dynamic_params = + SystemNetworkContextManager::GetHttpAuthDynamicParamsForTesting(); + EXPECT_EQ(true, dynamic_params->negotiate_disable_cname_lookup); + EXPECT_EQ(false, dynamic_params->enable_negotiate_port); + EXPECT_EQ("", dynamic_params->server_whitelist); + EXPECT_EQ("", dynamic_params->delegate_whitelist); + + local_state->SetBoolean(prefs::kEnableAuthNegotiatePort, true); + dynamic_params = + SystemNetworkContextManager::GetHttpAuthDynamicParamsForTesting(); + EXPECT_EQ(true, dynamic_params->negotiate_disable_cname_lookup); + EXPECT_EQ(true, dynamic_params->enable_negotiate_port); + EXPECT_EQ("", dynamic_params->server_whitelist); + EXPECT_EQ("", dynamic_params->delegate_whitelist); + + const char kServerWhiteList[] = "foo"; + local_state->SetString(prefs::kAuthServerWhitelist, kServerWhiteList); + dynamic_params = + SystemNetworkContextManager::GetHttpAuthDynamicParamsForTesting(); + EXPECT_EQ(true, dynamic_params->negotiate_disable_cname_lookup); + EXPECT_EQ(true, dynamic_params->enable_negotiate_port); + EXPECT_EQ(kServerWhiteList, dynamic_params->server_whitelist); + EXPECT_EQ("", dynamic_params->delegate_whitelist); + + const char kDelegateWhiteList[] = "bar, baz"; + local_state->SetString(prefs::kAuthNegotiateDelegateWhitelist, + kDelegateWhiteList); + dynamic_params = + SystemNetworkContextManager::GetHttpAuthDynamicParamsForTesting(); + EXPECT_EQ(true, dynamic_params->negotiate_disable_cname_lookup); + EXPECT_EQ(true, dynamic_params->enable_negotiate_port); + EXPECT_EQ(kServerWhiteList, dynamic_params->server_whitelist); + EXPECT_EQ(kDelegateWhiteList, dynamic_params->delegate_whitelist); +} + +class SystemNetworkContextManagerStubResolverBrowsertest + : public SystemNetworkContextManagerBrowsertest, + public testing::WithParamInterface<bool> { + public: + SystemNetworkContextManagerStubResolverBrowsertest() { + scoped_feature_list_.InitWithFeatureState(features::kAsyncDns, GetParam()); + } + ~SystemNetworkContextManagerStubResolverBrowsertest() override {} + + void SetUpOnMainThread() override {} + + private: + base::test::ScopedFeatureList scoped_feature_list_; +}; + +IN_PROC_BROWSER_TEST_P(SystemNetworkContextManagerStubResolverBrowsertest, + StubResolverConfig) { + RunStubResolverConfigTests(GetParam()); +} + +INSTANTIATE_TEST_CASE_P(, + SystemNetworkContextManagerStubResolverBrowsertest, + ::testing::Values(false, true));
diff --git a/chrome/browser/notifications/notification_platform_bridge_win.cc b/chrome/browser/notifications/notification_platform_bridge_win.cc index 328aac10..9c8ac008 100644 --- a/chrome/browser/notifications/notification_platform_bridge_win.cc +++ b/chrome/browser/notifications/notification_platform_bridge_win.cc
@@ -258,8 +258,7 @@ std::vector<winui::Notifications::IToastNotification*> notifications; GetNotifications(profile_id, incognito, ¬ifications); - for (winui::Notifications::IToastNotification* notification : - notifications) { + for (auto* notification : notifications) { winui::Notifications::IToastNotification2* t2 = nullptr; HRESULT hr = notification->QueryInterface(&t2); if (FAILED(hr)) @@ -546,8 +545,7 @@ GetNotifications(profile_id, incognito, ¬ifications); auto displayed_notifications = std::make_unique<std::set<std::string>>(); - for (winui::Notifications::IToastNotification* notification : - notifications) { + for (auto* notification : notifications) { NotificationLaunchId launch_id(GetNotificationLaunchId(notification)); if (!launch_id.is_valid()) { LogGetDisplayedLaunchIdStatus( @@ -877,7 +875,10 @@ // static bool NotificationPlatformBridgeWin::NativeNotificationEnabled() { - return base::win::GetVersion() >= base::win::VERSION_WIN10_RS1 && + // Windows 10 native notification seems to have memory leak issues on OS + // builds older than 17134 (i.e., VERSION_WIN10_RS4). This seems to be a + // Windows issue which has been fixed in 17134. + return base::win::GetVersion() >= base::win::VERSION_WIN10_RS4 && base::FeatureList::IsEnabled(features::kNativeNotifications); }
diff --git a/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc index 2537a52d..8e9b296e 100644 --- a/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc +++ b/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.cc
@@ -244,6 +244,13 @@ RecordHistograms(); } +void AdsPageLoadMetricsObserver::OnResourceDataUseObserved( + const std::vector<page_load_metrics::mojom::ResourceDataUpdatePtr>& + resources) { + for (auto const& resource : resources) + UpdateResource(resource); +} + void AdsPageLoadMetricsObserver::OnSubframeNavigationEvaluated( content::NavigationHandle* navigation_handle, subresource_filter::LoadPolicy load_policy, @@ -344,10 +351,85 @@ } } +void AdsPageLoadMetricsObserver::UpdateResource( + const page_load_metrics::mojom::ResourceDataUpdatePtr& resource) { + auto it = page_resources_.find(resource->request_id); + // A new resource has been observed. + if (it == page_resources_.end()) + total_number_page_resources_++; + + page_resource_bytes_ += resource->delta_bytes; + if (resource->reported_as_ad_resource) { + // If the resource had already started loading, and is now labeled as an ad, + // but was not before, we need to account for all the previously received + // bytes. + bool is_new_ad = + (it != page_resources_.end()) && !it->second->reported_as_ad_resource; + int unaccounted_ad_bytes = + is_new_ad ? resource->received_data_length - resource->delta_bytes : 0; + page_ad_resource_bytes_ += resource->delta_bytes + unaccounted_ad_bytes; + if (resource->is_main_frame_resource) { + page_main_frame_ad_resource_bytes_ += + resource->delta_bytes + unaccounted_ad_bytes; + } + } + + // Update resource map. + if (resource->is_complete) { + RecordResourceHistogram(resource); + if (it != page_resources_.end()) + page_resources_.erase(it); + } else { + // Must clone resource so it will be accessible when the observer is + // destroyed. + if (it != page_resources_.end()) { + it->second = resource->Clone(); + } else { + page_resources_.emplace(std::piecewise_construct, + std::forward_as_tuple(resource->request_id), + std::forward_as_tuple(resource->Clone())); + } + } +} + +void AdsPageLoadMetricsObserver::RecordResourceHistogram( + const page_load_metrics::mojom::ResourceDataUpdatePtr& resource) { + if (resource->is_main_frame_resource && resource->reported_as_ad_resource) { + PAGE_BYTES_HISTOGRAM("Ads.ResourceUsage.Size.Mainframe.AdResource", + resource->received_data_length); + } else if (resource->is_main_frame_resource) { + PAGE_BYTES_HISTOGRAM("Ads.ResourceUsage.Size.Mainframe.VanillaResource", + resource->received_data_length); + } else if (resource->reported_as_ad_resource) { + PAGE_BYTES_HISTOGRAM("Ads.ResourceUsage.Size.Subframe.AdResource", + resource->received_data_length); + } else { + PAGE_BYTES_HISTOGRAM("Ads.ResourceUsage.Size.Subframe.VanillaResource", + resource->received_data_length); + } +} + +void AdsPageLoadMetricsObserver::RecordPageResourceTotalHistograms() { + PAGE_BYTES_HISTOGRAM("PageLoad.Clients.Ads.Resources.Bytes.Total", + page_resource_bytes_); + PAGE_BYTES_HISTOGRAM("PageLoad.Clients.Ads.Resources.Bytes.Ads", + page_ad_resource_bytes_); + PAGE_BYTES_HISTOGRAM("PageLoad.Clients.Ads.Resources.Bytes.TopLevelAds", + page_main_frame_ad_resource_bytes_); + size_t unfinished_bytes = 0; + for (auto const& kv : page_resources_) + unfinished_bytes += kv.second->received_data_length; + PAGE_BYTES_HISTOGRAM("PageLoad.Clients.Ads.Resources.Bytes.Unfinished", + unfinished_bytes); +} + void AdsPageLoadMetricsObserver::RecordHistograms() { RecordHistogramsForType(AD_TYPE_GOOGLE); RecordHistogramsForType(AD_TYPE_SUBRESOURCE_FILTER); RecordHistogramsForType(AD_TYPE_ALL); + RecordPageResourceTotalHistograms(); + for (auto const& kv : page_resources_) + RecordResourceHistogram(kv.second); } void AdsPageLoadMetricsObserver::RecordHistogramsForType(int ad_type) {
diff --git a/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.h b/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.h index c63d064..08e377a9 100644 --- a/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.h +++ b/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer.h
@@ -13,6 +13,7 @@ #include "base/macros.h" #include "base/scoped_observer.h" #include "chrome/browser/page_load_metrics/page_load_metrics_observer.h" +#include "chrome/common/page_load_metrics/page_load_metrics.mojom.h" #include "components/subresource_filter/content/browser/subresource_filter_observer.h" #include "components/subresource_filter/content/browser/subresource_filter_observer_manager.h" #include "components/subresource_filter/core/common/load_policy.h" @@ -71,6 +72,9 @@ extra_request_info) override; void OnComplete(const page_load_metrics::mojom::PageLoadTiming& timing, const page_load_metrics::PageLoadExtraInfo& info) override; + void OnResourceDataUseObserved( + const std::vector<page_load_metrics::mojom::ResourceDataUpdatePtr>& + resources) override; private: struct AdFrameData { @@ -107,6 +111,15 @@ void ProcessLoadedResource( const page_load_metrics::ExtraRequestCompleteInfo& extra_request_info); + // Update all of the per-resource page counters given a new resource data + // update. Updates |page_resources_| to reflect the new state of the resource. + // Called once per ResourceDataUpdate. + void UpdateResource( + const page_load_metrics::mojom::ResourceDataUpdatePtr& resource); + + void RecordResourceHistogram( + const page_load_metrics::mojom::ResourceDataUpdatePtr& resource); + void RecordPageResourceTotalHistograms(); void RecordHistograms(); void RecordHistogramsForType(int ad_type); @@ -137,6 +150,18 @@ std::map<FrameTreeNodeId, page_load_metrics::ExtraRequestCompleteInfo> ongoing_navigation_resources_; + // Maps a request_id for a blink resource to the metadata for the resource + // load. Only contains resources that have not completed loading. + std::map<int, page_load_metrics::mojom::ResourceDataUpdatePtr> + page_resources_; + + // Tallies for bytes and counts observed in resource data updates for the + // entire page. + size_t page_resource_bytes_ = 0u; + size_t page_ad_resource_bytes_ = 0u; + size_t page_main_frame_ad_resource_bytes_ = 0u; + uint32_t total_number_page_resources_ = 0; + size_t page_bytes_ = 0u; size_t uncached_page_bytes_ = 0u; bool committed_ = false;
diff --git a/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer_browsertest.cc b/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer_browsertest.cc index cd8b9417..816846a 100644 --- a/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer_browsertest.cc +++ b/chrome/browser/page_load_metrics/observers/ads_page_load_metrics_observer_browsertest.cc
@@ -19,11 +19,13 @@ #include "components/subresource_filter/content/browser/content_ruleset_service.h" #include "components/subresource_filter/core/browser/subresource_filter_features.h" #include "components/subresource_filter/core/common/activation_scope.h" +#include "components/subresource_filter/core/common/common_features.h" #include "components/subresource_filter/core/common/test_ruleset_utils.h" #include "components/subresource_filter/mojom/subresource_filter.mojom.h" #include "content/public/test/browser_test.h" #include "content/public/test/browser_test_utils.h" #include "net/dns/mock_host_resolver.h" +#include "net/test/embedded_test_server/controllable_http_response.h" #include "net/test/embedded_test_server/embedded_test_server.h" #include "testing/gtest/include/gtest/gtest.h" #include "url/gurl.h" @@ -160,10 +162,10 @@ : public page_load_metrics::PageLoadMetricsTestWaiter { public: explicit AdsPageLoadMetricsTestWaiter(content::WebContents* web_contents) - : page_load_metrics::PageLoadMetricsTestWaiter(web_contents){}; + : page_load_metrics::PageLoadMetricsTestWaiter(web_contents) {} void AddMinimumAdResourceExpectation(int num_ad_resources) { expected_minimum_num_ad_resources_ = num_ad_resources; - }; + } protected: bool ExpectationsSatisfied() const override { @@ -275,3 +277,97 @@ waiter->AddMinimumAdResourceExpectation(8); waiter->Wait(); } + +// Verify that per-resource metrics are recorded correctly. +IN_PROC_BROWSER_TEST_F(AdsPageLoadMetricsObserverResourceBrowserTest, + ReceivedAdResourceMetrics) { + base::HistogramTester histogram_tester; + + const char kHttpResponseHeader[] = + "HTTP/1.1 200 OK\r\n" + "Content-Type: text/html; charset=utf-8\r\n" + "\r\n"; + auto main_html_response = + std::make_unique<net::test_server::ControllableHttpResponse>( + embedded_test_server(), "/mock_page.html", + true /*relative_url_is_prefix*/); + auto ad_script_response = + std::make_unique<net::test_server::ControllableHttpResponse>( + embedded_test_server(), "/ad_script.js", + true /*relative_url_is_prefix*/); + auto iframe_response = + std::make_unique<net::test_server::ControllableHttpResponse>( + embedded_test_server(), "/iframe.html", + true /*relative_url_is_prefix*/); + auto vanilla_script_response = + std::make_unique<net::test_server::ControllableHttpResponse>( + embedded_test_server(), "/vanilla_script.js", + true /*relative_url_is_prefix*/); + ASSERT_TRUE(embedded_test_server()->Start()); + + auto waiter = CreateAdsPageLoadMetricsTestWaiter(); + + browser()->OpenURL(content::OpenURLParams( + embedded_test_server()->GetURL("/mock_page.html"), content::Referrer(), + WindowOpenDisposition::CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false)); + + main_html_response->WaitForRequest(); + main_html_response->Send(kHttpResponseHeader); + main_html_response->Send( + "<html><body></body><script src=\"ad_script.js\"></script></html>"); + main_html_response->Done(); + + ad_script_response->WaitForRequest(); + ad_script_response->Send(kHttpResponseHeader); + ad_script_response->Send( + "var iframe = document.createElement(\"iframe\");" + "iframe.src =\"iframe.html\";" + "document.body.appendChild(iframe);"); + ad_script_response->Send(std::string(1000, ' ')); + ad_script_response->Done(); + + iframe_response->WaitForRequest(); + iframe_response->Send(kHttpResponseHeader); + iframe_response->Send("<html><script src=\"vanilla_script.js\"></script>"); + iframe_response->Send(std::string(2000, ' ')); + iframe_response->Send("</html>"); + iframe_response->Done(); + + vanilla_script_response->WaitForRequest(); + vanilla_script_response->Send(kHttpResponseHeader); + vanilla_script_response->Send(std::string(1024, ' ')); + waiter->AddMinimumResourceBytesExpectation(4000); + waiter->Wait(); + + // Verify correct numbers of resources are recorded. + histogram_tester.ExpectTotalCount( + "Ads.ResourceUsage.Size.Mainframe.VanillaResource", 1); + histogram_tester.ExpectTotalCount( + "Ads.ResourceUsage.Size.Mainframe.AdResource", 1); + // Verify unfinished resource not yet recorded. + histogram_tester.ExpectTotalCount( + "Ads.ResourceUsage.Size.Subframe.AdResource", 1); + histogram_tester.ExpectTotalCount( + "Ads.ResourceUsage.Size.Subframe.VanillaResource", 0); + + // Close all tabs instead of navigating as the embedded_test_server will + // hang waiting for loads to finish when we have an unfinished + // ControlledHttpReseonse. + browser()->tab_strip_model()->CloseAllTabs(); + + // Verify unfinished resource recorded when page is destroyed. + histogram_tester.ExpectTotalCount( + "Ads.ResourceUsage.Size.Subframe.AdResource", 2); + + histogram_tester.ExpectBucketCount( + "PageLoad.Clients.Ads.Resources.Bytes.Total", 4, 1); + // We have received 4 KB of ads and 1 KB of toplevel ads. + histogram_tester.ExpectBucketCount("PageLoad.Clients.Ads.Resources.Bytes.Ads", + 4, 1); + histogram_tester.ExpectBucketCount( + "PageLoad.Clients.Ads.Resources.Bytes.TopLevelAds", 1, 1); + + // 4 resources loaded, one unfinished. + histogram_tester.ExpectBucketCount( + "PageLoad.Clients.Ads.Resources.Bytes.Unfinished", 1, 1); +}
diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc index e4e3499..bda8ff8f 100644 --- a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc +++ b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.cc
@@ -39,6 +39,8 @@ "PageLoad.Clients.FromGoogleSearch.ParseTiming.ParseDuration"; const char kHistogramFromGWSParseStart[] = "PageLoad.Clients.FromGoogleSearch.ParseTiming.NavigationToParseStart"; +const char kHistogramFromGWSFirstInputDelay[] = + "PageLoad.Clients.FromGoogleSearch.InteractiveTiming.FirstInputDelay"; const char kHistogramFromGWSAbortNewNavigationBeforeCommit[] = "PageLoad.Clients.FromGoogleSearch.Experimental.AbortTiming.NewNavigation." @@ -410,6 +412,12 @@ logger_.OnFirstContentfulPaintInPage(timing, extra_info); } +void FromGWSPageLoadMetricsObserver::OnFirstInputInPage( + const page_load_metrics::mojom::PageLoadTiming& timing, + const page_load_metrics::PageLoadExtraInfo& extra_info) { + logger_.OnFirstInputInPage(timing, extra_info); +} + void FromGWSPageLoadMetricsObserver::OnParseStart( const page_load_metrics::mojom::PageLoadTiming& timing, const page_load_metrics::PageLoadExtraInfo& extra_info) { @@ -616,6 +624,16 @@ } } +void FromGWSPageLoadMetricsLogger::OnFirstInputInPage( + const page_load_metrics::mojom::PageLoadTiming& timing, + const page_load_metrics::PageLoadExtraInfo& extra_info) { + if (ShouldLogForegroundEventAfterCommit( + timing.interactive_timing->first_input_delay, extra_info)) { + PAGE_LOAD_HISTOGRAM(internal::kHistogramFromGWSFirstInputDelay, + timing.interactive_timing->first_input_delay.value()); + } +} + void FromGWSPageLoadMetricsLogger::OnParseStart( const page_load_metrics::mojom::PageLoadTiming& timing, const page_load_metrics::PageLoadExtraInfo& extra_info) {
diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.h b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.h index fa1171d9..15033dd 100644 --- a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.h +++ b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.h
@@ -22,6 +22,7 @@ extern const char kHistogramFromGWSParseStartToFirstContentfulPaint[]; extern const char kHistogramFromGWSParseDuration[]; extern const char kHistogramFromGWSParseStart[]; +extern const char kHistogramFromGWSFirstInputDelay[]; extern const char kHistogramFromGWSAbortStopBeforePaint[]; extern const char kHistogramFromGWSAbortStopBeforeInteraction[]; extern const char kHistogramFromGWSAbortStopBeforeCommit[]; @@ -93,6 +94,9 @@ void OnParseStop(const page_load_metrics::mojom::PageLoadTiming& timing, const page_load_metrics::PageLoadExtraInfo& extra_info); void OnUserInput(const blink::WebInputEvent& event); + void OnFirstInputInPage( + const page_load_metrics::mojom::PageLoadTiming& timing, + const page_load_metrics::PageLoadExtraInfo& extra_info); void FlushMetricsOnAppEnterBackground( const page_load_metrics::mojom::PageLoadTiming& timing, const page_load_metrics::PageLoadExtraInfo& extra_info); @@ -155,6 +159,9 @@ void OnFirstContentfulPaintInPage( const page_load_metrics::mojom::PageLoadTiming& timing, const page_load_metrics::PageLoadExtraInfo& extra_info) override; + void OnFirstInputInPage( + const page_load_metrics::mojom::PageLoadTiming& timing, + const page_load_metrics::PageLoadExtraInfo& extra_info) override; void OnParseStart( const page_load_metrics::mojom::PageLoadTiming& timing, const page_load_metrics::PageLoadExtraInfo& extra_info) override;
diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc index 28396d1..925c638 100644 --- a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc +++ b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc
@@ -156,6 +156,10 @@ base::TimeDelta::FromMilliseconds(640); timing.document_timing->load_event_start = base::TimeDelta::FromMilliseconds(1280); + timing.interactive_timing->first_input_delay = + base::TimeDelta::FromMilliseconds(50); + timing.interactive_timing->first_input_timestamp = + base::TimeDelta::FromMilliseconds(1400); PopulateRequiredTimingFields(&timing); NavigateAndCommit(GURL("https://www.google.com/webhp?q=test")); NavigateAndCommit(GURL(kExampleUrl)); @@ -224,6 +228,12 @@ internal::kHistogramFromGWSLoad, timing.document_timing->load_event_start.value().InMilliseconds(), 1); + histogram_tester().ExpectTotalCount( + internal::kHistogramFromGWSFirstInputDelay, 1); + histogram_tester().ExpectBucketCount( + internal::kHistogramFromGWSFirstInputDelay, + timing.interactive_timing->first_input_delay.value().InMilliseconds(), 1); + auto entries = test_ukm_recorder().GetEntriesByName( ukm::builders::PageLoad_FromGoogleSearch::kEntryName); EXPECT_EQ(1u, entries.size());
diff --git a/chrome/browser/policy/chrome_extension_policy_migrator.cc b/chrome/browser/policy/chrome_extension_policy_migrator.cc new file mode 100644 index 0000000..3169494 --- /dev/null +++ b/chrome/browser/policy/chrome_extension_policy_migrator.cc
@@ -0,0 +1,52 @@ +// 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/policy/chrome_extension_policy_migrator.h" +#include "extensions/common/hashed_extension_id.h" + +namespace policy { + +void ChromeExtensionPolicyMigrator::CopyPoliciesIfUnset( + PolicyBundle* bundle, + const std::string& hashed_extension_id, + base::span<const Migration> migrations) { + // HashedExtensionId gives an all-uppercase output, so make sure the input is + // all uppercase. + std::string hashed_extension_id_uppercase = hashed_extension_id; + std::transform(hashed_extension_id_uppercase.begin(), + hashed_extension_id_uppercase.end(), + hashed_extension_id_uppercase.begin(), ::toupper); + + // Look for an extension with this hash. + PolicyMap* extension_map = nullptr; + for (auto& policy : *bundle) { + const PolicyNamespace& policy_namespace = policy.first; + + if (policy_namespace.domain == PolicyDomain::POLICY_DOMAIN_EXTENSIONS && + extensions::HashedExtensionId(policy_namespace.component_id).value() == + hashed_extension_id_uppercase) { + extension_map = policy.second.get(); + break; + } + } + + if (extension_map == nullptr || extension_map->empty()) + return; + + PolicyMap& chrome_map = bundle->Get(PolicyNamespace( + PolicyDomain::POLICY_DOMAIN_CHROME, /* component_id */ std::string())); + + for (const auto& migration : migrations) { + PolicyMap::Entry* entry = extension_map->GetMutable(migration.old_name); + if (entry) { + if (!chrome_map.Get(migration.new_name)) { + chrome_map.Set(migration.new_name, entry->DeepCopy()); + } + // TODO(crbug/869958): Mark the old policy as deprecated for + // chrome://policy. + } + } +} + +} // namespace policy
diff --git a/chrome/browser/policy/chrome_extension_policy_migrator.h b/chrome/browser/policy/chrome_extension_policy_migrator.h new file mode 100644 index 0000000..75d5ffda --- /dev/null +++ b/chrome/browser/policy/chrome_extension_policy_migrator.h
@@ -0,0 +1,30 @@ +// 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_POLICY_CHROME_EXTENSION_POLICY_MIGRATOR_H_ +#define CHROME_BROWSER_POLICY_CHROME_EXTENSION_POLICY_MIGRATOR_H_ + +#include "components/policy/core/common/extension_policy_migrator.h" + +namespace policy { + +// ExtensionPolicyMigrator with chrome-specific helper functions. +class ChromeExtensionPolicyMigrator : public ExtensionPolicyMigrator { + public: + ~ChromeExtensionPolicyMigrator() override {} + + protected: + // Helper function intended for implementers who want to rename policies and + // copy them from an extension domain to the Chrome domain. If one of the + // Chrome domain policies is already set, it is not overridden. + // hashed_extension_id is the SHA1-hashed extension_id to avoid the necessity + // of possibly hardcoding extension ids. + static void CopyPoliciesIfUnset(PolicyBundle* bundle, + const std::string& hashed_extension_id, + base::span<const Migration> migrations); +}; + +} // namespace policy + +#endif // CHROME_BROWSER_POLICY_CHROME_EXTENSION_POLICY_MIGRATOR_H_
diff --git a/components/policy/core/common/extension_policy_migrator_unittest.cc b/chrome/browser/policy/chrome_extension_policy_migrator_unittest.cc similarity index 86% rename from components/policy/core/common/extension_policy_migrator_unittest.cc rename to chrome/browser/policy/chrome_extension_policy_migrator_unittest.cc index 17427ae..f4bf6d01 100644 --- a/components/policy/core/common/extension_policy_migrator_unittest.cc +++ b/chrome/browser/policy/chrome_extension_policy_migrator_unittest.cc
@@ -2,12 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "components/policy/core/common/extension_policy_migrator.h" +#include "chrome/browser/policy/chrome_extension_policy_migrator.h" #include "base/bind.h" #include "base/callback.h" #include "base/strings/utf_string_conversions.h" #include "base/values.h" +#include "extensions/common/hashed_extension_id.h" #include "testing/gtest/include/gtest/gtest.h" namespace policy { @@ -43,16 +44,18 @@ POLICY_SOURCE_CLOUD, std::move(value), nullptr); } -class TestingPolicyMigrator : public ExtensionPolicyMigrator { +class TestingPolicyMigrator : public ChromeExtensionPolicyMigrator { public: void Migrate(PolicyBundle* bundle) override { - CopyPoliciesIfUnset(bundle, kExtensionId, kMigrations); + CopyPoliciesIfUnset(bundle, + extensions::HashedExtensionId(kExtensionId).value(), + kMigrations); } }; } // namespace -TEST(ExtensionPolicyMigratorTest, CopyPoliciesIfUnset) { +TEST(ChromeExtensionPolicyMigratorTest, CopyPoliciesIfUnset) { PolicyBundle bundle; PolicyMap& chrome_map = bundle.Get(
diff --git a/chrome/browser/profile_resetter/brandcode_config_fetcher.cc b/chrome/browser/profile_resetter/brandcode_config_fetcher.cc index c15c60c..ee3cc61 100644 --- a/chrome/browser/profile_resetter/brandcode_config_fetcher.cc +++ b/chrome/browser/profile_resetter/brandcode_config_fetcher.cc
@@ -9,9 +9,7 @@ #include "base/callback_helpers.h" #include "base/macros.h" -#include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" -#include "build/build_config.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/profile_resetter/brandcoded_default_settings.h" #include "libxml/parser.h" @@ -22,34 +20,30 @@ #include "services/network/public/cpp/simple_url_loader.h" #include "services/network/public/mojom/url_loader_factory.mojom.h" -#if defined(OS_WIN) -#include "chrome/install_static/install_util.h" -#endif // defined(OS_WIN) - namespace { -constexpr char kDefaultAppID[] = "{8A69D345-D564-463C-AFF1-A69D9E530F96}"; -constexpr int kDownloadTimeoutSec = 10; -constexpr char kPostXml[] = +const int kDownloadTimeoutSec = 10; +const char kPostXml[] = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" "<request" " version=\"chromeprofilereset-1.1\"" " protocol=\"3.0\"" " installsource=\"profilereset\">" - " <app appid=\"%s\">" - " <data name=\"install\" index=\"%s\"/>" + " <app appid=\"{8A69D345-D564-463C-AFF1-A69D9E530F96}\">" + " <data name=\"install\" index=\"__BRANDCODE_PLACEHOLDER__\"/>" " </app>" "</request>"; // Returns the query to the server which can be used to retrieve the config. // |brand| is a brand code, it mustn't be empty. std::string GetUploadData(const std::string& brand) { - std::string app_id(kDefaultAppID); -#if defined(OS_WIN) - app_id = install_static::UTF16ToUTF8(install_static::GetAppGuid()); -#endif // defined(OS_WIN) DCHECK(!brand.empty()); - return base::StringPrintf(kPostXml, app_id.c_str(), brand.c_str()); + std::string data(kPostXml); + const std::string placeholder("__BRANDCODE_PLACEHOLDER__"); + size_t placeholder_pos = data.find(placeholder); + DCHECK(placeholder_pos != std::string::npos); + data.replace(placeholder_pos, placeholder.size(), brand); + return data; } // Extracts json master prefs from xml.
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 f6facedc5..f312747 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
@@ -1154,6 +1154,9 @@ // Set |TextInputState.show_ime_if_needed| to true. Expect IME. sender.SetShowVirtualKeyboardIfEnabled(true); +#if defined(OS_WIN) + sender.SetLastPointerType(ui::EventPointerType::POINTER_TYPE_TOUCH); +#endif EXPECT_TRUE(send_and_check_show_ime()); // Send the same message. Expect IME (no change). @@ -1171,6 +1174,12 @@ sender.SetShowVirtualKeyboardIfEnabled(true); EXPECT_TRUE(send_and_check_show_ime()); +#if defined(OS_WIN) + // Set input type to mouse. Expect no IME. + sender.SetLastPointerType(ui::EventPointerType::POINTER_TYPE_MOUSE); + EXPECT_FALSE(send_and_check_show_ime()); +#endif + // Set |TextInputState.type| to ui::TEXT_INPUT_TYPE_NONE. Expect no IME. sender.SetType(ui::TEXT_INPUT_TYPE_NONE); EXPECT_FALSE(send_and_check_show_ime());
diff --git a/chrome/browser/resource_coordinator/tab_manager.cc b/chrome/browser/resource_coordinator/tab_manager.cc index b9139178..dd1a59a 100644 --- a/chrome/browser/resource_coordinator/tab_manager.cc +++ b/chrome/browser/resource_coordinator/tab_manager.cc
@@ -533,15 +533,13 @@ // memory pressure signal after it becomes more reliable. switch (memory_pressure_level) { case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_NONE: - break; case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE: - break; + return; case base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL: LogMemoryAndDiscardTab(LifecycleUnitDiscardReason::URGENT); - break; - default: - NOTREACHED(); + return; } + NOTREACHED(); // TODO(skuhne): If more memory pressure levels are introduced, consider // calling PurgeBrowserMemory() before CRITICAL is reached. }
diff --git a/chrome/browser/resource_coordinator/tab_manager_browsertest.cc b/chrome/browser/resource_coordinator/tab_manager_browsertest.cc index a488e73..2ba8ffcb 100644 --- a/chrome/browser/resource_coordinator/tab_manager_browsertest.cc +++ b/chrome/browser/resource_coordinator/tab_manager_browsertest.cc
@@ -5,6 +5,7 @@ #include "base/base_switches.h" #include "base/command_line.h" #include "base/feature_list.h" +#include "base/memory/fake_memory_pressure_monitor.h" #include "base/memory/memory_pressure_listener.h" #include "base/run_loop.h" #include "base/test/metrics/histogram_tester.h" @@ -292,6 +293,7 @@ GetWebContentsAt(index)); } + base::test::FakeMemoryPressureMonitor fake_memory_pressure_monitor_; base::SimpleTestTickClock test_clock_; ScopedSetTickClockForTesting scoped_set_tick_clock_for_testing_; base::test::ScopedFeatureList scoped_feature_list_; @@ -499,13 +501,13 @@ EXPECT_FALSE(IsTabDiscarded(GetWebContentsAt(1))); // Nothing should happen with a moderate memory pressure event. - base::MemoryPressureListener::NotifyMemoryPressure( + fake_memory_pressure_monitor_.SetAndNotifyMemoryPressure( base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE); EXPECT_FALSE(IsTabDiscarded(GetWebContentsAt(0))); EXPECT_FALSE(IsTabDiscarded(GetWebContentsAt(1))); // A critical memory pressure event should discard a tab. - base::MemoryPressureListener::NotifyMemoryPressure( + fake_memory_pressure_monitor_.SetAndNotifyMemoryPressure( base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL); // Coming here, an asynchronous operation will collect system stats. Once in, // a tab should get discarded. As such we need to give it 10s time to discard.
diff --git a/chrome/browser/resources/chrome_app/manifest.json b/chrome/browser/resources/chrome_app/manifest.json index 0714d7a4..3f1c329 100644 --- a/chrome/browser/resources/chrome_app/manifest.json +++ b/chrome/browser/resources/chrome_app/manifest.json
@@ -4,8 +4,8 @@ "version": "0.1", "description": "Chrome as an app", "icons": { - "32": "chrome_app_icon_32.png", - "192": "chrome_app_icon_192.png" + "16": "product_logo_16.png", + "128": "product_logo_128.png" }, "app": { "launch": {
diff --git a/chrome/browser/resources/chromeos/arc_support/icon/128.png b/chrome/browser/resources/chromeos/arc_support/icon/128.png deleted file mode 100644 index f84f218..0000000 --- a/chrome/browser/resources/chromeos/arc_support/icon/128.png +++ /dev/null Binary files differ
diff --git a/chrome/browser/resources/chromeos/arc_support/icon/192.png b/chrome/browser/resources/chromeos/arc_support/icon/192.png new file mode 100644 index 0000000..642a7691f --- /dev/null +++ b/chrome/browser/resources/chromeos/arc_support/icon/192.png Binary files differ
diff --git a/chrome/browser/resources/chromeos/arc_support/icon/32.png b/chrome/browser/resources/chromeos/arc_support/icon/32.png index a3545a53..a4f14957 100644 --- a/chrome/browser/resources/chromeos/arc_support/icon/32.png +++ b/chrome/browser/resources/chromeos/arc_support/icon/32.png Binary files differ
diff --git a/chrome/browser/resources/chromeos/arc_support/icon/48.png b/chrome/browser/resources/chromeos/arc_support/icon/48.png deleted file mode 100644 index bef0fb0..0000000 --- a/chrome/browser/resources/chromeos/arc_support/icon/48.png +++ /dev/null Binary files differ
diff --git a/chrome/browser/resources/chromeos/arc_support/icon/64.png b/chrome/browser/resources/chromeos/arc_support/icon/64.png deleted file mode 100644 index 007c0e7..0000000 --- a/chrome/browser/resources/chromeos/arc_support/icon/64.png +++ /dev/null Binary files differ
diff --git a/chrome/browser/resources/chromeos/arc_support/icon/96.png b/chrome/browser/resources/chromeos/arc_support/icon/96.png deleted file mode 100644 index c897d8e..0000000 --- a/chrome/browser/resources/chromeos/arc_support/icon/96.png +++ /dev/null Binary files differ
diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js b/chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js index 4a37e10..2120cee 100644 --- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js +++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js
@@ -178,30 +178,35 @@ // the user navigates. cvox.ChromeVox.braille.thaw(); - if (newRange && !newRange.isValid()) + if (newRange && !newRange.isValid()) { + chrome.accessibilityPrivate.setFocusRing([]); return; + } this.currentRange_ = newRange; ChromeVoxState.observers.forEach(function(observer) { observer.onCurrentRangeChanged(newRange); }); - if (this.currentRange_) { - var start = this.currentRange_.start.node; - start.makeVisible(); - - var root = AutomationUtil.getTopLevelRoot(start); - if (!root || root.role == RoleType.DESKTOP || root == start) - return; - - var position = {}; - var loc = start.unclippedLocation; - position.x = loc.left + loc.width / 2; - position.y = loc.top + loc.height / 2; - var url = root.docUrl; - url = url.substring(0, url.indexOf('#')) || url; - cvox.ChromeVox.position[url] = position; + if (!this.currentRange_) { + chrome.accessibilityPrivate.setFocusRing([]); + return; } + + var start = this.currentRange_.start.node; + start.makeVisible(); + + var root = AutomationUtil.getTopLevelRoot(start); + if (!root || root.role == RoleType.DESKTOP || root == start) + return; + + var position = {}; + var loc = start.unclippedLocation; + position.x = loc.left + loc.width / 2; + position.y = loc.top + loc.height / 2; + var url = root.docUrl; + url = url.substring(0, url.indexOf('#')) || url; + cvox.ChromeVox.position[url] = position; }, /**
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_am.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_am.xtb index 7ee2705a..8e2445b 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_am.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_am.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">አንድ ቁልፍ ያግኙ፣ ከዚያ ለመተየ ያንሱት</translation> <translation id="1012173283529841972">የዝርዝር ንጥል</translation> <translation id="1013742170491673792">srched</translation> +<translation id="1014370462248694370">ሁለት ጣቶችን ወደ ቀኝ ያንሸራትቱ</translation> <translation id="1022586497894531524">የChromeVox የሚነገር ግብረመልስን ለመጀመሪያ ጊዜ እየተጠቀሙ ነው? ይህ ፈጣን አጋዥ ሥልጠና በChromeVox ለመጀመር የሚያስፈልጉትን ነገሮች ያብራራል።</translation> <translation id="1023866615269196768">ሰፍቷል።</translation> <translation id="1025074108959230262">አጣባቂ ሁነታ ተሰናክሏል</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">የድምጽ ግብረመልስ (ኢርኮኖች) ያብሩ ወይም ያጥፉ።</translation> <translation id="1108651818222110612">ግርጌ ጽሑፍ</translation> <translation id="1120743664840974483">{"a": "አልፋ", "b": "ብራቮ", "c": "ቻርሊ", "d": "ዴልታ", "e": "ኤኮ", "f": "ፎክስትሮት", "g": "ጎልፍ", "h": "ሆቴል", "i": "ኢንዲያ", "j": "ጁሊዬት","k": "ኪሎ", "l": "ሊማ", "m": "ማይክ", "n": "ኖቬምበር", "o": "ኦስካር","p": "ፓፓ", "q": "ኴቤክ", "r": "ሮሚዮ", "s": "ሲዬራ", "t": "ታንጎ", "u": "ዩኒፎርም", "v": "ቪክቶር", "w": "ዊስኪ","x": "ኤክስሬይ", "y": "ያንኪ", "z": "ዙሉ"}</translation> +<translation id="1120938014254001895">ሁለት ጣቶችን ወደ ላይ ያንሸራትቱ</translation> <translation id="1124771028211010580">የአሁኑ የማሳያ ቅጥ ጎን ለጎን ነው።</translation> <translation id="113582498867142724">የ<ph name="TAG" /> ስብስብ ከ<ph name="NUM" /> ንጥሎች ጋር</translation> <translation id="1155043339247954670">ምንም ቀጣይ የርዕስ ንጥል የለም።</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">አገናኝ</translation> <translation id="1727806147743597030">ftr</translation> <translation id="174268867904053074">ቀጣይ ስዕላዊ</translation> +<translation id="1765245556747822181">አንድ ጣት ወደ ላይ ያንሸራትቱ</translation> <translation id="1781173782405573156">የማለፊያ ቁልፍ</translation> <translation id="1787176709638001873">የይለፍ ቃል አርትዖት ጽሑፍ</translation> <translation id="1802710350767629429">የዝማኔ ማስታወሻዎችን አሳይ</translation> @@ -136,6 +139,7 @@ <translation id="2223693656926968778">በአሁኑ ንጥል ላይ እርምጃ ይውሰዱ</translation> <translation id="225732394367814946">የንግግር ፍጥነት ይጨምሩ</translation> <translation id="2267945578749931355">ቀጣዩ ቁምፊ</translation> +<translation id="2278490101488436824">ሶስት ጣቶችን ወደ ግራ ያንሸራትቱ</translation> <translation id="2281234842553884450">ቀዳሚ ተንሸራታች</translation> <translation id="2294136146931447363">ሰያፍ መጀመሪያ</translation> <translation id="2311237334957139798">በጥራት ደረጃ ላይ ወደ ቀዳሚው ውሰድ</translation> @@ -208,17 +212,20 @@ <translation id="2864481629947106776">ቀዳሚ አገናኝ</translation> <translation id="2867808975387772810">ዋቢ መጽሐፍት</translation> <translation id="2873259058405069099">ወደ የሠንጠረዡ መጀመሪያ ይሂዱ</translation> +<translation id="2879867157561757640">ሶስት ጣቶችን ወደ ታች ያንሸራትቱ</translation> <translation id="288178314850623291">ወደተወሰኑ አባለ-ነገሮች ዘልለው ለመሄድ የመዝለል ትዕዛዞችን ይጠቀሙ። በርዕሶች መካከል ወደፊት ለመዝለል Search + H ይጫኑ፣ ወይም ወደ ኋላ ለመዝለል Search + Shift + H ይጫኑ።</translation> <translation id="2894654529758326923">መረጃ</translation> <translation id="2899328121302785497">{COUNT,plural, =1{የግራ ሐረግ ቅንፍ}one{# የግራ ሐረግ ቅንፎች}other{# የግራ ሐረግ ቅንፎች}}</translation> <translation id="2909478709401302630">የራስጌአደር መጀመሪያ</translation> <translation id="2911433807131383493">ChromeVox አጋዥ ስልጠናን ይክፈቱ</translation> +<translation id="2912405967290226587">ሶስት ጣቶችን ወደ ቀኝ ያንሸራትቱ</translation> <translation id="2932083475399492303">የመስመር አይነት በመዋቅራዊ እና አቀማመጥ መካከል ይቀያይሩ</translation> <translation id="2944762337049891859">ገጹ ጭኖ ከጨረሰ በኋላ በራስ-ሰር አንብብ</translation> <translation id="2964026537669811554">የርዕስ ቡድን</translation> <translation id="296951647852255825">{COUNT,plural, =1{ትር}one{# ትሮች}other{# ትሮች}}</translation> <translation id="2972078295414139404">ምንም ቀዳሚ የተጎበኘ አገናኝ የለም።</translation> <translation id="2972205263822847197">ጠቃሚ የመሣሪያ ምክር</translation> +<translation id="297825089465017871">ሁለት ጣቶችን ወደ ግራ ያንሸራትቱ</translation> <translation id="2998131015536248178">ቀዳሚ ቁምፊ</translation> <translation id="2999559350546931576">የድምጽ ቅጥነት ይቀንሱ</translation> <translation id="2999945368667127852">ምንም ቀጣይ የሚዲያ ንዑስ ፕሮግራም የለም።</translation> @@ -230,6 +237,7 @@ <translation id="3046838483509668188">ChromeVox አማራጮች</translation> <translation id="3047143736589213134">የሙከራ ቁልፍ አደራደር</translation> <translation id="3060756054951570867">የ<ph name="TITLE" /> ምናሌ ተከፍቷል</translation> +<translation id="3070245424257836917">ሶስት ጣቶችን ወደ ላይ ያንሸራትቱ</translation> <translation id="3078345202707391975">ቀጣይ የደረጃ 2 ርዕስ</translation> <translation id="3078740164268491126">ሠንጠረዥ</translation> <translation id="3082249673510793544">ወደኋላ አሸብልል</translation> @@ -342,6 +350,7 @@ <translation id="3599054940393788245">ሒሳብ ውስጥ አይደለም</translation> <translation id="360241989769010433">ምስጋና</translation> <translation id="3616113530831147358">ድምጽ</translation> +<translation id="3622350485154495700">በአንድ ጣት ሁለቴ መዳት ያድርጉ</translation> <translation id="3646890046000188562">{COUNT,plural, =1{የኋሊት ጥቅስ}one{# የኋሊት ጥቅሶች}other{# የኋሊት ጥቅሶች}}</translation> <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{ዶላር}one{# የዶላር ምልክቶች}other{# የዶላር ምልክቶች}}</translation> @@ -461,6 +470,7 @@ <translation id="4688873778442829762">grd</translation> <translation id="4693675773662933727">ቀዳሚ የመሬት ምልክት</translation> <translation id="4696413482802371445">ምንም ቀጣይ የደረጃ 5 ርዕስ የለም።</translation> +<translation id="4710166929009737753">አንድ ጣት ወደ ቀኝ ያንሸራትቱ</translation> <translation id="4729095194763193578">ቀዳሚ የሠንጠረዥ ረድፍ</translation> <translation id="4736221692378411923">ኦገስት</translation> <translation id="4740661827607246557">የእገዛ ትዕዛዞች</translation> @@ -473,6 +483,7 @@ <translation id="4826415162591436065">ወደፊት ያስሱ</translation> <translation id="4826604887384865800">ቀጣይ ዝላይ</translation> <translation id="4827410568042294688">አልተመረጠም</translation> +<translation id="4838490795649708173">በአራት ጣቶች መታ ያድርጉ</translation> <translation id="4839925464551908214">ወደ ቀዳሚ ረድፍ ይሂዱ</translation> <translation id="4842108708071771135">ምንም ቀጣይ የጽሑፍ ጥቅስ የለም።</translation> <translation id="4844625982113518938">የማንኛውንም ቁልፍ ስም ለማወቅ ይጫኑት። Ctrl+W የመማር ሁነታውን ይዘጋዋል።</translation> @@ -609,6 +620,7 @@ <translation id="5750633686117194034">ምንም መቀየሪያ አልተጫነም፤ እባክዎ አንድ ወይም ተጨማሪ መቀየሪያዎችን ተጭነው ይያዙ፤ ከጨረሱ በኋላ ጣቶችዎን ያንሱ እና ቁልፎቹ ተዘጋጅተው ያዳምጡዋቸዋል። ለመውጣት ትር።</translation> <translation id="5760594853119905566">ቅጥያዎች</translation> <translation id="5788275253279308023">ማንነት የማያሳውቅ መስኮት <ph name="TITLE" /> ትር</translation> +<translation id="5805940204952508776">በሁለት ጣቶች መታ ያድርጉ</translation> <translation id="5806206155699461681">የተወሰኑ ጣቢያዎችን (እንደ Google ፍለጋ ያሉ) አሻሽል።</translation> <translation id="5819072574982403430">የዛፍ ንጥል</translation> <translation id="5826479389509458994">ረድፍ <ph name="ROW" /> አምድ <ph name="COL" /></translation> @@ -713,8 +725,10 @@ <translation id="6786800275320335305">ጽሑፍ</translation> <translation id="6787839852456839824">የቁልፍ ሰሌዳ አቋራጮች</translation> <translation id="6793101435925451627">lstbx</translation> +<translation id="6826226459053491773">ሁለት ጣቶችን ወደ ታች ያንሸራትቱ</translation> <translation id="6833103209700200188">ግርጌ</translation> <translation id="6858047746862060282">ቅድመ-ታሪክ</translation> +<translation id="6859876496651143278">አንድ ጣት ወደ ግራ ያንሸራትቱ</translation> <translation id="6871161210040114857">የሆሄ አቢይ/ንዑስ ችላ በማለት ላይ።</translation> <translation id="6877435256196695200">ምንም ቀጣይ ስዕላዊ የለም።</translation> <translation id="6897341342232909480">ወደ ግራ ያንቀሳቅሱ</translation> @@ -964,6 +978,7 @@ <translation id="923331726185079994">ChromeVox ተዘምኗል</translation> <translation id="930275611743429116">ምርጫ ይጀምሩ ወይም ይጨርሱ።</translation> <translation id="948171205378458592">የንግግር ፍጥነት ይቀንሱ</translation> +<translation id="958854023026327378">አንድ ጣት ወደ ታች ያንሸራትቱ</translation> <translation id="962913030769097253">ቀጣይ የደረጃ 1 ርዕስ</translation> <translation id="973955474346881951">አጣባቂ ሁነታን አንቃ/አሰናክል</translation> <translation id="976849232629612000">ምንም ንጥሎች የሉም።</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ar.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ar.xtb index 44b4eff..4e142fcd 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ar.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ar.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">اعثر على لوحة المفاتيح المراد استخدامها، ثم انقر عليها للكتابة.</translation> <translation id="1012173283529841972">عنصر قائمة</translation> <translation id="1013742170491673792">srched</translation> +<translation id="1014370462248694370">التمرير السريع بإصبعين إلى يسار الشاشة</translation> <translation id="1022586497894531524">هل تستخدم التعليقات والملاحظات المنطوقة في ChromeVox لأول مرة؟ يشرح هذا البرنامج التعليمي السريع أساسيات بدء استخدام ChromeVox.</translation> <translation id="1023866615269196768">تم مد الخلية.</translation> <translation id="1025074108959230262">تم إيقاف الوضع الثابت</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">تشغيل التعليقات الصوتية (earcons) أو إيقافها.</translation> <translation id="1108651818222110612">ترجمة مصاحِبة</translation> <translation id="1120743664840974483">{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}</translation> +<translation id="1120938014254001895">التمرير السريع بإصبعين إلى الأعلى</translation> <translation id="1124771028211010580">نمط العرض الحالي هو جنبًا إلى جنب.</translation> <translation id="113582498867142724">مجموعة من <ph name="TAG" /> تشتمل على <ph name="NUM" /> من العناصر</translation> <translation id="1155043339247954670">ليس هناك عنصر قائمة تالٍ.</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">رابط</translation> <translation id="1727806147743597030">ftr</translation> <translation id="174268867904053074">الرسم التالي</translation> +<translation id="1765245556747822181">التمرير السريع بإصبع واحد إلى الأعلى</translation> <translation id="1781173782405573156">مفتاح التمرير</translation> <translation id="1787176709638001873">نص تعديل كلمة المرور</translation> <translation id="1802710350767629429">عرض ملاحظات التحديث</translation> @@ -137,6 +140,7 @@ <translation id="2223693656926968778">اتخاذ إجراء للعنصر الحالي</translation> <translation id="225732394367814946">زيادة تقييم النطق</translation> <translation id="2267945578749931355">الحرف التالي</translation> +<translation id="2278490101488436824">التمرير السريع بثلاثة أصابع إلى يمين الشاشة</translation> <translation id="2281234842553884450">شريط التمرير السابق</translation> <translation id="2294136146931447363">بداية النص المائل</translation> <translation id="2311237334957139798">الانتقال إلى السابق بدقة</translation> @@ -209,17 +213,20 @@ <translation id="2864481629947106776">الرابط السابق</translation> <translation id="2867808975387772810">قائمة مراجع</translation> <translation id="2873259058405069099">الانتقال إلى بداية الجدول</translation> +<translation id="2879867157561757640">التمرير السريع بثلاثة أصابع إلى الأسفل</translation> <translation id="288178314850623291">استخدم أوامر الانتقال السريع للتخطي إلى أنواع محددة من العناصر. للانتقال السريع للأمام بين العناوين، اضغط على بحث + H، أو للانتقال السريع للخلف، اضغط على بحث + Shift + H.</translation> <translation id="2894654529758326923">المعلومات</translation> <translation id="2899328121302785497">{COUNT,plural, =1{قوس كبير أيسر واحد}zero{# left braces}two{قوسان كبيران أيسران (#)}few{# أقواس كبيرة يسرى}many{# قوسًا كبيرًا أيسرًا}other{# من الأقواس الكبيرة اليسرى}}</translation> <translation id="2909478709401302630">بداية الرموز العلوية</translation> <translation id="2911433807131383493">فتح برنامج ChromeVox التعليمي</translation> +<translation id="2912405967290226587">التمرير السريع بثلاثة أصابع إلى يسار الشاشة</translation> <translation id="2932083475399492303">تبديل نوع الخط بين تنظيمي أو تخطيطي</translation> <translation id="2944762337049891859">يمكنك قراءة الصفحة تلقائيًا بعد انتهاء التحميل.</translation> <translation id="2964026537669811554">مجموعة عناوين</translation> <translation id="296951647852255825">{COUNT,plural, =1{علامة جدولة واحدة}zero{# tabs}two{علامتا جدولة}few{# علامات جدولة}many{# علامة جدولة}other{# من علامات الجدولة}}</translation> <translation id="2972078295414139404">ليس هناك رابط سابق تم الانتقال إليه.</translation> <translation id="2972205263822847197">تلميح</translation> +<translation id="297825089465017871">التمرير السريع بإصبعين إلى يمين الشاشة</translation> <translation id="2998131015536248178">الحرف السابق</translation> <translation id="2999559350546931576">خفض درجة الصوت</translation> <translation id="2999945368667127852">ليس هناك أداة للوسائط التالية.</translation> @@ -231,6 +238,7 @@ <translation id="3046838483509668188">خيارات ChromeVox</translation> <translation id="3047143736589213134">مخطط مفاتيح تجريبي</translation> <translation id="3060756054951570867">تم فتح القائمة <ph name="TITLE" /></translation> +<translation id="3070245424257836917">التمرير السريع بثلاثة أصابع إلى الأعلى</translation> <translation id="3078345202707391975">عنوان المستوى الثاني التالي</translation> <translation id="3078740164268491126">جدول</translation> <translation id="3082249673510793544">التمرير للخلف</translation> @@ -343,6 +351,7 @@ <translation id="3599054940393788245">ليس داخل الرياضيات</translation> <translation id="360241989769010433">شكر وتقدير</translation> <translation id="3616113530831147358">الصوت</translation> +<translation id="3622350485154495700">النقر مرَّتين بإصبع واحد</translation> <translation id="3646890046000188562">{COUNT,plural, =1{علامة تجزئة واحدة}zero{# backticks}two{علامتا تجزئة (#)}few{# علامات تجزئة}many{# علامة تجزئة}other{# من علامات التجزئة}}</translation> <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{علامة دولار واحدة}zero{# dollar signs}two{علامتا دولار (#)}few{# علامات دولار}many{# علامة دولار}other{# من علامات الدولار}}</translation> @@ -462,6 +471,7 @@ <translation id="4688873778442829762">grd</translation> <translation id="4693675773662933727">المَعلم السابق</translation> <translation id="4696413482802371445">ليس هناك حقل تالٍ من المستوى الخامس.</translation> +<translation id="4710166929009737753">التمرير السريع بإصبع واحد إلى يسار الشاشة</translation> <translation id="4729095194763193578">صف الجدول السابق</translation> <translation id="4736221692378411923">آب (أغسطس)</translation> <translation id="4740661827607246557">أوامر المساعدة</translation> @@ -474,6 +484,7 @@ <translation id="4826415162591436065">التنقل للأمام</translation> <translation id="4826604887384865800">الانتقال التالي</translation> <translation id="4827410568042294688">تم إلغاء التحديد</translation> +<translation id="4838490795649708173">النقر بأربعة أصابع</translation> <translation id="4839925464551908214">انتقِل إلى الصف السابق.</translation> <translation id="4842108708071771135">ليست هناك علامة اقتباس فقرة تالية.</translation> <translation id="4844625982113518938">اضغط على أي مفتاح للتعرُّف على اسمه. يؤدي الضغط على Ctrl+W إلى إغلاق وضع التعلم.</translation> @@ -610,6 +621,7 @@ <translation id="5750633686117194034">لم يتم الضغط على أي مفتاح تعديل؛ يُرجى الضغط مع الاستمرار على مفتاح تعديل أو أكثر؛ وارفع أصابعك بعد الانتهاء من الضغط وستسمع صوت تعيين المفاتيح. انقر للخروج.</translation> <translation id="5760594853119905566">ملحق</translation> <translation id="5788275253279308023">نافذة تصفح متخفٍ بعلامة التبويب <ph name="TITLE" /></translation> +<translation id="5805940204952508776">النقر بإصبعين</translation> <translation id="5806206155699461681">تحسين مواقع محددة (مثل بحث Google).</translation> <translation id="5819072574982403430">عنصر متفرع</translation> <translation id="5826479389509458994">الصف <ph name="ROW" /> العمود <ph name="COL" /></translation> @@ -714,8 +726,10 @@ <translation id="6786800275320335305">مقالة</translation> <translation id="6787839852456839824">اختصارات لوحة المفاتيح</translation> <translation id="6793101435925451627">lstbx</translation> +<translation id="6826226459053491773">التمرير السريع بإصبعين إلى الأسفل</translation> <translation id="6833103209700200188">تذييل</translation> <translation id="6858047746862060282">فاتحة</translation> +<translation id="6859876496651143278">التمرير السريع بإصبع واحد إلى يمين الشاشة</translation> <translation id="6871161210040114857">تجاهل حالة الأحرف.</translation> <translation id="6877435256196695200">ليس هناك رسم تالٍ.</translation> <translation id="6897341342232909480">الانتقال يسارًا</translation> @@ -965,6 +979,7 @@ <translation id="923331726185079994">تم تحديث ChromeVox</translation> <translation id="930275611743429116">بدء أو إنهاء التحديد.</translation> <translation id="948171205378458592">خفض تقييم النطق</translation> +<translation id="958854023026327378">التمرير السريع بإصبع واحد إلى الأسفل</translation> <translation id="962913030769097253">عنوان المستوى الأول التالي</translation> <translation id="973955474346881951">تفعيل/إيقاف الوضع الثابت</translation> <translation id="976849232629612000">لا توجد عناصر.</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_bn.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_bn.xtb index 8fb7dd04..5276d681 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_bn.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_bn.xtb
@@ -506,7 +506,7 @@ <translation id="5000760171916499057">কোনো ফর্ম নেই৷</translation> <translation id="5005670136041063723">কোনো অনুরূপ উপাদান নেই৷</translation> <translation id="501473567976723023">জানুয়ারি</translation> -<translation id="5020651427400641814">ভাষ্য লগ-ইন বিকল্প চালু করুন</translation> +<translation id="5020651427400641814">ভাষ্য লগ করার বিকল্পটি চালু করুন</translation> <translation id="5041394372352067729">পৃষ্ঠার উপরের দিকে ব্রেইল প্রদর্শন সরান</translation> <translation id="5042770794184672516">কথন ভলিউম বাড়ান</translation> <translation id="5050015258024679800">পূর্ববর্তী স্তর ৫ শিরোনাম</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_cs.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_cs.xtb index d74307193..210a13b 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_cs.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_cs.xtb
@@ -138,7 +138,7 @@ <translation id="2267945578749931355">Další znak</translation> <translation id="2281234842553884450">Předchozí posuvník</translation> <translation id="2294136146931447363">Začátek kurzívy</translation> -<translation id="2311237334957139798">Přejít na předchozí na úrovni podrobnosti</translation> +<translation id="2311237334957139798">Přejít na předchozí při úrovni podrobnosti</translation> <translation id="2318372665160196757">Hlavní</translation> <translation id="2329324941084714723">Panel karty</translation> <translation id="2344193891939537199">Ovládací prvek času a data</translation> @@ -688,7 +688,7 @@ <translation id="6540201937398578274">Jako modifikační klávesa funguje v nástroji ChromeVox vyhledávací tlačítko. Většina klávesových zkratek nástroje ChromeVox začíná vyhledávacím tlačítkem. K navigaci se používají také klávesy se šipkami.</translation> <translation id="6550720799683018100">Aktuální mapu kláves můžete změnit výběrem některé z položek v následujícím seznamu.</translation> <translation id="6561818612645211875">Přejít na začátek aktuálního řádku</translation> -<translation id="6583174818554398774">Přejít na další na úrovni podrobnosti</translation> +<translation id="6583174818554398774">Přejít na další při úrovni podrobnosti</translation> <translation id="6587021927234520429">Žádný další nadpis 4. úrovně.</translation> <translation id="6601344353291556895">Aktivovat podrobné popisy.</translation> <translation id="6615602925644411249">Vyhledávání na stránce</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_da.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_da.xtb index c3012ab..d4b8bbb 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_da.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_da.xtb
@@ -521,7 +521,7 @@ <translation id="5106547198195128110">Vi har nogle spændende ændringer i denne nye udgivelse. Her er nyhederne:</translation> <translation id="5110983769041734144">Ingen tidligere formularfelter.</translation> <translation id="5111640677200759579">Kolonneoverskrift</translation> -<translation id="5115892389597951922">ChromeVox-logfil</translation> +<translation id="5115892389597951922">ChromeVox-log</translation> <translation id="5136967254288895616">Ingen tidligere links.</translation> <translation id="513774504516943387">lnk</translation> <translation id="5158275234811857234">Forside</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 9e09226..952c067 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_et.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_et.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">Leidke soovitud klahv ja tõstke sisestamiseks sõrm ekraanilt</translation> <translation id="1012173283529841972">Loendiüksus</translation> <translation id="1013742170491673792">srched</translation> +<translation id="1014370462248694370">Pühkige kahe sõrmega paremale</translation> <translation id="1022586497894531524">Kas kasutate esimest korda ChromeVoxi suulist tagasisidet? Selles kiirõpetuses selgitatakse ChromeVoxi kasutamiseks vajalikku põhiteavet.</translation> <translation id="1023866615269196768">Ulatusega.</translation> <translation id="1025074108959230262">Nakkerežiim on keelatud</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">Lülitage helitagasiside (helisignaalid) sisse või välja.</translation> <translation id="1108651818222110612">tiiter</translation> <translation id="1120743664840974483">{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}</translation> +<translation id="1120938014254001895">Pühkige kahe sõrmega üles</translation> <translation id="1124771028211010580">Praegu on valitud kuvastiil Kõrvuti.</translation> <translation id="113582498867142724">Kollektsioon <ph name="TAG" />, mis hõlmab <ph name="NUM" /> üksust</translation> <translation id="1155043339247954670">Järgmist loendiüksust ei ole.</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">Link</translation> <translation id="1727806147743597030">ftr</translation> <translation id="174268867904053074">Järgmine graafik</translation> +<translation id="1765245556747822181">Pühkige ühe sõrmega üles</translation> <translation id="1781173782405573156">Läbimisklahv</translation> <translation id="1787176709638001873">Parooli muutmise tekst</translation> <translation id="1802710350767629429">Kuva värskenduse märkmed</translation> @@ -137,9 +140,10 @@ <translation id="2223693656926968778">Toiming praeguse üksusega</translation> <translation id="225732394367814946">Suurenda kõne kiirust</translation> <translation id="2267945578749931355">Järgmine tärk</translation> +<translation id="2278490101488436824">Pühkige kolme sõrmega vasakule</translation> <translation id="2281234842553884450">Eelmine liugur</translation> <translation id="2294136146931447363">Kursiivi algus</translation> -<translation id="2311237334957139798">Detailsustasemel eelmise üksuse juurde liikumine</translation> +<translation id="2311237334957139798">Eelmisele tasemele liikumine</translation> <translation id="2318372665160196757">Peamine</translation> <translation id="2329324941084714723">Vahelehepaneel</translation> <translation id="2344193891939537199">Kuupäeva ja kellaaja valimine</translation> @@ -209,17 +213,20 @@ <translation id="2864481629947106776">Eelmine link</translation> <translation id="2867808975387772810">Bibliograafia</translation> <translation id="2873259058405069099">Mine tabeli algusesse</translation> +<translation id="2879867157561757640">Pühkige kolme sõrmega alla</translation> <translation id="288178314850623291">Teatud elementide vahelejätmiseks kasutage hüppekäske. Päiste hulgas edasihüppamiseks vajutage otsinguklahvi ja klahvi H, tagasihüppamiseks otsinguklahvi, tõstuklahvi ja klahvi H.</translation> <translation id="2894654529758326923">Teave</translation> <translation id="2899328121302785497">{COUNT,plural, =1{vasak loogeline sulg}other{# vasakut loogelist sulgu}}</translation> <translation id="2909478709401302630">Ülaindeksi algus</translation> <translation id="2911433807131383493">ChromeVoxi õpetuse avamine</translation> +<translation id="2912405967290226587">Pühkige kolme sõrmega paremale</translation> <translation id="2932083475399492303">Vahetab struktuurse ja paigutuse joone vahel</translation> <translation id="2944762337049891859">Lehte loetakse pärast laadimise lõpetamist automaatselt.</translation> <translation id="2964026537669811554">Pealkirja rühm</translation> <translation id="296951647852255825">{COUNT,plural, =1{tabulaator}other{# tabulaatorit}}</translation> <translation id="2972078295414139404">Pole eelmist külastatud linki.</translation> <translation id="2972205263822847197">Tööriista nõuanne</translation> +<translation id="297825089465017871">Pühkige kahe sõrmega vasakule</translation> <translation id="2998131015536248178">Eelmine tärk</translation> <translation id="2999559350546931576">Vähenda helikõrgust</translation> <translation id="2999945368667127852">Järgmist meediavidinat pole.</translation> @@ -231,6 +238,7 @@ <translation id="3046838483509668188">ChromeVoxi valikud</translation> <translation id="3047143736589213134">Katseline klahvitabel</translation> <translation id="3060756054951570867">Menüü <ph name="TITLE" /> on avatud</translation> +<translation id="3070245424257836917">Pühkige kolme sõrmega üles</translation> <translation id="3078345202707391975">Järgmine 2. taseme pealkiri</translation> <translation id="3078740164268491126">tabel</translation> <translation id="3082249673510793544">Tagasikerimine</translation> @@ -343,6 +351,7 @@ <translation id="3599054940393788245">Ei kuulu valemisse</translation> <translation id="360241989769010433">Tunnustused</translation> <translation id="3616113530831147358">Heli</translation> +<translation id="3622350485154495700">Topeltpuudutage ühe sõrmega</translation> <translation id="3646890046000188562">{COUNT,plural, =1{graavis}other{# graavist}}</translation> <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dollar}other{# dollarimärki}}</translation> @@ -462,6 +471,7 @@ <translation id="4688873778442829762">võrg</translation> <translation id="4693675773662933727">Eelmine maamärk</translation> <translation id="4696413482802371445">Järgmist 5. taseme pealkirja ei ole.</translation> +<translation id="4710166929009737753">Pühkige ühe sõrmega paremale</translation> <translation id="4729095194763193578">Eelmine tabeli rida</translation> <translation id="4736221692378411923">August</translation> <translation id="4740661827607246557">Abikäsud</translation> @@ -474,6 +484,7 @@ <translation id="4826415162591436065">Liigu edasi</translation> <translation id="4826604887384865800">Järgmine hüpe</translation> <translation id="4827410568042294688">valimata</translation> +<translation id="4838490795649708173">Puudutage nelja sõrmega</translation> <translation id="4839925464551908214">Liigu eelmisele reale</translation> <translation id="4842108708071771135">Järgmist plokktsitaati ei ole.</translation> <translation id="4844625982113518938">Vajutage mis tahes klahvi, et selle nimi teada saada. Klahvikombinatsioon Ctrl + W suleb õppimisrežiimi.</translation> @@ -610,6 +621,7 @@ <translation id="5750633686117194034">Ei vajutatud ühtegi muuteklahvi. Vajutage ja hoidke all vähemalt ühte muuteklahvi. Kui olete lõpetanud, tõstke sõrmed ja kuulete klahvide fikseerimist. Väljumiseks puudutage.</translation> <translation id="5760594853119905566">Lisa</translation> <translation id="5788275253279308023">inkognitoakna vaheleht <ph name="TITLE" /></translation> +<translation id="5805940204952508776">Puudutage kahe sõrmega</translation> <translation id="5806206155699461681">Konkreetsete saitide (nagu Google'i otsing) täiustamine.</translation> <translation id="5819072574982403430">Puuüksus</translation> <translation id="5826479389509458994">rida <ph name="ROW" /> veerg <ph name="COL" /></translation> @@ -689,7 +701,7 @@ <translation id="6540201937398578274">ChromeVoxis kasutatakse muuteklahvina otsinguklahvi. Enamik ChromeVoxi otseteid põhinevad otsinguklahvil. Navigeerimiseks kasutatakse ka nooleklahve.</translation> <translation id="6550720799683018100">Muutke praegust klahvitabelit, tehes valiku allolevas loendis.</translation> <translation id="6561818612645211875">Mine praeguse rea algusesse</translation> -<translation id="6583174818554398774">Detailsustasemel järgmise üksuse juurde liikumine</translation> +<translation id="6583174818554398774">Järgmisele tasemele liikumine</translation> <translation id="6587021927234520429">Järgmist 4. taseme pealkirja ei ole.</translation> <translation id="6601344353291556895">Paljusõnaliste kirjelduste lubamine.</translation> <translation id="6615602925644411249">Lehelt otsimine.</translation> @@ -714,8 +726,10 @@ <translation id="6786800275320335305">Artikkel</translation> <translation id="6787839852456839824">Klaviatuuri otseteed</translation> <translation id="6793101435925451627">lndkast</translation> +<translation id="6826226459053491773">Pühkige kahe sõrmega alla</translation> <translation id="6833103209700200188">Jalus</translation> <translation id="6858047746862060282">Proloog</translation> +<translation id="6859876496651143278">Pühkige ühe sõrmega vasakule</translation> <translation id="6871161210040114857">Tähe suurust eiratakse.</translation> <translation id="6877435256196695200">Järgmist graafikat ei ole.</translation> <translation id="6897341342232909480">Teisalda vasakule</translation> @@ -965,6 +979,7 @@ <translation id="923331726185079994">ChromeVox on värskendatud</translation> <translation id="930275611743429116">Valimise alustamine või lõpetamine.</translation> <translation id="948171205378458592">Vähenda kõne kiirust</translation> +<translation id="958854023026327378">Pühkige ühe sõrmega alla</translation> <translation id="962913030769097253">Järgmine 1. taseme pealkiri</translation> <translation id="973955474346881951">Luba/keela püsiv režiim</translation> <translation id="976849232629612000">Üksusi ei ole.</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fa.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fa.xtb index e466fbb..7d7280a 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fa.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fa.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">کلیدی را پیدا کنید، سپس سراغ تایپ کردن بروید</translation> <translation id="1012173283529841972">مورد فهرست</translation> <translation id="1013742170491673792">srched</translation> +<translation id="1014370462248694370">تند کشیدن دو انگشت به چپ</translation> <translation id="1022586497894531524">اولین بار است که از بازخورد گفتاری ChromeVox استفاده میکنید؟ این آموزش گامبهگام سریع، اصول اولیه شروع به کار با ChromeVox را توضیح میدهد.</translation> <translation id="1023866615269196768">گسترش یافت.</translation> <translation id="1025074108959230262">حالت چسبان غیرفعال شد</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">بازخورد صوتی (نمادهای شنیداری) را روشن یا خاموش کنید.</translation> <translation id="1108651818222110612">زیرنویس</translation> <translation id="1120743664840974483">{«ا»: «اسب»، «ب»: «بازی»، «پ»: «پروین»، «ت»: «ترانه»، «ث»: «ثریا»، «ج»: «جوجه»، «چ»: «چرخ»، «ح»: «حریم»، « خ»:«خصوصی »، « د»: «دفترچه»، «ذ»: «ذلیل»، «ر»: «روز»، «ز»: «زمان»، «ژ»: «ژولیت»، «س»: «سیاست»، «ش»: «شنبه»، «ص»: «صفحه»، «ض»: «ضروری»، «ط»: «طراوت»، «ظ»: «ظهر»، «ع»: «عصر»، « غ»: «غروب»، «ف»: «فروش»، «ق»: «قلب»، «ک»: «کودکان»، «گ»: «گوشی»، «ل»: «لوله»، «م»: «مرز»، «ن»: «نامناسب»، «و»: «ویلا»، «ه»: «هیاهو»، «ی»: «یادآور»}</translation> +<translation id="1120938014254001895">تند کشیدن دو انگشت به بالا</translation> <translation id="1124771028211010580">سبک نمایش کنونی، پهلو به پهلو است.</translation> <translation id="113582498867142724">مجموعه <ph name="TAG" /> با <ph name="NUM" /> مورد</translation> <translation id="1155043339247954670">مورد فهرست بعدی وجود ندارد.</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">پیوند</translation> <translation id="1727806147743597030">ftr</translation> <translation id="174268867904053074">گرافیک بعدی</translation> +<translation id="1765245556747822181">تند کشیدن یک انگشت به بالا</translation> <translation id="1781173782405573156">کلید عبور</translation> <translation id="1787176709638001873">نوشتار ویرایش گذرواژه</translation> <translation id="1802710350767629429">نمایش نکاتی درباره بهروزرسانی</translation> @@ -137,6 +140,7 @@ <translation id="2223693656926968778">در خصوص مورد کنونی اقدامی انجام دهید</translation> <translation id="225732394367814946">افزایش سرعت گفتار</translation> <translation id="2267945578749931355">نویسه بعدی</translation> +<translation id="2278490101488436824">تند کشیدن سه انگشت به راست</translation> <translation id="2281234842553884450">اسلایدر قبلی</translation> <translation id="2294136146931447363">شروع ایتالیک</translation> <translation id="2311237334957139798">حرکت به قبلی با جزئیات</translation> @@ -209,17 +213,20 @@ <translation id="2864481629947106776">پیوند قبلی</translation> <translation id="2867808975387772810">فهرست منابع</translation> <translation id="2873259058405069099">رفتن به ابتدای جدول</translation> +<translation id="2879867157561757640">تند کشیدن سه انگشت به پایین</translation> <translation id="288178314850623291">برای رد شدن و رفتن به انواع عناصر، از فرمانهای پرش استفاه کنید. برای پرش به جلو بین عناوین، «جستجو» + H یا برای پرش به عقب «جستجو» + Shift + H را فشار دهید.</translation> <translation id="2894654529758326923">اطلاعات</translation> <translation id="2899328121302785497">{COUNT,plural, =1{آکولاد چپ}one{# آکولاد چپ}other{# آکولاد چپ}}</translation> <translation id="2909478709401302630">شروع بالانویس</translation> <translation id="2911433807131383493">باز کردن برنامه آموزشی ChromeVox</translation> +<translation id="2912405967290226587">تند کشیدن سه انگشت به چپ</translation> <translation id="2932083475399492303">تعویض نوع خط بین حالت چیدمان یا ساختاری</translation> <translation id="2944762337049891859">خواندن صفحه بهصورت خودکار بعد از اتمام بارگیری.</translation> <translation id="2964026537669811554">سرگروه</translation> <translation id="296951647852255825">{COUNT,plural, =1{علامت جهش}one{# علامت جهش}other{# علامت جهش}}</translation> <translation id="2972078295414139404">پیوند بازدید شده قبلی وجود ندارد.</translation> <translation id="2972205263822847197">راهنمای ابزار</translation> +<translation id="297825089465017871">تند کشیدن دو انگشت به راست</translation> <translation id="2998131015536248178">نویسه قبلی</translation> <translation id="2999559350546931576">کاهش گام</translation> <translation id="2999945368667127852">ابزارک رسانهای بعدی دیگری وجود ندارد</translation> @@ -231,6 +238,7 @@ <translation id="3046838483509668188">گزینههای ChromeVox</translation> <translation id="3047143736589213134">نقشه کلید آزمایشی</translation> <translation id="3060756054951570867">منوی <ph name="TITLE" /> باز شد</translation> +<translation id="3070245424257836917">تند کشیدن سه انگشت به بالا</translation> <translation id="3078345202707391975">عنوان بعدی سطح ۲</translation> <translation id="3078740164268491126">جدول</translation> <translation id="3082249673510793544">پیمایش به عقب</translation> @@ -343,6 +351,7 @@ <translation id="3599054940393788245">بدون ریاضی داخلی</translation> <translation id="360241989769010433">قدردانی</translation> <translation id="3616113530831147358">صوتی</translation> +<translation id="3622350485154495700">دو ضربه سریع با یک انگشت</translation> <translation id="3646890046000188562">{COUNT,plural, =1{نقل قول وارونه}one{# نقل قول وارونه}other{# نقل قول وارونه}}</translation> <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{علامت دلار}one{# علامت دلار}other{# علامت دلار}}</translation> @@ -462,6 +471,7 @@ <translation id="4688873778442829762">grd</translation> <translation id="4693675773662933727">علامت مشخصه قبلی</translation> <translation id="4696413482802371445">عنوان سطح ۵ بعدی وجود ندارد.</translation> +<translation id="4710166929009737753">تند کشیدن یک انگشت به چپ</translation> <translation id="4729095194763193578">ردیف جدول قبلی</translation> <translation id="4736221692378411923">اوت</translation> <translation id="4740661827607246557">فرمانهای راهنما</translation> @@ -474,6 +484,7 @@ <translation id="4826415162591436065">پیمایش به جلو</translation> <translation id="4826604887384865800">پرش بعدی</translation> <translation id="4827410568042294688">انتخاب لغو شد</translation> +<translation id="4838490795649708173">ضربه با چهار انگشت</translation> <translation id="4839925464551908214">رفتن به ردیف قبلی</translation> <translation id="4842108708071771135">نقل قول بعدی موجود نیست.</translation> <translation id="4844625982113518938">برای یاد گرفتن نام آن، کلیدی را فشار دهید. Ctrl+W حالت یادگیری را خواهد بست.</translation> @@ -610,6 +621,7 @@ <translation id="5750633686117194034">کلید تغییردهندهای فشار داده نشده است؛ لطفاً یک یا چند کلید تغییردهنده را فشار دهید و نگهدارید؛ پس از انجام این کار انگشتان خود را بردارید تا صدای تنظیم کلیدها را بشنوید. برای خروج روی Tab بزنید.</translation> <translation id="5760594853119905566">ضمیمه</translation> <translation id="5788275253279308023">پنجره ناشناس برگه <ph name="TITLE" /></translation> +<translation id="5805940204952508776">ضربه با دو انگشت</translation> <translation id="5806206155699461681">بهبود تجربه سایتهایی خاص (مانند جستجوی Google).</translation> <translation id="5819072574982403430">مورد درختی</translation> <translation id="5826479389509458994">ردیف <ph name="ROW" /> ستون <ph name="COL" /></translation> @@ -714,8 +726,10 @@ <translation id="6786800275320335305">مقاله</translation> <translation id="6787839852456839824">میانبرهای صفحهکلید</translation> <translation id="6793101435925451627">lstbx</translation> +<translation id="6826226459053491773">تند کشیدن دو انگشت به پایین</translation> <translation id="6833103209700200188">پاورقی</translation> <translation id="6858047746862060282">گفتار آغازین</translation> +<translation id="6859876496651143278">تند کشیدن یک انگشت به راست</translation> <translation id="6871161210040114857">بزرگی و کوچکی حروف نادیده گرفته شود.</translation> <translation id="6877435256196695200">گرافیک بعدی موجود نیست.</translation> <translation id="6897341342232909480">حرکت به چپ</translation> @@ -965,6 +979,7 @@ <translation id="923331726185079994">ChromeVox بهروز شد</translation> <translation id="930275611743429116">شروع یا پایان انتخاب.</translation> <translation id="948171205378458592">کاهش سرعت گفتار</translation> +<translation id="958854023026327378">تند کشیدن یک انگشت به پایین</translation> <translation id="962913030769097253">عنوان بعدی سطح ۱</translation> <translation id="973955474346881951">فعال/غیرفعال کردن حالت چسبنده</translation> <translation id="976849232629612000">موردی وجود ندارد.</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fil.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fil.xtb index f4db98f4..aaf606e 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fil.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fil.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">Maghanap ng key, pagkatapos ay iangat para mag-type</translation> <translation id="1012173283529841972">Item sa listahan</translation> <translation id="1013742170491673792">srched</translation> +<translation id="1014370462248694370">Mag-swipe pakanan gamit ang dalawang daliri</translation> <translation id="1022586497894531524">Unang beses mo bang gagamitin ang pasalitang feedback ng ChromeVox? Ipinapaliwanag sa maikling tutorial na ito ang mga kinakailangan para sa pagsisimula sa ChromeVox.</translation> <translation id="1023866615269196768">Na-span.</translation> <translation id="1025074108959230262">Na-disable ang sticky mode</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">I-on o i-off ang feedback ng tunog (mga earcon).</translation> <translation id="1108651818222110612">subti</translation> <translation id="1120743664840974483">{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}</translation> +<translation id="1120938014254001895">Mag-swipe pataas gamit ang dalawang daliri</translation> <translation id="1124771028211010580">Tabi-tabi ang kasalukuyang istilo ng display.</translation> <translation id="113582498867142724">Koleksyon ng <ph name="TAG" /> na may <ph name="NUM" /> (na) item</translation> <translation id="1155043339247954670">Walang susunod na item sa listahan.</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">Link</translation> <translation id="1727806147743597030">ftr</translation> <translation id="174268867904053074">Susunod na graphic</translation> +<translation id="1765245556747822181">Mag-swipe pataas gamit ang isang daliri</translation> <translation id="1781173782405573156">Ipasa ang susunod na key</translation> <translation id="1787176709638001873">Text sa pag-edit ng password</translation> <translation id="1802710350767629429">Ipakita ang mga tala sa pag-update</translation> @@ -137,6 +140,7 @@ <translation id="2223693656926968778">Magsagawa ng pagkilos sa kasalukuyang item</translation> <translation id="225732394367814946">Dagdagan ang rate ng speech</translation> <translation id="2267945578749931355">Susunod na Character</translation> +<translation id="2278490101488436824">Mag-swipe pakaliwa gamit ang tatlong daliri</translation> <translation id="2281234842553884450">Nakaraang slider</translation> <translation id="2294136146931447363">Simula ng italic</translation> <translation id="2311237334957139798">Lumipat sa nakaraang granularity</translation> @@ -209,17 +213,20 @@ <translation id="2864481629947106776">Nakaraang link</translation> <translation id="2867808975387772810">Bibliograpiya</translation> <translation id="2873259058405069099">Pumunta sa umpisa ng talahanayan</translation> +<translation id="2879867157561757640">Mag-swipe pababa gamit ang tatlong daliri</translation> <translation id="288178314850623291">Gamitin ang mga command sa paglipat upang pumunta sa mga partikular na uri ng element. Upang pumunta sa mga susunod na heading, pindutin ang Paghahanap + H, o upang bumalik, pindutin ang Paghahanap + Shift + H.</translation> <translation id="2894654529758326923">Impormasyon</translation> <translation id="2899328121302785497">{COUNT,plural, =1{kaliwang brace}one{# kaliwang brace}other{# na kaliwang brace}}</translation> <translation id="2909478709401302630">Simula ng superscript</translation> <translation id="2911433807131383493">Buksan ang tutorial ng ChromeVox</translation> +<translation id="2912405967290226587">Mag-swipe pakanan gamit ang tatlong daliri</translation> <translation id="2932083475399492303">I-toggle ang uri ng linya sa pagitan ng structural o layout</translation> <translation id="2944762337049891859">Awtomatikong basahin ang page pagkatapos nitong mag-load.</translation> <translation id="2964026537669811554">Pangkat ng heading</translation> <translation id="296951647852255825">{COUNT,plural, =1{tab}one{# tab}other{# na tab}}</translation> <translation id="2972078295414139404">Walang nakaraang binisitang link.</translation> <translation id="2972205263822847197">Tool tip</translation> +<translation id="297825089465017871">Mag-swipe pakaliwa gamit ang dalawang daliri</translation> <translation id="2998131015536248178">Nakaraang Character</translation> <translation id="2999559350546931576">Babaan ang pitch</translation> <translation id="2999945368667127852">Walang susunod na widget ng media.</translation> @@ -231,6 +238,7 @@ <translation id="3046838483509668188">Mga Opsyon sa ChromeVox</translation> <translation id="3047143736589213134">Pang-eksperimentong keymap</translation> <translation id="3060756054951570867">binuksan ang menu ng <ph name="TITLE" /></translation> +<translation id="3070245424257836917">Mag-swipe pataas gamit ang tatlong daliri</translation> <translation id="3078345202707391975">Susunod na heading sa antas 2</translation> <translation id="3078740164268491126">talahanayan</translation> <translation id="3082249673510793544">Mag-scroll pabalik</translation> @@ -343,6 +351,7 @@ <translation id="3599054940393788245">Hindi sa loob ng math</translation> <translation id="360241989769010433">Mga Pagkilala</translation> <translation id="3616113530831147358">Audio</translation> +<translation id="3622350485154495700">Mag-double tap gamit ang isang daliri</translation> <translation id="3646890046000188562">{COUNT,plural, =1{backtick}one{# backtick}other{# na backtick}}</translation> <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dollar}one{# dollar sign}other{# na dollar sign}}</translation> @@ -462,6 +471,7 @@ <translation id="4688873778442829762">grd</translation> <translation id="4693675773662933727">Nakaraang landmark</translation> <translation id="4696413482802371445">Walang susunod na heading sa antas 5.</translation> +<translation id="4710166929009737753">Mag-swipe pakanan gamit ang isang daliri</translation> <translation id="4729095194763193578">Nakaraang row ng talahanayan</translation> <translation id="4736221692378411923">Agosto</translation> <translation id="4740661827607246557">Mga Command ng Tulong</translation> @@ -474,6 +484,7 @@ <translation id="4826415162591436065">Mag-navigate pasulong</translation> <translation id="4826604887384865800">Susunod na paglaktaw</translation> <translation id="4827410568042294688">hindi napili</translation> +<translation id="4838490795649708173">Mag-tap gamit ang apat na daliri</translation> <translation id="4839925464551908214">Pumunta sa nakaraang row</translation> <translation id="4842108708071771135">Walang susunod na blockquote.</translation> <translation id="4844625982113518938">Pumindot ng anumang key upang malaman ang pangalan nito. Kapag pinindot ang Ctrl+W, sasara ang learn mode.</translation> @@ -610,6 +621,7 @@ <translation id="5750633686117194034">Walang pinindot na modifier; mangyaring pindutin nang matagal ang isa o higit pang mga modifier; iangat ang iyong mga daliri kapag tapos na at maririnig mo ang pagtakda sa mga key. Mag-tap upang lumabas.</translation> <translation id="5760594853119905566">Appendix</translation> <translation id="5788275253279308023">tab na <ph name="TITLE" /> ng incognito window</translation> +<translation id="5805940204952508776">Mag-tap gamit ang dalawang daliri</translation> <translation id="5806206155699461681">Magpahusay ng mga partikular na site (tulad ng Google Search).</translation> <translation id="5819072574982403430">Tree item</translation> <translation id="5826479389509458994">row <ph name="ROW" /> column <ph name="COL" /></translation> @@ -714,8 +726,10 @@ <translation id="6786800275320335305">Artikulo</translation> <translation id="6787839852456839824">Mga keyboard shortcut</translation> <translation id="6793101435925451627">lstbx</translation> +<translation id="6826226459053491773">Mag-swipe pababa gamit ang dalawang daliri</translation> <translation id="6833103209700200188">Footer</translation> <translation id="6858047746862060282">Prologue</translation> +<translation id="6859876496651143278">Mag-swipe pakaliwa gamit ang isang daliri</translation> <translation id="6871161210040114857">Binabalewala ang case.</translation> <translation id="6877435256196695200">Walang susunod na graphic.</translation> <translation id="6897341342232909480">Ilipat pakaliwa</translation> @@ -965,6 +979,7 @@ <translation id="923331726185079994">Na-update ang ChromeVox</translation> <translation id="930275611743429116">Simulan o tapusin ang pagpili.</translation> <translation id="948171205378458592">Bawasan ang rate ng speech</translation> +<translation id="958854023026327378">Mag-swipe pababa gamit ang isang daliri</translation> <translation id="962913030769097253">Susunod na heading sa antas 1</translation> <translation id="973955474346881951">I-enable/I-disable ang sticky mode</translation> <translation id="976849232629612000">Walang mga item.</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 ae80794..3008abd9 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fr.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fr.xtb
@@ -139,7 +139,7 @@ <translation id="2267945578749931355">Caractère suivant</translation> <translation id="2281234842553884450">Curseur précédent</translation> <translation id="2294136146931447363">Début du texte en italique</translation> -<translation id="2311237334957139798">Reculer avec précision</translation> +<translation id="2311237334957139798">Revenir au niveau de précision précédent</translation> <translation id="2318372665160196757">Principal</translation> <translation id="2329324941084714723">Panneau tab</translation> <translation id="2344193891939537199">Commande relative à la date et à l'heure</translation> @@ -689,7 +689,7 @@ <translation id="6540201937398578274">Dans ChromeVox, la touche de recherche correspond à la touche de modification. La plupart des raccourcis ChromeVox commencent par la touche de recherche. Les touches fléchées sont utilisées pour la navigation.</translation> <translation id="6550720799683018100">Modifiez le mappage actuel du clavier en sélectionnant une option dans la liste ci-dessous.</translation> <translation id="6561818612645211875">Accéder au début de la ligne actuelle</translation> -<translation id="6583174818554398774">Avancer avec précision</translation> +<translation id="6583174818554398774">Passer au niveau de précision suivant</translation> <translation id="6587021927234520429">Aucun titre de niveau 4 suivant</translation> <translation id="6601344353291556895">Activer les descriptions détaillées</translation> <translation id="6615602925644411249">Rechercher sur la page</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_gu.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_gu.xtb index 4dc70dd..c56df6e 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_gu.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_gu.xtb
@@ -139,7 +139,7 @@ <translation id="2267945578749931355">આગલો અક્ષર</translation> <translation id="2281234842553884450">પહેલાનું સ્લાઇડર</translation> <translation id="2294136146931447363">ઇટાલિક શરૂ</translation> -<translation id="2311237334957139798">ગ્રેન્યુલારિટિ પર પાછળ ખસેડો</translation> +<translation id="2311237334957139798">વિવરણના પાછલા લેવલ પર જાઓ</translation> <translation id="2318372665160196757">મુખ્ય</translation> <translation id="2329324941084714723">ટેબ પેનલ</translation> <translation id="2344193891939537199">તારીખ સમયનું નિયંત્રણ</translation> @@ -687,7 +687,7 @@ <translation id="6540201937398578274">ChromeVoxમાં, શોધ કી એ પરિવર્તનકારી કી છે. મોટાભાગના ChromeVox શૉર્ટકટ શોધ કી વડે શરૂ થાય છે. તમે નૅવિગેશન માટે તીર કીનો ઉપયોગ પણ કરશો.</translation> <translation id="6550720799683018100">નીચેની સૂચિમાંથી એક વિકલ્પ પસંદ કરીને વર્તમાન કીમૅપ બદલો.</translation> <translation id="6561818612645211875">ચાલુ પંક્તિની શરૂઆત પર જાઓ</translation> -<translation id="6583174818554398774">ગ્રેન્યુલારિટિ પર આગળ ખસેડો</translation> +<translation id="6583174818554398774">વિવરણના આગલા લેવલ પર જાઓ</translation> <translation id="6587021927234520429">આગલું સ્તર 4 મથાળું નથી.</translation> <translation id="6601344353291556895">વર્બોઝ વર્ણનો સક્ષમ કરો.</translation> <translation id="6615602925644411249">પૃષ્ઠમાં શોધો.</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hr.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hr.xtb index 7220abe75..7e1d43fc 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hr.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hr.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">Pronađite tipku, zatim podignite za unos</translation> <translation id="1012173283529841972">Stavka popisa</translation> <translation id="1013742170491673792">prtrž</translation> +<translation id="1014370462248694370">Prelazak dvama prstima udesno</translation> <translation id="1022586497894531524">Prvi put upotrebljavate govorne povratne informacije ChromeVox? Ovaj će vam brzi vodič pokazati osnovne upute za početak upotrebe ChromeVoxa.</translation> <translation id="1023866615269196768">Rastegnuto.</translation> <translation id="1025074108959230262">Ljepljiv način onemogućen</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">Uključuje ili isključuje zvučne povratne informacije (zvučne ikone).</translation> <translation id="1108651818222110612">titl</translation> <translation id="1120743664840974483">{"a": "Alan", "b": "Biokovo", "c": "Cavtat", "č": "Čakovec", "ć": "Ćilipi", "d": "Dubrovnik", "dž": "Džamija", "đ": "Đakovo", "e": "Europa", "f": "Fažana", "g": "Gospić", "h": "Hrvatska", "i": "Istra", "j": "Jadran", "k": "Karlovac", "l": "Lika", "lj": "Ljuta", "m": "Makarska", "n": "Novska", "nj": "Njivice", "o": "Osijek", "p": "Pula", "r": "Rijeka", "s": "Sisak", "š": "Šibenik", "t": "Trogir", "u": "Učka", "v": "Vukovar", "z": "Zagreb", "ž": Žabno"}</translation> +<translation id="1120938014254001895">Prelazak dvama prstima prema gore</translation> <translation id="1124771028211010580">Trenutačni je stil prikaza usporedan.</translation> <translation id="113582498867142724"><ph name="TAG" /> zbirka sa sljedećim brojem stavki: <ph name="NUM" /></translation> <translation id="1155043339247954670">Nema sljedeće stavke popisa.</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">Veza</translation> <translation id="1727806147743597030">podnžj</translation> <translation id="174268867904053074">Sljedeća slika</translation> +<translation id="1765245556747822181">Prelazak jednim prstom prema gore</translation> <translation id="1781173782405573156">Tipka za izravni pristup</translation> <translation id="1787176709638001873">Tekst uređivanja zaporke</translation> <translation id="1802710350767629429">Prikaz napomena o ažuriranju</translation> @@ -137,6 +140,7 @@ <translation id="2223693656926968778">Radnja na trenutačnoj stavci</translation> <translation id="225732394367814946">Povećanje brzine govora</translation> <translation id="2267945578749931355">Sljedeći znak</translation> +<translation id="2278490101488436824">Prelazak trima prstima ulijevo</translation> <translation id="2281234842553884450">Prethodni klizač</translation> <translation id="2294136146931447363">Početak kurziva</translation> <translation id="2311237334957139798">Pomicanje na prethodno s razinom preciznosti</translation> @@ -209,17 +213,20 @@ <translation id="2864481629947106776">Prethodna veza</translation> <translation id="2867808975387772810">Bibliografija</translation> <translation id="2873259058405069099">Prelazak na početak tablice</translation> +<translation id="2879867157561757640">Prelazak trima prstima prema dolje</translation> <translation id="288178314850623291">Za prelazak na određene vrste elemenata koristite skočne naredbe. Za pomicanje unaprijed po naslovima pritišćite tipku za pretraživanje i H, a za preskakanje unatrag pritisnite tipku za pretraživanje + Shift + H.</translation> <translation id="2894654529758326923">Informacije</translation> <translation id="2899328121302785497">{COUNT,plural, =1{lijeva vitičasta zagrada}one{# lijeva vitičasta zagrada}few{# lijeve vitičaste zagrade}other{# lijevih vitičasta zagrada}}</translation> <translation id="2909478709401302630">Početak eksponenta</translation> <translation id="2911433807131383493">Otvaranje vodiča za ChromeVox</translation> +<translation id="2912405967290226587">Prelazak trima prstima udesno</translation> <translation id="2932083475399492303">Izmjenjivanje strukturne crte i crte rasporeda</translation> <translation id="2944762337049891859">Automatski pročitaj stranicu kad se učita.</translation> <translation id="2964026537669811554">Skupina naslova</translation> <translation id="296951647852255825">{COUNT,plural, =1{tabulator}one{# tabulator}few{# tabulatora}other{# tabulatora}}</translation> <translation id="2972078295414139404">Nema prethodne posjećene veze.</translation> <translation id="2972205263822847197">Opis</translation> +<translation id="297825089465017871">Prelazak dvama prstima ulijevo</translation> <translation id="2998131015536248178">Prethodni znak</translation> <translation id="2999559350546931576">Snižavanje visine tona</translation> <translation id="2999945368667127852">Nema sljedećeg widgeta medija.</translation> @@ -231,6 +238,7 @@ <translation id="3046838483509668188">Opcije ChromeVoxa</translation> <translation id="3047143736589213134">Eksperimentalna karta tipkovnice</translation> <translation id="3060756054951570867">otvoren je izbornik <ph name="TITLE" /></translation> +<translation id="3070245424257836917">Prelazak trima prstima prema gore</translation> <translation id="3078345202707391975">Sljedeći naslov razine 2</translation> <translation id="3078740164268491126">tablica</translation> <translation id="3082249673510793544">Pomicanje unatrag</translation> @@ -343,6 +351,7 @@ <translation id="3599054940393788245">Nije u matematičkoj oznaci</translation> <translation id="360241989769010433">Zahvale</translation> <translation id="3616113530831147358">Audio</translation> +<translation id="3622350485154495700">Dvostruki dodir jednim prstom</translation> <translation id="3646890046000188562">{COUNT,plural, =1{zatvoreni jednostruki navodnik}one{# zatvoreni jednostruki navodnik}few{# zatvorena jednostruka navodnika}other{# zatvorenih jednostrukih navodnika}}</translation> <translation id="3650317109285159359">ptvrdstizb</translation> <translation id="3655855170848725876">{COUNT,plural, =1{znak dolara}one{# znak dolara}few{# znaka dolara}other{# znakova dolara}}</translation> @@ -462,6 +471,7 @@ <translation id="4688873778442829762">rštk</translation> <translation id="4693675773662933727">Prethodni orijentir</translation> <translation id="4696413482802371445">Nema sljedećeg naslova razine 5.</translation> +<translation id="4710166929009737753">Prelazak jednim prstom udesno</translation> <translation id="4729095194763193578">Prethodni redak tablice</translation> <translation id="4736221692378411923">kolovoz</translation> <translation id="4740661827607246557">Naredbe pomoći</translation> @@ -474,6 +484,7 @@ <translation id="4826415162591436065">Kretanje naprijed</translation> <translation id="4826604887384865800">Sljedeći skok</translation> <translation id="4827410568042294688">neodabran</translation> +<translation id="4838490795649708173">Dodir četirima prstima</translation> <translation id="4839925464551908214">Idi na prethodni redak</translation> <translation id="4842108708071771135">Nema sljedećeg navoda bloka.</translation> <translation id="4844625982113518938">Pritisnite bilo koju tipku da biste saznali njezin naziv. Tipke Ctrl + W zatvaraju način vodiča.</translation> @@ -610,6 +621,7 @@ <translation id="5750633686117194034">Nije pritisnut nijedan modifikator. Pritisnite i zadržite jedan ili više modifikatora, pustite ih kada završite i čut ćete postavljene tipke. Pritisnite tabulator za izlazak.</translation> <translation id="5760594853119905566">Dodatak</translation> <translation id="5788275253279308023">kartica anonimnog prozora <ph name="TITLE" /></translation> +<translation id="5805940204952508776">Dodir dvama prstima</translation> <translation id="5806206155699461681">Poboljšajte određene web-lokacije (primjerice, Google pretraživanje).</translation> <translation id="5819072574982403430">Stavka stabla</translation> <translation id="5826479389509458994"><ph name="ROW" />. redak <ph name="COL" />. stupac</translation> @@ -714,8 +726,10 @@ <translation id="6786800275320335305">Članak</translation> <translation id="6787839852456839824">Tipkovnički prečaci</translation> <translation id="6793101435925451627">okv pops</translation> +<translation id="6826226459053491773">Prelazak dvama prstima prema dolje</translation> <translation id="6833103209700200188">Podnožje</translation> <translation id="6858047746862060282">Prolog</translation> +<translation id="6859876496651143278">Prelazak jednim prstom ulijevo</translation> <translation id="6871161210040114857">Zanemarivanje velikih i malih slova.</translation> <translation id="6877435256196695200">Nema sljedeće slike.</translation> <translation id="6897341342232909480">Pomakni lijevo</translation> @@ -965,6 +979,7 @@ <translation id="923331726185079994">ChromeVox je ažuriran</translation> <translation id="930275611743429116">Početak ili kraj odabira.</translation> <translation id="948171205378458592">Smanjenje brzine govora</translation> +<translation id="958854023026327378">Prelazak jednim prstom prema dolje</translation> <translation id="962913030769097253">Sljedeći naslov razine 1</translation> <translation id="973955474346881951">Omogućivanje/onemogućivanje ljepljivog načina</translation> <translation id="976849232629612000">Nema stavki.</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hu.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hu.xtb index c467b9fa..199b095 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hu.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hu.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">Keressen egy billentyűt, majd emelje fel az ujját a gépeléshez</translation> <translation id="1012173283529841972">Listaelem</translation> <translation id="1013742170491673792">keresés</translation> +<translation id="1014370462248694370">Csúsztassa két ujját jobbra</translation> <translation id="1022586497894531524">Először használja a ChromeVox hangos visszajelzését? Ez a rövid útmutató elmagyarázza a ChromeVox legfontosabb kezdő lépéseit.</translation> <translation id="1023866615269196768">Egyesítve.</translation> <translation id="1025074108959230262">Beragadó mód kikapcsolva</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">Hangjelzések be- és kikapcsolása.</translation> <translation id="1108651818222110612">alcím</translation> <translation id="1120743664840974483">{"a": "aladár", "á": "ákos" "b": "béla", "c": "cecil", "cs": "csaba", "d": "dénes", "dz": "edzés", "dzs": "dzsungel", "e": "elemér", "é": "éva", "f": "ferenc", "g": "géza", "gy": "györgy", "h": "hugó", "i": "ilona", "í": "írás", "j": "józsef","k": "katalin", "l": "lászló", "ly": "lyuk", "m": "márton", "n": "nándor", "ny": "nyár", "o": "ottó", "ó": "óriás", "ö": "ödön", "ő": "őrség", "p": "péter", "q": "quebec", "r": "róbert", "s": "sándor", "sz": "szilárd", "t": "tibor", "ty": "tyúk", "u": "ubul", "ú": "újság", "ü": "ünnep", "ű": "űrhajó", "v": "viktor", "w": "waterloo","x": "xilofon", "y": "youtube", "z": "zoltán", "zs": "zsuzsanna",}</translation> +<translation id="1120938014254001895">Csúsztassa két ujját felfelé</translation> <translation id="1124771028211010580">Az aktuális megjelenítési mód egymás melletti.</translation> <translation id="113582498867142724"><ph name="TAG" /> gyűjtemény <ph name="NUM" /> elemmel</translation> <translation id="1155043339247954670">Nincs következő listaelem.</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">Link</translation> <translation id="1727806147743597030">lábl</translation> <translation id="174268867904053074">Következő grafika</translation> +<translation id="1765245556747822181">Csúsztassa egy ujját felfelé</translation> <translation id="1781173782405573156">Átugrás gomb</translation> <translation id="1787176709638001873">Jelszó – szövegszerkesztés</translation> <translation id="1802710350767629429">Frissítési jegyzetek megjelenítése</translation> @@ -137,6 +140,7 @@ <translation id="2223693656926968778">Művelet végrehajtása az aktuális elemen</translation> <translation id="225732394367814946">Beszédsebesség növelése</translation> <translation id="2267945578749931355">Következő karakter</translation> +<translation id="2278490101488436824">Csúsztassa három ujját balra</translation> <translation id="2281234842553884450">Előző dia</translation> <translation id="2294136146931447363">Dőlt betű kezdődik</translation> <translation id="2311237334957139798">Ugrás az előző részletességi szintre</translation> @@ -209,17 +213,20 @@ <translation id="2864481629947106776">Előző link</translation> <translation id="2867808975387772810">Bibliográfia</translation> <translation id="2873259058405069099">Ugrás a táblázat elejére</translation> +<translation id="2879867157561757640">Csúsztassa három ujját lefelé</translation> <translation id="288178314850623291">Az egyes elemtípusok kihagyásához használja az ugróparancsokat. A címsorok közötti előre ugráshoz nyomja le a Keresés + H, a visszaugráshoz pedig a Keresés + Shift + H billentyűkombinációt.</translation> <translation id="2894654529758326923">Információ</translation> <translation id="2899328121302785497">{COUNT,plural, =1{kapcsos nyitó zárójel}other{# kapcsos nyitó zárójel}}</translation> <translation id="2909478709401302630">Felső index kezdete</translation> <translation id="2911433807131383493">A ChromeVox útmutatójának megnyitása</translation> +<translation id="2912405967290226587">Csúsztassa három ujját jobbra</translation> <translation id="2932083475399492303">Váltás a strukturális és elrendezési vonalak között</translation> <translation id="2944762337049891859">Oldal automatikus felolvasása a betöltés befejezése után.</translation> <translation id="2964026537669811554">Címsorcsoport</translation> <translation id="296951647852255825">{COUNT,plural, =1{tabulátor}other{# tabulátor}}</translation> <translation id="2972078295414139404">Nincs előző felkeresett link.</translation> <translation id="2972205263822847197">Elemleírás</translation> +<translation id="297825089465017871">Csúsztassa két ujját balra</translation> <translation id="2998131015536248178">Előző karakter</translation> <translation id="2999559350546931576">Hangszín csökkentése</translation> <translation id="2999945368667127852">Nincs következő médiamodul.</translation> @@ -231,6 +238,7 @@ <translation id="3046838483509668188">ChromeVox-opciók</translation> <translation id="3047143736589213134">Kísérleti billentyűzetkiosztás</translation> <translation id="3060756054951570867"><ph name="TITLE" /> menü megnyitva</translation> +<translation id="3070245424257836917">Csúsztassa három ujját felfelé</translation> <translation id="3078345202707391975">Következő 2. szintű fejléc</translation> <translation id="3078740164268491126">táblázat</translation> <translation id="3082249673510793544">Görgetés vissza</translation> @@ -343,6 +351,7 @@ <translation id="3599054940393788245">Nincs math elemben</translation> <translation id="360241989769010433">Köszönetnyilvánítás</translation> <translation id="3616113530831147358">Audio</translation> +<translation id="3622350485154495700">Koppintson duplán egy ujjal</translation> <translation id="3646890046000188562">{COUNT,plural, =1{egyszeres nyitó idézőjel}other{# egyszeres nyitó idézőjel}}</translation> <translation id="3650317109285159359">jelölőnégyzet menüelem</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dollárjel}other{# dollárjel}}</translation> @@ -462,6 +471,7 @@ <translation id="4688873778442829762">rács</translation> <translation id="4693675773662933727">Előző határjel</translation> <translation id="4696413482802371445">Nincs következő 5-ös szintű címsor.</translation> +<translation id="4710166929009737753">Csúsztassa egy ujját jobbra</translation> <translation id="4729095194763193578">Előző táblázatsor</translation> <translation id="4736221692378411923">augusztus</translation> <translation id="4740661827607246557">Súgóparancsok</translation> @@ -474,6 +484,7 @@ <translation id="4826415162591436065">Navigálás előre</translation> <translation id="4826604887384865800">Következő ugrás</translation> <translation id="4827410568042294688">nincs kijelölve</translation> +<translation id="4838490795649708173">Koppintson négy ujjal</translation> <translation id="4839925464551908214">Ugrás az előző sorra</translation> <translation id="4842108708071771135">Nincs következő bekezdésszintű idézet.</translation> <translation id="4844625982113518938">Nyomja meg bármelyik gombot, hogy megtudja a nevét. A Ctrl+W billentyűparanccsal bezárhatja a tanuló módot.</translation> @@ -610,6 +621,7 @@ <translation id="5750633686117194034">Nincs lenyomva módosítóbillentyű. Kérjük, nyomjon le egy vagy több módosítóbillentyűt, majd engedje fel, ha kész. Hallani fogja, hogy a billentyűk be lettek állítva. A Tab segítségével léphet ki.</translation> <translation id="5760594853119905566">Függelék</translation> <translation id="5788275253279308023">inkognitóablak, <ph name="TITLE" /> lap</translation> +<translation id="5805940204952508776">Koppintson két ujjal</translation> <translation id="5806206155699461681">Bizonyos oldalak javítása (például Google Keresés)</translation> <translation id="5819072574982403430">Faelem</translation> <translation id="5826479389509458994"><ph name="ROW" />. sor, <ph name="COL" />. oszlop</translation> @@ -714,8 +726,10 @@ <translation id="6786800275320335305">Cikk</translation> <translation id="6787839852456839824">Billentyűkódok</translation> <translation id="6793101435925451627">lstmez</translation> +<translation id="6826226459053491773">Csúsztassa két ujját lefelé</translation> <translation id="6833103209700200188">Lábléc</translation> <translation id="6858047746862060282">Prológus</translation> +<translation id="6859876496651143278">Csúsztassa egy ujját balra</translation> <translation id="6871161210040114857">A kis- és nagybetűk nem különbözők.</translation> <translation id="6877435256196695200">Nincs következő ábra.</translation> <translation id="6897341342232909480">Mozgatás balra</translation> @@ -965,6 +979,7 @@ <translation id="923331726185079994">ChromeVox frissítve</translation> <translation id="930275611743429116">Kijelölés vagy kijelölés vége.</translation> <translation id="948171205378458592">Beszédsebesség csökkentése</translation> +<translation id="958854023026327378">Csúsztassa egy ujját lefelé</translation> <translation id="962913030769097253">Következő 1. szintű fejléc</translation> <translation id="973955474346881951">Rögzített mód engedélyezése/tiltása</translation> <translation id="976849232629612000">Nincsenek elemek.</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_id.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_id.xtb index 2415dce..b996e35 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_id.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_id.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">Cari tombol, lalu angkat untuk mengetik</translation> <translation id="1012173283529841972">Item daftar</translation> <translation id="1013742170491673792">srched</translation> +<translation id="1014370462248694370">Geser dua jari ke kanan</translation> <translation id="1022586497894531524">Baru pertama kali menggunakan masukan lisan ChromeVox? Tutorial singkat ini akan menjelaskan dasar-dasar memulai ChromeVox.</translation> <translation id="1023866615269196768">Diregangkan.</translation> <translation id="1025074108959230262">Mode lekat dinonaktifkan</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">Mengaktifkan atau menonaktifkan masukan suara (earcons).</translation> <translation id="1108651818222110612">subti</translation> <translation id="1120743664840974483">{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}</translation> +<translation id="1120938014254001895">Geser dua jari ke atas</translation> <translation id="1124771028211010580">Gaya tampilan saat ini adalah berdampingan.</translation> <translation id="113582498867142724">Koleksi <ph name="TAG" /> dengan <ph name="NUM" /> item</translation> <translation id="1155043339247954670">Tidak ada item daftar berikutnya.</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">Tautan</translation> <translation id="1727806147743597030">ftr</translation> <translation id="174268867904053074">Grafik berikutnya</translation> +<translation id="1765245556747822181">Geser satu jari ke atas</translation> <translation id="1781173782405573156">Tombol pengabaian</translation> <translation id="1787176709638001873">Sandi edit teks</translation> <translation id="1802710350767629429">Tampilkan catatan pembaruan</translation> @@ -137,9 +140,10 @@ <translation id="2223693656926968778">Mengambil tindakan pada item ini</translation> <translation id="225732394367814946">Meningkatkan laju ucapan</translation> <translation id="2267945578749931355">Karakter Berikutnya</translation> +<translation id="2278490101488436824">Geser tiga jari ke kiri</translation> <translation id="2281234842553884450">Penggeser sebelumnya</translation> <translation id="2294136146931447363">Awal teks berformat miring</translation> -<translation id="2311237334957139798">Pindah ke sebelumnya dengan perincian</translation> +<translation id="2311237334957139798">Pindah ke level perincian sebelumnya</translation> <translation id="2318372665160196757">Utama</translation> <translation id="2329324941084714723">Panel tab</translation> <translation id="2344193891939537199">Kontrol tanggal dan waktu</translation> @@ -209,17 +213,20 @@ <translation id="2864481629947106776">Tautan sebelumnya</translation> <translation id="2867808975387772810">Bibliografi</translation> <translation id="2873259058405069099">Berpindah ke awal tabel</translation> +<translation id="2879867157561757640">Geser tiga jari ke bawah</translation> <translation id="288178314850623291">Gunakan perintah melompat untuk melewati ke jenis elemen tertentu. Untuk melompat ke depan antar-judul, tekan Search + H, atau untuk melompat ke belakang, tekan Search + Shift + H.</translation> <translation id="2894654529758326923">Informasi</translation> <translation id="2899328121302785497">{COUNT,plural, =1{kurung kurawal buka}other{# kurung kurawal buka}}</translation> <translation id="2909478709401302630">Awal superskrip</translation> <translation id="2911433807131383493">Membuka tutorial ChromeVox</translation> +<translation id="2912405967290226587">Geser tiga jari ke kanan</translation> <translation id="2932083475399492303">Jenis baris pengalih antara struktural atau tata letak</translation> <translation id="2944762337049891859">Baca halaman secara otomatis setelah selesai dimuat.</translation> <translation id="2964026537669811554">Grup judul</translation> <translation id="296951647852255825">{COUNT,plural, =1{tab}other{# tab}}</translation> <translation id="2972078295414139404">Tidak ada link yang dikunjungi sebelumnya.</translation> <translation id="2972205263822847197">Kiat alat</translation> +<translation id="297825089465017871">Geser dua jari ke kiri</translation> <translation id="2998131015536248178">Karakter Sebelumnya</translation> <translation id="2999559350546931576">Menurunkan tinggi nada</translation> <translation id="2999945368667127852">Tidak ada widget media berikutnya.</translation> @@ -231,6 +238,7 @@ <translation id="3046838483509668188">Opsi ChromeVox</translation> <translation id="3047143736589213134">Peta tombol eksperimental</translation> <translation id="3060756054951570867">menu <ph name="TITLE" /> dibuka</translation> +<translation id="3070245424257836917">Geser tiga jari ke atas</translation> <translation id="3078345202707391975">Judul tingkat 2 berikutnya</translation> <translation id="3078740164268491126">tabel</translation> <translation id="3082249673510793544">Scrolling mundur</translation> @@ -343,6 +351,7 @@ <translation id="3599054940393788245">Tidak di dalam matematika</translation> <translation id="360241989769010433">Ucapan terima kasih</translation> <translation id="3616113530831147358">Audio</translation> +<translation id="3622350485154495700">Tap dua kali dengan satu jari</translation> <translation id="3646890046000188562">{COUNT,plural, =1{petik satu}other{# petik satu}}</translation> <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dolar}other{# tanda dolar}}</translation> @@ -462,6 +471,7 @@ <translation id="4688873778442829762">grd</translation> <translation id="4693675773662933727">Bangunan terkenal sebelumnya</translation> <translation id="4696413482802371445">Tidak ada judul tingkat 5 berikutnya.</translation> +<translation id="4710166929009737753">Geser satu jari ke kanan</translation> <translation id="4729095194763193578">Baris tabel sebelumnya</translation> <translation id="4736221692378411923">Agustus</translation> <translation id="4740661827607246557">Perintah Bantuan</translation> @@ -474,6 +484,7 @@ <translation id="4826415162591436065">Navigasi ke depan</translation> <translation id="4826604887384865800">Lompatan berikutnya</translation> <translation id="4827410568042294688">tidak dipilih</translation> +<translation id="4838490795649708173">Tap dengan empat jari</translation> <translation id="4839925464551908214">Buka baris sebelumnya</translation> <translation id="4842108708071771135">Tidak ada blockquote berikutnya.</translation> <translation id="4844625982113518938">Tekan tombol apa pun untuk mempelajari namanya. Ctrl+W akan menutup mode pembelajaran.</translation> @@ -610,6 +621,7 @@ <translation id="5750633686117194034">Tidak ada pengubah yang ditekan; tekan dan tahan satu atau beberapa pengubah; angkat jari Anda setelah selesai dan akan terdengar tombol disetel. Ketuk untuk keluar.</translation> <translation id="5760594853119905566">Lampiran</translation> <translation id="5788275253279308023">jendela penyamaran tab <ph name="TITLE" /></translation> +<translation id="5805940204952508776">Tap dengan dua jari</translation> <translation id="5806206155699461681">Tingkatkan situs tertentu (misalnya Google Penelusuran).</translation> <translation id="5819072574982403430">Item pohon</translation> <translation id="5826479389509458994">baris <ph name="ROW" /> kolom <ph name="COL" /></translation> @@ -689,7 +701,7 @@ <translation id="6540201937398578274">Di ChromeVox, tombol Penelusuran adalah kunci pengubah. Sebagian besar pintasan ChromeVox dimulai dengan tombol Penelusuran. Anda juga dapat menggunakan tombol panah untuk navigasi.</translation> <translation id="6550720799683018100">Ubah peta tombol saat ini dengan memilih opsi dari daftar di bawah.</translation> <translation id="6561818612645211875">Berpindah ke awal baris saat ini</translation> -<translation id="6583174818554398774">Pindah ke berikutnya dengan perincian</translation> +<translation id="6583174818554398774">Pindah ke level perincian berikutnya</translation> <translation id="6587021927234520429">Tidak ada judul tingkat 4 berikutnya.</translation> <translation id="6601344353291556895">Aktifkan deskripsi panjang.</translation> <translation id="6615602925644411249">Cari di halaman.</translation> @@ -714,8 +726,10 @@ <translation id="6786800275320335305">Artikel</translation> <translation id="6787839852456839824">Pintasan keyboard</translation> <translation id="6793101435925451627">lstbx</translation> +<translation id="6826226459053491773">Geser dua jari ke bawah</translation> <translation id="6833103209700200188">Footer</translation> <translation id="6858047746862060282">Prolog</translation> +<translation id="6859876496651143278">Gesek satu jari ke kiri</translation> <translation id="6871161210040114857">Mengabaikan huruf besar/kecil.</translation> <translation id="6877435256196695200">Tidak ada grafik berikutnya.</translation> <translation id="6897341342232909480">Pindah ke kiri</translation> @@ -965,6 +979,7 @@ <translation id="923331726185079994">ChromeVox Telah Diperbarui</translation> <translation id="930275611743429116">Mulai atau akhiri pemilihan.</translation> <translation id="948171205378458592">Mengurangi laju ucapan</translation> +<translation id="958854023026327378">Geser satu jari ke bawah</translation> <translation id="962913030769097253">Judul tingkat 1 berikutnya</translation> <translation id="973955474346881951">Mengaktifkan/Menonaktifkan mode lekat</translation> <translation id="976849232629612000">Tidak ada item.</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 26a1b0c..9e55f9d 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_it.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_it.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">Trova un tasto, poi solleva il dito per digitarlo</translation> <translation id="1012173283529841972">Voce elenco</translation> <translation id="1013742170491673792">srched</translation> +<translation id="1014370462248694370">Scorri verso destra con due dita</translation> <translation id="1022586497894531524">È la prima volta che utilizzi la funzione di lettura vocale di ChromeVox? Questo breve tutorial spiega le nozioni di base per iniziare a utilizzare ChromeVox.</translation> <translation id="1023866615269196768">Con spanning.</translation> <translation id="1025074108959230262">Modalità persistente disattivata</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">Attiva o disattiva feedback audio (icone audio).</translation> <translation id="1108651818222110612">sottotitolo</translation> <translation id="1120743664840974483">{"a": "alfa", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "x-ray", "y": "yankee", "z": "zulu"}</translation> +<translation id="1120938014254001895">Scorri verso l'alto con due dita</translation> <translation id="1124771028211010580">È attivo lo stile del display affiancato.</translation> <translation id="113582498867142724">Raccolta <ph name="TAG" /> con <ph name="NUM" /> elementi</translation> <translation id="1155043339247954670">Nessuna voce elenco successiva.</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">Link</translation> <translation id="1727806147743597030">ftr</translation> <translation id="174268867904053074">Immagine successiva</translation> +<translation id="1765245556747822181">Scorri verso l'alto con un dito</translation> <translation id="1781173782405573156">Tasto pass through</translation> <translation id="1787176709638001873">Testo di modifica della password</translation> <translation id="1802710350767629429">Mostra note sull'aggiornamento</translation> @@ -136,9 +139,10 @@ <translation id="2223693656926968778">Agisci su voce corrente</translation> <translation id="225732394367814946">Aumenta velocità comandi vocali</translation> <translation id="2267945578749931355">Carattere successivo</translation> +<translation id="2278490101488436824">Scorri verso sinistra con tre dita</translation> <translation id="2281234842553884450">Dispositivo di scorrimento precedente</translation> <translation id="2294136146931447363">Inizio del testo corsivo</translation> -<translation id="2311237334957139798">Vai al gesto di granularità precedente</translation> +<translation id="2311237334957139798">Vai al livello di dettaglio precedente</translation> <translation id="2318372665160196757">Principale</translation> <translation id="2329324941084714723">Riquadro a schede</translation> <translation id="2344193891939537199">Controllo data/ora</translation> @@ -208,17 +212,20 @@ <translation id="2864481629947106776">Link precedente</translation> <translation id="2867808975387772810">Bibliografia</translation> <translation id="2873259058405069099">Vai all'inizio della tabella</translation> +<translation id="2879867157561757640">Scorri verso il basso con tre dita</translation> <translation id="288178314850623291">Utilizza i comandi di spostamento per passare a specifici tipi di elementi. Per avanzare tra le intestazioni, premi il tasto per la ricerca + H o per retrocedere il tasto per la ricerca + MAIUSC + H.</translation> <translation id="2894654529758326923">Informazioni</translation> <translation id="2899328121302785497">{COUNT,plural, =1{parentesi graffa di apertura}other{# parentesi graffe di apertura}}</translation> <translation id="2909478709401302630">Inizio apice</translation> <translation id="2911433807131383493">Apri il tutorial di ChromeVox</translation> +<translation id="2912405967290226587">Scorri verso destra con tre dita</translation> <translation id="2932083475399492303">Alterna tipo di linea strutturale o di layout</translation> <translation id="2944762337049891859">Leggi automaticamente la pagina al termine del caricamento.</translation> <translation id="2964026537669811554">Gruppo di intestazioni</translation> <translation id="296951647852255825">{COUNT,plural, =1{carattere di tabulazione}other{# caratteri di tabulazione}}</translation> <translation id="2972078295414139404">Nessun link visitato precedente.</translation> <translation id="2972205263822847197">Descrizione comando</translation> +<translation id="297825089465017871">Scorri verso sinistra con due dita</translation> <translation id="2998131015536248178">Carattere precedente</translation> <translation id="2999559350546931576">Abbassa tono</translation> <translation id="2999945368667127852">Nessun widget multimediale successivo.</translation> @@ -230,6 +237,7 @@ <translation id="3046838483509668188">Opzioni ChromeVox</translation> <translation id="3047143736589213134">Mappa di chiavi sperimentale</translation> <translation id="3060756054951570867">Menu <ph name="TITLE" /> aperto</translation> +<translation id="3070245424257836917">Scorri verso l'alto con tre dita</translation> <translation id="3078345202707391975">Intestazione livello 2 successiva</translation> <translation id="3078740164268491126">tabella</translation> <translation id="3082249673510793544">Scorri indietro</translation> @@ -342,6 +350,7 @@ <translation id="3599054940393788245">Non incluso nella categoria "matematica"</translation> <translation id="360241989769010433">Riconoscimenti</translation> <translation id="3616113530831147358">Audio</translation> +<translation id="3622350485154495700">Tocca due volte con un dito</translation> <translation id="3646890046000188562">{COUNT,plural, =1{apice inverso}other{# apici inversi}}</translation> <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dollaro}other{# simboli dollaro}}</translation> @@ -461,6 +470,7 @@ <translation id="4688873778442829762">grd</translation> <translation id="4693675773662933727">Punto di riferimento precedente</translation> <translation id="4696413482802371445">Nessuna intestazione livello 5 successiva.</translation> +<translation id="4710166929009737753">Scorri verso destra con un dito</translation> <translation id="4729095194763193578">Riga tabella precedente</translation> <translation id="4736221692378411923">Agosto</translation> <translation id="4740661827607246557">Comandi della Guida</translation> @@ -473,6 +483,7 @@ <translation id="4826415162591436065">Spostati avanti</translation> <translation id="4826604887384865800">Collegamento successivo</translation> <translation id="4827410568042294688">non selezionato</translation> +<translation id="4838490795649708173">Tocca con quattro dita</translation> <translation id="4839925464551908214">Consente di andare alla riga precedente</translation> <translation id="4842108708071771135">Nessuna citazione lunga successiva.</translation> <translation id="4844625982113518938">Premi un tasto qualsiasi per conoscerne il nome. Premi CTRL + W per chiudere la modalità di apprendimento.</translation> @@ -609,6 +620,7 @@ <translation id="5750633686117194034">Nessun tasto di modifica premuto; premi e tieni premuti uno o più tasti di modifica; solleva le dita una volta terminata l'operazione e verranno pronunciati i tasti impostati. Premi Tab per uscire.</translation> <translation id="5760594853119905566">Appendice</translation> <translation id="5788275253279308023">scheda <ph name="TITLE" /> della finestra di navigazione in incognito</translation> +<translation id="5805940204952508776">Tocca con due dita</translation> <translation id="5806206155699461681">Ottimizza siti specifici (ad esempio Ricerca Google).</translation> <translation id="5819072574982403430">Elemento albero</translation> <translation id="5826479389509458994">riga <ph name="ROW" /> colonna <ph name="COL" /></translation> @@ -688,7 +700,7 @@ <translation id="6540201937398578274">In ChromeVox il tasto per la ricerca è il tasto di modifica. La maggior parte delle scorciatoie di ChromeVox inizia premendo il tasto per la ricerca. I tasti freccia vengono utilizzati per gli spostamenti.</translation> <translation id="6550720799683018100">Modifica la voce mappa di chiavi corrente scegliendo una delle opzioni riportate di seguito.</translation> <translation id="6561818612645211875">Vai all'inizio della riga corrente</translation> -<translation id="6583174818554398774">Vai al gesto di granularità successivo</translation> +<translation id="6583174818554398774">Vai al livello di dettaglio successivo</translation> <translation id="6587021927234520429">Nessuna intestazione livello 4 successiva.</translation> <translation id="6601344353291556895">Attiva descrizioni dettagliate.</translation> <translation id="6615602925644411249">Trova nella pagina.</translation> @@ -713,8 +725,10 @@ <translation id="6786800275320335305">Articolo</translation> <translation id="6787839852456839824">Scorciatoie da tastiera</translation> <translation id="6793101435925451627">lstbx</translation> +<translation id="6826226459053491773">Scorri verso il basso con due dita</translation> <translation id="6833103209700200188">Piè di pagina</translation> <translation id="6858047746862060282">Prologo</translation> +<translation id="6859876496651143278">Scorri verso sinistra con un dito</translation> <translation id="6871161210040114857">Le maiuscole/minuscole vengono ignorate.</translation> <translation id="6877435256196695200">Nessuna immagine successiva.</translation> <translation id="6897341342232909480">Sposta a sinistra</translation> @@ -964,6 +978,7 @@ <translation id="923331726185079994">ChromeVox aggiornato</translation> <translation id="930275611743429116">Inizia o termina la selezione.</translation> <translation id="948171205378458592">Diminuisci velocità comandi vocali</translation> +<translation id="958854023026327378">Scorri verso il basso con un dito</translation> <translation id="962913030769097253">Intestazione livello 1 successiva</translation> <translation id="973955474346881951">Attiva/disattiva modalità persistente</translation> <translation id="976849232629612000">Nessun elemento.</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_iw.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_iw.xtb index 60b3a11..8055fe01 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_iw.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_iw.xtb
@@ -139,7 +139,7 @@ <translation id="2267945578749931355">התו הבא</translation> <translation id="2281234842553884450">המחוון הקודם</translation> <translation id="2294136146931447363">תחילת טקסט נטוי</translation> -<translation id="2311237334957139798">חזרה אל הקודם ברמת הפירוט</translation> +<translation id="2311237334957139798">חזרה לפריט הקודם ברמת הפירוט הספציפית</translation> <translation id="2318372665160196757">ראשי</translation> <translation id="2329324941084714723">חלונית כרטיסיות</translation> <translation id="2344193891939537199">בקרת תאריך ושעה</translation> @@ -689,7 +689,7 @@ <translation id="6540201937398578274">ב-ChromeVox, מקש החיפוש הוא מקש הצירוף. רוב הרצפים של מקשי הקיצור ב-ChromeVox מתחילים עם מקש החיפוש. כמו כן, מקשי החיצים משמשים לניווט.</translation> <translation id="6550720799683018100">שנה את מפת המקשים הנוכחית על ידי בחירה באפשרות מתוך הרשימה בהמשך.</translation> <translation id="6561818612645211875">עבור לתחילת השורה הנוכחית</translation> -<translation id="6583174818554398774">מעבר אל הבא ברמת הפירוט</translation> +<translation id="6583174818554398774">מעבר לפריט הבא ברמת הפירוט הספציפית</translation> <translation id="6587021927234520429">אין עוד כותרת ברמה 4.</translation> <translation id="6601344353291556895">הפעל תיאורים מרובי-מלל.</translation> <translation id="6615602925644411249">חפש בדף.</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ja.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ja.xtb index 3d70a17f..612a950 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ja.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ja.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">キーを探し、見つかったら指を離して入力します</translation> <translation id="1012173283529841972">リスト項目</translation> <translation id="1013742170491673792">検索用語を編集</translation> +<translation id="1014370462248694370">2 本の指で右にスワイプします</translation> <translation id="1022586497894531524">ChromeVox の音声フィードバックを初めてご利用になる場合は、このクイック チュートリアルで、ChromeVox の利用を開始するための基本事項をご確認ください。</translation> <translation id="1023866615269196768">拡張されました。</translation> <translation id="1025074108959230262">スティッキー モードは無効</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">音声フィードバック(イアコン)をオンまたはオフにします。</translation> <translation id="1108651818222110612">副題</translation> <translation id="1120743664840974483">{"a": "アルファ", "b": "ブラボー", "c": "チャーリー", "d": "デルタ", "e": "エコー", "f": "フォックストロット", "g": "ゴルフ", "h": "ホテル", "i": "インディア", "j": "ジュリエット","k": "キロ", "l": "リマ", "m": "マイク", "n": "ノベンバー", "o": "オスカー","p": "パパ", "q": "ケベック", "r": "ロメオ", "s": "シエラ", "t": "タンゴ", "u": "ユニフォーム", "v": "ビクター", "w": "ウイスキー","x": "エックスレイ", "y": "ヤンキー", "z": "ズールー"}</translation> +<translation id="1120938014254001895">2 本の指で上にスワイプします</translation> <translation id="1124771028211010580">現在の表示スタイルは横並びです。</translation> <translation id="113582498867142724"><ph name="TAG" /> コレクション(<ph name="NUM" /> 個の項目)</translation> <translation id="1155043339247954670">次のリスト項目はありません。</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">リンク</translation> <translation id="1727806147743597030">フッター</translation> <translation id="174268867904053074">次の図</translation> +<translation id="1765245556747822181">1 本の指で上にスワイプします</translation> <translation id="1781173782405573156">パススルー キー</translation> <translation id="1787176709638001873">パスワード テキスト編集</translation> <translation id="1802710350767629429">アップデートの説明を表示</translation> @@ -137,6 +140,7 @@ <translation id="2223693656926968778">現在の項目に対して操作を実行</translation> <translation id="225732394367814946">読み上げの速度を上げる</translation> <translation id="2267945578749931355">次の文字</translation> +<translation id="2278490101488436824">3 本の指で左にスワイプします</translation> <translation id="2281234842553884450">前のスライダ</translation> <translation id="2294136146931447363">斜体の先頭</translation> <translation id="2311237334957139798">前の詳細レベルに移動します</translation> @@ -209,17 +213,20 @@ <translation id="2864481629947106776">前のリンク</translation> <translation id="2867808975387772810">参考文献</translation> <translation id="2873259058405069099">表の先頭に移動</translation> +<translation id="2879867157561757640">3 本の指で下にスワイプします</translation> <translation id="288178314850623291">特定タイプの要素に移動するには、ジャンプ コマンドを使用します。見出し間を移動するには、順方向の場合は検索+H キー、逆方向の場合は検索+Shift+H キーを押します。</translation> <translation id="2894654529758326923">情報</translation> <translation id="2899328121302785497">{COUNT,plural, =1{左中かっこ}other{# 個の左中かっこ}}</translation> <translation id="2909478709401302630">上付き文字の先頭</translation> <translation id="2911433807131383493">ChromeVox チュートリアルを開く</translation> +<translation id="2912405967290226587">3 本の指で右にスワイプします</translation> <translation id="2932083475399492303">構造化された行とレイアウト行の切り替え</translation> <translation id="2944762337049891859">ページの読み込み後、自動的に読み上げを開始する。</translation> <translation id="2964026537669811554">見出しグループ</translation> <translation id="296951647852255825">{COUNT,plural, =1{タブ}other{# 個のタブ}}</translation> <translation id="2972078295414139404">前にアクセスしたリンクはありません。</translation> <translation id="2972205263822847197">ツールチップ</translation> +<translation id="297825089465017871">2 本の指で左にスワイプします</translation> <translation id="2998131015536248178">前の文字</translation> <translation id="2999559350546931576">ピッチを下げる</translation> <translation id="2999945368667127852">次のメディア ウィジェットはありません。</translation> @@ -231,6 +238,7 @@ <translation id="3046838483509668188">ChromeVox のオプション</translation> <translation id="3047143736589213134">テスト用キーマップ</translation> <translation id="3060756054951570867"><ph name="TITLE" /> メニューを開きました</translation> +<translation id="3070245424257836917">3 本の指で上にスワイプします</translation> <translation id="3078345202707391975">次のレベル 2 見出し</translation> <translation id="3078740164268491126">表</translation> <translation id="3082249673510793544">後方スクロール</translation> @@ -343,6 +351,7 @@ <translation id="3599054940393788245">数式の外部</translation> <translation id="360241989769010433">謝辞</translation> <translation id="3616113530831147358">音声</translation> +<translation id="3622350485154495700">1 本の指でダブルタップします</translation> <translation id="3646890046000188562">{COUNT,plural, =1{バッククォート}other{# 個のバッククォート}}</translation> <translation id="3650317109285159359">メニュー項目のチェックボックス</translation> <translation id="3655855170848725876">{COUNT,plural, =1{ドル}other{# 個のドル記号}}</translation> @@ -462,6 +471,7 @@ <translation id="4688873778442829762">グリッド</translation> <translation id="4693675773662933727">前のランドマーク</translation> <translation id="4696413482802371445">次のレベル 5 見出しはありません。</translation> +<translation id="4710166929009737753">1 本の指で右にスワイプします</translation> <translation id="4729095194763193578">表の前の行</translation> <translation id="4736221692378411923">8 月</translation> <translation id="4740661827607246557">ヘルプ コマンド</translation> @@ -474,6 +484,7 @@ <translation id="4826415162591436065">順方向にナビゲート</translation> <translation id="4826604887384865800">次のジャンプ</translation> <translation id="4827410568042294688">選択していません</translation> +<translation id="4838490795649708173">4 本の指でタップします</translation> <translation id="4839925464551908214">前の行に移動します</translation> <translation id="4842108708071771135">次の引用箇所はありません。</translation> <translation id="4844625982113518938">キーを押すとその名前が読み上げられます。学習モードを終了するには Ctrl+W キーを押します。</translation> @@ -610,6 +621,7 @@ <translation id="5750633686117194034">修飾キーが押されていません。設定する修飾キーを押してください。2 つ以上の場合は同時に押します。指を離すとキーの設定が音声で通知されます。終了するには Tab キーを押します。</translation> <translation id="5760594853119905566">付録</translation> <translation id="5788275253279308023">シークレット ウィンドウ <ph name="TITLE" /> タブ</translation> +<translation id="5805940204952508776">2 本の指でタップします</translation> <translation id="5806206155699461681">特定のサイト(Google 検索など)の利便性を高めます。</translation> <translation id="5819072574982403430">ツリー項目</translation> <translation id="5826479389509458994">行 <ph name="ROW" /> 列 <ph name="COL" /></translation> @@ -714,8 +726,10 @@ <translation id="6786800275320335305">記事</translation> <translation id="6787839852456839824">キーボード ショートカット</translation> <translation id="6793101435925451627">リスト ボックス</translation> +<translation id="6826226459053491773">2 本の指で下にスワイプします</translation> <translation id="6833103209700200188">フッター</translation> <translation id="6858047746862060282">プロローグ</translation> +<translation id="6859876496651143278">1 本の指で左にスワイプします</translation> <translation id="6871161210040114857">大文字と小文字を区別しません。</translation> <translation id="6877435256196695200">次の図はありません。</translation> <translation id="6897341342232909480">左へ移動</translation> @@ -965,6 +979,7 @@ <translation id="923331726185079994">ChromeVox が更新されました</translation> <translation id="930275611743429116">選択を開始または終了します。</translation> <translation id="948171205378458592">読み上げの速度を下げる</translation> +<translation id="958854023026327378">1 本の指で下にスワイプします</translation> <translation id="962913030769097253">次のレベル 1 見出し</translation> <translation id="973955474346881951">スティッキー モードを有効または無効にする</translation> <translation id="976849232629612000">アイテムなし</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_kn.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_kn.xtb index 002d2e7..682e29c 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_kn.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_kn.xtb
@@ -139,7 +139,7 @@ <translation id="2267945578749931355">ಮುಂದಿನ ಅಕ್ಷರ</translation> <translation id="2281234842553884450">ಹಿಂದಿನ ಸ್ಲೈಡರ್</translation> <translation id="2294136146931447363">ಇಟಾಲಿಕ್ ಆರಂಭ</translation> -<translation id="2311237334957139798">ರಚನೆಯಲ್ಲಿ ಹಿಂದಿನದಕ್ಕೆ ಹೋಗಿ</translation> +<translation id="2311237334957139798">ಹಿಂದಿನ ಗ್ರ್ಯಾನ್ಯುಲಾರಿಟಿಗೆ ಹೋಗಿ</translation> <translation id="2318372665160196757">ಮುಖ್ಯ</translation> <translation id="2329324941084714723">ಟ್ಯಾಬ್ ಫಲಕ</translation> <translation id="2344193891939537199">ದಿನಾಂಕ ಸಮಯ ನಿಯಂತ್ರಣ</translation> @@ -153,7 +153,7 @@ <translation id="2417948780551741035">ಅಂತಿಮ ಟಿಪ್ಪಣಿಗಳು</translation> <translation id="2421113964388408478">ಅಳಿಸುವಿಕೆ</translation> <translation id="2422937916923936891">ಮೆನು ಐಟಂ ಚೆಕ್ಬಾಕ್ಸ್</translation> -<translation id="2428534162001909979">ಆದೇಶ ಮೆನುಗಳು</translation> +<translation id="2428534162001909979">ಕಮಾಂಡ್ ಮೆನುಗಳು</translation> <translation id="2429669115401274487">ಸಂಜೆ</translation> <translation id="2435413342408885429"><ph name="KEY" /> ಇದೀಗ ಹೊಸ ChromeVox ಮಾರ್ಪಡಿಸುವಿಕೆಯಾಗಿದೆ.</translation> <translation id="2450814015951372393">ಚೆಕ್ಬಾಕ್ಸ್</translation> @@ -529,7 +529,7 @@ <translation id="5183440668879371625">ಬ್ರೈಲಿ ಹಿಂದಿನ ಸಾಲು</translation> <translation id="5184944171021383281">ಯಾವುದೇ ಮುಂದಿನ ಫಾರ್ಮ್ ಕ್ಷೇತ್ರವಿಲ್ಲ.</translation> <translation id="5189244881767082992">ಸಾಲು</translation> -<translation id="5203930734796605961">ಆದೇಶಕ್ಕೆ <ph name="KEY" /> ಅನ್ನು ಈಗಾಗಲೇ ನಿಯೋಜಿಸಲಾಗಿದೆ.</translation> +<translation id="5203930734796605961">ಕಮಾಂಡ್ಗೆ <ph name="KEY" /> ಅನ್ನು ಈಗಾಗಲೇ ನಿಯೋಜಿಸಲಾಗಿದೆ.</translation> <translation id="5205493599117157272"><ph name="TYPE" /> ಪಟ್ಟಿ.</translation> <translation id="520883772648104506">ಮುಂದಿನ ರೇಡಿಯೊ ಬಟನ್ ಇಲ್ಲ.</translation> <translation id="5263344797180442561">h2</translation> @@ -689,7 +689,7 @@ <translation id="6540201937398578274">ChromeVox ನಲ್ಲಿ, ಹುಡುಕಾಟ ಕೀ ಎನ್ನುವುದು ಮಾರ್ಪಡಿಸುವ ಕೀ ಆಗಿದೆ. ಹೆಚ್ಚಿನ ChromeVox ಶಾರ್ಟ್ಕಟ್ಗಳು ಹುಡುಕಾಟ ಕೀ ಜೊತೆಗೆ ಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತವೆ. ನೀವು ನ್ಯಾವಿಗೇಶನ್ಗೆ ಬಾಣದ ಕೀಲಿಗಳನ್ನು ಸಹ ಬಳಸುತ್ತೀರಿ.</translation> <translation id="6550720799683018100">ಕೆಳಗಿನ ಪಟ್ಟಿಯಿಂದ ಆಯ್ಕೆವೊಂದನ್ನು ಆಯ್ಕೆಮಾಡುವುದರ ಮೂಲಕ ಪ್ರಸ್ತುತ ಕೀಮ್ಯಾಪ್ ಅನ್ನು ಬದಲಾಯಿಸಿ.</translation> <translation id="6561818612645211875">ಪ್ರಸ್ತುತ ಸಾಲಿನ ಆರಂಭಕ್ಕೆ ಹೋಗಿ</translation> -<translation id="6583174818554398774">ರಚನೆಯಲ್ಲಿ ಮುಂದಿನಕ್ಕೆ ಹೋಗಿ</translation> +<translation id="6583174818554398774">ಮುಂದಿನ ಗ್ರ್ಯಾನ್ಯುಲಾರಿಟಿಗೆ ಹೋಗಿ</translation> <translation id="6587021927234520429">ಯಾವುದೇ ಮುಂದಿನ ಮಟ್ಟದ 4 ಶಿರೋನಾಮೆಯಿಲ್ಲ.</translation> <translation id="6601344353291556895">ಅತಿಮಾತಿನ ವಿವರಣೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ.</translation> <translation id="6615602925644411249">ಪುಟದಲ್ಲಿ ಹುಡುಕಿ</translation> @@ -856,7 +856,7 @@ <translation id="8091452896542422286">ಸ್ಪೇಸ್</translation> <translation id="8110647606445335195">ಯಾವುದೇ ARIA ಹೆಗ್ಗುರುತುಗಳಿಲ್ಲ.</translation> <translation id="8153880621934657047">ಕೋಷ್ಟಕದ ಒಳಗೆ ಇಲ್ಲ.</translation> -<translation id="817440585505441544">{COUNT,plural, =1{ಅಡಿಗೆರೆ}one{# ಅಡಿಗೆರೆಗಳು}other{# ಅಡಿಗೆರೆಗಳು}}</translation> +<translation id="817440585505441544">{COUNT,plural, =1{ಅಂಡರ್ಸ್ಕೋರ್}one{# ಅಂಡರ್ಸ್ಕೋರ್ಗಳು}other{# ಅಂಡರ್ಸ್ಕೋರ್ಗಳು}}</translation> <translation id="8179976553408161302">Enter</translation> <translation id="8184828902145951186">ಸಾಲು</translation> <translation id="8186185314313222077">ಪೂರ್ಣ ಪರದೆಯನ್ನು ಟಾಗಲ್ ಮಾಡಿ</translation> @@ -892,7 +892,7 @@ <translation id="8520472399088452386">ಸ್ಪಿನ್ ಬಟನ್</translation> <translation id="8538744478902126321">ಪ್ರಸ್ತುತ ಸೆಲ್ನಲ್ಲಿರುವ ಶಿರೋನಾಮೆಯ ಬಗ್ಗೆ ಊಹೆ ಮಾಡಿ</translation> <translation id="8540054775867439484">ಮೇಲಕ್ಕೆ ಆವರಿಸಲಾಗಿದೆ</translation> -<translation id="8542271685829952264">ಎಲ್ಲಾ ChromeVox ಆದೇಶಗಳು ಮತ್ತು ಶಾರ್ಟ್ಕಟ್ಗಳನ್ನು ಎಕ್ಸ್ಪ್ಲೋರ್ ಮಾಡಲು, ಹುಡುಕಾಟ + ವಿರಾಮ ಚಿಹ್ನೆಯನ್ನು ಒತ್ತಿ, ನಂತರ ಮೆನುಗಳನ್ನು ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು ಬಾಣದ ಕೀಲಿಗಳು ಮತ್ತು ಆದೇಶವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು Enter ಅನ್ನು ಬಳಸಿ. ಹುಡುಕಾಟ+o ನಂತರ t ಒತ್ತುವ ಮೂಲಕ ಇಲ್ಲಿಗೆ ಹಿಂತಿರುಗಿ.</translation> +<translation id="8542271685829952264">ಎಲ್ಲಾ ChromeVox ಕಮಾಂಡ್ಗಳು ಮತ್ತು ಶಾರ್ಟ್ಕಟ್ಗಳನ್ನು ಎಕ್ಸ್ಪ್ಲೋರ್ ಮಾಡಲು, ಹುಡುಕಾಟ + ವಿರಾಮ ಚಿಹ್ನೆಯನ್ನು ಒತ್ತಿ, ನಂತರ ಮೆನುಗಳನ್ನು ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು ಬಾಣದ ಕೀಲಿಗಳು ಮತ್ತು ಕಮಾಂಡ್ವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು Enter ಅನ್ನು ಬಳಸಿ. ಹುಡುಕಾಟ+o ನಂತರ t ಒತ್ತುವ ಮೂಲಕ ಇಲ್ಲಿಗೆ ಹಿಂತಿರುಗಿ.</translation> <translation id="8548973727659841685">ಅಕ್ಷರ</translation> <translation id="8561322612995434619">ಪಾಪ್ ಅಪ್ ಹೊಂದಿದೆ</translation> <translation id="8571096049907249734">multsel</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_lt.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_lt.xtb index 6225f7148..10e870b 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_lt.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_lt.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">Radę klavišą pakelkite, kad įvestumėte</translation> <translation id="1012173283529841972">Sąrašo elementas</translation> <translation id="1013742170491673792">srched</translation> +<translation id="1014370462248694370">Perbraukite dviem pirštais dešinėn</translation> <translation id="1022586497894531524">Ar „ChromeVox“ ekrano skaitymo balsu funkciją naudojate pirmą kartą? Šioje trumpoje mokymo programoje pateikiama pagrindinė informacija, kaip pradėti naudoti „ChromeVox“.</translation> <translation id="1023866615269196768">Apimta.</translation> <translation id="1025074108959230262">Fiksuojamasis režimas neleidžiamas</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">Įjunkite arba išjunkite garsinius atsiliepimus (garsinius ženklelius).</translation> <translation id="1108651818222110612">paantraštė</translation> <translation id="1120743664840974483">{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}</translation> +<translation id="1120938014254001895">Perbraukite dviem pirštais aukštyn</translation> <translation id="1124771028211010580">Dabartinis vaizdo stilius yra gretutinis.</translation> <translation id="113582498867142724"><ph name="TAG" /> rinkinys, kuriame yra <ph name="NUM" /> element.</translation> <translation id="1155043339247954670">Nėra kito sąrašo elemento.</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">Nuoroda</translation> <translation id="1727806147743597030">ftr</translation> <translation id="174268867904053074">Kitas grafinis elementas</translation> +<translation id="1765245556747822181">Perbraukite vienu pirštu aukštyn</translation> <translation id="1781173782405573156">Praleidimo klavišas</translation> <translation id="1787176709638001873">Redaguoti slaptažodžio tekstą</translation> <translation id="1802710350767629429">Rodyti naujinių pastabas</translation> @@ -137,6 +140,7 @@ <translation id="2223693656926968778">Imtis veiksmų dėl dabartinio elemento</translation> <translation id="225732394367814946">Padidinti kalbos tempą</translation> <translation id="2267945578749931355">Kitas simbolis</translation> +<translation id="2278490101488436824">Perbraukite trim pirštais kairėn</translation> <translation id="2281234842553884450">Ankstesnis šliaužiklis</translation> <translation id="2294136146931447363">Kursyvo pradžia</translation> <translation id="2311237334957139798">Pereiti į ankstesnį detalumą</translation> @@ -209,17 +213,20 @@ <translation id="2864481629947106776">Ankstesnė nuoroda</translation> <translation id="2867808975387772810">Bibliografija</translation> <translation id="2873259058405069099">Eiti į lentelės pradžią</translation> +<translation id="2879867157561757640">Perbraukite trim pirštais žemyn</translation> <translation id="288178314850623291">Jei norite praleisti konkrečių tipų elementus, naudokite nukreipimo komandas. Kad pereitumėte pirmyn nuo vienos antraštės prie kitos, paspauskite „Search“ ir H. Kad pereitumėte atgal, paspauskite „Search“ + „Shift“ + H.</translation> <translation id="2894654529758326923">Informacija</translation> <translation id="2899328121302785497">{COUNT,plural, =1{atidaromasis riestinis skliaustas}one{# atidaromasis riestinis skliaustas}few{# atidaromieji riestiniai skliaustai}many{# left braces}other{# atidaromųjų riestinių skliaustų}}</translation> <translation id="2909478709401302630">Viršutinio indekso pradžia</translation> <translation id="2911433807131383493">Atidaryti „ChromeVox“ mokymo programą</translation> +<translation id="2912405967290226587">Perbraukite trim pirštais dešinėn</translation> <translation id="2932083475399492303">Perjungti linijos tipą iš struktūrinio į išdėstymo</translation> <translation id="2944762337049891859">Automatiškai nuskaityti puslapį po to, kai baigiamas jo įkėlimas.</translation> <translation id="2964026537669811554">Antraščių grupė</translation> <translation id="296951647852255825">{COUNT,plural, =1{tabuliavimo ženklas}one{# tabuliavimo ženklas}few{# tabuliavimo ženklai}many{# tabs}other{# tabuliavimo ženklų}}</translation> <translation id="2972078295414139404">Nėra ankstesnės aplankytos nuorodos.</translation> <translation id="2972205263822847197">Patarimas</translation> +<translation id="297825089465017871">Perbraukite dviem pirštais kairėn</translation> <translation id="2998131015536248178">Ankstesnis simbolis</translation> <translation id="2999559350546931576">Sumažinti aukštį</translation> <translation id="2999945368667127852">Nėra kito medijų valdiklio.</translation> @@ -231,6 +238,7 @@ <translation id="3046838483509668188">„ChromeVox“ parinktys</translation> <translation id="3047143736589213134">Eksperimentinis klavišų žemėlapis</translation> <translation id="3060756054951570867">„<ph name="TITLE" />“, meniu atidarytas</translation> +<translation id="3070245424257836917">Perbraukite trim pirštais aukštyn</translation> <translation id="3078345202707391975">Kita 2 lygio antraštė</translation> <translation id="3078740164268491126">lentelė</translation> <translation id="3082249673510793544">Slinkti atgal</translation> @@ -343,6 +351,7 @@ <translation id="3599054940393788245">Ne matematinis</translation> <translation id="360241989769010433">Padėka</translation> <translation id="3616113530831147358">Garsas</translation> +<translation id="3622350485154495700">Dukart palieskite vienu pirštu</translation> <translation id="3646890046000188562">{COUNT,plural, =1{gravis}one{# gravis}few{# graviai}many{# backticks}other{# gravių}}</translation> <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dolerio ženklas}one{# dolerio ženklas}few{# dolerio ženklai}many{# dollar signs}other{# dolerio ženklų}}</translation> @@ -462,6 +471,7 @@ <translation id="4688873778442829762">grd</translation> <translation id="4693675773662933727">Ankstesnis orientyras</translation> <translation id="4696413482802371445">Nėra kitos 5 lygio antraštės.</translation> +<translation id="4710166929009737753">Perbraukite vienu pirštu dešinėn</translation> <translation id="4729095194763193578">Ankstesnė lentelės eilutė</translation> <translation id="4736221692378411923">Rugpjūtis</translation> <translation id="4740661827607246557">Pagalbos komandos</translation> @@ -474,6 +484,7 @@ <translation id="4826415162591436065">Eiti į priekį</translation> <translation id="4826604887384865800">Kitas perėjimas</translation> <translation id="4827410568042294688">nepasirinkta</translation> +<translation id="4838490795649708173">Palieskite keturiais pirštais</translation> <translation id="4839925464551908214">Pereiti prie ankstesnės eilutės</translation> <translation id="4842108708071771135">Nėra kitos įtraukos.</translation> <translation id="4844625982113518938">Paspauskite bet kurį klavišą, kad sužinotumėte jo pavadinimą. Paspaudus „Ctrl“ + W bus uždarytas mokomasis režimas.</translation> @@ -610,6 +621,7 @@ <translation id="5750633686117194034">Nepaspausta jokių modifikatorių; paspauskite ir palaikykite vieną ar daugiau modifikatorių; pakelkite pirštus, kai bus atlikta, ir išgirsite klavišų rinkinį. Paspauskite tabuliavimo klavišą, kad išeitumėte.</translation> <translation id="5760594853119905566">Priedas</translation> <translation id="5788275253279308023">inkognito langas, „<ph name="TITLE" />“, skirtukas</translation> +<translation id="5805940204952508776">Palieskite dviem pirštais</translation> <translation id="5806206155699461681">Patobulinti konkrečias svetaines (pvz., „Google“ paiešką).</translation> <translation id="5819072574982403430">Medžio elementas</translation> <translation id="5826479389509458994"><ph name="ROW" /> eilutė, <ph name="COL" /> stulpelis</translation> @@ -714,8 +726,10 @@ <translation id="6786800275320335305">Straipsnis</translation> <translation id="6787839852456839824">Spartieji klavišai</translation> <translation id="6793101435925451627">lstbx</translation> +<translation id="6826226459053491773">Perbraukite dviem pirštais žemyn</translation> <translation id="6833103209700200188">Poraštė</translation> <translation id="6858047746862060282">Prologas</translation> +<translation id="6859876496651143278">Perbraukite vienu pirštu kairėn</translation> <translation id="6871161210040114857">Nepaisoma didžiųjų ir mažųjų raidžių rašybos.</translation> <translation id="6877435256196695200">Nėra kito grafinio elemento.</translation> <translation id="6897341342232909480">Perkelti į kairę</translation> @@ -965,6 +979,7 @@ <translation id="923331726185079994">„ChromeVox“ atnaujintas</translation> <translation id="930275611743429116">Pradėti arba baigti pasirinkimą.</translation> <translation id="948171205378458592">Sumažinti kalbos tempą</translation> +<translation id="958854023026327378">Perbraukite vienu pirštu žemyn</translation> <translation id="962913030769097253">Kita 1 lygio antraštė</translation> <translation id="973955474346881951">Įgalinti pritraukimo režimą / neleisti jo</translation> <translation id="976849232629612000">Elementų nėra.</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ml.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ml.xtb index 3cb82344..23c22fe 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ml.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ml.xtb
@@ -10,7 +10,7 @@ <translation id="1025074108959230262">സ്റ്റിക്കി മോഡ് പ്രവർത്തനരഹിതമാക്കി</translation> <translation id="1031961866430398710">തുടർന്ന്</translation> <translation id="1038643060055067718">ലൈനുകൾ:</translation> -<translation id="1038795173450935438">ഒരു പേജിലെ ഇനങ്ങളിലൂടെ മുന്നോട്ട് നീക്കാൻ, തിരയൽ + വലത് അമ്പടയാളം അമർത്തുകയോ തിരികെ മടങ്ങാൻ തിരയൽ + ഇടത് അമ്പടയാളം അമർത്തുകയോ ചെയ്യുക. അടുത്ത വരിയിലേക്ക് പോകാൻ തിരയൽ + താഴേക്കുള്ള അമ്പടയാളം അമർത്തുക. മുമ്പത്തെ വരിയിലേക്ക് പോകാൻ തിരയൽ + മുകളിലേക്കുള്ള അമ്പടയാളം ഉപയോഗിക്കുക. നിങ്ങൾക്ക് ക്ലിക്കുചെയ്യേണ്ട ഒരിനത്തിൽ എത്തുകയാണെങ്കിൽ, തിരയൽ + സ്പെയ്സ് അമർത്തുക.</translation> +<translation id="1038795173450935438">ഒരു പേജിലെ ഇനങ്ങളിലൂടെ മുന്നോട്ട് നീങ്ങാൻ, തിരയൽ + വലത് അമ്പടയാളം അമർത്തുകയോ തിരികെ മടങ്ങാൻ തിരയൽ + ഇടത് അമ്പടയാളം അമർത്തുകയോ ചെയ്യുക. അടുത്ത വരിയിലേക്ക് പോകാൻ തിരയൽ + താഴേക്കുള്ള അമ്പടയാളം അമർത്തുക. മുമ്പത്തെ വരിയിലേക്ക് പോകാൻ തിരയൽ + മുകളിലേക്കുള്ള അമ്പടയാളം ഉപയോഗിക്കുക. നിങ്ങൾക്ക് ക്ലിക്കുചെയ്യേണ്ട ഒരിനത്തിൽ എത്തുകയാണെങ്കിൽ, തിരയൽ + സ്പെയ്സ് അമർത്തുക.</translation> <translation id="1044777062731150180">തലക്കെട്ടൊന്നുമില്ല</translation> <translation id="106222400312645156">rwhdr</translation> <translation id="1065552602950927991">അസാധുവായ ഇന്പുട്ട്</translation> @@ -232,7 +232,7 @@ <translation id="3060756054951570867"><ph name="TITLE" /> മെനു തുറന്നു</translation> <translation id="3078345202707391975">അടുത്ത നില 2 ശീർഷകം</translation> <translation id="3078740164268491126">പട്ടിക</translation> -<translation id="3082249673510793544">പുറകിലേക്ക് സ്ക്രോൾ ചെയ്യുക</translation> +<translation id="3082249673510793544">പിന്നോട്ട് സ്ക്രോൾ ചെയ്യുക</translation> <translation id="3082557070674409251">ക്ലിക്കുചെയ്തു</translation> <translation id="3084806535845658316">ടൈപ്പുചെയ്യൽ എക്കോകളൊന്നുമില്ല</translation> <translation id="3086746722712840547">note</translation> @@ -327,7 +327,7 @@ <translation id="3457000393508828486">ഭാഗികമായി അമർത്തിയത്</translation> <translation id="3458865416877308321"><ph name="NAME" />, സ്വിച്ച് ഓഫാണ്</translation> <translation id="3462439746547587373"><ph name="NAME" />, ബട്ടൺ</translation> -<translation id="3466530247399808663">തെറ്റായ കീ അമർത്തി</translation> +<translation id="3466530247399808663">അസാധുവായ കീ അമർത്തി</translation> <translation id="3468959318854349468">പേരില്ല</translation> <translation id="3473644018603298796">sld <ph name="COUNT" /></translation> <translation id="3486232535569802404"><ph name="V1" /> മുതൽ <ph name="V2" /> വരെ</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ms.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ms.xtb index 00c9d7b..1de114b 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ms.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ms.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">Cari kekunci, kemudian angkat untuk menaip</translation> <translation id="1012173283529841972">Item senarai</translation> <translation id="1013742170491673792">srched</translation> +<translation id="1014370462248694370">Leret dua jari ke kanan</translation> <translation id="1022586497894531524">Adakah ini kali pertama anda menggunakan maklum balas yang dituturkan ChromeVox? Tutorial pantas ini menerangkan perkara asas untuk bermula dengan ChromeVox.</translation> <translation id="1023866615269196768">Merentang.</translation> <translation id="1025074108959230262">Mod lekit dilumpuhkan</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">Hidupkan atau matikan maklum balas bunyi (earcon).</translation> <translation id="1108651818222110612">sari kata</translation> <translation id="1120743664840974483">{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}</translation> +<translation id="1120938014254001895">Leret dua jari ke atas</translation> <translation id="1124771028211010580">Gaya paparan semasa adalah bersebelahan.</translation> <translation id="113582498867142724">Koleksi <ph name="TAG" /> dengan <ph name="NUM" /> item</translation> <translation id="1155043339247954670">Tiada item senarai seterusnya.</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">Pautan</translation> <translation id="1727806147743597030">ftr</translation> <translation id="174268867904053074">Grafik seterusnya</translation> +<translation id="1765245556747822181">Leret satu jari ke atas</translation> <translation id="1781173782405573156">Kekunci lintasan</translation> <translation id="1787176709638001873">Teks edit kata laluan</translation> <translation id="1802710350767629429">Paparkan nota kemas kini</translation> @@ -137,6 +140,7 @@ <translation id="2223693656926968778">Ambil tindakan terhadap item semasa</translation> <translation id="225732394367814946">Tingkatkan kadar pertuturan</translation> <translation id="2267945578749931355">Aksara Seterusnya</translation> +<translation id="2278490101488436824">Leret tiga jari ke kiri</translation> <translation id="2281234842553884450">Peluncur sebelumnya</translation> <translation id="2294136146931447363">Huruf condong bermula</translation> <translation id="2311237334957139798">Beralih ke item sebelumnya pada kebutiran</translation> @@ -209,17 +213,20 @@ <translation id="2864481629947106776">Pautan sebelumnya</translation> <translation id="2867808975387772810">Bibliografi</translation> <translation id="2873259058405069099">Pergi ke permulaan jadual</translation> +<translation id="2879867157561757640">Leret tiga jari ke bawah</translation> <translation id="288178314850623291">Gunakan perintah lompat untuk melangkau ke jenis unsur yang tertentu. Untuk melompat ke arah hadapan dari satu tajuk ke satu tajuk yang lain, tekan Carian + H. Untuk melompat ke arah belakang, tekan Carian + Shift + H.</translation> <translation id="2894654529758326923">Maklumat</translation> <translation id="2899328121302785497">{COUNT,plural, =1{kurung panah kiri}other{# kurung panah kiri}}</translation> <translation id="2909478709401302630">Superskrip bermula</translation> <translation id="2911433807131383493">Buka tutorial ChromeVox</translation> +<translation id="2912405967290226587">Leret tiga jari ke kanan</translation> <translation id="2932083475399492303">Togol jenis baris antara struktur atau reka letak</translation> <translation id="2944762337049891859">Baca halaman secara automatik selepas selesai dimuatkan.</translation> <translation id="2964026537669811554">Kumpulan tajuk</translation> <translation id="296951647852255825">{COUNT,plural, =1{tab}other{# tab}}</translation> <translation id="2972078295414139404">Tiada pautan yang dilawati sebelumnya.</translation> <translation id="2972205263822847197">Petua alat</translation> +<translation id="297825089465017871">Leret dua jari ke kiri</translation> <translation id="2998131015536248178">Aksara Sebelumnya</translation> <translation id="2999559350546931576">Kurangkan nada</translation> <translation id="2999945368667127852">Tiada widget media seterusnya.</translation> @@ -231,6 +238,7 @@ <translation id="3046838483509668188">Pilihan ChromeVox</translation> <translation id="3047143736589213134">Peta kekunci percubaan</translation> <translation id="3060756054951570867">Menu <ph name="TITLE" /> dibuka</translation> +<translation id="3070245424257836917">Leret tiga jari ke atas</translation> <translation id="3078345202707391975">Tajuk tahap 2 seterusnya</translation> <translation id="3078740164268491126">jadual</translation> <translation id="3082249673510793544">Tatal ke belakang</translation> @@ -343,6 +351,7 @@ <translation id="3599054940393788245">Bukan dalam matematik</translation> <translation id="360241989769010433">Perakuan</translation> <translation id="3616113530831147358">Audio</translation> +<translation id="3622350485154495700">Ketik dua kali dengan satu jari</translation> <translation id="3646890046000188562">{COUNT,plural, =1{tanda belakang}other{# tanda belakang}}</translation> <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dolar}other{# tanda dolar}}</translation> @@ -462,6 +471,7 @@ <translation id="4688873778442829762">grd</translation> <translation id="4693675773662933727">Mercu tanda sebelumnya</translation> <translation id="4696413482802371445">Tiada tajuk tahap 5 seterusnya.</translation> +<translation id="4710166929009737753">Leret satu jari ke kanan</translation> <translation id="4729095194763193578">Baris jadual sebelumnya</translation> <translation id="4736221692378411923">Ogos</translation> <translation id="4740661827607246557">Perintah Bantuan</translation> @@ -474,6 +484,7 @@ <translation id="4826415162591436065">Navigasi ke hadapan</translation> <translation id="4826604887384865800">Langkauan seterusnya</translation> <translation id="4827410568042294688">dinyahpilih</translation> +<translation id="4838490795649708173">Ketik dengan empat jari</translation> <translation id="4839925464551908214">Pergi ke baris sebelumnya</translation> <translation id="4842108708071771135">Tiada petikan blok seterusnya.</translation> <translation id="4844625982113518938">Tekan mana-mana kekunci untuk mengetahui namanya. Ctrl+W akan menutup mod belajar.</translation> @@ -610,6 +621,7 @@ <translation id="5750633686117194034">Tiada pengubah suai ditekan; sila tekan terus satu atau lebih pengubah suai; angkat jari anda setelah selesai dan anda akan mendengar kekunci ditetapkan. Ketik untuk keluar.</translation> <translation id="5760594853119905566">Lampiran</translation> <translation id="5788275253279308023">tab <ph name="TITLE" /> tetingkap inkognito</translation> +<translation id="5805940204952508776">Ketik dengan dua jari</translation> <translation id="5806206155699461681">Tingkatkan tapak tertentu (seperti Carian Google).</translation> <translation id="5819072574982403430">Item pepohon</translation> <translation id="5826479389509458994">baris <ph name="ROW" /> lajur <ph name="COL" /></translation> @@ -714,8 +726,10 @@ <translation id="6786800275320335305">Artikel</translation> <translation id="6787839852456839824">Pintasan papan kekunci</translation> <translation id="6793101435925451627">lstbx</translation> +<translation id="6826226459053491773">Leret dua jari ke bawah</translation> <translation id="6833103209700200188">Pengaki</translation> <translation id="6858047746862060282">Prolog</translation> +<translation id="6859876496651143278">Leret satu jari ke kiri</translation> <translation id="6871161210040114857">Mengabaikan huruf.</translation> <translation id="6877435256196695200">Tiada grafik seterusnya.</translation> <translation id="6897341342232909480">Alih ke kiri</translation> @@ -965,6 +979,7 @@ <translation id="923331726185079994">ChromeVox Dikemas Kini</translation> <translation id="930275611743429116">Mulakan atau tamatkan pemilihan.</translation> <translation id="948171205378458592">Kurangkan kadar pertuturan</translation> +<translation id="958854023026327378">Leret satu jari ke bawah</translation> <translation id="962913030769097253">Tajuk tahap 1 seterusnya</translation> <translation id="973955474346881951">Dayakan/Lumpuhkan mod lekit</translation> <translation id="976849232629612000">Tiada item.</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pl.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pl.xtb index bea630b3..9e9e95a 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pl.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pl.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">Znajdź klawisz, a potem unieś palec, by wpisać znak</translation> <translation id="1012173283529841972">Element listy</translation> <translation id="1013742170491673792">srched</translation> +<translation id="1014370462248694370">Przesuń dwoma palcami w prawo</translation> <translation id="1022586497894531524">Korzystasz z czytnika ChromeVox po raz pierwszy? Pomoże Ci ten krótki samouczek.</translation> <translation id="1023866615269196768">Rozciągnięta.</translation> <translation id="1025074108959230262">Tryb klawiszy trwałych wyłączony</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">Włącz lub wyłącz powiadamianie dźwiękiem (ikony akustyczne).</translation> <translation id="1108651818222110612">podtytuł</translation> <translation id="1120743664840974483">{"a": "alfa", "b": "brawo", "c": "czarli", "d": "delta", "e": "eko", "f": "fokstrot", "g": "golf", "h": "hotel", "i": "india", "j": "dżuliet","k": "kilo", "l": "lima", "m": "majk", "n": "nowember", "o": "oskar","p": "papa", "q": "kebek", "r": "romeo", "s": "sjera", "t": "tango", "u": "juniform", "v": "wiktor", "w": "łyski","x": "eks-rej", "y": "janki", "z": "zulu"}</translation> +<translation id="1120938014254001895">Przesuń dwoma palcami w górę</translation> <translation id="1124771028211010580">Bieżący styl wyświetlania to Obok siebie.</translation> <translation id="113582498867142724">Kolekcja elementów <ph name="TAG" />. Liczba elementów: <ph name="NUM" /></translation> <translation id="1155043339247954670">Brak następnego elementu listy.</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">Link</translation> <translation id="1727806147743597030">ftr</translation> <translation id="174268867904053074">Następna grafika</translation> +<translation id="1765245556747822181">Przesuń jednym palcem w górę</translation> <translation id="1781173782405573156">Klawisz przejścia</translation> <translation id="1787176709638001873">Edytowanie tekstu, hasło</translation> <translation id="1802710350767629429">Pokaż informacje dotyczące aktualizacji</translation> @@ -137,6 +140,7 @@ <translation id="2223693656926968778">Wykonaj działanie na bieżącym elemencie</translation> <translation id="225732394367814946">Zwiększ tempo mowy</translation> <translation id="2267945578749931355">Następny znak</translation> +<translation id="2278490101488436824">Przesuń trzema palcami w lewo</translation> <translation id="2281234842553884450">Poprzedni suwak</translation> <translation id="2294136146931447363">Początek kursywy</translation> <translation id="2311237334957139798">Przejdź do poprzedniego elementu na tym poziomie szczegółowości</translation> @@ -209,17 +213,20 @@ <translation id="2864481629947106776">Poprzedni link</translation> <translation id="2867808975387772810">Bibliografia</translation> <translation id="2873259058405069099">Przejdź na początek tabeli.</translation> +<translation id="2879867157561757640">Przesuń trzema palcami w dół</translation> <translation id="288178314850623291">Użyj poleceń nawigacji, by przejść do elementu określonego typu. Aby przejść do następnego nagłówka, naciśnij Wyszukaj + H. Aby przejść do poprzedniego nagłówka, naciśnij Wyszukaj + Shift + H.</translation> <translation id="2894654529758326923">Informacje</translation> <translation id="2899328121302785497">{COUNT,plural, =1{lewy nawias klamrowy}few{# lewe nawiasy klamrowe}many{# lewych nawiasów klamrowych}other{# left braces}}</translation> <translation id="2909478709401302630">Początek tekstu zapisanego indeksem górnym</translation> <translation id="2911433807131383493">Otwórz samouczek ChromeVox</translation> +<translation id="2912405967290226587">Przesuń trzema palcami w prawo</translation> <translation id="2932083475399492303">Zmień typ linii na strukturę lub układ</translation> <translation id="2944762337049891859">Automatycznie zacznij czytać stronę po jej załadowaniu.</translation> <translation id="2964026537669811554">Grupa nagłówka</translation> <translation id="296951647852255825">{COUNT,plural, =1{tabulator}few{# tabulatory}many{# tabulatorów}other{# tabs}}</translation> <translation id="2972078295414139404">Brak poprzedniego klikniętego linku.</translation> <translation id="2972205263822847197">Wskazówka do elementu</translation> +<translation id="297825089465017871">Przesuń dwoma palcami w lewo</translation> <translation id="2998131015536248178">Poprzedni znak</translation> <translation id="2999559350546931576">Obniż tonację.</translation> <translation id="2999945368667127852">Brak widżetu następnego pliku multimedialnego.</translation> @@ -231,6 +238,7 @@ <translation id="3046838483509668188">Opcje ChromeVox</translation> <translation id="3047143736589213134">Eksperymentalna mapa klawiatury</translation> <translation id="3060756054951570867">otwarte menu <ph name="TITLE" /></translation> +<translation id="3070245424257836917">Przesuń trzema palcami w górę</translation> <translation id="3078345202707391975">Następny nagłówek poziomu 2</translation> <translation id="3078740164268491126">tabela</translation> <translation id="3082249673510793544">Przewiń do tyłu</translation> @@ -343,6 +351,7 @@ <translation id="3599054940393788245">Nie w środku wyrażenia matematycznego</translation> <translation id="360241989769010433">Podziękowania</translation> <translation id="3616113530831147358">Dźwięk</translation> +<translation id="3622350485154495700">Kliknij dwukrotnie jednym palcem</translation> <translation id="3646890046000188562">{COUNT,plural, =1{grawis}few{# grawisy}many{# grawisów}other{# backticks}}</translation> <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dolar}few{# znaki dolara}many{# znaków dolara}other{# dollar signs}}</translation> @@ -462,6 +471,7 @@ <translation id="4688873778442829762">grd</translation> <translation id="4693675773662933727">Poprzedni punkt orientacyjny</translation> <translation id="4696413482802371445">Brak następnego nagłówka poziomu 5.</translation> +<translation id="4710166929009737753">Przesuń jednym palcem w prawo</translation> <translation id="4729095194763193578">Poprzedni wiersz tabeli</translation> <translation id="4736221692378411923">sierpień</translation> <translation id="4740661827607246557">Polecenia pomocy</translation> @@ -474,6 +484,7 @@ <translation id="4826415162591436065">Przejdź dalej</translation> <translation id="4826604887384865800">Następne przejście</translation> <translation id="4827410568042294688">nie wybrano</translation> +<translation id="4838490795649708173">Kliknij czterema palcami</translation> <translation id="4839925464551908214">Przejdź do poprzedniego wiersza</translation> <translation id="4842108708071771135">Brak następnego cytatu blokowego.</translation> <translation id="4844625982113518938">Naciśnij dowolny klawisz, by poznać jego nazwę. Ctrl + W zamyka tryb informacyjny.</translation> @@ -610,6 +621,7 @@ <translation id="5750633686117194034">Nie naciśnięto modyfikatora. Naciśnij i przytrzymaj przynajmniej jeden modyfikator, a później unieś palce – usłyszysz, że klawisze zostały ustawione. Naciśnij Tab, by wyjść.</translation> <translation id="5760594853119905566">Dodatek</translation> <translation id="5788275253279308023">okno incognito, karta <ph name="TITLE" /></translation> +<translation id="5805940204952508776">Kliknij dwoma palcami</translation> <translation id="5806206155699461681">Ulepsz określone strony (np. wyszukiwarkę Google).</translation> <translation id="5819072574982403430">Element drzewa</translation> <translation id="5826479389509458994">wiersz <ph name="ROW" />, kolumna <ph name="COL" /></translation> @@ -714,8 +726,10 @@ <translation id="6786800275320335305">Artykuł</translation> <translation id="6787839852456839824">Skróty klawiszowe</translation> <translation id="6793101435925451627">lstbx</translation> +<translation id="6826226459053491773">Przesuń dwoma palcami w dół</translation> <translation id="6833103209700200188">Stopka</translation> <translation id="6858047746862060282">Prolog</translation> +<translation id="6859876496651143278">Przesuń jednym palcem w lewo</translation> <translation id="6871161210040114857">Ignorowanie wielkości liter.</translation> <translation id="6877435256196695200">Brak następnej grafiki.</translation> <translation id="6897341342232909480">Przejdź w lewo</translation> @@ -965,6 +979,7 @@ <translation id="923331726185079994">ChromeVox został zaktualizowany</translation> <translation id="930275611743429116">Rozpocznij lub zakończ wybieranie.</translation> <translation id="948171205378458592">Zmniejsz tempo mowy</translation> +<translation id="958854023026327378">Przesuń jednym palcem w dół</translation> <translation id="962913030769097253">Następny nagłówek poziomu 1</translation> <translation id="973955474346881951">Włącz/wyłącz tryb klawiszy trwałych</translation> <translation id="976849232629612000">Brak elementów.</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-BR.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-BR.xtb index 70fedca0..b03cfda 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-BR.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_pt-BR.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">Encontre uma tecla e levante o dedo para digitá-la</translation> <translation id="1012173283529841972">Item da lista</translation> <translation id="1013742170491673792">srched</translation> +<translation id="1014370462248694370">Deslize para a direita usando dois dedos</translation> <translation id="1022586497894531524">Está usando o feedback falado do ChromeVox pela primeira vez? Este tutorial rápido explica os fundamentos para começar a usar o ChromeVox.</translation> <translation id="1023866615269196768">Expandido.</translation> <translation id="1025074108959230262">Modo aderente desativado</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">Ativa ou desativa o feedback sonoro (earcons).</translation> <translation id="1108651818222110612">subtítulo</translation> <translation id="1120743664840974483">{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}</translation> +<translation id="1120938014254001895">Deslize para cima usando dois dedos</translation> <translation id="1124771028211010580">O estilo de exibição atual está definido como lado a lado.</translation> <translation id="113582498867142724">Coleção de <ph name="TAG" /> com <ph name="NUM" /> itens</translation> <translation id="1155043339247954670">Nenhum item a seguir na lista.</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">Link</translation> <translation id="1727806147743597030">ftr</translation> <translation id="174268867904053074">Próximo gráfico</translation> +<translation id="1765245556747822181">Deslize para cima usando um dedo</translation> <translation id="1781173782405573156">Ignorar a tecla</translation> <translation id="1787176709638001873">Texto de alteração de senha</translation> <translation id="1802710350767629429">Mostrar notas de atualização</translation> @@ -137,6 +140,7 @@ <translation id="2223693656926968778">Clicar no item atual</translation> <translation id="225732394367814946">Acelerar ritmo da voz</translation> <translation id="2267945578749931355">Próximo caractere</translation> +<translation id="2278490101488436824">Deslize para a esquerda usando três dedos</translation> <translation id="2281234842553884450">Controle deslizante anterior</translation> <translation id="2294136146931447363">Início do itálico</translation> <translation id="2311237334957139798">Mover para o anterior na granularidade</translation> @@ -209,17 +213,20 @@ <translation id="2864481629947106776">Link anterior</translation> <translation id="2867808975387772810">Bibliografia</translation> <translation id="2873259058405069099">Ir para o início da tabela</translation> +<translation id="2879867157561757640">Deslize para baixo usando três dedos</translation> <translation id="288178314850623291">Use comandos de avanço e retorno para acessar tipos específicos de elementos. Para avançar entre cabeçalhos, pressione Pesquisa + H ou pressione Pesquisa + Shift + H para retroceder.</translation> <translation id="2894654529758326923">Informações</translation> <translation id="2899328121302785497">{COUNT,plural, =1{chave esquerda}one{# chaves esquerdas}other{# chaves esquerdas}}</translation> <translation id="2909478709401302630">Início do sobrescrito</translation> <translation id="2911433807131383493">Abrir tutorial do ChromeVox</translation> +<translation id="2912405967290226587">Deslize para a direita usando três dedos</translation> <translation id="2932083475399492303">Alternar tipo de linha entre estrutural e layout</translation> <translation id="2944762337049891859">Ler página automaticamente após o carregamento.</translation> <translation id="2964026537669811554">Grupo de cabeçalhos</translation> <translation id="296951647852255825">{COUNT,plural, =1{tabulação}one{# tabulações}other{# tabulações}}</translation> <translation id="2972078295414139404">Não há link anterior visitado.</translation> <translation id="2972205263822847197">Dica</translation> +<translation id="297825089465017871">Deslize para a esquerda usando dois dedos</translation> <translation id="2998131015536248178">Caractere anterior</translation> <translation id="2999559350546931576">Diminuir tom de voz</translation> <translation id="2999945368667127852">Nenhum widget de mídia a seguir.</translation> @@ -231,6 +238,7 @@ <translation id="3046838483509668188">Opções do ChromeVox</translation> <translation id="3047143736589213134">Mapa de teclado experimental</translation> <translation id="3060756054951570867">Menu <ph name="TITLE" /> aberto</translation> +<translation id="3070245424257836917">Deslize para cima usando três dedos</translation> <translation id="3078345202707391975">Próximo cabeçalho de nível 2</translation> <translation id="3078740164268491126">tabela</translation> <translation id="3082249673510793544">Rolar para trás</translation> @@ -343,6 +351,7 @@ <translation id="3599054940393788245">Sem matemática interna</translation> <translation id="360241989769010433">Agradecimentos</translation> <translation id="3616113530831147358">Áudio</translation> +<translation id="3622350485154495700">Toque duas vezes com um dedo</translation> <translation id="3646890046000188562">{COUNT,plural, =1{acento grave}one{# acentos graves}other{# acentos graves}}</translation> <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{cifrão}one{# sinais de cifrão}other{# sinais de cifrão}}</translation> @@ -462,6 +471,7 @@ <translation id="4688873778442829762">grd</translation> <translation id="4693675773662933727">Ponto de referência anterior</translation> <translation id="4696413482802371445">Nenhum cabeçalho de nível 5 a seguir.</translation> +<translation id="4710166929009737753">Deslize para a direita usando um dedo</translation> <translation id="4729095194763193578">Linha anterior da tabela</translation> <translation id="4736221692378411923">Agosto</translation> <translation id="4740661827607246557">Comandos de ajuda</translation> @@ -474,6 +484,7 @@ <translation id="4826415162591436065">Navegar para a frente</translation> <translation id="4826604887384865800">Próximo atalho</translation> <translation id="4827410568042294688">unselected</translation> +<translation id="4838490795649708173">Toque com quatro dedos</translation> <translation id="4839925464551908214">Ir para a linha anterior</translation> <translation id="4842108708071771135">Nenhum bloco de texto a seguir.</translation> <translation id="4844625982113518938">Pressione qualquer tecla para saber o nome dela. Ctrl+W fecha o modo de aprendizado.</translation> @@ -610,6 +621,7 @@ <translation id="5750633686117194034">Nenhum modificador foi pressionado. Pressione e mantenha pressionado um ou mais modificadores. Levante os dedos uma vez e você ouvirá as teclas definidas. Pressione "Tab" para sair.</translation> <translation id="5760594853119905566">Apêndice</translation> <translation id="5788275253279308023">Janela anônima, guia <ph name="TITLE" /></translation> +<translation id="5805940204952508776">Toque com dois dedos</translation> <translation id="5806206155699461681">Aprimore sites específicos (como a Pesquisa Google).</translation> <translation id="5819072574982403430">Item de árvore</translation> <translation id="5826479389509458994">linha <ph name="ROW" /> coluna <ph name="COL" /></translation> @@ -714,8 +726,10 @@ <translation id="6786800275320335305">Artigo</translation> <translation id="6787839852456839824">Atalhos do teclado</translation> <translation id="6793101435925451627">lstbx</translation> +<translation id="6826226459053491773">Deslize para baixo usando dois dedos</translation> <translation id="6833103209700200188">Rodapé</translation> <translation id="6858047746862060282">Prólogo</translation> +<translation id="6859876496651143278">Deslize para a esquerda usando um dedo</translation> <translation id="6871161210040114857">Não diferencia maiúsculas de minúsculas.</translation> <translation id="6877435256196695200">Nenhum gráfico a seguir.</translation> <translation id="6897341342232909480">Mover para a esquerda</translation> @@ -965,6 +979,7 @@ <translation id="923331726185079994">ChromeVox atualizado</translation> <translation id="930275611743429116">Iniciar ou finalizar seleção.</translation> <translation id="948171205378458592">Desacelerar ritmo da voz</translation> +<translation id="958854023026327378">Deslize para baixo usando um dedo</translation> <translation id="962913030769097253">Próximo cabeçalho de nível 1</translation> <translation id="973955474346881951">Ativar/desativar modo aderente</translation> <translation id="976849232629612000">Não há itens.</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sk.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sk.xtb index 107a501e..da13b8ef 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sk.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sk.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">Nájdite kláves, potom napíšte písmeno zdvihnutím prsta</translation> <translation id="1012173283529841972">Položka zoznamu</translation> <translation id="1013742170491673792">srched</translation> +<translation id="1014370462248694370">Potiahnite dvoma prstami doprava</translation> <translation id="1022586497894531524">Používate hovorenú spätnú väzbu čítačky ChromeVox prvýkrát? Tento stručný návod vám vysvetlí základy potrebné na začatie používania čítačky ChromeVox.</translation> <translation id="1023866615269196768">Rozšírené</translation> <translation id="1025074108959230262">Rýchly režim bol zakázaný</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">Zapnúť alebo vypnúť zvukovú spätnú väzbu (zvukové signály</translation> <translation id="1108651818222110612">podnázov</translation> <translation id="1120743664840974483">{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}</translation> +<translation id="1120938014254001895">Potiahnite dvoma prstami nahor</translation> <translation id="1124771028211010580">Aktuálny štýl zobrazenie je vedľa seba.</translation> <translation id="113582498867142724">Počet položiek v zbierke <ph name="TAG" />: <ph name="NUM" /></translation> <translation id="1155043339247954670">Žiadna ďalšia položka zoznamu</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">Odkaz</translation> <translation id="1727806147743597030">päta</translation> <translation id="174268867904053074">Ďalší obrázok</translation> +<translation id="1765245556747822181">Potiahnite prstom nahor</translation> <translation id="1781173782405573156">Preskočiť kláves</translation> <translation id="1787176709638001873">Text úpravy hesla</translation> <translation id="1802710350767629429">Zobraziť poznámky k aktualizácii</translation> @@ -136,9 +139,10 @@ <translation id="2223693656926968778">Prejsť na aktuálnu položku</translation> <translation id="225732394367814946">Zvýšiť rýchlosť reči</translation> <translation id="2267945578749931355">Ďalší znak</translation> +<translation id="2278490101488436824">Potiahnite troma prstami doľava</translation> <translation id="2281234842553884450">Predchádzajúci posúvač</translation> <translation id="2294136146931447363">Začiatok kurzívy</translation> -<translation id="2311237334957139798">Prejsť na predchádzajúcu položku na úrovni podrobnosti</translation> +<translation id="2311237334957139798">Prejsť na predchádzajúcu položku na úrovni podrobností</translation> <translation id="2318372665160196757">Hlavné</translation> <translation id="2329324941084714723">Panel karty</translation> <translation id="2344193891939537199">Ovládanie dátumu a času</translation> @@ -208,17 +212,20 @@ <translation id="2864481629947106776">Predchádzajúci odkaz</translation> <translation id="2867808975387772810">Bibliografia</translation> <translation id="2873259058405069099">Prejsť na začiatok tabuľky</translation> +<translation id="2879867157561757640">Potiahnite troma prstami nadol</translation> <translation id="288178314850623291">Ak chcete prejsť na konkrétne typy prvkov, použite príkazy na preskočenie. Ak chcete prechádzať dopredu medzi nadpismi, stlačte kombináciu klávesov Hľadať + H. Ak chcete prejsť dozadu, stlačte kombináciu klávesov Hľadať + Shift + H.</translation> <translation id="2894654529758326923">Informácie</translation> <translation id="2899328121302785497">{COUNT,plural, =1{ľavá zložená zátvorka}few{# ľavé zložené zátvorky}many{# left braces}other{# ľavých zložených zátvoriek}}</translation> <translation id="2909478709401302630">Začiatok horného indexu</translation> <translation id="2911433807131383493">Otvoriť príručku rozšírenia ChromeVox</translation> +<translation id="2912405967290226587">Potiahnite troma prstami doprava</translation> <translation id="2932083475399492303">Prepnúť typ riadku medzi riadkom štruktúry a rozloženia</translation> <translation id="2944762337049891859">Po načítaní stránku automaticky prečítať.</translation> <translation id="2964026537669811554">Skupina nadpisov</translation> <translation id="296951647852255825">{COUNT,plural, =1{tabulátor}few{# tabulátory}many{# tabs}other{# tabulátorov}}</translation> <translation id="2972078295414139404">Žiadny predchádzajúci navštívený odkaz</translation> <translation id="2972205263822847197">Popis</translation> +<translation id="297825089465017871">Potiahnite dvoma prstami doľava</translation> <translation id="2998131015536248178">Predchádzajúci znak</translation> <translation id="2999559350546931576">Znížiť výšku hlasu</translation> <translation id="2999945368667127852">Žiadna ďalšia miniaplikácia pre médiá</translation> @@ -230,6 +237,7 @@ <translation id="3046838483509668188">Možnosti rozšírenia ChromeVox</translation> <translation id="3047143736589213134">Experimentálna mapa klávesov</translation> <translation id="3060756054951570867">otvorila sa ponuka <ph name="TITLE" /></translation> +<translation id="3070245424257836917">Potiahnite troma prstami nahor</translation> <translation id="3078345202707391975">Ďalší nadpis 2. úrovne</translation> <translation id="3078740164268491126">tabuľka</translation> <translation id="3082249673510793544">Posunúť vzad</translation> @@ -342,6 +350,7 @@ <translation id="3599054940393788245">Nejde o matematiku</translation> <translation id="360241989769010433">Poďakovanie</translation> <translation id="3616113530831147358">Zvuk</translation> +<translation id="3622350485154495700">Dvakrát klepnite jedným prstom</translation> <translation id="3646890046000188562">{COUNT,plural, =1{obrátený dĺžeň}few{# obrátené dĺžne}many{# backticks}other{# obrátených dĺžňov}}</translation> <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dolár}few{# znaky dolára}many{# dollar signs}other{# znakov dolára}}</translation> @@ -461,6 +470,7 @@ <translation id="4688873778442829762">mriežka</translation> <translation id="4693675773662933727">Prechádzajúci orientačný bod</translation> <translation id="4696413482802371445">Žiadny ďalší nadpis 5. úrovne</translation> +<translation id="4710166929009737753">Potiahnite prstom doprava</translation> <translation id="4729095194763193578">Predchádzajúci riadok tabuľky</translation> <translation id="4736221692378411923">august</translation> <translation id="4740661827607246557">Príkazy pomocníka</translation> @@ -473,6 +483,7 @@ <translation id="4826415162591436065">Prejsť dopredu</translation> <translation id="4826604887384865800">Ďalší skok</translation> <translation id="4827410568042294688">nevybrané</translation> +<translation id="4838490795649708173">Klepnite štyrmi prstami</translation> <translation id="4839925464551908214">Prechod na predchádzajúci riadok</translation> <translation id="4842108708071771135">Žiadny ďalší prvok blockquote</translation> <translation id="4844625982113518938">Po stlačení ľubovoľného klávesu sa dozviete jeho názov. Kombináciou klávesov Ctrl+W režim učenia ukončíte.</translation> @@ -609,6 +620,7 @@ <translation id="5750633686117194034">Nestlačili ste žiadny modifikátor. Stlačte a podržte jeden alebo viac modifikátorov. Po dokončení zdvihnite prsty. Ozve sa hlásenie o tom, ktoré klávesy boli nastavené. Klávesom Tab túto akciu ukončíte.</translation> <translation id="5760594853119905566">Príloha</translation> <translation id="5788275253279308023">okno inkognito, karta <ph name="TITLE" /></translation> +<translation id="5805940204952508776">Klepnite dvoma prstami</translation> <translation id="5806206155699461681">Vylepšenie špecifických webových stránok (napríklad Vyhľadávania Google)</translation> <translation id="5819072574982403430">Položka stromu</translation> <translation id="5826479389509458994">riadok <ph name="ROW" /> stĺpec <ph name="COL" /></translation> @@ -688,7 +700,7 @@ <translation id="6540201937398578274">V čítačke ChromeVox slúži kláves Hľadať ako kláves modifikátora. Väčšina skratiek čítačky ChromeVox sa začína klávesom Hľadať. Na navigáciu budete tiež používať klávesy so šípkami.</translation> <translation id="6550720799683018100">Ak chcete zmeniť aktuálnu klávesovú mapu, vyberte možnosť zo zoznamu nižšie.</translation> <translation id="6561818612645211875">Prejsť na začiatok aktuálneho riadka</translation> -<translation id="6583174818554398774">Prejsť na nasledujúcu položku na úrovni podrobnosti</translation> +<translation id="6583174818554398774">Prejsť na nasledujúcu položku na úrovni podrobností</translation> <translation id="6587021927234520429">Žiadny ďalší nadpis 4. úrovne</translation> <translation id="6601344353291556895">Povoliť podrobné popisy.</translation> <translation id="6615602925644411249">Nájsť na stránke</translation> @@ -713,8 +725,10 @@ <translation id="6786800275320335305">Článok</translation> <translation id="6787839852456839824">Klávesové skratky</translation> <translation id="6793101435925451627">pole zoznamu</translation> +<translation id="6826226459053491773">Potiahnite dvoma prstami nadol</translation> <translation id="6833103209700200188">Päta</translation> <translation id="6858047746862060282">Prológ</translation> +<translation id="6859876496651143278">Potiahnite prstom doľava</translation> <translation id="6871161210040114857">Malé a veľké písmená sa ignorujú.</translation> <translation id="6877435256196695200">Žiadna ďalšia grafika</translation> <translation id="6897341342232909480">Posunúť doľava</translation> @@ -964,6 +978,7 @@ <translation id="923331726185079994">Aplikácia ChromeVox bola aktualizovaná</translation> <translation id="930275611743429116">Začať alebo ukončiť výber</translation> <translation id="948171205378458592">Znížiť rýchlosť reči</translation> +<translation id="958854023026327378">Potiahnite prstom nadol</translation> <translation id="962913030769097253">Ďalší nadpis 1. úrovne</translation> <translation id="973955474346881951">Povoliť alebo zakázať rýchly režim</translation> <translation id="976849232629612000">Žiadne položky.</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sl.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sl.xtb index 105ba978..53edbfa 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sl.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sl.xtb
@@ -139,7 +139,7 @@ <translation id="2267945578749931355">Naslednji znak</translation> <translation id="2281234842553884450">Prejšnji drsnik</translation> <translation id="2294136146931447363">Začetek ležeče pisave</translation> -<translation id="2311237334957139798">Premik na prejšnji element na ravni besed</translation> +<translation id="2311237334957139798">Premik na prejšnji element na ravni podrobnosti</translation> <translation id="2318372665160196757">Glavni</translation> <translation id="2329324941084714723">Podokno z zavihki</translation> <translation id="2344193891939537199">Kontrolnik za datum in čas</translation> @@ -689,7 +689,7 @@ <translation id="6540201937398578274">V ChromeVoxu je tipka za iskanje modifikatorska tipka. Večina bližnjičnih tipk ChromeVoxa se začne s tipko za iskanje. Za pomikanje boste prav tako uporabljali puščične tipke.</translation> <translation id="6550720799683018100">Trenutno razporeditev tipk spremenite tako, da izberete možnost na spodnjem seznamu.</translation> <translation id="6561818612645211875">Pomik na začetek trenutne vrstice</translation> -<translation id="6583174818554398774">Premik na naslednji element na ravni besed</translation> +<translation id="6583174818554398774">Premik na naslednji element na ravni podrobnosti</translation> <translation id="6587021927234520429">Ni naslednjega naslova na ravni 4.</translation> <translation id="6601344353291556895">Omogoči podrobne opise.</translation> <translation id="6615602925644411249">Najdi na strani.</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 e9ff8164..0b55f9e 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sw.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_sw.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">Tafuta kitufe, kisha ukiinue ili uandike</translation> <translation id="1012173283529841972">Kipengee cha orodha</translation> <translation id="1013742170491673792">imetafuta</translation> +<translation id="1014370462248694370">Telezesha vidole viwili kuelekea kulia</translation> <translation id="1022586497894531524">Je, unatumia maelezo yanayotamkwa ya ChromeVox kwa mara ya kwanza? Mafunzo haya ya haraka yanaeleza mambo muhimu katika mwongozo wa kuanza kutumia ChromeVox.</translation> <translation id="1023866615269196768">Kimejumuishwa.</translation> <translation id="1025074108959230262">Hali ya kunata imezimwa</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">Washa au zima maoni ya sauti (earcons).</translation> <translation id="1108651818222110612">kichwa kidogo</translation> <translation id="1120743664840974483">{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}</translation> +<translation id="1120938014254001895">Telezesha vidole viwili kuelekea juu</translation> <translation id="1124771028211010580">Mtindo wa sasa wa onyesho ni wa upande kwa upande.</translation> <translation id="113582498867142724"><ph name="TAG" /> mkusanyiko ulio na vipengee <ph name="NUM" /></translation> <translation id="1155043339247954670">Hakuna kipengee cha orodha kinachofuata.</translation> @@ -90,6 +92,7 @@ <translation id="1722567105086139392">Kiungo</translation> <translation id="1727806147743597030">kijachini</translation> <translation id="174268867904053074">Mchoro unaofuata</translation> +<translation id="1765245556747822181">Telezesha kidole kimoja kuelekea juu</translation> <translation id="1781173782405573156">Nenosiri la kuingia</translation> <translation id="1787176709638001873">Maandishi ya kubadilisha nenosiri</translation> <translation id="1802710350767629429">Onyesha ukurasa wa sasisho</translation> @@ -136,6 +139,7 @@ <translation id="2223693656926968778">Chukua hatua kwenye kipengee cha sasa</translation> <translation id="225732394367814946">Ongeza kasi ya usemi</translation> <translation id="2267945578749931355">Herufi Inayofuata</translation> +<translation id="2278490101488436824">Telezesha vidole vitatu kuelekea kushoto</translation> <translation id="2281234842553884450">Kitelezi kilichotangulia</translation> <translation id="2294136146931447363">Mwanzo wa maandishi ya italiki</translation> <translation id="2311237334957139798">Nenda kwenye kiwango cha maelezo kilichotangulia</translation> @@ -208,17 +212,20 @@ <translation id="2864481629947106776">Kiungo kilichotangulia</translation> <translation id="2867808975387772810">Bibliografia</translation> <translation id="2873259058405069099">Nenda hadi mwanzo wa jedwali</translation> +<translation id="2879867157561757640">Telezesha vidole vitatu kuelekea chini</translation> <translation id="288178314850623291">Tumia amri za kuruka ili uruke aina mahsusi ya vipengee. Ili kuruka mbele baina ya vichwa, bonyeza Tafuta + H, au ili uruke kwenda nyuma, bonyeza Tafuta + Shift + H.</translation> <translation id="2894654529758326923">Maelezo</translation> <translation id="2899328121302785497">{COUNT,plural, =1{parandesi ya kushoto}other{parandesi # za kushoto}}</translation> <translation id="2909478709401302630">Mwanzo wa nambari juu ya nyingine</translation> <translation id="2911433807131383493">Fungua mafunzo ya ChromeVox</translation> +<translation id="2912405967290226587">Telezesha vidole vitatu kuelekea kulia</translation> <translation id="2932083475399492303">Geuza aina ya mstari kati ya muundo au mpangilio</translation> <translation id="2944762337049891859">Soma ukurasa kiotomatiki baada ya kupakiwa.</translation> <translation id="2964026537669811554">Kichwa cha kikundi</translation> <translation id="296951647852255825">{COUNT,plural, =1{kichupo}other{vichupo #}}</translation> <translation id="2972078295414139404">Hakuna kiungo kilichotembelewa kilichotangulia.</translation> <translation id="2972205263822847197">Kidokezo cha zana</translation> +<translation id="297825089465017871">Telezesha vidole viwili kuelekea kushoto</translation> <translation id="2998131015536248178">Herufi Iliyotangulia</translation> <translation id="2999559350546931576">Punguza kiwango cha sauti</translation> <translation id="2999945368667127852">Hakuna wijeti ya maudhui inayofuata.</translation> @@ -230,6 +237,7 @@ <translation id="3046838483509668188">Chaguo za ChromeVox</translation> <translation id="3047143736589213134">Ramani msingi ya majaribio</translation> <translation id="3060756054951570867">Menyu <ph name="TITLE" /> imefunguliwa</translation> +<translation id="3070245424257836917">Telezesha vidole vitatu kuelekea juu</translation> <translation id="3078345202707391975">Kichwa cha ngazi ya 2 kinachofuata</translation> <translation id="3078740164268491126">jedwali</translation> <translation id="3082249673510793544">Sogeza nyuma</translation> @@ -342,6 +350,7 @@ <translation id="3599054940393788245">Siyo ndani ya hisabati</translation> <translation id="360241989769010433">Shukrani</translation> <translation id="3616113530831147358">Sauti</translation> +<translation id="3622350485154495700">Gusa mara mbili ukitumia kidole kimoja</translation> <translation id="3646890046000188562">{COUNT,plural, =1{kingo`ngo}other{ving`ong`o #}}</translation> <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{dola}other{alama # za dola}}</translation> @@ -461,6 +470,7 @@ <translation id="4688873778442829762">gridi</translation> <translation id="4693675773662933727">Kivutio kilichotangulia</translation> <translation id="4696413482802371445">Hakuna kichwa cha ngazi ya 5 inayofuata.</translation> +<translation id="4710166929009737753">Telezesha kidole kimoja kuelekea kulia</translation> <translation id="4729095194763193578">Safu mlalo ya jedwali lililotangulia</translation> <translation id="4736221692378411923">Agosti</translation> <translation id="4740661827607246557">Amri za Usaidizi</translation> @@ -473,6 +483,7 @@ <translation id="4826415162591436065">Nenda mbele</translation> <translation id="4826604887384865800">Kuruka kunakofuata</translation> <translation id="4827410568042294688">yameondolewa uteuzi</translation> +<translation id="4838490795649708173">Gusa kwa vidole vinne</translation> <translation id="4839925464551908214">Nenda kwenye safu mlalo iliyotangulia</translation> <translation id="4842108708071771135">Hakuna nukuu la msingi linalofuata.</translation> <translation id="4844625982113518938">Bonyeza kitufe chochote ufahamu jina lake. Ctrl+W kutafunga hali ya kujifunza.</translation> @@ -520,7 +531,7 @@ <translation id="5106547198195128110">Tuna mabadiliko ya kusisimua katika toleo hili jipya; yafuatayo ni mambo mapya:</translation> <translation id="5110983769041734144">Hakuna sehemu ya fomu iliyotangulia.</translation> <translation id="5111640677200759579">Kichwa cha safu wima</translation> -<translation id="5115892389597951922">ChromeVox Log</translation> +<translation id="5115892389597951922">Kumbukumbu ya ChromeVox</translation> <translation id="5136967254288895616">Hakuna kiungo kilichotangulia.</translation> <translation id="513774504516943387">kiungo</translation> <translation id="5158275234811857234">Jalada</translation> @@ -609,6 +620,7 @@ <translation id="5750633686117194034">Hakuna kirekebishaji kilichobonyezwa; tafadhali bonyeza na ushikilie kirekebishaji kimoja au zaidi; ondoa kidole chako unapomaliza na utasikia vitufe vikiwekwa. Gusa kichupo ili kuondoka.</translation> <translation id="5760594853119905566">Kiambatisho</translation> <translation id="5788275253279308023">dirisha fiche la kichupo cha <ph name="TITLE" /></translation> +<translation id="5805940204952508776">Gusa kwa vidole viwili</translation> <translation id="5806206155699461681">Boresha tovuti mahususi (kama vile Huduma ya Tafuta na Google).</translation> <translation id="5819072574982403430">Kipengee cha mti</translation> <translation id="5826479389509458994">safu mlalo <ph name="ROW" /> safu wima <ph name="COL" /></translation> @@ -713,8 +725,10 @@ <translation id="6786800275320335305">Makala</translation> <translation id="6787839852456839824">Mikato ya kibodi</translation> <translation id="6793101435925451627">lstbx</translation> +<translation id="6826226459053491773">Telezesha vidole viwili kuelekea chini</translation> <translation id="6833103209700200188">Kijachini</translation> <translation id="6858047746862060282">Shairi la utangulizi</translation> +<translation id="6859876496651143278">Telezesha kidole kimoja kuelekea kushoto</translation> <translation id="6871161210040114857">Inapuuza herufi kubwa au ndogo.</translation> <translation id="6877435256196695200">Hakuna mchoro unaofuata.</translation> <translation id="6897341342232909480">Sogeza kushoto</translation> @@ -964,6 +978,7 @@ <translation id="923331726185079994">ChromeVox Imesasishwa</translation> <translation id="930275611743429116">Anza au maliza uchaguzi.</translation> <translation id="948171205378458592">Punguza kasi ya usemi</translation> +<translation id="958854023026327378">Telezesha kidole kimoja kuelekea chini</translation> <translation id="962913030769097253">Kichwa cha ngazi ya 1 kinachofuata</translation> <translation id="973955474346881951">Washa/Zima hali ya kunata</translation> <translation id="976849232629612000">Hakuna vipengee.</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 3951969e..4970cc7 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ta.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ta.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">சொற்களை உள்ளிட, ஒரு விசையைக் கண்டறிந்து அதைத் தட்டவும்</translation> <translation id="1012173283529841972">பட்டியல் உருப்படி</translation> <translation id="1013742170491673792">srched</translation> +<translation id="1014370462248694370">இரண்டு விரல்களை வலதுபுறமாக ஸ்வைப் செய்யவும்</translation> <translation id="1022586497894531524">ChromeVox பேச்சு வடிவக் கருத்தை முதல் முறையாகப் பயன்படுத்துகிறீர்களா? இந்த விரைவான பயிற்சியில், ChromeVoxஐப் பயன்படுத்தத் தொடங்குவதற்குத் தேவைப்படும் முக்கியமான விஷயங்களைத் தெரிந்துகொள்வீர்கள்.</translation> <translation id="1023866615269196768">நீட்டிக்கப்பட்டது.</translation> <translation id="1025074108959230262">ஸ்டிக்கி முறை முடக்கப்பட்டது</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">ஒலி மறுமொழியை (ஆடியோ செய்திகள்) இயக்கு அல்லது முடக்கு.</translation> <translation id="1108651818222110612">துணை தலைப்பு</translation> <translation id="1120743664840974483">{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}</translation> +<translation id="1120938014254001895">இரண்டு விரல்களை மேலே ஸ்வைப் செய்யவும்</translation> <translation id="1124771028211010580">தற்போதைய காட்சி நடை: அருகருகே.</translation> <translation id="113582498867142724"><ph name="NUM" /> உருப்படிகளின் <ph name="TAG" /> தொகுப்பு</translation> <translation id="1155043339247954670">அடுத்த பட்டியல் உருப்படி இல்லை.</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">இணைப்பு</translation> <translation id="1727806147743597030">ftr</translation> <translation id="174268867904053074">அடுத்த கிராஃபிக்</translation> +<translation id="1765245556747822181">ஒரு விரலை மேலே ஸ்வைப் செய்யவும்</translation> <translation id="1781173782405573156">பாஸ் த்ரூ விசை</translation> <translation id="1787176709638001873">கடவுச்சொல் திருத்த உரை</translation> <translation id="1802710350767629429">புதுப்பிப்புக் குறிப்புகளைக் காட்டு</translation> @@ -137,6 +140,7 @@ <translation id="2223693656926968778">நடப்பு உருப்படியில் நடவடிக்கை எடு</translation> <translation id="225732394367814946">பேச்சு விகிதத்தை அதிகரி</translation> <translation id="2267945578749931355">அடுத்த எழுத்து</translation> +<translation id="2278490101488436824">மூன்று விரல்களை இடதுபுறமாக ஸ்வைப் செய்யவும்</translation> <translation id="2281234842553884450">முந்தைய ஸ்லைடர்</translation> <translation id="2294136146931447363">சாய்வு உரையின் தொடக்கம்</translation> <translation id="2311237334957139798">விவர நிலையில் முந்தையதற்கு நகரும்</translation> @@ -157,7 +161,7 @@ <translation id="2429669115401274487">PM</translation> <translation id="2435413342408885429"><ph name="KEY" /> என்பதே இப்போது புதிய ChromeVox மாற்றியாகும்.</translation> <translation id="2450814015951372393">செக் பாக்ஸ்</translation> -<translation id="2462626033734746142">ரேடியோ பொத்தான் குழு</translation> +<translation id="2462626033734746142">ரேடியோ பட்டன் குழு</translation> <translation id="2471138580042810658">தலைப்பு 6</translation> <translation id="248982282205370495">{COUNT,plural, =1{உடுக்குறி}other{# உடுக்குறிகள்}}</translation> <translation id="249330843868392562">‘உரையிலிருந்து பேச்சு’ அமைப்புகளைத் திற</translation> @@ -209,28 +213,32 @@ <translation id="2864481629947106776">முந்தைய இணைப்பு</translation> <translation id="2867808975387772810">நூல்விவர அட்டவணை</translation> <translation id="2873259058405069099">அட்டவணையின் தொடக்கத்திற்குச் செல்</translation> +<translation id="2879867157561757640">மூன்று விரல்களைக் கீழே ஸ்வைப் செய்யவும்</translation> <translation id="288178314850623291">மற்றதைத் தவிர்த்துவிட்டு, குறிப்பிட்ட வகை உறுப்புகளுக்கு மட்டும் செல்ல, தாவும் கட்டளைகளைப் பயன்படுத்தவும். அடுத்தடுத்த தலைப்புகளுக்குச் செல்ல, தேடல் + H விசைகளை அழுத்தவும். முந்தைய தலைப்புகளுக்குச் செல்ல, தேடல் + ஷிஃப்ட் + H விசைகளை அழுத்தவும்.</translation> <translation id="2894654529758326923">தகவல்</translation> <translation id="2899328121302785497">{COUNT,plural, =1{இடது பிறை அடைப்புக்குறி}other{# இடது பிறை அடைப்புக்குறிகள்}}</translation> <translation id="2909478709401302630">சூப்பர்ஸ்கிரிப்ட்டின் தொடக்கம்</translation> <translation id="2911433807131383493">ChromeVox பயிற்சியைத் திற</translation> +<translation id="2912405967290226587">மூன்று விரல்களை வலதுபுறமாக ஸ்வைப் செய்யவும்</translation> <translation id="2932083475399492303">வரியின் வகையை கட்டமைப்பு அல்லது தளவமைப்புக்கு இடையில் மாற்றவும்</translation> <translation id="2944762337049891859">பக்கம் ஏற்றப்பட்டதும், அதைத் தானாகவே படி.</translation> <translation id="2964026537669811554">தலைப்புக் குழு</translation> <translation id="296951647852255825">{COUNT,plural, =1{தாவல்}other{# தாவல்கள்}}</translation> <translation id="2972078295414139404">முந்தையதாக பார்வையிட்ட இணைப்பு இல்லை.</translation> <translation id="2972205263822847197">உதவிக்குறிப்பு</translation> +<translation id="297825089465017871">இரண்டு விரல்களை இடதுபுறமாக ஸ்வைப் செய்யவும்</translation> <translation id="2998131015536248178">முந்தைய எழுத்து</translation> <translation id="2999559350546931576">ஸ்ருதியைக் குறை</translation> <translation id="2999945368667127852">அடுத்த ஊடக விட்ஜெட் இல்லை.</translation> <translation id="3012414509011670858">முந்தைய பிரிவு இல்லை.</translation> <translation id="3014130421870723208">@ed 8dot</translation> -<translation id="3030432017085518523">மெனு உருப்படி ரேடியோ பொத்தான்</translation> +<translation id="3030432017085518523">மெனுவில் உள்ள ரேடியோ பட்டன்</translation> <translation id="3037392361165431467">{COUNT,plural, =1{தனி மேற்கோள் குறி}other{# தனி மேற்கோள் குறிகள்}}</translation> <translation id="3040901448410802366">செயல்நிலைக் காட்டி</translation> <translation id="3046838483509668188">ChromeVox விருப்பங்கள்</translation> <translation id="3047143736589213134">சோதனை விசைவரைபடம்</translation> <translation id="3060756054951570867"><ph name="TITLE" /> மெனு திறக்கப்பட்டது</translation> +<translation id="3070245424257836917">மூன்று விரல்களை மேலே ஸ்வைப் செய்யவும்</translation> <translation id="3078345202707391975">அடுத்த 2 ஆம் படிநிலை தலைப்பு</translation> <translation id="3078740164268491126">அட்டவணை</translation> <translation id="3082249673510793544">பின்செல்</translation> @@ -343,6 +351,7 @@ <translation id="3599054940393788245">உள்கணிதம் இல்லை</translation> <translation id="360241989769010433">அங்கீகாரங்கள்</translation> <translation id="3616113530831147358">ஆடியோ</translation> +<translation id="3622350485154495700">ஒரு விரலால் இருமுறை தட்டவும்</translation> <translation id="3646890046000188562">{COUNT,plural, =1{பேக்டிக்}other{# பேக்டிக்குகள்}}</translation> <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{டாலர் குறி}other{# டாலர் குறிகள்}}</translation> @@ -462,6 +471,7 @@ <translation id="4688873778442829762">grd</translation> <translation id="4693675773662933727">முந்தைய லேண்ட்மார்க்</translation> <translation id="4696413482802371445">அடுத்த 5 ஆம் நிலை தலைப்பு இல்லை.</translation> +<translation id="4710166929009737753">ஒரு விரலை வலதுபுறமாக ஸ்வைப் செய்யவும்</translation> <translation id="4729095194763193578">முந்தைய அட்டவணை வரிசை</translation> <translation id="4736221692378411923">ஆகஸ்ட்</translation> <translation id="4740661827607246557">உதவி கட்டளைகள்</translation> @@ -474,6 +484,7 @@ <translation id="4826415162591436065">முன்னோக்கிச் செல்</translation> <translation id="4826604887384865800">அடுத்த தாவல்</translation> <translation id="4827410568042294688">தேர்ந்தெடுக்கப்படவில்லை</translation> +<translation id="4838490795649708173">நான்கு விரல்களால் தட்டவும்</translation> <translation id="4839925464551908214">முந்தைய வரிசைக்குச் செல்லும்</translation> <translation id="4842108708071771135">அடுத்த மேற்கோள் குறி இல்லை.</translation> <translation id="4844625982113518938">எந்த விசையின் பெயரையாவது தெரிந்துகொள்ள, அதை அழுத்தவும். Ctrl மற்றும் Wஐ ஒன்றாக அழுத்தினால், கற்றல் பயன்முறை மூடப்படும்.</translation> @@ -501,7 +512,7 @@ <translation id="4986606102545753256"><ph name="NAME" />, சாளரம்</translation> <translation id="4993152509206108683">பேச்சு விகிதம் <ph name="PERCENT" /> சதவீதம்</translation> <translation id="4996716799442435517">பார்வை</translation> -<translation id="4997282455736854877"><ph name="NAME" />, ரேடியோ பொத்தான் தேர்ந்தெடுக்கப்பட்டது</translation> +<translation id="4997282455736854877"><ph name="NAME" />, ரேடியோ பட்டன் தேர்ந்தெடுக்கப்பட்டது</translation> <translation id="4997475792277222884">இணைப்பாக இல்லாத அடுத்த உருப்படி இல்லை.</translation> <translation id="5000760171916499057">வடிவங்கள் இல்லை.</translation> <translation id="5005670136041063723">மேலும் ஒத்த கூறுகள் இல்லை.</translation> @@ -531,7 +542,7 @@ <translation id="5189244881767082992">வரி</translation> <translation id="5203930734796605961">ஏற்கனவே ஒரு கட்டளைக்கு <ph name="KEY" /> ஒதுக்கப்பட்டுள்ளது.</translation> <translation id="5205493599117157272"><ph name="TYPE" /> பட்டியல்.</translation> -<translation id="520883772648104506">அடுத்த ரேடியோ பொத்தான் இல்லை.</translation> +<translation id="520883772648104506">அடுத்த ரேடியோ பட்டன் இல்லை.</translation> <translation id="5263344797180442561">h2</translation> <translation id="528468243742722775">End</translation> <translation id="5291783959063340370">பொருள்</translation> @@ -569,7 +580,7 @@ <translation id="5502713021410870035">செப்டம்பர்</translation> <translation id="5507663321906818013">பென்ச்மார்க்கைப் பிழைத்திருத்துதல்</translation> <translation id="5518443085409638729">உரையைத் திருத்தும்போது எழுத்துகளுக்கு இடையே இடஞ்சுட்டியை வை (Mac OS X போன்று).</translation> -<translation id="552195134157544755">ரேடியோ பொத்தான்</translation> +<translation id="552195134157544755">ரேடியோ பட்டன்</translation> <translation id="5534303576632885660">hdr</translation> <translation id="5546092960038624944">முந்தைய 5 ஆம் நிலை தலைப்பு இல்லை.</translation> <translation id="556042886152191864">பொத்தான்</translation> @@ -580,7 +591,7 @@ <translation id="5585044216466955529">உரையைத் திருத்து, மின்னஞ்சல் உள்ளீடு</translation> <translation id="5597170376237141345">அடுத்த செக்பாக்ஸ்</translation> <translation id="5597933780944041114">அடுத்த தலைப்பு இல்லை.</translation> -<translation id="5598905979683743333"><ph name="NAME" />, ரேடியோ பொத்தான் தேர்ந்தெடுக்கப்படவில்லை</translation> +<translation id="5598905979683743333"><ph name="NAME" />, ரேடியோ பட்டன் தேர்வு நீக்கப்பட்டது</translation> <translation id="5601172225407283979">இயல்பான செயலைச் செயல்படுத்து</translation> <translation id="5608798115546226984">தானே நிரப்புதல் இன்லைன்</translation> <translation id="561939826962581046">நேரம்</translation> @@ -610,6 +621,7 @@ <translation id="5750633686117194034">மாற்றி எதுவும் அழுத்தப்படவில்லை; ஒன்று அல்லது அதற்கு மேற்பட்ட மாற்றிகளை அழுத்திப் பிடிக்கவும்; முடித்தவுடன் உங்கள் விரல்களை எடுக்கவும், விசைகள் அமைக்கப்படுவதைக் கேட்பீர்கள். வெளியேறத் தட்டவும்.</translation> <translation id="5760594853119905566">பிற்சேர்க்கை</translation> <translation id="5788275253279308023">மறைநிலை சாளரம் <ph name="TITLE" /> தாவல்</translation> +<translation id="5805940204952508776">இரண்டு விரல்களால் தட்டவும்</translation> <translation id="5806206155699461681">குறிப்பிட்ட தளங்களை மேம்படுத்துக (Google தேடல் போன்றவை).</translation> <translation id="5819072574982403430">ட்ரீ உருப்படி</translation> <translation id="5826479389509458994"><ph name="ROW" /> வரிசை <ph name="COL" /> நெடுவரிசை</translation> @@ -675,7 +687,7 @@ <translation id="6378565991815958969">$1ஐ நகலெடு.</translation> <translation id="6385591741672306837">நெடுவரிசை</translation> <translation id="6387719785439924554">aside</translation> -<translation id="6411426777058107714">முந்தைய ரேடியோ பொத்தான் இல்லை.</translation> +<translation id="6411426777058107714">முந்தைய ரேடியோ பட்டன் இல்லை.</translation> <translation id="6414968628640960377">வேறுபட்ட முந்தைய உறுப்பு.</translation> <translation id="641759969622533235">{COUNT,plural, =1{முக்காற்புள்ளி}other{# முக்காற்புள்ளிகள்}}</translation> <translation id="6438968337250688271"><ph name="NAME" />, மெனு</translation> @@ -714,8 +726,10 @@ <translation id="6786800275320335305">உறுப்பு</translation> <translation id="6787839852456839824">விசைப்பலகைக் குறுக்குவழிகள்</translation> <translation id="6793101435925451627">lstbx</translation> +<translation id="6826226459053491773">இரண்டு விரல்களைக் கீழே ஸ்வைப் செய்யவும்</translation> <translation id="6833103209700200188">அடிக்குறிப்பு</translation> <translation id="6858047746862060282">முன்னுரை</translation> +<translation id="6859876496651143278">ஒரு விரலை இடதுபுறமாக ஸ்வைப் செய்யவும்</translation> <translation id="6871161210040114857">எழுத்து உணர்வு புறக்கணிக்கப்பட்டது.</translation> <translation id="6877435256196695200">அடுத்த கிராஃபிக் இல்லை.</translation> <translation id="6897341342232909480">இடப்புறம் நகர்த்து</translation> @@ -764,7 +778,7 @@ <translation id="7240858705033280249">விவரங்களைக் காட்டு</translation> <translation id="7241683698754534149">நீண்ட விளக்கத்தைப் புதிய தாவலில் திறக்கவும்</translation> <translation id="7248671827512403053">பயன்பாடு</translation> -<translation id="725969808843520477">அடுத்த ரேடியோ பொத்தான்</translation> +<translation id="725969808843520477">அடுத்த ரேடியோ பட்டன்</translation> <translation id="7261612856573623172">சாதனத்தின் இயல்பு ‘உரையிலிருந்து பேச்சுக்கான' குரல்</translation> <translation id="7269119382257320590">நிறுத்தற்குறி இல்லை</translation> <translation id="7273174640290488576">வெற்று</translation> @@ -816,7 +830,7 @@ <translation id="7674768236845044097">mark</translation> <translation id="7684431668231950609">உரையைத் திருத்து, URL உள்ளீடு</translation> <translation id="7685589220304187312">tlbar</translation> -<translation id="7693840228159394336">முந்தைய ரேடியோ பொத்தான்</translation> +<translation id="7693840228159394336">முந்தைய ரேடியோ பட்டன்</translation> <translation id="7701196182766842984">autolst</translation> <translation id="7712273827621319827">அடிக்கோட்டு உரையின் தொடக்கம்</translation> <translation id="7770823902658038748"><ph name="VALUE" />, <ph name="NAME" />, கடவுச்சொல் உரைப் பெட்டி</translation> @@ -965,6 +979,7 @@ <translation id="923331726185079994">ChromeVox புதுப்பிக்கப்பட்டது</translation> <translation id="930275611743429116">தொடக்க அல்லது இறுதித் தேர்வு.</translation> <translation id="948171205378458592">பேச்சின் விகிதத்தைக் குறை</translation> +<translation id="958854023026327378">ஒரு விரலை கீழே ஸ்வைப் செய்யவும்</translation> <translation id="962913030769097253">அடுத்த 1 ஆம் படிநிலை தலைப்பு</translation> <translation id="973955474346881951">ஸ்டிக்கி பயன்முறையை இயக்கு/முடக்கு</translation> <translation id="976849232629612000">உருப்படிகள் இல்லை.</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_te.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_te.xtb index 121040f..9be4656d 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_te.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_te.xtb
@@ -139,7 +139,7 @@ <translation id="2267945578749931355">తదుపరి అక్షరం</translation> <translation id="2281234842553884450">మునుపటి స్లయిడర్</translation> <translation id="2294136146931447363">ఇటాలిక్ ప్రారంభం</translation> -<translation id="2311237334957139798">ఆకృతి వద్ద మునుపటి దానికి తరలించండి</translation> +<translation id="2311237334957139798">వివరాల స్థాయి వద్ద మునుపటి దానికి తరలించండి</translation> <translation id="2318372665160196757">ప్రధానం</translation> <translation id="2329324941084714723">ట్యాబ్ ప్యానెల్</translation> <translation id="2344193891939537199">తేదీ సమయ నియంత్రణ</translation> @@ -689,7 +689,7 @@ <translation id="6540201937398578274">ChromeVoxలో, శోధన కీ అనేది మాడిఫైయర్ కీ. చాలా వరకు ChromeVox సత్వరమార్గాలు శోధన కీతో ప్రారంభమవుతాయి. అలాగే మీరు నావిగేషన్ కోసం ఎక్కువగా బాణం కీలను ఉపయోగిస్తారు.</translation> <translation id="6550720799683018100">దిగువ జాబితా నుండి ఎంపికను ఎంచుకోవడం ద్వారా ప్రస్తుత కీమ్యాప్ను మార్చండి.</translation> <translation id="6561818612645211875">ప్రస్తుత అడ్డు వరుస ప్రారంభానికి వెళ్లండి</translation> -<translation id="6583174818554398774">ఆకృతి వద్ద తదుపరి దానికి తరలించండి</translation> +<translation id="6583174818554398774">వివరాల స్థాయి వద్ద తర్వాతి దానికి తరలించండి</translation> <translation id="6587021927234520429">తదుపరి స్థాయి 4 శీర్షిక లేదు.</translation> <translation id="6601344353291556895">విశదీకృత వివరణలను ప్రారంభించండి.</translation> <translation id="6615602925644411249">పేజీలో కనుగొనండి.</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_th.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_th.xtb index 0e2e933..837e67a 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_th.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_th.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">หาแป้นแล้วยกนิ้วขึ้นพิมพ์</translation> <translation id="1012173283529841972">รายการ</translation> <translation id="1013742170491673792">srched</translation> +<translation id="1014370462248694370">เลื่อน 2 นิ้วไปทางขวา</translation> <translation id="1022586497894531524">หากคุณใช้การอธิบายและอ่านออกเสียงของ ChromeVox เป็นครั้งแรก บทแนะนำฉบับย่อนี้ที่จะอธิบายสิ่งที่ควรทราบในการเริ่มต้นใช้งาน ChromeVox</translation> <translation id="1023866615269196768">มีการขยาย</translation> <translation id="1025074108959230262">ปิดโหมดติดหนึบแล้ว</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">เปิดหรือปิดเสียงความคิดเห็น (earcons)</translation> <translation id="1108651818222110612">คำบรรยาย</translation> <translation id="1120743664840974483">{"a": "อัลฟ่า", "b": "บราโว่", "c": "ชาร์ลี", "d": "เดลต้า", "e": "เอคโค่", "f": "ฟอกซ์ทรอต", "g": "กอล์ฟ", "h": "โฮเท็ล", "i": "อินเดีย", "j": "จูเลียต","k": "กิโล", "l": "ลิมา", "m": "ไมค์", "n": "โนเวมเบอร์", "o": "ออสการ์","p": "ปาป้า", "q": "ควิเบค", "r": "โรมิโอ", "s": "เซียร์ร่า", "t": "แทงโก้", "u": "ยูนิฟอร์ม", "v": "วิคเตอร์", "w": "วิสกี้","x": "เอ็กซเรย์", "y": "แยงกี้", "z": "ซูลู"}</translation> +<translation id="1120938014254001895">เลื่อน 2 นิ้วขึ้น</translation> <translation id="1124771028211010580">รูปแบบการแสดงผลปัจจุบันคือการแสดงคู่กัน</translation> <translation id="113582498867142724">คอลเล็กชัน <ph name="TAG" /> ที่มี <ph name="NUM" /> รายการ</translation> <translation id="1155043339247954670">ไม่มีรายการถัดไป</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">ลิงก์</translation> <translation id="1727806147743597030">ส่วนท้าย</translation> <translation id="174268867904053074">กราฟิกถัดไป</translation> +<translation id="1765245556747822181">เลื่อน 1 นิ้วขึ้น</translation> <translation id="1781173782405573156">แป้นส่งผ่าน</translation> <translation id="1787176709638001873">ข้อความแก้ไขรหัสผ่าน</translation> <translation id="1802710350767629429">แสดงการอัปเดตบันทึก</translation> @@ -136,9 +139,10 @@ <translation id="2223693656926968778">ดำเนินการกับรายการปัจจุบัน</translation> <translation id="225732394367814946">เพิ่มอัตราการพูด</translation> <translation id="2267945578749931355">อักขระถัดไป</translation> +<translation id="2278490101488436824">เลื่อน 3 นิ้วไปทางซ้าย</translation> <translation id="2281234842553884450">แถบเลื่อนก่อนหน้า</translation> <translation id="2294136146931447363">เริ่มส่วนที่เป็นตัวเอียง</translation> -<translation id="2311237334957139798">เลื่อนไปที่รายละเอียดก่อนหน้า</translation> +<translation id="2311237334957139798">เลื่อนไปที่ระดับก่อนหน้า</translation> <translation id="2318372665160196757">หลัก</translation> <translation id="2329324941084714723">แผงแท็บ</translation> <translation id="2344193891939537199">การควบคุมวันที่และเวลา</translation> @@ -208,17 +212,20 @@ <translation id="2864481629947106776">ลิงก์ก่อนหน้านี้</translation> <translation id="2867808975387772810">บรรณานุกรม</translation> <translation id="2873259058405069099">ไปที่ด้านบนของตาราง</translation> +<translation id="2879867157561757640">เลื่อน 3 นิ้วลง</translation> <translation id="288178314850623291">ใช้คำสั่งข้ามเพื่อข้ามไปยังประเภทองค์ประกอบที่ต้องการ หากต้องการข้ามไปข้างหน้าระหว่างส่วนหัว ให้กด Search + H หรือหากต้องการข้ามย้อนกลับ ให้กด Search + Shift + H</translation> <translation id="2894654529758326923">ข้อมูล</translation> <translation id="2899328121302785497">{COUNT,plural, =1{วงเล็บปีกกาซ้าย}other{# วงเล็บปีกกาซ้าย}}</translation> <translation id="2909478709401302630">เริ่มต้นข้อความตัวยก</translation> <translation id="2911433807131383493">เปิดบทแนะนำ ChromeVox</translation> +<translation id="2912405967290226587">เลื่อน 3 นิ้วไปทางขวา</translation> <translation id="2932083475399492303">สลับประเภทบรรทัดระหว่างโครงสร้างหรือรูปแบบ</translation> <translation id="2944762337049891859">อ่านหน้าโดยอัตโนมัติหลังจากที่โหลดเสร็จ</translation> <translation id="2964026537669811554">กลุ่มของส่วนหัว</translation> <translation id="296951647852255825">{COUNT,plural, =1{เครื่องหมายแท็บ}other{# เครื่องหมายแท็บ}}</translation> <translation id="2972078295414139404">ไม่มีลิงก์ที่เคยเข้าชมก่อนหน้า</translation> <translation id="2972205263822847197">เคล็ดลับเครื่องมือ</translation> +<translation id="297825089465017871">เลื่อน 2 นิ้วไปทางซ้าย</translation> <translation id="2998131015536248178">อักขระก่อนหน้า</translation> <translation id="2999559350546931576">ลดระดับเสียง</translation> <translation id="2999945368667127852">ไม่มีวิดเจ็ตสื่อถัดไป</translation> @@ -230,6 +237,7 @@ <translation id="3046838483509668188">ตัวเลือก ChromeVox</translation> <translation id="3047143736589213134">รูปแบบแป้นแบบทดลอง</translation> <translation id="3060756054951570867">เปิดเมนู <ph name="TITLE" /> แล้ว</translation> +<translation id="3070245424257836917">เลื่อน 3 นิ้วขึ้น</translation> <translation id="3078345202707391975">ส่วนหัวระดับถัดไป 2</translation> <translation id="3078740164268491126">ตาราง</translation> <translation id="3082249673510793544">เลื่อนกลับ</translation> @@ -342,6 +350,7 @@ <translation id="3599054940393788245">ไม่ได้อยู่ในคณิตศาสตร์</translation> <translation id="360241989769010433">กิตติกรรมประกาศ</translation> <translation id="3616113530831147358">เสียง</translation> +<translation id="3622350485154495700">ใช้นิ้วเดียวแตะสองครั้ง</translation> <translation id="3646890046000188562">{COUNT,plural, =1{เครื่องหมายแบ็กทิก}other{# เครื่องหมายแบ็กทิก}}</translation> <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{เครื่องหมายดอลลาร์}other{# เครื่องหมายดอลลาร์}}</translation> @@ -461,6 +470,7 @@ <translation id="4688873778442829762">ตาราง</translation> <translation id="4693675773662933727">จุดสังเกตก่อนหน้า</translation> <translation id="4696413482802371445">ไม่มีส่วนหัวระดับ 5 ถัดไป</translation> +<translation id="4710166929009737753">เลื่อน 1 นิ้วไปทางขวา</translation> <translation id="4729095194763193578">แถวตารางก่อนหน้า</translation> <translation id="4736221692378411923">สิงหาคม</translation> <translation id="4740661827607246557">คำสั่งช่วยเหลือ</translation> @@ -473,6 +483,7 @@ <translation id="4826415162591436065">นำทางไปข้างหน้า</translation> <translation id="4826604887384865800">การข้ามถัดไป</translation> <translation id="4827410568042294688">ไม่ได้เลือก</translation> +<translation id="4838490795649708173">ใช้ 4 นิ้วแตะสองครั้ง</translation> <translation id="4839925464551908214">ไปที่แถวก่อนหน้า</translation> <translation id="4842108708071771135">ไม่มีข้อความที่ยกมาถัดไป</translation> <translation id="4844625982113518938">กดปุ่มใดก็ได้เพื่อเรียนรู้ชื่อของปุ่มนั้น Ctrl+W จะปิดโหมดการเรียนรู้</translation> @@ -609,6 +620,7 @@ <translation id="5750633686117194034">ไม่มีการกดคีย์ตัวปรับแต่ง โปรดกดคีย์ตัวปรับแต่งอย่างน้อยหนึ่งคีย์ค้างไว้ ยกนิ้วขึ้นเมื่อเสร็จสิ้นและคุณจะได้ยินเสียงการตั้งคีย์ แตะเพื่อออก</translation> <translation id="5760594853119905566">ภาคผนวก</translation> <translation id="5788275253279308023">แท็บหน้าต่างที่ไม่ระบุตัวตน <ph name="TITLE" /></translation> +<translation id="5805940204952508776">ใช้ 2 นิ้วแตะ</translation> <translation id="5806206155699461681">เพิ่มประสิทธิภาพไซต์เฉพาะ (เช่น Google Search)</translation> <translation id="5819072574982403430">รายการแบบต้นไม้</translation> <translation id="5826479389509458994">แถว <ph name="ROW" /> คอลัมน์ <ph name="COL" /></translation> @@ -688,7 +700,7 @@ <translation id="6540201937398578274">ใน ChromeVox แป้นค้นหาคือคีย์ตัวปรับแต่ง แป้นพิมพ์ลัดของ ChromeVox ส่วนใหญ่จะเริ่มต้นด้วยแป้นนี้ และใช้ปุ่มลูกศรสำหรับการนำทาง</translation> <translation id="6550720799683018100">เปลี่ยนรูปแบบแป้นปัจจุบันด้วยการเลือกจากรายการตัวเลือกด้านล่างนี้</translation> <translation id="6561818612645211875">ไปที่ด้านบนของแถวปัจจุบัน</translation> -<translation id="6583174818554398774">เลื่อนไปที่รายละเอียดถัดไป</translation> +<translation id="6583174818554398774">เลื่อนไปที่ระดับถัดไป</translation> <translation id="6587021927234520429">ไม่มีส่วนหัวระดับ 4 ถัดไป</translation> <translation id="6601344353291556895">เปิดใช้งานคำอธิบายขนาดยาว</translation> <translation id="6615602925644411249">ค้นหาในหน้าเว็บ</translation> @@ -713,8 +725,10 @@ <translation id="6786800275320335305">บทความ</translation> <translation id="6787839852456839824">แป้นพิมพ์ลัด</translation> <translation id="6793101435925451627">กล่องรายการ</translation> +<translation id="6826226459053491773">เลื่อน 2 นิ้วลง</translation> <translation id="6833103209700200188">ส่วนท้าย</translation> <translation id="6858047746862060282">อารัมภบท</translation> +<translation id="6859876496651143278">เลื่อน 1 นิ้วไปทางซ้าย</translation> <translation id="6871161210040114857">ไม่สนใจตัวพิมพ์เล็กหรือใหญ่</translation> <translation id="6877435256196695200">ไม่มีกราฟิกถัดไป</translation> <translation id="6897341342232909480">เลื่อนไปทางซ้าย</translation> @@ -964,6 +978,7 @@ <translation id="923331726185079994">ChromeVox อัปเดตแล้ว</translation> <translation id="930275611743429116">เริ่มต้นหรือสิ้นสุดการเลือก</translation> <translation id="948171205378458592">ลดความเร็วการพูด</translation> +<translation id="958854023026327378">เลื่อน 1 นิ้วลง</translation> <translation id="962913030769097253">ส่วนหัวระดับ 1 ถัดไป</translation> <translation id="973955474346881951">เปิด/ปิดโหมดติดหนึบ</translation> <translation id="976849232629612000">ไม่มีรายการ</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_uk.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_uk.xtb index 7380714..4532158 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_uk.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_uk.xtb
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">Знайдіть клавішу й підніміть палець, щоб ввести символ</translation> <translation id="1012173283529841972">Пункт списку</translation> <translation id="1013742170491673792">пошук</translation> +<translation id="1014370462248694370">Проведіть двома пальцями праворуч</translation> <translation id="1022586497894531524">Уперше користуєтеся голосовими підказками ChromeVox? З цього посібника ви швидко дізнаєтеся про основні функції програми.</translation> <translation id="1023866615269196768">Розтягнута.</translation> <translation id="1025074108959230262">Залипання клавіш вимкнено</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">Увімкнути або вимкнути звуковий сигнал (звуковий ефект).</translation> <translation id="1108651818222110612">підзаголовок</translation> <translation id="1120743664840974483">{"а": "а-зОт", "б": "бОн-да-рів-на", "в": "віт-ро-гон", "г": "га-ра-кі-рі", "ґ": "ґо-ґо-дзи", "д": "до-ли-на", "е": "ерг", "є": "єд-ність-то-си-ла", "ж": "жа-б'є-се-ло", "з": "зо-ло-ту-ха", "и": "то-не-во-но", "і": "І-ван", "ї": "їж-хто-го-ло-ден", "й": "йди-хо-лод-ком", "к": "ко-лі-но", "л": "лі-со-ру-би", "м": "мо-роз", "н": "но-га", "о": "о-ко-лот", "п": "при-мо-роз-ки", "р": "ри-бонь-ка", "с": "са-ха-ра", "т": "тон", "у": "у-па-док", "ф": "фі-лан-тро-пи", "х": "хо-ло-до-чок", "ц": "цьо-ця-дор-ця", "ч": "чор-но-го-ра", "ш": "шо-ло-ви-ло", "щ": "що-ро-ку-мо-роз", "ь": "то-м'я-кий-тон" "ю": "ю-рій-ко-роль", "я": "я-ро-шен-ко"}</translation> +<translation id="1120938014254001895">Проведіть двома пальцями вгору</translation> <translation id="1124771028211010580">Поточний стиль дисплея – паралельний перегляд.</translation> <translation id="113582498867142724">Збірка <ph name="TAG" /> з такою кількістю елементів: <ph name="NUM" /></translation> <translation id="1155043339247954670">Немає наступного пункту списку.</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">Посилання</translation> <translation id="1727806147743597030">нижній колонтитул</translation> <translation id="174268867904053074">Наступне зображення</translation> +<translation id="1765245556747822181">Проведіть пальцем угору</translation> <translation id="1781173782405573156">Клавіша наскрізного проходу</translation> <translation id="1787176709638001873">Редагування тексту пароля</translation> <translation id="1802710350767629429">Показати примітки про оновлення</translation> @@ -136,6 +139,7 @@ <translation id="2223693656926968778">Виконати дію з поточним елементом</translation> <translation id="225732394367814946">Збільшити темп мовлення</translation> <translation id="2267945578749931355">Наступний символ</translation> +<translation id="2278490101488436824">Проведіть трьома пальцями ліворуч</translation> <translation id="2281234842553884450">Попередній повзунок</translation> <translation id="2294136146931447363">Початок тексту курсивом</translation> <translation id="2311237334957139798">Перейти до попереднього рівня деталізації</translation> @@ -208,17 +212,20 @@ <translation id="2864481629947106776">Попереднє посилання</translation> <translation id="2867808975387772810">Бібліографія</translation> <translation id="2873259058405069099">Перейти на початок таблиці</translation> +<translation id="2879867157561757640">Проведіть трьома пальцями вниз</translation> <translation id="288178314850623291">Щоб переходити до елементів певного типу, використовуйте команди переходу. Наприклад, щоб переходити між заголовками, натискайте Search+H (уперед) або Search+Shift+H (назад).</translation> <translation id="2894654529758326923">Інформація</translation> <translation id="2899328121302785497">{COUNT,plural, =1{ліва фігурна дужка}one{# ліва фігурна дужка}few{# ліві фігурні дужки}many{# лівих фігурних дужок}other{# left braces}}</translation> <translation id="2909478709401302630">Початок надрядкового тексту</translation> <translation id="2911433807131383493">Відкрити навчальний посібник ChromeVox</translation> +<translation id="2912405967290226587">Проведіть трьома пальцями праворуч</translation> <translation id="2932083475399492303">Переключення між структурною лінією та лінією розмітки</translation> <translation id="2944762337049891859">Автоматично озвучувати сторінку, коли вона завантажиться.</translation> <translation id="2964026537669811554">Група заголовків</translation> <translation id="296951647852255825">{COUNT,plural, =1{знак табуляції}one{# знак табуляції}few{# знаки табуляції}many{# знаків табуляції}other{# tabs}}</translation> <translation id="2972078295414139404">Немає попереднього натиснутого посилання.</translation> <translation id="2972205263822847197">Підказка</translation> +<translation id="297825089465017871">Проведіть двома пальцями ліворуч</translation> <translation id="2998131015536248178">Попередній символ</translation> <translation id="2999559350546931576">Зменшити висоту звуку</translation> <translation id="2999945368667127852">Немає наступного медіа-віджета.</translation> @@ -230,6 +237,7 @@ <translation id="3046838483509668188">Параметри ChromeVox</translation> <translation id="3047143736589213134">Експериментальна розкладка клавіатури</translation> <translation id="3060756054951570867">меню <ph name="TITLE" /> відкрито</translation> +<translation id="3070245424257836917">Проведіть трьома пальцями вгору</translation> <translation id="3078345202707391975">Наступний заголовок рівня 2</translation> <translation id="3078740164268491126">таблиця</translation> <translation id="3082249673510793544">Прокрутити назад</translation> @@ -342,6 +350,7 @@ <translation id="3599054940393788245">Не для математичних виразів</translation> <translation id="360241989769010433">Слова подяки</translation> <translation id="3616113530831147358">Звук</translation> +<translation id="3622350485154495700">Двічі торкніться пальцем</translation> <translation id="3646890046000188562">{COUNT,plural, =1{зворотний апостроф}one{# зворотний апостроф}few{# зворотні апострофи}many{# зворотних апострофів}other{# backticks}}</translation> <translation id="3650317109285159359">прапорець пункту меню</translation> <translation id="3655855170848725876">{COUNT,plural, =1{долар}one{# символ долара}few{# символи долара}many{# символів долара}other{# dollar signs}}</translation> @@ -461,6 +470,7 @@ <translation id="4688873778442829762">сітка</translation> <translation id="4693675773662933727">Попередній орієнтир</translation> <translation id="4696413482802371445">Немає наступного заголовка рівня 5.</translation> +<translation id="4710166929009737753">Проведіть пальцем праворуч</translation> <translation id="4729095194763193578">Попередній рядок таблиці</translation> <translation id="4736221692378411923">серпень</translation> <translation id="4740661827607246557">Команди довідки</translation> @@ -473,6 +483,7 @@ <translation id="4826415162591436065">Перейти вперед</translation> <translation id="4826604887384865800">Наступний перехід</translation> <translation id="4827410568042294688">виділення скасовано</translation> +<translation id="4838490795649708173">Торкніться чотирма пальцями</translation> <translation id="4839925464551908214">Перейти до попереднього рядка</translation> <translation id="4842108708071771135">Немає наступного блоку цитати.</translation> <translation id="4844625982113518938">Натисніть клавішу, щоб дізнатися її назву. Сторінку "Докладніше" можна закрити за допомогою комбінації Ctrl+W.</translation> @@ -609,6 +620,7 @@ <translation id="5750633686117194034">Ви не натиснули жодну клавішу-модифікатор. Натисніть і утримуйте одну чи декілька клавіш-модифікаторів. Коли закінчите, відпустіть – ви почуєте, які клавіші налаштовано. Натисніть Tab, щоб вийти.</translation> <translation id="5760594853119905566">Додаток</translation> <translation id="5788275253279308023">анонімне вікно вкладки <ph name="TITLE" /></translation> +<translation id="5805940204952508776">Торкніться двома пальцями</translation> <translation id="5806206155699461681">Покращувати певні сайти (як-от Пошук Google).</translation> <translation id="5819072574982403430">Елемент дерева</translation> <translation id="5826479389509458994">ряд <ph name="ROW" /> стовпець <ph name="COL" /></translation> @@ -713,8 +725,10 @@ <translation id="6786800275320335305">Стаття</translation> <translation id="6787839852456839824">Комбінації клавіш</translation> <translation id="6793101435925451627">спадний список</translation> +<translation id="6826226459053491773">Проведіть двома пальцями вниз</translation> <translation id="6833103209700200188">Нижній колонтитул</translation> <translation id="6858047746862060282">Пролог</translation> +<translation id="6859876496651143278">Проведіть пальцем ліворуч</translation> <translation id="6871161210040114857">Регістр не враховується.</translation> <translation id="6877435256196695200">Немає наступного зображення.</translation> <translation id="6897341342232909480">Перемістити ліворуч</translation> @@ -964,6 +978,7 @@ <translation id="923331726185079994">ChromeVox оновлено</translation> <translation id="930275611743429116">Почати або закінчити вибір.</translation> <translation id="948171205378458592">Зменшити темп мовлення</translation> +<translation id="958854023026327378">Проведіть пальцем униз</translation> <translation id="962913030769097253">Наступний заголовок рівня 1</translation> <translation id="973955474346881951">Увімкнути чи вимкнути режим закріплення</translation> <translation id="976849232629612000">Немає елементів.</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_vi.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_vi.xtb index 1e3e95e0..eca577a 100644 --- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_vi.xtb +++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_vi.xtb
@@ -139,7 +139,7 @@ <translation id="2267945578749931355">Ký tự tiếp theo</translation> <translation id="2281234842553884450">Thanh trượt trước</translation> <translation id="2294136146931447363">Đầu chữ in nghiêng</translation> -<translation id="2311237334957139798">Chuyển về mức độ chi tiết trước đó</translation> +<translation id="2311237334957139798">Chuyển về độ chi tiết trước đó</translation> <translation id="2318372665160196757">Chính</translation> <translation id="2329324941084714723">Bảng điều khiển tab</translation> <translation id="2344193891939537199">Kiểm soát ngày giờ</translation> @@ -689,7 +689,7 @@ <translation id="6540201937398578274">Trong ChromeVox, phím Tìm kiếm là phím bổ trợ. Hầu hết các phím tắt trên ChromeVox đều bắt đầu bằng phím Tìm kiếm. Ngoài ra, bạn có thể sử dụng các phím mũi tên để di chuyển.</translation> <translation id="6550720799683018100">Thay đổi sơ đồ bàn phím hiện tại bằng cách chọn một tùy chọn từ danh sách bên dưới.</translation> <translation id="6561818612645211875">Đi tới đầu hàng hiện tại</translation> -<translation id="6583174818554398774">Chuyển tới mức độ chi tiết kế tiếp</translation> +<translation id="6583174818554398774">Chuyển tới độ chi tiết tiếp theo</translation> <translation id="6587021927234520429">Không có tiêu đề cấp 4 tiếp theo nào.</translation> <translation id="6601344353291556895">Bật mô tả chi tiết.</translation> <translation id="6615602925644411249">Tìm trong trang.</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 d370ecf..02057672 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
@@ -5,6 +5,7 @@ <translation id="1011903154582639569">找到需要的按鍵後,輕輕一點即可輸入</translation> <translation id="1012173283529841972">清單項目</translation> <translation id="1013742170491673792">srched</translation> +<translation id="1014370462248694370">以雙指向右滑動</translation> <translation id="1022586497894531524">你是第一次使用 ChromeVox 互動朗讀嗎?本教學課程提供了簡要的基本操作說明,可協助你開始使用 ChromeVox。</translation> <translation id="1023866615269196768">已擴展。</translation> <translation id="1025074108959230262">固定模式已停用</translation> @@ -21,6 +22,7 @@ <translation id="1106741348836243114">開啟或關閉音效回饋 (聽覺標示)。</translation> <translation id="1108651818222110612">副標題</translation> <translation id="1120743664840974483">{"a": "alpha", "b": "bravo", "c": "charlie", "d": "delta", "e": "echo", "f": "foxtrot", "g": "golf", "h": "hotel", "i": "india", "j": "juliet","k": "kilo", "l": "lima", "m": "mike", "n": "november", "o": "oscar","p": "papa", "q": "quebec", "r": "romeo", "s": "sierra", "t": "tango", "u": "uniform", "v": "victor", "w": "whiskey","x": "xray", "y": "yankee", "z": "zulu"}</translation> +<translation id="1120938014254001895">以雙指向上滑動</translation> <translation id="1124771028211010580">目前的顯示樣式為並排。</translation> <translation id="113582498867142724">「<ph name="TAG" />」集 (共 <ph name="NUM" /> 個項目)</translation> <translation id="1155043339247954670">沒有下一個清單項目。</translation> @@ -91,6 +93,7 @@ <translation id="1722567105086139392">連結</translation> <translation id="1727806147743597030">頁尾</translation> <translation id="174268867904053074">下一個圖形</translation> +<translation id="1765245556747822181">以單指向上滑動</translation> <translation id="1781173782405573156">忽略按鍵</translation> <translation id="1787176709638001873">密碼文字</translation> <translation id="1802710350767629429">顯示更新注意事項</translation> @@ -137,6 +140,7 @@ <translation id="2223693656926968778">對目前的項目進行操作</translation> <translation id="225732394367814946">加快說話速度</translation> <translation id="2267945578749931355">下一個字元</translation> +<translation id="2278490101488436824">以三指向左滑動</translation> <translation id="2281234842553884450">上一個滑桿</translation> <translation id="2294136146931447363">斜體開頭</translation> <translation id="2311237334957139798">移至較低的精細度等級</translation> @@ -209,17 +213,20 @@ <translation id="2864481629947106776">上一個連結</translation> <translation id="2867808975387772810">參考書目</translation> <translation id="2873259058405069099">前往表格開頭</translation> +<translation id="2879867157561757640">以三指向下滑動</translation> <translation id="288178314850623291">使用跳轉指令可直接在特定類型的元素之間移動。如要跳到下一個標題,請按下搜尋鍵 + H 鍵;如要跳到下一個標題,請按下搜尋鍵 + Shift 鍵 + H 鍵。</translation> <translation id="2894654529758326923">資訊</translation> <translation id="2899328121302785497">{COUNT,plural, =1{左大括弧}other{# 個左大括弧}}</translation> <translation id="2909478709401302630">上標的開頭</translation> <translation id="2911433807131383493">開啟 ChromeVox 教學課程</translation> +<translation id="2912405967290226587">以三指向右滑動</translation> <translation id="2932083475399492303">切換行類型 (結構化或版面配置)</translation> <translation id="2944762337049891859">網頁載入完成後自動朗讀網頁內容。</translation> <translation id="2964026537669811554">標題群組</translation> <translation id="296951647852255825">{COUNT,plural, =1{Tab 字元}other{# 個 Tab 字元}}</translation> <translation id="2972078295414139404">沒有上一個已造訪的連結。</translation> <translation id="2972205263822847197">工具提示</translation> +<translation id="297825089465017871">以雙指向左滑動</translation> <translation id="2998131015536248178">上一個字元</translation> <translation id="2999559350546931576">降低音調</translation> <translation id="2999945368667127852">沒有下一個媒體小工具。</translation> @@ -231,6 +238,7 @@ <translation id="3046838483509668188">ChromeVox 選項</translation> <translation id="3047143736589213134">實驗性按鍵對應配置</translation> <translation id="3060756054951570867">「<ph name="TITLE" />」選單已開啟</translation> +<translation id="3070245424257836917">以三指向上滑動</translation> <translation id="3078345202707391975">下一個第 2 階標題</translation> <translation id="3078740164268491126">表格</translation> <translation id="3082249673510793544">向後捲動</translation> @@ -343,6 +351,7 @@ <translation id="3599054940393788245">非數學內部</translation> <translation id="360241989769010433">鳴謝</translation> <translation id="3616113530831147358">音訊</translation> +<translation id="3622350485154495700">以單指輕觸兩下</translation> <translation id="3646890046000188562">{COUNT,plural, =1{反引號}other{# 個反引號}}</translation> <translation id="3650317109285159359">chkmnuitm</translation> <translation id="3655855170848725876">{COUNT,plural, =1{美元}other{# 個美元符號}}</translation> @@ -462,6 +471,7 @@ <translation id="4688873778442829762">格線</translation> <translation id="4693675773662933727">上一個地標</translation> <translation id="4696413482802371445">沒有下一個第 5 階標題。</translation> +<translation id="4710166929009737753">以單指向右滑動</translation> <translation id="4729095194763193578">上一個表格列</translation> <translation id="4736221692378411923">8 月</translation> <translation id="4740661827607246557">說明指令</translation> @@ -474,6 +484,7 @@ <translation id="4826415162591436065">向前導覽</translation> <translation id="4826604887384865800">下一個跳轉</translation> <translation id="4827410568042294688">已取消選取</translation> +<translation id="4838490795649708173">以四指輕觸</translation> <translation id="4839925464551908214">前往上一列</translation> <translation id="4842108708071771135">沒有下一個引用標記。</translation> <translation id="4844625982113518938">按下任何按鍵即可聽到該按鍵的名稱,按下 Ctrl 鍵 + W 鍵即可關閉學習模式。</translation> @@ -610,6 +621,7 @@ <translation id="5750633686117194034">你尚未按下任何輔助鍵。請按住一或多個輔助鍵,完成後即可將手指移開,此時系統會透過語音說明按鍵已成功設定。如要結束,請按下 Tab 鍵。</translation> <translation id="5760594853119905566">附錄</translation> <translation id="5788275253279308023">無痕式視窗「<ph name="TITLE" />」分頁</translation> +<translation id="5805940204952508776">以兩指輕觸</translation> <translation id="5806206155699461681">增強特定網站 (例如 Google 搜尋)。</translation> <translation id="5819072574982403430">樹狀目錄項目</translation> <translation id="5826479389509458994">第 <ph name="ROW" /> 列,第 <ph name="COL" /> 欄</translation> @@ -714,8 +726,10 @@ <translation id="6786800275320335305">文章</translation> <translation id="6787839852456839824">鍵盤快速鍵</translation> <translation id="6793101435925451627">清單方塊</translation> +<translation id="6826226459053491773">以雙指向下滑動</translation> <translation id="6833103209700200188">頁尾</translation> <translation id="6858047746862060282">序言</translation> +<translation id="6859876496651143278">以單指向左滑動</translation> <translation id="6871161210040114857">不區分大小寫。</translation> <translation id="6877435256196695200">沒有下一個圖形。</translation> <translation id="6897341342232909480">左移</translation> @@ -965,6 +979,7 @@ <translation id="923331726185079994">ChromeVox 更新成功</translation> <translation id="930275611743429116">開始或結束選取。</translation> <translation id="948171205378458592">放慢說話速度</translation> +<translation id="958854023026327378">以單指向下滑動</translation> <translation id="962913030769097253">下一個第 1 階標題</translation> <translation id="973955474346881951">啟用/停用固定模式</translation> <translation id="976849232629612000">沒有選單項目。</translation>
diff --git a/chrome/browser/resources/chromeos/login/fingerprint_setup.js b/chrome/browser/resources/chromeos/login/fingerprint_setup.js index ee0bbbf..f8d4cd2 100644 --- a/chrome/browser/resources/chromeos/login/fingerprint_setup.js +++ b/chrome/browser/resources/chromeos/login/fingerprint_setup.js
@@ -81,17 +81,9 @@ // First tap on the sensor to start fingerprint enrollment. if (this.getActiveScreen_() === this.$.placeFinger) { this.showScreen_('startFingerprintEnroll'); - return; } - // The fingerprint subsystem has internal limit on the number of attempts - // no matter successful or failed. - // So it always increases "percentComplete", even if touch attempt was - // unsuccessful. We do not want to modify displayed progress on failed - // scans, so we only advance on success. - if (scanResult === FingerprintResultType.SUCCESS) - this.percentComplete_ = percentComplete; - + this.percentComplete_ = percentComplete; this.scanResult_ = scanResult; },
diff --git a/chrome/browser/resources/chromeos/select_to_speak/input_handler.js b/chrome/browser/resources/chromeos/select_to_speak/input_handler.js index b121618c..7730dc42 100644 --- a/chrome/browser/resources/chromeos/select_to_speak/input_handler.js +++ b/chrome/browser/resources/chromeos/select_to_speak/input_handler.js
@@ -60,6 +60,23 @@ this.mouseEnd_ = {x: 0, y: 0}; /** + * The timestamp at which clipboard data read was requested by the user + * doing a "read selection" keystroke on a Google Docs app. If a + * clipboard change event comes in within CLIPBOARD_READ_MAX_DELAY_MS, + * Select-to-Speak will read that text out loud. + * @private {Date} + */ + this.lastReadClipboardDataTime_ = new Date(0); + + /** + * The timestamp at which the last clipboard data clear was requested. + * Used to make sure we don't clear the clipboard on a user's request, + * but only after the clipboard was used to read selected text. + * @private {Date} + */ + this.lastClearClipboardDataTime_ = new Date(0); + + /** * Called when the mouse is moved or dragged and the user is in a * mode where select-to-speak is capturing mouse events (for example * holding down Search). @@ -82,7 +99,7 @@ * @private */ this.onClipboardDataChanged_ = function() { - if (Date.now() - this.readClipboardDataTimeMs_ < + if (new Date() - this.lastReadClipboardDataTime_ < InputHandler.CLIPBOARD_READ_MAX_DELAY_MS) { // The data has changed, and we are ready to read it. // Get it using a paste. @@ -94,13 +111,13 @@ * @private */ this.onClipboardCopy_ = function(evt) { - if (Date.now() - this.clearClipboardDataTimeMs_ < + if (new Date() - this.lastClearClipboardDataTime_ < InputHandler.CLIPBOARD_CLEAR_MAX_DELAY_MS) { // onClipboardPaste has just completed reading the clipboard for speech. // This is used to clear the clipboard. evt.clipboardData.setData('text/plain', ''); evt.preventDefault(); - this.clearClipboardDataTimeMs_ = -1; + this.lastClearClipboardDataTime_ = new Date(0); } }; @@ -108,17 +125,17 @@ * @private */ this.onClipboardPaste_ = function(evt) { - if (Date.now() - this.readClipboardDataTimeMs_ < + if (new Date() - this.lastReadClipboardDataTime_ < InputHandler.CLIPBOARD_READ_MAX_DELAY_MS) { // Read the current clipboard data. evt.preventDefault(); this.callbacks_.onTextReceived(evt.clipboardData.getData('text/plain')); - this.readClipboardDataTimeMs_ = -1; + this.lastReadClipboardDataTime_ = new Date(0); // Clear the clipboard data by copying nothing (the current document). // Do this in a timeout to avoid a recursive warning per // https://crbug.com/363288. setTimeout(() => { - this.clearClipboardDataTimeMs_ = Date.now(); + this.lastClearClipboardDataTime_ = new Date(); document.execCommand('copy'); }, 0); } @@ -166,6 +183,14 @@ }, /** + * Sets the date at which we last wanted the clipboard data to be read. + * @public + */ + onRequestReadClipboardData: function() { + this.lastReadClipboardDataTime_ = new Date(); + }, + + /** * Called when the mouse is pressed and the user is in a mode where * select-to-speak is capturing mouse events (for example holding down * Search).
diff --git a/chrome/browser/resources/chromeos/select_to_speak/options.css b/chrome/browser/resources/chromeos/select_to_speak/options.css index cf6c11a..e85f37e 100644 --- a/chrome/browser/resources/chromeos/select_to_speak/options.css +++ b/chrome/browser/resources/chromeos/select_to_speak/options.css
@@ -35,15 +35,24 @@ margin-top: 21px; } +hr { + border-bottom: 0; + border-top: 1px solid #ddd; + margin: 0; +} + .container { margin-left: auto; margin-right: auto; - width: 646px; + width: 688px; +} + +.option-group { + border: 1px solid #ddd; } .option { background-color: #fff; - border: 1px solid #ddd; font-size: 13px; min-height: 60px; padding: 0 20px; @@ -52,11 +61,12 @@ } .sub-option { + background-color: #fff; font-size: 13px; max-height: 60px; opacity: 1; overflow: hidden; - padding: 0 24px; + padding: 0 20px 0 44px; transition: max-height 150ms ease-in; vertical-align: middle; width: 622px; @@ -69,7 +79,7 @@ transition: max-height 150ms ease-out; } -.option input[type='checkbox'] { +.option-group input[type='checkbox'] { -webkit-appearance: none; background-color: #fff; background-image: url(unchecked.png); @@ -82,11 +92,11 @@ width: 40px; } -.option input[type='checkbox']:checked { +.option-group input[type='checkbox']:checked { background-image: url(checked.png); } -.option select { +.option-group select { background-color: #fff; border-color: #ddd; border-width: 0 0 1px 0;
diff --git a/chrome/browser/resources/chromeos/select_to_speak/options.html b/chrome/browser/resources/chromeos/select_to_speak/options.html index fe1da7d..1e1daba 100644 --- a/chrome/browser/resources/chromeos/select_to_speak/options.html +++ b/chrome/browser/resources/chromeos/select_to_speak/options.html
@@ -15,27 +15,32 @@ <div class="container"> <h2 class="i18n" msgid="options_speech"></h2> - <div class="option"> - <span class="i18n" msgid="options_voices_description" - id="voices_description"></span> - <select id="voice" aria-labelledby="voices_description"> - </select> - </div> - - <div class="option"> - <label class="i18n" msgid="options_text_to_speech_settings"></label> - <button id="ttsSettingsBtn" class="i18n" - msgid="options_text_to_speech_settings_link"> - </button> + <div class="option-group"> + <div class="option"> + <span class="i18n" msgid="options_voices_description" + id="voices_description"></span> + <select id="voice" aria-labelledby="voices_description"> + </select> + </div> + <hr aria-hidden="true"> + <div class="option"> + <label class="i18n" msgid="options_text_to_speech_settings"></label> + <button id="ttsSettingsBtn" class="i18n" + msgid="options_text_to_speech_settings_link"> + </button> + </div> </div> <h2 class="i18n" msgid="options_highlight"></h2> - <div class="option"> - <label id="wordHighlightLabel" class="i18n" - msgid="options_highlight_description"> - </label> - <input id="wordHighlight" type="checkbox" class="checkbox" - name="wordHighlight" aria-labeledby="wordHighlightLabel"> + <div class="option-group"> + <div class="option" id="wordHighlightOption"> + <label id="wordHighlightLabel" class="i18n" + msgid="options_highlight_description"> + </label> + <input id="wordHighlight" type="checkbox" role="switch" + class="checkbox" name="wordHighlight" + aria-labeledby="wordHighlightLabel"> + </div> <div class="sub-option hidden" id="highlightSubOption"> <span class="i18n" msgid="options_highlight_color_description" id="highlight_color_description"></span>
diff --git a/chrome/browser/resources/chromeos/select_to_speak/select_to_speak.js b/chrome/browser/resources/chromeos/select_to_speak/select_to_speak.js index bba5ed4..b04fdf1d 100644 --- a/chrome/browser/resources/chromeos/select_to_speak/select_to_speak.js +++ b/chrome/browser/resources/chromeos/select_to_speak/select_to_speak.js
@@ -88,15 +88,6 @@ this.scrollToSpokenNode_ = false; /** - * The timestamp at which clipboard data read was requested by the user - * doing a "read selection" keystroke on a Google Docs app. If a - * clipboard change event comes in within CLIPBOARD_READ_MAX_DELAY_MS, - * Select-to-Speak will read that text out loud. - * @private {number} - */ - this.readClipboardDataTimeMs_ = -1; - - /** * The interval ID from a call to setInterval, which is set whenever * speech is in progress. * @private {number|undefined} @@ -316,7 +307,7 @@ return; } let tab = tabs[0]; - this.readClipboardDataTimeMs_ = Date.now(); + this.inputHandler_.onRequestReadClipboardData(); this.currentNode_ = new ParagraphUtils.NodeGroupItem(driveAppRootNode, 0, false); chrome.tabs.executeScript(tab.id, {
diff --git a/chrome/browser/resources/chromeos/select_to_speak/select_to_speak_options.js b/chrome/browser/resources/chromeos/select_to_speak/select_to_speak_options.js index 88db7032..3d3a754 100644 --- a/chrome/browser/resources/chromeos/select_to_speak/select_to_speak_options.js +++ b/chrome/browser/resources/chromeos/select_to_speak/select_to_speak_options.js
@@ -132,6 +132,13 @@ }); } + checkbox.addEventListener('keypress', function(e) { + if (e.code === 'Enter') { + e.stopPropagation(); + checkbox.click(); + } + }); + checkbox.addEventListener('change', function() { let setParams = {}; setParams[pref] = checkbox.checked; @@ -197,6 +204,15 @@ this.syncSelectControlToPref_( 'highlightColor', 'highlightColor', 'value', onChange); + + document.getElementById('wordHighlightOption') + .addEventListener('click', function(e) { + e.stopPropagation(); + let checkbox = document.getElementById('wordHighlight'); + // Make sure it isn't the auto-generated click itself. + if (e.srcElement !== checkbox) + checkbox.click(); + }); }, /**
diff --git a/chrome/browser/resources/chromeos/switch_access/.eslintrc.js b/chrome/browser/resources/chromeos/switch_access/.eslintrc.js new file mode 100644 index 0000000..426c3ac5 --- /dev/null +++ b/chrome/browser/resources/chromeos/switch_access/.eslintrc.js
@@ -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. + +module.exports = { + 'env': {'browser': true, 'es6': true}, + 'rules': { + // Override restrictions for document.getElementById usage since + // chrome://resources/js/util.js is not accessible for switch_access. + 'no-restricted-properties': 'off', + }, +};
diff --git a/chrome/browser/resources/chromeos/switch_access/BUILD.gn b/chrome/browser/resources/chromeos/switch_access/BUILD.gn index edff3b0..2ca9942 100644 --- a/chrome/browser/resources/chromeos/switch_access/BUILD.gn +++ b/chrome/browser/resources/chromeos/switch_access/BUILD.gn
@@ -29,14 +29,20 @@ "../chromevox/cvox2/background/constants.js", "../chromevox/cvox2/background/tree_walker.js", "../select_to_speak/closure_shim.js", + "//third_party/chromevox/third_party/closure-library/closure/goog/base.js", "auto_scan_manager.js", "automation_manager.js", "background.js", "commands.js", + "context_menu_manager.js", "keyboard_handler.js", + "message_handler.js", "options.css", "options.html", "options.js", + "panel.css", + "panel.html", + "panel.js", "prefs.js", "switch_access.js", "switch_access_predicate.js", @@ -117,7 +123,9 @@ ":automation_manager", ":background", ":commands", + ":context_menu_manager", ":keyboard_handler", + ":message_handler", ":options", ":prefs", ":switch_access_predicate", @@ -148,10 +156,6 @@ ] } -js_library("switch_access_predicate") { - externs_list = [ "$externs_path/automation.js" ] -} - js_library("background") { deps = [ ":switch_access", @@ -165,6 +169,12 @@ ] } +js_library("context_menu_manager") { + deps = [ + ":switch_access_interface", + ] +} + js_library("keyboard_handler") { deps = [ ":switch_access_interface", @@ -172,6 +182,9 @@ externs_list = [ "$externs_path/accessibility_private.js" ] } +js_library("message_handler") { +} + js_library("options") { deps = [ ":background", @@ -193,6 +206,7 @@ ":automation_manager", ":commands", ":keyboard_handler", + ":message_handler", ":prefs", ] externs_list = [ @@ -203,3 +217,7 @@ js_library("switch_access_interface") { } + +js_library("switch_access_predicate") { + externs_list = [ "$externs_path/automation.js" ] +}
diff --git a/chrome/browser/resources/chromeos/switch_access/automation_manager.js b/chrome/browser/resources/chromeos/switch_access/automation_manager.js index 3584008..3efcb360 100644 --- a/chrome/browser/resources/chromeos/switch_access/automation_manager.js +++ b/chrome/browser/resources/chromeos/switch_access/automation_manager.js
@@ -41,6 +41,11 @@ this.scopeStack_ = []; /** + * Handles communication with and navigation within the context menu. + */ + this.contextMenuManager_ = new ContextMenuManager(this, desktop); + + /** * Keeps track of when we're visiting the current scope as an actionable node. * @private {boolean} */ @@ -195,6 +200,11 @@ * next node, |this.node_| will be set equal to |this.scope_| to loop again. */ moveForward: function() { + if (this.contextMenuManager_.inContextMenu) { + this.contextMenuManager_.moveForward(); + return; + } + // If node is invalid, set node to last valid scope. this.startAtValidNode_(); @@ -226,6 +236,11 @@ * SwitchAccess scope tree to loop again. */ moveBackward: function() { + if (this.contextMenuManager_.inContextMenu) { + this.contextMenuManager_.moveBackward(); + return; + } + // If node is invalid, set node to last valid scope. this.startAtValidNode_(); @@ -277,14 +292,34 @@ }, /** - * Select the currently highlighted node. If the node is the current scope, - * go back to the previous scope (i.e., create a new tree walker rooted at - * the previous scope). If the node is a group other than the current scope, - * create a new tree walker for the new subtree the user is scanning through. - * Otherwise, meaning the node is interesting, perform the default action on - * it. + * Open the context menu for the currently highlighted node. + */ + enterContextMenu: function() { + // If we're currently visiting the context menu, this command should select + // the highlighted element. + if (this.contextMenuManager_.inContextMenu) { + this.contextMenuManager_.selectCurrentNode(); + return; + } + // TODO(crbug/881080): determine relevant actions programmatically. + let actions = + [ContextMenuManager.Action.CLICK, ContextMenuManager.Action.OPTIONS]; + + this.contextMenuManager_.enter(actions); + }, + + /** + * Perform the default action for the currently highlighted node. If the node + * is the current scope, go back to the previous scope. If the node is a group + * other than the current scope, go into that scope. If the node is + * interesting, perform the default action on it. */ selectCurrentNode: function() { + if (this.contextMenuManager_.inContextMenu) { + this.contextMenuManager_.selectCurrentNode(); + return; + } + if (!this.node_.role) return;
diff --git a/chrome/browser/resources/chromeos/switch_access/commands.js b/chrome/browser/resources/chromeos/switch_access/commands.js index 893abc8..273db48a 100644 --- a/chrome/browser/resources/chromeos/switch_access/commands.js +++ b/chrome/browser/resources/chromeos/switch_access/commands.js
@@ -73,11 +73,7 @@ }, 'select': { 'defaultKeyCode': 51, /* '3' key */ - 'binding': this.switchAccess_.selectCurrentNode.bind(this.switchAccess_) - }, - 'options': { - 'defaultKeyCode': 52, /* '4' key */ - 'binding': this.switchAccess_.showOptionsPage.bind(this.switchAccess_) + 'binding': this.switchAccess_.enterContextMenu.bind(this.switchAccess_) } }; }
diff --git a/chrome/browser/resources/chromeos/switch_access/context_menu_manager.js b/chrome/browser/resources/chromeos/switch_access/context_menu_manager.js new file mode 100644 index 0000000..8f13171d --- /dev/null +++ b/chrome/browser/resources/chromeos/switch_access/context_menu_manager.js
@@ -0,0 +1,224 @@ +// 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. + +/** + * Class to handle interactions with the context menu, including moving through + * and selecting actions. + * + * @constructor + * @param {!AutomationManager} automationManager + * @param {!chrome.automation.AutomationNode} desktop + */ +function ContextMenuManager(automationManager, desktop) { + /** + * A list of the ContextMenu actions that are currently enabled. + * @private {!Array<ContextMenuManager.Action>} + */ + this.actions_ = []; + + /** + * The parent automation manager. + * @private {!AutomationManager} + */ + this.automationManager_ = automationManager; + + /** + * The root node of the screen. + * @private {!chrome.automation.AutomationNode} + */ + this.desktop_ = desktop; + + /** + * The root node of the context menu. + * @private {chrome.automation.AutomationNode} + */ + this.menuNode_; + + /** + * The current node of the context menu. + * @private {chrome.automation.AutomationNode} + */ + this.node_; + + /** + * Keeps track of when we're in the context menu. + */ + this.inContextMenu = false; + + this.init_(); +} + +/** + * Actions available in the Context Menu. + * @enum {string} + * @const + */ +ContextMenuManager.Action = { + CLICK: 'click', + OPTIONS: 'options' +}; + +/** + * The ID for the div containing the context menu. + * @const + */ +ContextMenuManager.MenuId = 'switchaccess_contextmenu_actions'; + +ContextMenuManager.prototype = { + /** + * @private + */ + init_: function() { + // Listen for messages from the menu. + window.addEventListener('message', this.onMessageReceived_.bind(this)); + }, + + /** + * Enter the context menu and highlight the first available action. + * + * @param {!Array<!ContextMenuManager.Action>} actions + */ + enter: function(actions) { + this.inContextMenu = true; + if (actions !== this.actions_) { + this.actions_ = actions; + MessageHandler.sendMessage( + MessageHandler.Destination.PANEL, 'setActions', actions); + } + + this.node_ = this.menuNode(); + this.moveForward(); + }, + + /** + * Exits the context menu. + */ + exit: function() { + this.clearFocusRing_(); + this.inContextMenu = false; + if (this.node_) + this.node_ = null; + }, + + /** + * Move to the next available action in the menu. If this is no next action, + * select the whole context menu to loop again. + */ + moveForward: function() { + if (!this.node_) + return; + + this.clearFocusRing_(); + let treeWalker = new AutomationTreeWalker( + this.node_, constants.Dir.FORWARD, + SwitchAccessPredicate.restrictions(this.menuNode())); + let node = treeWalker.next().node; + if (!node) + this.node_ = this.menuNode(); + else + this.node_ = node; + this.updateFocusRing_(); + }, + + /** + * Move to the previous available action in the context menu. If we're at the + * beginning of the list, start again at the end. + */ + moveBackward: function() { + if (!this.node_) + return; + + this.clearFocusRing_(); + let treeWalker = new AutomationTreeWalker( + this.node_, constants.Dir.BACKWARD, + SwitchAccessPredicate.restrictions(this.menuNode())); + let node = treeWalker.next().node; + + // If node is null, find the last enabled button. + let lastChild = this.menuNode().lastChild; + while (!node && lastChild) { + if (SwitchAccessPredicate.isActionable(lastChild)) { + node = lastChild; + break; + } else { + lastChild = lastChild.previousSibling; + } + } + + this.node_ = node; + this.updateFocusRing_(); + }, + + /** + * Perform the action indicated by the current button (or no action if the + * entire menu is selected). Then exit the context menu and return to + * traditional navigation. + */ + selectCurrentNode: function() { + if (!this.node_) + return; + + this.clearFocusRing_(); + this.node_.doDefault(); + this.exit(); + }, + + /** + * Get the menu node. If it's not defined, search for it. + * @return {!chrome.automation.AutomationNode} + */ + menuNode: function() { + if (this.menuNode_) + return this.menuNode_; + + let treeWalker = new AutomationTreeWalker( + this.desktop_, constants.Dir.FORWARD, + SwitchAccessPredicate.contextMenuDiscoveryRestrictions()); + treeWalker.next(); + if (treeWalker.node) { + this.menuNode_ = treeWalker.node; + return this.menuNode_; + } + console.log('Unable to find the context menu.'); + return this.desktop_; + }, + + /** + * Clear the focus ring. + * @private + */ + clearFocusRing_: function() { + this.updateFocusRing_(true); + }, + + /** + * Receive a message from the context menu, and perform the appropriate + * action. + * @private + */ + onMessageReceived_: function(event) { + this.exit(); + + if (event.data === ContextMenuManager.Action.CLICK) + this.automationManager_.selectCurrentNode(); + else if (event.data === ContextMenuManager.Action.OPTIONS) + window.switchAccess.showOptionsPage(); + }, + + /** + * Send a message to the context menu to update the focus ring around the + * current node. + * TODO(zhelfins): Revisit focus rings before launch + * @private + * @param {boolean=} opt_clear If true, will clear the focus ring. + */ + updateFocusRing_: function(opt_clear) { + if (!this.node_) + return; + let id = this.node_.htmlAttributes.id; + let onOrOff = opt_clear ? 'off' : 'on'; + MessageHandler.sendMessage( + MessageHandler.Destination.PANEL, 'setFocusRing', [id, onOrOff]); + } +};
diff --git a/chrome/browser/resources/chromeos/switch_access/manifest.json.jinja2 b/chrome/browser/resources/chromeos/switch_access/manifest.json.jinja2 index c03ddfa..2cb1a660 100644 --- a/chrome/browser/resources/chromeos/switch_access/manifest.json.jinja2 +++ b/chrome/browser/resources/chromeos/switch_access/manifest.json.jinja2
@@ -17,7 +17,9 @@ "closure_shim.js", "commands.js", "constants.js", + "context_menu_manager.js", "keyboard_handler.js", + "message_handler.js", "prefs.js", "switch_access.js", "tree_walker.js",
diff --git a/chrome/browser/resources/chromeos/switch_access/message_handler.js b/chrome/browser/resources/chromeos/switch_access/message_handler.js new file mode 100644 index 0000000..5a8a939d --- /dev/null +++ b/chrome/browser/resources/chromeos/switch_access/message_handler.js
@@ -0,0 +1,57 @@ +// 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. + +/** + * Class to handle sending messages between the background page and the + * context menu. + * + * @constructor + */ +function MessageHandler() {} + +/** + * function setActions() takes a list of comma-separated action names, + * containing only letters and hyphens. + */ +MessageHandler.SET_ACTIONS_REGEX = + /setActions[(]((?:[a-zA-Z-]+,)*[a-zA-Z-]+)[)]/; + +/** + * function setFocusRing() takes one element ID, containing only letters, + * hyphens, and underscores, and either 'on' or 'off'. + */ +MessageHandler.SET_FOCUS_RING_REGEX = + /setFocusRing[(]([a-zA-Z_-]+),((?:on)|(?:off))[)]/; + +/** + * The possible destinations for messages. + * @enum {string} + * @const + */ +MessageHandler.Destination = { + BACKGROUND: 'background', + PANEL: 'panel.html' +}; + +/** + * Sends a message to the Context Menu panel with the given name and + * parameters. + * + * @param {!MessageHandler.Destination} destination + * @param {string} messageName + * @param {Array<string>=} params + */ +MessageHandler.sendMessage = function(destination, messageName, params) { + let message = messageName; + if (params) + message += '(' + params.join(',') + ')'; + + let views = chrome.extension.getViews() || []; + for (let view of views) + if (view && view.location.href.includes(destination)) { + view.postMessage(message, window.location.origin); + return; + } + console.log('Couldn\'t find ' << destination); +};
diff --git a/chrome/browser/resources/chromeos/switch_access/options.html b/chrome/browser/resources/chromeos/switch_access/options.html index a999943..9d56e000 100644 --- a/chrome/browser/resources/chromeos/switch_access/options.html +++ b/chrome/browser/resources/chromeos/switch_access/options.html
@@ -37,10 +37,6 @@ <span>Select: </span> <input id="select" type="text" maxlength="1"> </label> - <label> - <span>Options: </span> - <input id="options" type="text" maxlength="1"> - </label> <div id="debugKeyMappingDiv"> <label> <span>Debug Next: </span>
diff --git a/chrome/browser/resources/chromeos/switch_access/options.js b/chrome/browser/resources/chromeos/switch_access/options.js index 575ac33..888724d 100644 --- a/chrome/browser/resources/chromeos/switch_access/options.js +++ b/chrome/browser/resources/chromeos/switch_access/options.js
@@ -3,17 +3,6 @@ // found in the LICENSE file. /** - * Alias for document.getElementById. - * - * @param {string} id - * @return {Element} - */ -let $ = function(id) { - // eslint-disable-next-line no-restricted-properties - return document.getElementById(id); -}; - -/** * Class to manage the options page. * * @constructor @@ -42,13 +31,13 @@ * @private */ init_: function() { - $('enableAutoScan').checked = + document.getElementById('enableAutoScan').checked = this.switchAccess_.getBooleanPref('enableAutoScan'); - $('autoScanTime').value = + document.getElementById('autoScanTime').value = this.switchAccess_.getNumberPref('autoScanTime') / 1000; for (let command of this.switchAccess_.getCommands()) { - $(command).value = + document.getElementById(command).value = String.fromCharCode(this.switchAccess_.getNumberPref(command)); } }, @@ -127,14 +116,15 @@ for (let key of Object.keys(updatedPrefs)) { switch (key) { case 'enableAutoScan': - $(key).checked = updatedPrefs[key]; + document.getElementById(key).checked = updatedPrefs[key]; break; case 'autoScanTime': - $(key).value = updatedPrefs[key] / 1000; + document.getElementById(key).value = updatedPrefs[key] / 1000; break; default: if (this.switchAccess_.getCommands().includes(key)) - $(key).value = String.fromCharCode(updatedPrefs[key]); + document.getElementById(key).value = + String.fromCharCode(updatedPrefs[key]); } } }
diff --git a/chrome/browser/resources/chromeos/switch_access/panel.css b/chrome/browser/resources/chromeos/switch_access/panel.css new file mode 100644 index 0000000..8e19ccd7 --- /dev/null +++ b/chrome/browser/resources/chromeos/switch_access/panel.css
@@ -0,0 +1,26 @@ +/** + * 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. + */ + +body { + background: white; + border: 5px solid grey; + margin: 0; + padding: 4px 3px 5px 3px; +} +body > div { + padding: 2px; +} +.action { + font-size: 150%; + margin: auto 2px; +} +.focus { + outline: solid thick #78e428; /** light green from automation_manager.js */ +} +div.focus { + outline-color: #de742f; /** dark orange from automation_manager.js */ +} +
diff --git a/chrome/browser/resources/chromeos/switch_access/panel.html b/chrome/browser/resources/chromeos/switch_access/panel.html new file mode 100644 index 0000000..ae6d88db --- /dev/null +++ b/chrome/browser/resources/chromeos/switch_access/panel.html
@@ -0,0 +1,20 @@ +<!-- 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. --> + +<!DOCTYPE html> +<head> + <meta charset="utf-8"> + <title>Switch Access Context Menu</title> + <script type="text/javascript" src="closure/base.js"></script> + <script type="text/javascript" src="message_handler.js"></script> + <script type="text/javascript" src="panel.js"></script> + <link rel="stylesheet" href="panel.css"> +</head> +<body> + <div id="switchaccess_contextmenu_actions" + aria-label="TODO-i18n(Context Menu)"> + <button class="action" id="click">Click</button> + <button class="action" id="options">Options</button> + </div> +</body>
diff --git a/chrome/browser/resources/chromeos/switch_access/panel.js b/chrome/browser/resources/chromeos/switch_access/panel.js new file mode 100644 index 0000000..46faece --- /dev/null +++ b/chrome/browser/resources/chromeos/switch_access/panel.js
@@ -0,0 +1,115 @@ +// 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. + +/** + * Class to handle the Switch Access Context Menu panel. + * @constructor + */ +function Panel() {} + +// This must be kept in sync with the div ID in panel.html +Panel.MENU_ID = 'switchaccess_contextmenu_actions'; +// This must be kept in sync with the class name in panel.css +Panel.FOCUS_CLASS = 'focus'; + +Panel.readyReceived = false; +Panel.loaded = false; +window.addEventListener('message', Panel.preMessageHandler); + +/** + * Captures messages before the Panel is initialized. + */ +Panel.preMessageHandler = function() { + Panel.readyReceived = true; + if (Panel.loaded) + Panel.sendReady(); + window.removeEventListener('message', Panel.preMessageHandler); +}; + +/** + * Initialize the panel and buttons. + */ +Panel.init = function() { + Panel.loaded = true; + if (Panel.readyReceived) + Panel.sendReady(); + + let div = document.getElementById(Panel.MENU_ID); + for (let button of div.children) + Panel.setupButton(button); + window.addEventListener('message', Panel.matchMessage); +}; + +/** + * Sends a message to the background when both pages are loaded. + */ +Panel.sendReady = function() { + MessageHandler.sendMessage(MessageHandler.Destination.BACKGROUND, 'ready'); +}; + +/** + * Adds an event listener to the given button to send a message when clicked. + * @param {!HTMLElement} button + */ +Panel.setupButton = function(button) { + let id = button.id; + button.addEventListener('click', function() { + MessageHandler.sendMessage(MessageHandler.Destination.BACKGROUND, id); + }.bind(id)); +}; + +/** + * Takes the given message and sees if it matches any expected pattern. If + * it does, extract the parameters and pass them to the appropriate handler. + * If not, log as an unrecognized action. + * + * @param {Object} message + */ +Panel.matchMessage = function(message) { + if (message.data === 'ready') { + clearInterval(Panel.handshakeInterval); + return; + } + let matches = message.data.match(MessageHandler.SET_ACTIONS_REGEX); + if (matches && matches.length === 2) { + let actions = matches[1].split(','); + Panel.setActions(actions); + return; + } + matches = message.data.match(MessageHandler.SET_FOCUS_RING_REGEX); + if (matches && matches.length === 3) { + let id = matches[1]; + let shouldAdd = matches[2] === 'on'; + Panel.updateStyle(id, Panel.FOCUS_CLASS, shouldAdd); + return; + } + console.log('Action not recognized: ' + message.data); +}; + +/** + * Sets which buttons are enabled/disabled, based on |actions|. + * @param {!Array<string>} actions + */ +Panel.setActions = function(actions) { + let div = document.getElementById(Panel.MENU_ID); + for (let button of div.children) + button.disabled = !actions.includes(button.id); +}; + +/** + * Sets the style for the element with the given |id| by toggling + * |className|. + * @param {string} id + * @param {string} className + * @param {bool} shouldAdd + */ +Panel.updateStyle = function(id, className, shouldAdd) { + let htmlNode = document.getElementById(id); + if (shouldAdd) + htmlNode.classList.add(className); + else + htmlNode.classList.remove(className); +}; + +window.addEventListener('load', Panel.init);
diff --git a/chrome/browser/resources/chromeos/switch_access/switch_access.js b/chrome/browser/resources/chromeos/switch_access/switch_access.js index 67c8d23..f3cdaac 100644 --- a/chrome/browser/resources/chromeos/switch_access/switch_access.js +++ b/chrome/browser/resources/chromeos/switch_access/switch_access.js
@@ -71,6 +71,15 @@ }, /** + * Jump to the context menu. + * @override + */ + enterContextMenu: function() { + if (this.automationManager_) + this.automationManager_.enterContextMenu(); + }, + + /** * Move to the next interesting node. * @override */
diff --git a/chrome/browser/resources/chromeos/switch_access/switch_access_interface.js b/chrome/browser/resources/chromeos/switch_access/switch_access_interface.js index 1fd2e25..bc4d8a2f 100644 --- a/chrome/browser/resources/chromeos/switch_access/switch_access_interface.js +++ b/chrome/browser/resources/chromeos/switch_access/switch_access_interface.js
@@ -11,6 +11,11 @@ SwitchAccessInterface.prototype = { /** + * Jump to the context menu. + */ + enterContextMenu: function() {}, + + /** * Move to the next interesting node. */ moveForward: function() {},
diff --git a/chrome/browser/resources/chromeos/switch_access/switch_access_predicate.js b/chrome/browser/resources/chromeos/switch_access/switch_access_predicate.js index 349448f..e902262 100644 --- a/chrome/browser/resources/chromeos/switch_access/switch_access_predicate.js +++ b/chrome/browser/resources/chromeos/switch_access/switch_access_predicate.js
@@ -84,6 +84,38 @@ }; /** + * Returns a Restrictions object for finding the Context Menu root. + * @return {!AutomationTreeWalkerRestriction} + */ +SwitchAccessPredicate.contextMenuDiscoveryRestrictions = function() { + return { + leaf: SwitchAccessPredicate.isNotContainer, + visit: SwitchAccessPredicate.isContextMenu + }; +}; + +/** + * Returns true if |node| does not have a role of desktop, window, web view, or + * root web area. + * @param {!chrome.automation.AutomationNode} node + * @return {boolean} + */ +SwitchAccessPredicate.isNotContainer = function(node) { + return node.role !== RoleType.ROOT_WEB_AREA && + node.role !== RoleType.WINDOW && node.role !== RoleType.DESKTOP && + node.role !== RoleType.WEB_VIEW; +}; + +/** + * Returns true if |node| is the context menu. + * @param {!chrome.automation.AutomationNode} node + * @return {boolean} + */ +SwitchAccessPredicate.isContextMenu = function(node) { + return node.htmlAttributes.id === ContextMenuManager.MenuId; +}; + +/** * Returns true if |node| is a group, meaning that the node has more than one * interesting descendant, and that its interesting descendants exist in more * than one subtree of its immediate children.
diff --git a/chrome/browser/resources/chromeos/wallpaper_manager/images/icon192.png b/chrome/browser/resources/chromeos/wallpaper_manager/images/icon192.png index 4b1902fb..cbe5a366 100644 --- a/chrome/browser/resources/chromeos/wallpaper_manager/images/icon192.png +++ b/chrome/browser/resources/chromeos/wallpaper_manager/images/icon192.png Binary files differ
diff --git a/chrome/browser/resources/chromeos/wallpaper_manager/images/icon48.png b/chrome/browser/resources/chromeos/wallpaper_manager/images/icon48.png new file mode 100644 index 0000000..05c96d5 --- /dev/null +++ b/chrome/browser/resources/chromeos/wallpaper_manager/images/icon48.png Binary files differ
diff --git a/chrome/browser/resources/chromeos/wallpaper_manager/manifest.json b/chrome/browser/resources/chromeos/wallpaper_manager/manifest.json index 988f78e..15681eb 100644 --- a/chrome/browser/resources/chromeos/wallpaper_manager/manifest.json +++ b/chrome/browser/resources/chromeos/wallpaper_manager/manifest.json
@@ -8,6 +8,7 @@ "manifest_version": 2, "description": "An experimental wallpaper picker UI", "icons": { + "48": "images/icon48.png", "192": "images/icon192.png" }, "permissions": [
diff --git a/chrome/browser/resources/component_extension_resources.grd b/chrome/browser/resources/component_extension_resources.grd index b36a540..3a4d8f1 100644 --- a/chrome/browser/resources/component_extension_resources.grd +++ b/chrome/browser/resources/component_extension_resources.grd
@@ -51,8 +51,8 @@ <include name="IDR_FEEDBACK_TOPBAR_HANDLER_JS" file="feedback/js/topbar_handlers.js" flattenhtml="true" type="BINDATA" /> <include name="IDR_FEEDBACK_FEEDBACK_CSS" file="feedback/css/feedback.css" type="BINDATA" /> <include name="IDR_FEEDBACK_SYSINFO_CSS" file="feedback/css/sys_info.css" type="BINDATA" /> - <include name="IDR_FEEDBACK_ICON_32" file="feedback/images/icon32.png" type="BINDATA" /> - <include name="IDR_FEEDBACK_ICON_64" file="feedback/images/icon64.png" type="BINDATA" /> + <include name="IDR_FEEDBACK_ICON_48" file="feedback/images/icon48.png" type="BINDATA" /> + <include name="IDR_FEEDBACK_ICON_192" file="feedback/images/icon192.png" type="BINDATA" /> </if> <include name="IDR_IDENTITY_API_SCOPE_APPROVAL_BACKGROUND_JS" file="identity_scope_approval_dialog/background.js" type="BINDATA" /> <include name="IDR_IDENTITY_API_SCOPE_APPROVAL_DIALOG_CSS" file="identity_scope_approval_dialog/scope_approval_dialog.css" type="BINDATA" /> @@ -84,10 +84,7 @@ <include name="IDR_ARC_SUPPORT_FOCUS_MANAGER_JS" file="chromeos/arc_support/arc_optin_focus_manager.js" type="BINDATA" /> <include name="IDR_ARC_SUPPORT_MAIN" file="chromeos/arc_support/main.html" allowexternalscript="true" type="BINDATA" /> <include name="IDR_ARC_SUPPORT_ICON_32" file="chromeos/arc_support/icon/32.png" type="BINDATA" /> - <include name="IDR_ARC_SUPPORT_ICON_48" file="chromeos/arc_support/icon/48.png" type="BINDATA" /> - <include name="IDR_ARC_SUPPORT_ICON_64" file="chromeos/arc_support/icon/64.png" type="BINDATA" /> - <include name="IDR_ARC_SUPPORT_ICON_96" file="chromeos/arc_support/icon/96.png" type="BINDATA" /> - <include name="IDR_ARC_SUPPORT_ICON_128" file="chromeos/arc_support/icon/128.png" type="BINDATA" /> + <include name="IDR_ARC_SUPPORT_ICON_192" file="chromeos/arc_support/icon/192.png" type="BINDATA" /> <include name="IDR_ARC_SUPPORT_ICON_ERROER_IMAGE" file="chromeos/arc_support/images/error_image.png" type="BINDATA" /> <include name="IDR_ARC_SUPPORT_ICON_HEADER" file="chromeos/arc_support/images/header.png" type="BINDATA" /> <include name="IDR_ARC_SUPPORT_RECOMMEND_APP_LIST_VIEW_JS" file="chromeos/arc_support/recommend_app_list_view.js" type="BINDATA" />
diff --git a/chrome/browser/resources/feedback/images/icon192.png b/chrome/browser/resources/feedback/images/icon192.png new file mode 100644 index 0000000..04fed1d --- /dev/null +++ b/chrome/browser/resources/feedback/images/icon192.png Binary files differ
diff --git a/chrome/browser/resources/feedback/images/icon32.png b/chrome/browser/resources/feedback/images/icon32.png deleted file mode 100644 index 977a949..0000000 --- a/chrome/browser/resources/feedback/images/icon32.png +++ /dev/null Binary files differ
diff --git a/chrome/browser/resources/feedback/images/icon48.png b/chrome/browser/resources/feedback/images/icon48.png new file mode 100644 index 0000000..5c338e89 --- /dev/null +++ b/chrome/browser/resources/feedback/images/icon48.png Binary files differ
diff --git a/chrome/browser/resources/feedback/images/icon64.png b/chrome/browser/resources/feedback/images/icon64.png deleted file mode 100644 index a0c24dc..0000000 --- a/chrome/browser/resources/feedback/images/icon64.png +++ /dev/null Binary files differ
diff --git a/chrome/browser/resources/feedback/manifest.json b/chrome/browser/resources/feedback/manifest.json index 581118e..847b41e 100644 --- a/chrome/browser/resources/feedback/manifest.json +++ b/chrome/browser/resources/feedback/manifest.json
@@ -7,8 +7,8 @@ "incognito" : "split", "description": "User feedback extension", "icons": { - "32": "images/icon32.png", - "64": "images/icon64.png" + "48": "images/icon48.png", + "192": "images/icon192.png" }, "permissions": [ "feedbackPrivate",
diff --git a/chrome/browser/resources/md_downloads/item.html b/chrome/browser/resources/md_downloads/item.html index be618ca..b158f6d 100644 --- a/chrome/browser/resources/md_downloads/item.html +++ b/chrome/browser/resources/md_downloads/item.html
@@ -217,7 +217,12 @@ url(chrome://downloads/1x/incognito_marker.png) 1x, url(chrome://downloads/2x/incognito_marker.png) 2x); position: absolute; - right: 10px; + right: 16px; + } + + :host-context([dir='rtl']) #incognito { + left: 16px; + right: initial; } </style>
diff --git a/chrome/browser/resources/settings/basic_page/BUILD.gn b/chrome/browser/resources/settings/basic_page/BUILD.gn index c1b8501c..3680ef70 100644 --- a/chrome/browser/resources/settings/basic_page/BUILD.gn +++ b/chrome/browser/resources/settings/basic_page/BUILD.gn
@@ -22,4 +22,5 @@ "//ui/webui/resources/js:load_time_data", "//ui/webui/resources/js:web_ui_listener_behavior", ] + externs_list = [ "$externs_path/pending.js" ] }
diff --git a/chrome/browser/resources/settings/basic_page/basic_page.js b/chrome/browser/resources/settings/basic_page/basic_page.js index 0a99b63..b875e7f8 100644 --- a/chrome/browser/resources/settings/basic_page/basic_page.js +++ b/chrome/browser/resources/settings/basic_page/basic_page.js
@@ -290,9 +290,19 @@ */ advancedToggleExpandedChanged_: function() { if (this.advancedToggleExpanded) { - this.async(() => { - this.$$('#advancedPageTemplate').get(); - }); + // In Polymer2, async() does not wait long enough for layout to complete. + // Polymer.RenderStatus.beforeNextRender() must be used instead. + // TODO (rbpotter): Remove conditional when migration to Polymer 2 is + // completed. + if (Polymer.DomIf) { + Polymer.RenderStatus.beforeNextRender(this, () => { + this.$$('#advancedPageTemplate').get(); + }); + } else { + this.async(() => { + this.$$('#advancedPageTemplate').get(); + }); + } } },
diff --git a/chrome/browser/resources/settings/global_scroll_target_behavior.js b/chrome/browser/resources/settings/global_scroll_target_behavior.js index b2667b7..5951936 100644 --- a/chrome/browser/resources/settings/global_scroll_target_behavior.js +++ b/chrome/browser/resources/settings/global_scroll_target_behavior.js
@@ -82,6 +82,9 @@ * @private */ getActiveTarget_: function(target, active) { + if (target === undefined || active === undefined) + return undefined; + return active ? target : null; }, };
diff --git a/chrome/browser/resources/settings/internet_page/internet_subpage.js b/chrome/browser/resources/settings/internet_page/internet_subpage.js index 0182b49..003c91a1 100644 --- a/chrome/browser/resources/settings/internet_page/internet_subpage.js +++ b/chrome/browser/resources/settings/internet_page/internet_subpage.js
@@ -211,9 +211,9 @@ if (this.scanIntervalId_ != null) return; const INTERVAL_MS = 10 * 1000; - this.networkingPrivate.requestNetworkScan(); + this.networkingPrivate.requestNetworkScan(this.deviceState.Type); this.scanIntervalId_ = window.setInterval(() => { - this.networkingPrivate.requestNetworkScan(); + this.networkingPrivate.requestNetworkScan(this.deviceState.Type); }, INTERVAL_MS); },
diff --git a/chrome/browser/resources/settings/passwords_and_forms_page/password_edit_dialog.html b/chrome/browser/resources/settings/passwords_and_forms_page/password_edit_dialog.html index 9b7f575f..63ec0e9 100644 --- a/chrome/browser/resources/settings/passwords_and_forms_page/password_edit_dialog.html +++ b/chrome/browser/resources/settings/passwords_and_forms_page/password_edit_dialog.html
@@ -43,18 +43,15 @@ <div slot="title">$i18n{passwordDetailsTitle}</div> <div slot="body"> <cr-input id="websiteInput" label="$i18n{editPasswordWebsiteLabel}" - value="[[item.entry.loginPair.urls.link]]" readonly - on-focus="onInputFocus_" on-blur="onInputBlur_"> + value="[[item.entry.loginPair.urls.link]]" readonly> </cr-input> <cr-input id="usernameInput" label="$i18n{editPasswordUsernameLabel}" - value="[[item.entry.loginPair.username]]" readonly - on-focus="onInputFocus_" on-blur="onInputBlur_"> + value="[[item.entry.loginPair.username]]" readonly> </cr-input> <cr-input id="passwordInput" readonly label="$i18n{editPasswordPasswordLabel}" type="[[getPasswordInputType_(item.password)]]" - value="[[getPassword_(item.password)]]" - on-focus="onInputFocus_" on-blur="onInputBlur_"> + value="[[getPassword_(item.password)]]"> <paper-icon-button-light id="showPasswordButtonContainer" class$="[[getIconClass_(item.password)]]" slot="suffix" hidden$="[[item.entry.federationText]]">
diff --git a/chrome/browser/resources/settings/passwords_and_forms_page/password_edit_dialog.js b/chrome/browser/resources/settings/passwords_and_forms_page/password_edit_dialog.js index 31489c1f..2b353fb8 100644 --- a/chrome/browser/resources/settings/passwords_and_forms_page/password_edit_dialog.js +++ b/chrome/browser/resources/settings/passwords_and_forms_page/password_edit_dialog.js
@@ -32,19 +32,5 @@ onActionButtonTap_: function() { this.close(); }, - - /** - * Manually select texts for readonly inputs. - * @param {!Event} event - * @private - */ - onInputFocus_: function(event) { - (/** @type {!CrInputElement} */ (event.target)).select(); - }, - - /** Manually de-select texts for readonly inputs. */ - onInputBlur_: function() { - this.shadowRoot.getSelection().removeAllRanges(); - }, }); })();
diff --git a/chrome/browser/resources/settings/people_page/setup_fingerprint_dialog.js b/chrome/browser/resources/settings/people_page/setup_fingerprint_dialog.js index 6596a6a..e4151079 100644 --- a/chrome/browser/resources/settings/people_page/setup_fingerprint_dialog.js +++ b/chrome/browser/resources/settings/people_page/setup_fingerprint_dialog.js
@@ -53,6 +53,20 @@ * @private */ step_: {type: Number, value: settings.FingerprintSetupStep.LOCATE_SCANNER}, + + /** + * The percentage of completion that has been received during setup. + * This is used to approximate the progress of the setup. + * The value within [0, 100] represents the percent of enrollment + * completion. + * @type {number} + * @private + */ + percentComplete_: { + type: Number, + value: 0, + observer: 'onProgressChanged_', + }, }, /** @@ -66,15 +80,6 @@ /** @private {?settings.FingerprintBrowserProxy}*/ browserProxy_: null, - /** - * The percentage of completion that has been received during setup. - * This is used to approximate the progress of the setup. - * The value within [0, 100] represents the percent of enrollment completion. - * @type {number} - * @private - */ - percentComplete_: 0, - /** @override */ attached: function() { this.addWebUIListener( @@ -117,7 +122,6 @@ reset_: function() { this.step_ = settings.FingerprintSetupStep.LOCATE_SCANNER; this.percentComplete_ = 0; - this.$.arc.reset(); this.clearSensorMessageTimeout_(); }, @@ -141,28 +145,19 @@ case settings.FingerprintSetupStep.LOCATE_SCANNER: this.$.arc.reset(); this.step_ = settings.FingerprintSetupStep.MOVE_FINGER; - this.percentComplete_ = 0; + this.percentComplete_ = scan.percentComplete; + this.setProblem_(scan.result); break; case settings.FingerprintSetupStep.MOVE_FINGER: if (scan.isComplete) { this.problemMessage_ = ''; this.step_ = settings.FingerprintSetupStep.READY; - this.$.arc.setProgress( - this.percentComplete_, 100 /*currPercentComplete*/, - true /*isComplete*/); this.clearSensorMessageTimeout_(); this.fire('add-fingerprint'); } else { this.setProblem_(scan.result); - if (scan.result == settings.FingerprintResultType.SUCCESS) { - if (scan.percentComplete > this.percentComplete_) { - this.$.arc.setProgress( - this.percentComplete_, scan.percentComplete, - false /*isComplete*/); - this.percentComplete_ = scan.percentComplete; - } - } } + this.percentComplete_ = scan.percentComplete; break; case settings.FingerprintSetupStep.READY: break; @@ -286,5 +281,19 @@ return this.step_ == settings.FingerprintSetupStep.MOVE_FINGER || this.step_ == settings.FingerprintSetupStep.READY; }, + + /** + * Observer for percentComplete_. + * @private + */ + onProgressChanged_: function(newValue, oldValue) { + // Start a new enrollment, so reset all enrollment related states. + if (newValue === 0) { + this.$.arc.reset(); + return; + } + + this.$.arc.setProgress(oldValue, newValue, newValue === 100); + }, }); })();
diff --git a/chrome/browser/ssl/OWNERS b/chrome/browser/ssl/OWNERS index c2e298f..8921a14 100644 --- a/chrome/browser/ssl/OWNERS +++ b/chrome/browser/ssl/OWNERS
@@ -1,4 +1,5 @@ agl@chromium.org +carlosil@chromium.org estark@chromium.org felt@chromium.org meacer@chromium.org
diff --git a/chrome/browser/sync_file_system/drive_backend/drive_backend_sync_unittest.cc b/chrome/browser/sync_file_system/drive_backend/drive_backend_sync_unittest.cc index c462970..10129c7 100644 --- a/chrome/browser/sync_file_system/drive_backend/drive_backend_sync_unittest.cc +++ b/chrome/browser/sync_file_system/drive_backend/drive_backend_sync_unittest.cc
@@ -40,7 +40,6 @@ #include "content/public/test/test_utils.h" #include "extensions/common/extension.h" #include "google_apis/drive/drive_api_parser.h" -#include "net/url_request/url_request_context_getter.h" #include "storage/browser/fileapi/file_system_context.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/leveldatabase/leveldb_chrome.h" @@ -123,7 +122,6 @@ nullptr, // extension_service nullptr, // signin_manager nullptr, // token_service - nullptr, // request_context nullptr, // url_loader_factory nullptr, // drive_service in_memory_env_.get()));
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_engine.cc b/chrome/browser/sync_file_system/drive_backend/sync_engine.cc index 6619dc9..3a4175e6 100644 --- a/chrome/browser/sync_file_system/drive_backend/sync_engine.cc +++ b/chrome/browser/sync_file_system/drive_backend/sync_engine.cc
@@ -59,7 +59,6 @@ #include "google_apis/drive/drive_api_url_generator.h" #include "mojo/public/cpp/bindings/interface_request.h" #include "net/traffic_annotation/network_traffic_annotation.h" -#include "net/url_request/url_request_context_getter.h" #include "services/device/public/mojom/constants.mojom.h" #include "services/device/public/mojom/wake_lock_provider.mojom.h" #include "services/service_manager/public/cpp/connector.h" @@ -98,13 +97,11 @@ std::unique_ptr<drive::DriveServiceInterface> SyncEngine::DriveServiceFactory::CreateDriveService( OAuth2TokenService* oauth2_token_service, - net::URLRequestContextGetter* url_request_context_getter, scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, base::SequencedTaskRunner* blocking_task_runner) { return std::unique_ptr< drive::DriveServiceInterface>(new drive::DriveAPIService( - oauth2_token_service, url_request_context_getter, url_loader_factory, - blocking_task_runner, + oauth2_token_service, url_loader_factory, blocking_task_runner, GURL(google_apis::DriveApiUrlGenerator::kBaseUrlForProduction), GURL(google_apis::DriveApiUrlGenerator::kBaseThumbnailUrlForProduction), std::string(), /* custom_user_agent */ @@ -218,9 +215,6 @@ SigninManagerFactory::GetForProfile(profile); OAuth2TokenService* token_service = ProfileOAuth2TokenServiceFactory::GetForProfile(profile); - scoped_refptr<net::URLRequestContextGetter> request_context = - content::BrowserContext::GetDefaultStoragePartition(context)-> - GetURLRequestContext(); scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory = content::BrowserContext::GetDefaultStoragePartition(context) ->GetURLLoaderFactoryForBrowserProcess(); @@ -229,8 +223,8 @@ ui_task_runner.get(), worker_task_runner.get(), drive_task_runner.get(), GetSyncFileSystemDir(context->GetPath()), task_logger, notification_manager, extension_service, signin_manager, token_service, - request_context.get(), url_loader_factory, - std::make_unique<DriveServiceFactory>(), nullptr /* env_override */)); + url_loader_factory, std::make_unique<DriveServiceFactory>(), + nullptr /* env_override */)); sync_engine->Initialize(); return sync_engine; @@ -283,8 +277,7 @@ DCHECK(drive_service_factory_); std::unique_ptr<drive::DriveServiceInterface> drive_service = drive_service_factory_->CreateDriveService( - token_service_, request_context_.get(), url_loader_factory_, - drive_task_runner_.get()); + token_service_, url_loader_factory_, drive_task_runner_.get()); device::mojom::WakeLockProviderPtr wake_lock_provider(nullptr); DCHECK(content::ServiceManagerConnection::GetForProcess()); @@ -739,7 +732,6 @@ extensions::ExtensionServiceInterface* extension_service, SigninManagerBase* signin_manager, OAuth2TokenService* token_service, - net::URLRequestContextGetter* request_context, scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, std::unique_ptr<DriveServiceFactory> drive_service_factory, leveldb::Env* env_override) @@ -752,7 +744,6 @@ extension_service_(extension_service), signin_manager_(signin_manager), token_service_(token_service), - request_context_(request_context), url_loader_factory_(url_loader_factory), drive_service_factory_(std::move(drive_service_factory)), remote_change_processor_(nullptr),
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_engine.h b/chrome/browser/sync_file_system/drive_backend/sync_engine.h index 0965fc1b..38aa9f2af 100644 --- a/chrome/browser/sync_file_system/drive_backend/sync_engine.h +++ b/chrome/browser/sync_file_system/drive_backend/sync_engine.h
@@ -44,9 +44,6 @@ class Env; } -namespace net { -class URLRequestContextGetter; -} namespace network { class SharedURLLoaderFactory; } @@ -80,7 +77,6 @@ virtual ~DriveServiceFactory() {} virtual std::unique_ptr<drive::DriveServiceInterface> CreateDriveService( OAuth2TokenService* oauth2_token_service, - net::URLRequestContextGetter* url_request_context_getter, scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, base::SequencedTaskRunner* blocking_task_runner); @@ -173,7 +169,6 @@ extensions::ExtensionServiceInterface* extension_service, SigninManagerBase* signin_manager, OAuth2TokenService* token_service, - net::URLRequestContextGetter* request_context, scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, std::unique_ptr<DriveServiceFactory> drive_service_factory, leveldb::Env* env_override); @@ -206,7 +201,6 @@ SigninManagerBase* signin_manager_; OAuth2TokenService* token_service_; - scoped_refptr<net::URLRequestContextGetter> request_context_; scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_; std::unique_ptr<DriveServiceFactory> drive_service_factory_;
diff --git a/chrome/browser/sync_file_system/drive_backend/sync_engine_unittest.cc b/chrome/browser/sync_file_system/drive_backend/sync_engine_unittest.cc index f5693dea..3172a15d 100644 --- a/chrome/browser/sync_file_system/drive_backend/sync_engine_unittest.cc +++ b/chrome/browser/sync_file_system/drive_backend/sync_engine_unittest.cc
@@ -22,7 +22,6 @@ #include "components/drive/service/fake_drive_service.h" #include "content/public/browser/browser_thread.h" #include "content/public/test/test_browser_thread_bundle.h" -#include "net/url_request/url_request_context_getter.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "testing/gtest/include/gtest/gtest.h" @@ -57,7 +56,6 @@ nullptr, // extension_service nullptr, // signin_manager nullptr, // token_service - nullptr, // request_context nullptr, // url_loader_factory nullptr, // drive_service_factory nullptr)); // in_memory_env
diff --git a/chrome/browser/tracing/chrome_browser_main_extra_parts_tracing.cc b/chrome/browser/tracing/chrome_browser_main_extra_parts_tracing.cc deleted file mode 100644 index b2f2d400..0000000 --- a/chrome/browser/tracing/chrome_browser_main_extra_parts_tracing.cc +++ /dev/null
@@ -1,18 +0,0 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/tracing/chrome_browser_main_extra_parts_tracing.h" - -ChromeBrowserMainExtraPartsTracing::ChromeBrowserMainExtraPartsTracing() = - default; -ChromeBrowserMainExtraPartsTracing::~ChromeBrowserMainExtraPartsTracing() = - default; - -void ChromeBrowserMainExtraPartsTracing::PreMainMessageLoopRun() { - sampler_profiler_ = std::make_unique<tracing::TracingSamplerProfiler>(); -} - -void ChromeBrowserMainExtraPartsTracing::PostMainMessageLoopRun() { - sampler_profiler_.reset(); -}
diff --git a/chrome/browser/tracing/chrome_browser_main_extra_parts_tracing.h b/chrome/browser/tracing/chrome_browser_main_extra_parts_tracing.h deleted file mode 100644 index a281f14..0000000 --- a/chrome/browser/tracing/chrome_browser_main_extra_parts_tracing.h +++ /dev/null
@@ -1,28 +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. - -#ifndef CHROME_BROWSER_TRACING_CHROME_BROWSER_MAIN_EXTRA_PARTS_TRACING_H_ -#define CHROME_BROWSER_TRACING_CHROME_BROWSER_MAIN_EXTRA_PARTS_TRACING_H_ - -#include <memory> - -#include "base/macros.h" -#include "chrome/browser/chrome_browser_main_extra_parts.h" -#include "components/tracing/common/tracing_sampler_profiler.h" - -class ChromeBrowserMainExtraPartsTracing : public ChromeBrowserMainExtraParts { - public: - ChromeBrowserMainExtraPartsTracing(); - ~ChromeBrowserMainExtraPartsTracing() override; - - // MainMessageLoopRun methods. - void PreMainMessageLoopRun() override; - void PostMainMessageLoopRun() override; - - private: - std::unique_ptr<tracing::TracingSamplerProfiler> sampler_profiler_; - DISALLOW_COPY_AND_ASSIGN(ChromeBrowserMainExtraPartsTracing); -}; - -#endif // CHROME_BROWSER_TRACING_CHROME_BROWSER_MAIN_EXTRA_PARTS_TRACING_H_
diff --git a/chrome/browser/ui/BUILD.gn b/chrome/browser/ui/BUILD.gn index 30f9abb..695409bc 100644 --- a/chrome/browser/ui/BUILD.gn +++ b/chrome/browser/ui/BUILD.gn
@@ -2155,7 +2155,8 @@ "//chromeos/resources:resources_grit", "//chromeos/services/assistant/public/mojom", "//chromeos/services/assistant/public/proto:proto", - "//chromeos/services/multidevice_setup/public/cpp", + "//chromeos/services/multidevice_setup/public/cpp:cpp", + "//chromeos/services/multidevice_setup/public/cpp:url_provider", "//chromeos/services/multidevice_setup/public/mojom", "//components/arc", "//components/captive_portal",
diff --git a/chrome/browser/ui/app_list/arc/arc_app_icon.cc b/chrome/browser/ui/app_list/arc/arc_app_icon.cc index 29a7fe1f..3cc1d8a 100644 --- a/chrome/browser/ui/app_list/arc/arc_app_icon.cc +++ b/chrome/browser/ui/app_list/arc/arc_app_icon.cc
@@ -135,16 +135,8 @@ // Store that is adapted according Chrome style. const int resource_size_in_px = static_cast<int>(resource_size_in_dip_ * scale + 0.5); - if (resource_size_in_px <= 32) - resource_id = IDR_ARC_SUPPORT_ICON_32; - else if (resource_size_in_px <= 48) - resource_id = IDR_ARC_SUPPORT_ICON_48; - else if (resource_size_in_px <= 64) - resource_id = IDR_ARC_SUPPORT_ICON_64; - else if (resource_size_in_px <= 96) - resource_id = IDR_ARC_SUPPORT_ICON_96; - else - resource_id = IDR_ARC_SUPPORT_ICON_128; + resource_id = resource_size_in_px <= 32 ? IDR_ARC_SUPPORT_ICON_32 + : IDR_ARC_SUPPORT_ICON_192; } else { if (host_) host_->LoadForScaleFactor(ui::GetSupportedScaleFactor(scale));
diff --git a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc index c74f993c..65188b4 100644 --- a/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc +++ b/chrome/browser/ui/ash/launcher/chrome_launcher_controller.cc
@@ -61,7 +61,6 @@ #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/browser/web_applications/components/web_app_helpers.h" #include "chrome/common/pref_names.h" -#include "chrome/grit/chrome_unscaled_resources.h" #include "chrome/grit/chromium_strings.h" #include "chrome/grit/generated_resources.h" #include "chrome/grit/theme_resources.h" @@ -1054,7 +1053,7 @@ browser_shortcut.type = ash::TYPE_BROWSER_SHORTCUT; browser_shortcut.id = ash::ShelfID(kChromeAppId); ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); - browser_shortcut.image = *rb.GetImageSkiaNamed(IDR_CHROME_APP_ICON_192); + browser_shortcut.image = *rb.GetImageSkiaNamed(IDR_PRODUCT_LOGO_32); browser_shortcut.title = l10n_util::GetStringUTF16(IDS_PRODUCT_NAME); std::unique_ptr<BrowserShortcutLauncherItemController> item_delegate = std::make_unique<BrowserShortcutLauncherItemController>(model_);
diff --git a/chrome/browser/ui/browser_browsertest.cc b/chrome/browser/ui/browser_browsertest.cc index 7a88a4bf..c60ac69 100644 --- a/chrome/browser/ui/browser_browsertest.cc +++ b/chrome/browser/ui/browser_browsertest.cc
@@ -1891,13 +1891,7 @@ EXPECT_EQ(title, title_watcher.WaitAndGetTitle()); } -// Flaky on Chrome OS, Linux and Windows. TODO(https://crbug.com/823043) fix it. -#if defined(OS_CHROMEOS) || defined(OS_LINUX) || defined(OS_WIN) -#define MAYBE_WindowOpenClose2 DISABLED_WindowOpenClose2 -#else -#define MAYBE_WindowOpenClose2 WindowOpenClose2 -#endif -IN_PROC_BROWSER_TEST_F(BrowserTest, MAYBE_WindowOpenClose2) { +IN_PROC_BROWSER_TEST_F(BrowserTest, WindowOpenClose2) { base::CommandLine::ForCurrentProcess()->AppendSwitch( switches::kDisablePopupBlocking); ASSERT_TRUE(embedded_test_server()->Start());
diff --git a/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm b/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm index 3cc5324..14a70e72 100644 --- a/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm +++ b/chrome/browser/ui/cocoa/extensions/browser_actions_controller.mm
@@ -15,6 +15,7 @@ #include "chrome/browser/extensions/extension_message_bubble_controller.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_window.h" +#import "chrome/browser/ui/cocoa/app_menu/app_menu_controller.h" #include "chrome/browser/ui/cocoa/browser_dialogs_views_mac.h" #import "chrome/browser/ui/cocoa/browser_window_controller.h" #import "chrome/browser/ui/cocoa/extensions/browser_action_button.h" @@ -177,6 +178,7 @@ void StopAnimating() override; void ShowToolbarActionBubble( std::unique_ptr<ToolbarActionsBarBubbleDelegate> bubble) override; + void CloseOverflowMenuIfOpen() override; // The owning BrowserActionsController; weak. BrowserActionsController* controller_; @@ -243,6 +245,13 @@ [controller_ createMessageBubble:std::move(bubble)]; } +void ToolbarActionsBarBridge::CloseOverflowMenuIfOpen() { + AppMenuController* appMenuController = + [[controller_ toolbarController] appMenuController]; + if ([appMenuController isMenuOpen]) + [appMenuController cancel]; +} + } // namespace @implementation BrowserActionsController
diff --git a/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller_views.mm b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller_views.mm index 824117d9..0a449de 100644 --- a/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller_views.mm +++ b/chrome/browser/ui/cocoa/fullscreen/fullscreen_toolbar_controller_views.mm
@@ -6,7 +6,6 @@ #include "chrome/browser/ui/views/frame/browser_view.h" #include "ui/views/cocoa/bridged_native_widget.h" -#include "ui/views/widget/native_widget_mac.h" @implementation FullscreenToolbarControllerViews @@ -28,7 +27,7 @@ - (BOOL)isFullscreenTransitionInProgress { views::BridgedNativeWidgetImpl* bridge_widget = - views::NativeWidgetMac::GetBridgeImplForNativeWindow([self window]); + views::BridgedNativeWidgetImpl::GetFromNativeWindow([self window]); return bridge_widget->in_fullscreen_transition(); } @@ -36,7 +35,7 @@ NSWindow* ns_window = browserView_->GetNativeWindow(); if (!ns_view_) { ns_view_.reset( - [views::NativeWidgetMac::GetBridgeImplForNativeWindow(ns_window) + [views::BridgedNativeWidgetImpl::GetFromNativeWindow(ns_window) ->ns_view() retain]); } return ns_window;
diff --git a/chrome/browser/ui/libgtkui/gtk_ui.cc b/chrome/browser/ui/libgtkui/gtk_ui.cc index 841083f..7a51c91e 100644 --- a/chrome/browser/ui/libgtkui/gtk_ui.cc +++ b/chrome/browser/ui/libgtkui/gtk_ui.cc
@@ -947,9 +947,9 @@ SK_ColorTRANSPARENT; const SkColor background_tab_text_color = - GetFgColor(header_selector + " GtkLabel"); + GetFgColor(header_selector + " GtkLabel.title"); const SkColor background_tab_text_color_inactive = - GetFgColor(header_selector_inactive + " GtkLabel"); + GetFgColor(header_selector_inactive + " GtkLabel.title"); color_map[ThemeProperties::COLOR_BACKGROUND_TAB_TEXT] = background_tab_text_color;
diff --git a/chrome/browser/ui/media_router/media_router_ui_base.cc b/chrome/browser/ui/media_router/media_router_ui_base.cc index a656e0612..bf08987 100644 --- a/chrome/browser/ui/media_router/media_router_ui_base.cc +++ b/chrome/browser/ui/media_router/media_router_ui_base.cc
@@ -421,9 +421,7 @@ } void MediaRouterUIBase::HandleCreateSessionRequestRouteResponse( - const RouteRequestResult&) { - Close(); -} + const RouteRequestResult&) {} void MediaRouterUIBase::InitCommon(content::WebContents* initiator) { DCHECK(initiator); @@ -551,15 +549,16 @@ weak_factory_.GetWeakPtr(), cast_mode)); // There are 3 cases. In cases (1) and (3) the MediaRouterUIBase will need to - // be notified via OnRouteResponseReceived(). In case (2) the dialog will be - // closed via HandleCreateSessionRequestRouteResponse(). + // be notified. In case (2) the dialog will be closed. // (1) Non-presentation route request (e.g., mirroring). No additional // notification necessary. // (2) Presentation route request for a PresentationRequest.start() call. // The StartPresentationContext will need to be answered with the route // response. // (3) Browser-initiated presentation route request. If successful, - // PresentationServiceDelegateImpl will have to be notified. + // PresentationServiceDelegateImpl will have to be notified. Note that we + // treat subsequent route requests from a Presentation API-initiated + // dialogs as browser-initiated. if (!for_presentation_source || !start_presentation_context_) { params.route_result_callbacks.push_back(base::BindOnce( &MediaRouterUIBase::OnRouteResponseReceived, weak_factory_.GetWeakPtr(),
diff --git a/chrome/browser/ui/media_router/media_router_ui_base.h b/chrome/browser/ui/media_router/media_router_ui_base.h index a305de3..07e716e 100644 --- a/chrome/browser/ui/media_router/media_router_ui_base.h +++ b/chrome/browser/ui/media_router/media_router_ui_base.h
@@ -126,9 +126,6 @@ // Opens a file picker for when the user selected local file casting. void OpenFileDialog(); - // Closes the Media Router dialog. - virtual void Close() = 0; - const std::vector<MediaRoute>& routes() const { return routes_; } content::WebContents* initiator() const { return initiator_; }
diff --git a/chrome/browser/ui/search/search_tab_helper.cc b/chrome/browser/ui/search/search_tab_helper.cc index b4c132a..eb3aba1 100644 --- a/chrome/browser/ui/search/search_tab_helper.cc +++ b/chrome/browser/ui/search/search_tab_helper.cc
@@ -258,7 +258,9 @@ // visual cue to users who really understand selection state about what // will happen if they start typing. omnibox_view->SelectAll(false); +#if !defined(OS_WIN) omnibox_view->ShowVirtualKeyboardIfEnabled(); +#endif } else { // Remove focus only if the popup is closed. This will prevent someone // from changing the omnibox value and closing the popup without user
diff --git a/chrome/browser/ui/toolbar/toolbar_actions_bar.cc b/chrome/browser/ui/toolbar/toolbar_actions_bar.cc index b259428..5d24f5f 100644 --- a/chrome/browser/ui/toolbar/toolbar_actions_bar.cc +++ b/chrome/browser/ui/toolbar/toolbar_actions_bar.cc
@@ -546,6 +546,15 @@ } else if (bubble->ShouldShow()) { // We check ShouldShow() above since we show the bubble asynchronously, and // it might no longer have been valid. + + // If needed, close the overflow menu before showing the bubble. + ToolbarActionViewController* controller = + GetActionForId(bubble->GetAnchorActionId()); + bool close_overflow_menu = + controller && !IsActionVisibleOnMainBar(controller); + if (close_overflow_menu) + delegate_->CloseOverflowMenuIfOpen(); + is_showing_bubble_ = true; delegate_->ShowToolbarActionBubble(std::move(bubble)); }
diff --git a/chrome/browser/ui/toolbar/toolbar_actions_bar_delegate.h b/chrome/browser/ui/toolbar/toolbar_actions_bar_delegate.h index 09d434c..0f71d82296 100644 --- a/chrome/browser/ui/toolbar/toolbar_actions_bar_delegate.h +++ b/chrome/browser/ui/toolbar/toolbar_actions_bar_delegate.h
@@ -58,6 +58,9 @@ // or if the toolbar is animating. virtual void ShowToolbarActionBubble( std::unique_ptr<ToolbarActionsBarBubbleDelegate> bubble) = 0; + + // Closes the overflow menu if it's open. + virtual void CloseOverflowMenuIfOpen() = 0; }; #endif // CHROME_BROWSER_UI_TOOLBAR_TOOLBAR_ACTIONS_BAR_DELEGATE_H_
diff --git a/chrome/browser/ui/views/autofill/autofill_popup_view_native_views.cc b/chrome/browser/ui/views/autofill/autofill_popup_view_native_views.cc index 222b40c46..b8662398 100644 --- a/chrome/browser/ui/views/autofill/autofill_popup_view_native_views.cc +++ b/chrome/browser/ui/views/autofill/autofill_popup_view_native_views.cc
@@ -175,6 +175,11 @@ // Creates a label matching the style of the description label. views::Label* CreateSecondaryLabel(const base::string16& text) const; + // Sets |font_weight| as the font weight to be used for primary information on + // the current item. Returns false if no custom font weight is undefined. + virtual bool ShouldUseCustomFontWeightForPrimaryInfo( + gfx::Font::Weight* font_weight) const = 0; + private: void AddIcon(gfx::ImageSkia icon); void AddSpacerWithSize(int spacer_width, @@ -201,6 +206,8 @@ // AutofillPopupItemView: std::unique_ptr<views::Background> CreateBackground() override; int GetPrimaryTextStyle() override; + bool ShouldUseCustomFontWeightForPrimaryInfo( + gfx::Font::Weight* font_weight) const override; AutofillPopupSuggestionView(AutofillPopupViewNativeViews* popup_view, int line_number); @@ -222,6 +229,8 @@ views::View* CreateValueLabel() override; views::View* CreateSubtextLabel() override; views::View* CreateDescriptionLabel() override; + bool ShouldUseCustomFontWeightForPrimaryInfo( + gfx::Font::Weight* font_weight) const override; private: PasswordPopupSuggestionView(AutofillPopupViewNativeViews* popup_view, @@ -245,6 +254,8 @@ void CreateContent() override; std::unique_ptr<views::Background> CreateBackground() override; int GetPrimaryTextStyle() override; + bool ShouldUseCustomFontWeightForPrimaryInfo( + gfx::Font::Weight* font_weight) const override; private: AutofillPopupFooterView(AutofillPopupViewNativeViews* popup_view, @@ -439,10 +450,15 @@ ->GetSuggestionAt(line_number_) .is_value_secondary) return CreateSecondaryLabel(text); + + gfx::FontList font_list = views::style::GetFont( + ChromeTextContext::CONTEXT_BODY_TEXT_LARGE, GetPrimaryTextStyle()); + gfx::Font::Weight font_weight; views::Label* text_label = new views::Label( popup_view_->controller()->GetElidedValueAt(line_number_), - {views::style::GetFont(ChromeTextContext::CONTEXT_BODY_TEXT_LARGE, - GetPrimaryTextStyle())}); + {ShouldUseCustomFontWeightForPrimaryInfo(&font_weight) + ? font_list.DeriveWithWeight(font_weight) + : font_list}); text_label->SetEnabledColor( views::style::GetColor(*this, ChromeTextContext::CONTEXT_BODY_TEXT_LARGE, GetPrimaryTextStyle())); @@ -513,6 +529,11 @@ return views::style::TextStyle::STYLE_PRIMARY; } +bool AutofillPopupSuggestionView::ShouldUseCustomFontWeightForPrimaryInfo( + gfx::Font::Weight* font_weight) const { + return autofill::ShouldUseCustomFontWeightForPrimaryInfo(font_weight); +} + AutofillPopupSuggestionView::AutofillPopupSuggestionView( AutofillPopupViewNativeViews* popup_view, int line_number) @@ -557,6 +578,11 @@ return new ConstrainedWidthView(label, kAutofillPopupPasswordMaxWidth); } +bool PasswordPopupSuggestionView::ShouldUseCustomFontWeightForPrimaryInfo( + gfx::Font::Weight* font_weight) const { + return false; +} + PasswordPopupSuggestionView::PasswordPopupSuggestionView( AutofillPopupViewNativeViews* popup_view, int line_number) @@ -594,6 +620,11 @@ return ChromeTextStyle::STYLE_SECONDARY; } +bool AutofillPopupFooterView::ShouldUseCustomFontWeightForPrimaryInfo( + gfx::Font::Weight* font_weight) const { + return false; +} + AutofillPopupFooterView::AutofillPopupFooterView( AutofillPopupViewNativeViews* popup_view, int line_number)
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc index ecd4f6e6..8fc3a87 100644 --- a/chrome/browser/ui/views/frame/browser_view.cc +++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -162,7 +162,6 @@ #include "chrome/browser/ui/ash/ash_util.h" #include "chrome/browser/ui/ash/window_properties.h" #include "chrome/browser/ui/views/location_bar/intent_picker_view.h" -#include "chrome/grit/chrome_unscaled_resources.h" #else #include "chrome/browser/ui/signin_view_controller.h" #include "chrome/browser/ui/views/profiles/profile_chooser_view.h" @@ -1930,7 +1929,7 @@ #if defined(OS_CHROMEOS) ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); if (browser_->is_type_tabbed()) { - return rb.GetImageNamed(IDR_CHROME_APP_ICON_192).AsImageSkia(); + return rb.GetImageNamed(IDR_PRODUCT_LOGO_32).AsImageSkia(); } auto* window = GetNativeWindow(); int override_window_icon_resource_id =
diff --git a/chrome/browser/ui/views/frame/top_controls_slide_controller_chromeos.cc b/chrome/browser/ui/views/frame/top_controls_slide_controller_chromeos.cc index d4e5f6d..516438f 100644 --- a/chrome/browser/ui/views/frame/top_controls_slide_controller_chromeos.cc +++ b/chrome/browser/ui/views/frame/top_controls_slide_controller_chromeos.cc
@@ -111,6 +111,26 @@ animate); } +// Triggers a visual properties synchrnoization event on |contents|' main +// frame's view's widget. +void SynchronizeVisualProperties(content::WebContents* contents) { + DCHECK(contents); + + content::RenderFrameHost* main_frame = contents->GetMainFrame(); + if (!main_frame) + return; + + auto* rvh = main_frame->GetRenderViewHost(); + if (!rvh) + return; + + auto* widget = rvh->GetWidget(); + if (!widget) + return; + + widget->SynchronizeVisualProperties(); +} + } // namespace //////////////////////////////////////////////////////////////////////////////// @@ -129,19 +149,7 @@ // browser's tabstrip, meaning that Browser is now the delegate of // |web_contents|. Updating the visual properties will now sync the correct // top chrome height in the renderer. - content::RenderFrameHost* main_frame = web_contents->GetMainFrame(); - if (!main_frame) - return; - - auto* rvh = main_frame->GetRenderViewHost(); - if (!rvh) - return; - - auto* widget = rvh->GetWidget(); - if (!widget) - return; - - widget->SynchronizeVisualProperties(); + SynchronizeVisualProperties(web_contents); } ~TopControlsSlideTabObserver() override = default; @@ -282,14 +290,20 @@ void TopControlsSlideControllerChromeOS::OnBrowserFullscreenStateWillChange( bool new_fullscreen_state) { + auto* active_web_contents = browser_view_->GetActiveWebContents(); if (new_fullscreen_state && !browser_frame_is_fullscreen_ && shown_ratio_ < 1.f) { // Immersive fullscreen mode could be about to start for this browser's // window. Therefore show the top-chrome immediately without animation. - ShowTopChrome(browser_view_->GetActiveWebContents(), false /* animate */); + ShowTopChrome(active_web_contents, false /* animate */); } browser_frame_is_fullscreen_ = new_fullscreen_state; + + // Now that the state of this feature is changed, force the renderer to get + // the new top controls height by triggering a visual properties + // synchrnoization event. + SynchronizeVisualProperties(active_web_contents); } void TopControlsSlideControllerChromeOS::SetTopControlsGestureScrollInProgress( @@ -311,10 +325,16 @@ } void TopControlsSlideControllerChromeOS::OnTabletModeToggled(bool enabled) { + auto* active_web_contents = browser_view_->GetActiveWebContents(); if (!enabled) - ShowTopChrome(browser_view_->GetActiveWebContents(), false /* animate */); + ShowTopChrome(active_web_contents, false /* animate */); tablet_mode_enabled_ = enabled; + + // Now that the state of this feature is changed, force the renderer to get + // the new top controls height by triggering a visual properties + // synchrnoization event. + SynchronizeVisualProperties(active_web_contents); } void TopControlsSlideControllerChromeOS::TabInsertedAt(
diff --git a/chrome/browser/ui/views/frame/top_controls_slide_controller_chromeos_browsertest.cc b/chrome/browser/ui/views/frame/top_controls_slide_controller_chromeos_browsertest.cc index 4c655df..bd7d042 100644 --- a/chrome/browser/ui/views/frame/top_controls_slide_controller_chromeos_browsertest.cc +++ b/chrome/browser/ui/views/frame/top_controls_slide_controller_chromeos_browsertest.cc
@@ -29,6 +29,7 @@ #include "chrome/test/base/ui_test_utils.h" #include "content/public/common/service_manager_connection.h" #include "content/public/test/browser_test_utils.h" +#include "ipc/ipc_message_macros.h" #include "net/dns/mock_host_resolver.h" #include "services/service_manager/public/cpp/connector.h" #include "ui/aura/window.h" @@ -695,4 +696,79 @@ } } +// Waits for receiving an IPC message from the render frame that the page state +// has been updated. This makes sure that the renderer now sees the new top +// controls height if it changed. +class PageStateUpdateWaiter : content::WebContentsObserver { + public: + explicit PageStateUpdateWaiter(content::WebContents* contents) + : WebContentsObserver(contents) {} + ~PageStateUpdateWaiter() override = default; + + void Wait() { run_loop_.Run(); } + + // content::WebContentsObserver: + void NavigationEntryChanged( + const content::EntryChangedDetails& change_details) override { + // This notification is triggered upon receiving the + // |FrameHostMsg_UpdateState| message in the |RenderFrameHostImpl|, which + // indicates that the page state now has been updated, and we can now + // proceeed with testing gesture scrolls behavior. + run_loop_.Quit(); + } + + private: + base::RunLoop run_loop_; + + DISALLOW_COPY_AND_ASSIGN(PageStateUpdateWaiter); +}; + +IN_PROC_BROWSER_TEST_F(TopControlsSlideControllerTest, + TestScrollingMaximizedPageBeforeGoingToTabletMode) { + // If the page exists in a maximized browser window before going to tablet + // mode, the layout that results from going to tablet mode does not change + // the size of the page viewport. Hence, the visual properties of the renderer + // and the browser are not automatically synchrnoized. But going to tablet + // mode enables the top-chrome sliding feature (i.e. + // BrowserView::GetTopControlsHeight() now returns a non-zero value). We must + // make sure that we synchronize the visual properties manually, otherwise + // the renderer will never get the new top-controls height. + browser_view()->frame()->Maximize(); + + // Navigate to our test scrollable page. + ui_test_utils::NavigateToURL( + browser(), embedded_test_server()->GetURL("/top_controls_scroll.html")); + content::WebContents* active_contents = + browser()->tab_strip_model()->GetActiveWebContents(); + TabNonEmptyPaintWaiter paint_waiter(active_contents); + paint_waiter.Wait(); + ASSERT_EQ(browser()->tab_strip_model()->count(), 1); + EXPECT_FLOAT_EQ(top_controls_slide_controller()->GetShownRatio(), 1.f); + EXPECT_EQ(browser_view()->GetTopControlsHeight(), 0); + + // Switch to tablet mode. This should trigger a synchronize visual properties + // event with the renderer so that it can get the correct top controls height + // now that the top-chrome slide feature is enabled. Otherwise hiding top + // chrome with gesture scrolls won't be possible at all. + PageStateUpdateWaiter page_state_update_waiter(active_contents); + ToggleTabletMode(); + ASSERT_TRUE(GetTabletModeEnabled()); + EXPECT_TRUE(top_controls_slide_controller()->IsEnabled()); + EXPECT_FLOAT_EQ(top_controls_slide_controller()->GetShownRatio(), 1.f); + EXPECT_NE(browser_view()->GetTopControlsHeight(), 0); + page_state_update_waiter.Wait(); + + // Scroll to fully hide top-chrome. + auto* browser_window = browser()->window()->GetNativeWindow(); + ui::test::EventGenerator event_generator(browser_window->GetRootWindow(), + browser_window); + const gfx::Point start_point = event_generator.current_location(); + const gfx::Point end_point = start_point + gfx::Vector2d(0, -100); + GenerateGestureFlingScrollSequence(&event_generator, start_point, end_point); + TopControlsShownRatioWaiter waiter(top_controls_slide_controller()); + waiter.WaitForRatio(0.f); + EXPECT_FLOAT_EQ(top_controls_slide_controller()->GetShownRatio(), 0); + CheckBrowserLayout(browser_view(), TopChromeShownState::kFullyHidden); +} + } // namespace
diff --git a/chrome/browser/ui/views/media_router/media_router_views_ui.cc b/chrome/browser/ui/views/media_router/media_router_views_ui.cc index e41c5af2..a2c0177 100644 --- a/chrome/browser/ui/views/media_router/media_router_views_ui.cc +++ b/chrome/browser/ui/views/media_router/media_router_views_ui.cc
@@ -10,7 +10,6 @@ #include "chrome/browser/media/router/media_router_metrics.h" #include "chrome/browser/ui/media_router/media_sink_with_cast_modes.h" #include "chrome/browser/ui/media_router/ui_media_sink.h" -#include "chrome/browser/ui/views/media_router/cast_dialog_view.h" #include "chrome/common/media_router/route_request_result.h" #include "chrome/grit/generated_resources.h" #include "ui/base/l10n/l10n_util.h" @@ -77,10 +76,6 @@ return sinks; } -void MediaRouterViewsUI::Close() { - CastDialogView::HideDialog(); -} - void MediaRouterViewsUI::InitCommon(content::WebContents* initiator) { MediaRouterUIBase::InitCommon(initiator); // We don't start observing issues in MediaRouterUIBase::InitCommon() because
diff --git a/chrome/browser/ui/views/media_router/media_router_views_ui.h b/chrome/browser/ui/views/media_router/media_router_views_ui.h index 2c8c1c2..6d5c6a61 100644 --- a/chrome/browser/ui/views/media_router/media_router_views_ui.h +++ b/chrome/browser/ui/views/media_router/media_router_views_ui.h
@@ -29,7 +29,6 @@ // MediaRouterUIBase: std::vector<MediaSinkWithCastModes> GetEnabledSinks() const override; - void Close() override; private: FRIEND_TEST_ALL_PREFIXES(MediaRouterViewsUITest, NotifyObserver);
diff --git a/chrome/browser/ui/views/overlay/overlay_window_views.cc b/chrome/browser/ui/views/overlay/overlay_window_views.cc index 52a264b..8b52783 100644 --- a/chrome/browser/ui/views/overlay/overlay_window_views.cc +++ b/chrome/browser/ui/views/overlay/overlay_window_views.cc
@@ -679,11 +679,7 @@ void OverlayWindowViews::OnMouseEvent(ui::MouseEvent* event) { switch (event->type()) { // Only show the media controls when the mouse is hovering over the window. -// This is checking for both ENTERED and MOVED because ENTERED is not fired -// after a resize on Windows. -#if defined(OS_WIN) case ui::ET_MOUSE_MOVED: -#endif // OS_WIN case ui::ET_MOUSE_ENTERED: UpdateControlsVisibility(true); break;
diff --git a/chrome/browser/ui/views/profiles/avatar_toolbar_button.cc b/chrome/browser/ui/views/profiles/avatar_toolbar_button.cc index a053f001..cc398306 100644 --- a/chrome/browser/ui/views/profiles/avatar_toolbar_button.cc +++ b/chrome/browser/ui/views/profiles/avatar_toolbar_button.cc
@@ -34,6 +34,20 @@ #include "ui/gfx/paint_vector_icon.h" #include "ui/views/controls/button/label_button_border.h" +namespace { + +ProfileAttributesEntry* GetProfileAttributesEntry(Profile* profile) { + ProfileAttributesEntry* entry; + if (!g_browser_process->profile_manager() + ->GetProfileAttributesStorage() + .GetProfileAttributesWithPath(profile->GetPath(), &entry)) { + return nullptr; + } + return entry; +} + +} // namespace + AvatarToolbarButton::AvatarToolbarButton(Browser* browser) : ToolbarButton(nullptr), browser_(browser), @@ -193,7 +207,14 @@ if (!signin_ui_util::GetAccountsForDicePromos(profile_).empty()) return false; #endif // !defined(OS_CHROMEOS) - return g_browser_process->profile_manager() + + ProfileAttributesEntry* entry = GetProfileAttributesEntry(profile_); + if (!entry) { + // This can happen if the user deletes the current profile. + return true; + } + return entry->IsUsingDefaultAvatar() && + g_browser_process->profile_manager() ->GetProfileAttributesStorage() .GetNumberOfProfiles() == 1 && !SigninManagerFactory::GetForProfile(profile_)->IsAuthenticated(); @@ -253,10 +274,8 @@ } gfx::Image AvatarToolbarButton::GetIconImageFromProfile() const { - ProfileAttributesEntry* entry; - if (!g_browser_process->profile_manager() - ->GetProfileAttributesStorage() - .GetProfileAttributesWithPath(profile_->GetPath(), &entry)) { + ProfileAttributesEntry* entry = GetProfileAttributesEntry(profile_); + if (!entry) { // This can happen if the user deletes the current profile. return gfx::Image(); }
diff --git a/chrome/browser/ui/views/toolbar/browser_actions_container.cc b/chrome/browser/ui/views/toolbar/browser_actions_container.cc index a74392f..96c7716 100644 --- a/chrome/browser/ui/views/toolbar/browser_actions_container.cc +++ b/chrome/browser/ui/views/toolbar/browser_actions_container.cc
@@ -22,6 +22,7 @@ #include "chrome/browser/ui/views/extensions/browser_action_drag_data.h" #include "chrome/browser/ui/views/frame/app_menu_button.h" #include "chrome/browser/ui/views/frame/browser_view.h" +#include "chrome/browser/ui/views/toolbar/browser_app_menu_button.h" #include "chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views.h" #include "chrome/browser/ui/views/toolbar/toolbar_view.h" #include "chrome/common/extensions/command.h" @@ -306,6 +307,17 @@ bubble->Show(); } +void BrowserActionsContainer::CloseOverflowMenuIfOpen() { + // TODO(mgiuca): Use toolbar_button_provider() instead of toolbar(), so this + // also works for hosted app windows. + BrowserAppMenuButton* app_menu_button = + BrowserView::GetBrowserViewForBrowser(browser_) + ->toolbar() + ->app_menu_button(); + if (app_menu_button && app_menu_button->IsMenuShowing()) + app_menu_button->CloseMenu(); +} + void BrowserActionsContainer::OnWidgetClosing(views::Widget* widget) { ClearActiveBubble(widget); }
diff --git a/chrome/browser/ui/views/toolbar/browser_actions_container.h b/chrome/browser/ui/views/toolbar/browser_actions_container.h index a76c6db..a2aabadf 100644 --- a/chrome/browser/ui/views/toolbar/browser_actions_container.h +++ b/chrome/browser/ui/views/toolbar/browser_actions_container.h
@@ -240,6 +240,7 @@ void StopAnimating() override; void ShowToolbarActionBubble( std::unique_ptr<ToolbarActionsBarBubbleDelegate> controller) override; + void CloseOverflowMenuIfOpen() override; // views::WidgetObserver: void OnWidgetClosing(views::Widget* widget) override;
diff --git a/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.cc b/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.cc index b8330ee0..3f43b8a 100644 --- a/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.cc +++ b/chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.cc
@@ -5,6 +5,7 @@ #include "chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_dialog.h" #include "base/strings/utf_string_conversions.h" +#include "base/sys_info.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/webui/chromeos/multidevice_setup/multidevice_setup_handler.h" #include "chrome/common/url_constants.h" @@ -13,6 +14,7 @@ #include "chrome/grit/multidevice_setup_resources.h" #include "chrome/grit/multidevice_setup_resources_map.h" #include "chromeos/grit/chromeos_resources.h" +#include "chromeos/services/multidevice_setup/public/cpp/url_provider.h" #include "chromeos/services/multidevice_setup/public/mojom/constants.mojom.h" #include "components/strings/grit/components_strings.h" #include "content/public/browser/web_ui.h" @@ -77,7 +79,9 @@ l10n_util::GetStringFUTF16( IDS_MULTIDEVICE_SETUP_START_SETUP_PAGE_MESSAGE, base::ASCIIToUTF16(kFootnoteMarker), - base::ASCIIToUTF16(chrome::kMultiDeviceLearnMoreURL))); + base::UTF8ToUTF16( + chromeos::multidevice_setup::GetBoardSpecificLearnMoreUrl() + .spec()))); html_source->AddString( "startSetupPageFootnote", l10n_util::GetStringFUTF16(
diff --git a/chrome/browser/ui/webui/media_router/media_router_ui.cc b/chrome/browser/ui/webui/media_router/media_router_ui.cc index 4aba966..eb30f9b 100644 --- a/chrome/browser/ui/webui/media_router/media_router_ui.cc +++ b/chrome/browser/ui/webui/media_router/media_router_ui.cc
@@ -326,6 +326,11 @@ SendIssueForRouteTimeout(cast_mode, presentation_request_source_name); } +void MediaRouterUI::HandleCreateSessionRequestRouteResponse( + const RouteRequestResult&) { + Close(); +} + void MediaRouterUI::OnSearchSinkResponseReceived( MediaCastMode cast_mode, const MediaSink::Id& found_sink_id) {
diff --git a/chrome/browser/ui/webui/media_router/media_router_ui.h b/chrome/browser/ui/webui/media_router/media_router_ui.h index bc1b0bb..acf5fe7 100644 --- a/chrome/browser/ui/webui/media_router/media_router_ui.h +++ b/chrome/browser/ui/webui/media_router/media_router_ui.h
@@ -27,8 +27,8 @@ explicit MediaRouterUI(content::WebUI* web_ui); ~MediaRouterUI() override; - // MediaRouterUIBase: - void Close() override; + // Closes the media router UI. + void Close(); // Notifies this instance that the UI has been initialized. virtual void OnUIInitialized(); @@ -160,6 +160,9 @@ const base::string16& presentation_request_source_name, const RouteRequestResult& result) override; + void HandleCreateSessionRequestRouteResponse( + const RouteRequestResult&) override; + // Callback passed to MediaRouter to receive the sink ID of the sink found by // SearchSinksAndCreateRoute(). void OnSearchSinkResponseReceived(MediaCastMode cast_mode,
diff --git a/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc b/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc index 90cc441..fff9ae71 100644 --- a/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc +++ b/chrome/browser/ui/webui/settings/md_settings_localized_strings_provider.cc
@@ -61,6 +61,7 @@ #include "chrome/browser/ui/webui/chromeos/network_element_localized_strings_provider.h" #include "chromeos/chromeos_features.h" #include "chromeos/chromeos_switches.h" +#include "chromeos/services/multidevice_setup/public/cpp/url_provider.h" #include "components/arc/arc_util.h" #include "components/user_manager/user_manager.h" #include "ui/chromeos/devicetype_utils.h" @@ -2646,22 +2647,30 @@ "multideviceVerificationText", l10n_util::GetStringFUTF16( IDS_SETTINGS_MULTIDEVICE_VERIFICATION_TEXT, - GetHelpUrlWithBoard(chrome::kMultiDeviceLearnMoreURL))); + base::UTF8ToUTF16( + chromeos::multidevice_setup::GetBoardSpecificLearnMoreUrl() + .spec()))); html_source->AddString( "multideviceCouldNotConnect", l10n_util::GetStringFUTF16( IDS_SETTINGS_MULTIDEVICE_COULD_NOT_CONNECT, - GetHelpUrlWithBoard(chrome::kMultiDeviceLearnMoreURL))); + base::UTF8ToUTF16( + chromeos::multidevice_setup::GetBoardSpecificLearnMoreUrl() + .spec()))); html_source->AddString( "multideviceSetupSummary", l10n_util::GetStringFUTF16( IDS_SETTINGS_MULTIDEVICE_SETUP_SUMMARY, - GetHelpUrlWithBoard(chrome::kMultiDeviceLearnMoreURL))); + base::UTF8ToUTF16( + chromeos::multidevice_setup::GetBoardSpecificLearnMoreUrl() + .spec()))); html_source->AddString( "multideviceNoHostText", l10n_util::GetStringFUTF16( IDS_SETTINGS_MULTIDEVICE_NO_ELIGIBLE_HOSTS, - GetHelpUrlWithBoard(chrome::kMultiDeviceLearnMoreURL))); + base::UTF8ToUTF16( + chromeos::multidevice_setup::GetBoardSpecificLearnMoreUrl() + .spec()))); html_source->AddString( "multideviceSmartLockItemSummary", l10n_util::GetStringFUTF16(
diff --git a/chrome/browser/vr/BUILD.gn b/chrome/browser/vr/BUILD.gn index 788c71af..3c56691e 100644 --- a/chrome/browser/vr/BUILD.gn +++ b/chrome/browser/vr/BUILD.gn
@@ -198,17 +198,20 @@ sources = [ "base_graphics_delegate.cc", "base_graphics_delegate.h", + "base_scheduler_delegate.cc", + "base_scheduler_delegate.h", "browser_renderer.cc", "browser_renderer.h", "browser_renderer_browser_interface.h", - "controller_delegate.h", - "controller_delegate_for_testing.cc", - "controller_delegate_for_testing.h", "fps_meter.cc", "fps_meter.h", + "frame_type.h", "gesture_detector.cc", "gesture_detector.h", "graphics_delegate.h", + "input_delegate.h", + "input_delegate_for_testing.cc", + "input_delegate_for_testing.h", "platform_controller.h", "sample_queue.cc", "sample_queue.h",
diff --git a/chrome/browser/vr/base_scheduler_delegate.cc b/chrome/browser/vr/base_scheduler_delegate.cc new file mode 100644 index 0000000..5daa87a --- /dev/null +++ b/chrome/browser/vr/base_scheduler_delegate.cc
@@ -0,0 +1,71 @@ +// 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/vr/base_scheduler_delegate.h" + +#include "chrome/browser/vr/scheduler_ui_interface.h" + +namespace vr { + +BaseSchedulerDelegate::BaseSchedulerDelegate(SchedulerUiInterface* ui, + bool start_in_webxr_mode, + int webxr_spinner_timeout, + int webxr_initial_frame_timeout) + : ui_(ui), + webxr_mode_(start_in_webxr_mode), + webxr_spinner_timeout_seconds_(webxr_spinner_timeout), + webxr_initial_frame_timeout_seconds_(webxr_initial_frame_timeout), + task_runner_(base::ThreadTaskRunnerHandle::Get()) {} + +BaseSchedulerDelegate::~BaseSchedulerDelegate() = default; + +void BaseSchedulerDelegate::OnExitPresent() { + CancelWebXrFrameTimeout(); +} + +void BaseSchedulerDelegate::SetWebXrMode(bool enabled) { + if (webxr_mode_ == enabled) + return; + webxr_mode_ = enabled; + if (webxr_mode_) + ResetWebXrFramesReceived(); + else + CancelWebXrFrameTimeout(); +} + +void BaseSchedulerDelegate::ScheduleWebXrFrameTimeout() { + DCHECK(ui_); + webxr_spinner_timeout_closure_.Reset(base::BindOnce( + &SchedulerUiInterface::OnWebXrTimeoutImminent, base::Unretained(ui_))); + task_runner_->PostDelayedTask( + FROM_HERE, webxr_spinner_timeout_closure_.callback(), + base::TimeDelta::FromSeconds(webxr_spinner_timeout_seconds_)); + webxr_frame_timeout_closure_.Reset(base::BindOnce( + &SchedulerUiInterface::OnWebXrTimedOut, base::Unretained(ui_))); + task_runner_->PostDelayedTask( + FROM_HERE, webxr_frame_timeout_closure_.callback(), + base::TimeDelta::FromSeconds(webxr_initial_frame_timeout_seconds_)); +} + +void BaseSchedulerDelegate::CancelWebXrFrameTimeout() { + if (!webxr_spinner_timeout_closure_.IsCancelled()) + webxr_spinner_timeout_closure_.Cancel(); + if (!webxr_frame_timeout_closure_.IsCancelled()) + webxr_frame_timeout_closure_.Cancel(); +} + +void BaseSchedulerDelegate::OnNewWebXrFrame() { + ui_->OnWebXrFrameAvailable(); + + if (webxr_mode_) { + TickWebXrFramesReceived(); + + webxr_fps_meter_.AddFrame(base::TimeTicks::Now()); + TRACE_COUNTER1("gpu", "WebVR FPS", webxr_fps_meter_.GetFPS()); + } + + CancelWebXrFrameTimeout(); +} + +} // namespace vr
diff --git a/chrome/browser/vr/base_scheduler_delegate.h b/chrome/browser/vr/base_scheduler_delegate.h new file mode 100644 index 0000000..d510858 --- /dev/null +++ b/chrome/browser/vr/base_scheduler_delegate.h
@@ -0,0 +1,66 @@ +// 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_VR_BASE_SCHEDULER_DELEGATE_H_ +#define CHROME_BROWSER_VR_BASE_SCHEDULER_DELEGATE_H_ + +#include "base/cancelable_callback.h" +#include "chrome/browser/vr/fps_meter.h" +#include "chrome/browser/vr/scheduler_delegate.h" +#include "chrome/browser/vr/vr_export.h" + +namespace base { +class TaskRunner; +} + +namespace vr { + +class SchedulerUiInterface; + +class VR_EXPORT BaseSchedulerDelegate : public SchedulerDelegate { + public: + BaseSchedulerDelegate(SchedulerUiInterface* ui, + bool start_in_webxr_mode, + int webxr_spinner_timeout, + int webxr_initial_frame_timeout); + ~BaseSchedulerDelegate() override; + + // SchedulerDelegate implementations. + void OnExitPresent() override; + void SetWebXrMode(bool enabled) override; + + protected: + void ScheduleWebXrFrameTimeout(); + void CancelWebXrFrameTimeout(); + void OnNewWebXrFrame(); + + bool webxr_mode() const { return webxr_mode_; } + + uint64_t webxr_frames_received() const { return webxr_frames_received_; } + void TickWebXrFramesReceived() { ++webxr_frames_received_; } + void ResetWebXrFramesReceived() { webxr_frames_received_ = 0; } + + base::TaskRunner* task_runner() { return task_runner_.get(); } + + private: + SchedulerUiInterface* ui_; + bool webxr_mode_ = false; + + int webxr_frames_received_ = 0; + int webxr_spinner_timeout_seconds_; + int webxr_initial_frame_timeout_seconds_; + + FPSMeter webxr_fps_meter_; + + base::CancelableOnceClosure webxr_frame_timeout_closure_; + base::CancelableOnceClosure webxr_spinner_timeout_closure_; + + scoped_refptr<base::SingleThreadTaskRunner> task_runner_; + + DISALLOW_COPY_AND_ASSIGN(BaseSchedulerDelegate); +}; + +} // namespace vr + +#endif // CHROME_BROWSER_VR_BASE_SCHEDULER_DELEGATE_H_
diff --git a/chrome/browser/vr/browser_renderer.cc b/chrome/browser/vr/browser_renderer.cc index fcae5da6..de146fc8 100644 --- a/chrome/browser/vr/browser_renderer.cc +++ b/chrome/browser/vr/browser_renderer.cc
@@ -9,7 +9,7 @@ #include "base/time/time.h" #include "base/trace_event/common/trace_event_common.h" #include "chrome/browser/vr/browser_renderer_browser_interface.h" -#include "chrome/browser/vr/controller_delegate_for_testing.h" +#include "chrome/browser/vr/input_delegate_for_testing.h" #include "chrome/browser/vr/input_event.h" #include "chrome/browser/vr/model/controller_model.h" #include "chrome/browser/vr/model/reticle_model.h" @@ -26,13 +26,13 @@ std::unique_ptr<UiInterface> ui, std::unique_ptr<SchedulerDelegate> scheduler_delegate, std::unique_ptr<GraphicsDelegate> graphics_delegate, - std::unique_ptr<ControllerDelegate> controller_delegate, + std::unique_ptr<InputDelegate> input_delegate, BrowserRendererBrowserInterface* browser, size_t sliding_time_size) : ui_(std::move(ui)), scheduler_delegate_(std::move(scheduler_delegate)), graphics_delegate_(std::move(graphics_delegate)), - controller_delegate_(std::move(controller_delegate)), + input_delegate_(std::move(input_delegate)), browser_(browser), ui_processing_time_(sliding_time_size), ui_controller_update_time_(sliding_time_size), @@ -43,18 +43,20 @@ BrowserRenderer::~BrowserRenderer() = default; void BrowserRenderer::DrawBrowserFrame(base::TimeTicks current_time) { - Draw(GraphicsDelegate::kUiFrame, current_time); + Draw(kUiFrame, current_time, input_delegate_->GetHeadPose()); } -void BrowserRenderer::DrawWebXrFrame(base::TimeTicks current_time) { - Draw(GraphicsDelegate::kWebXrFrame, current_time); +void BrowserRenderer::DrawWebXrFrame(base::TimeTicks current_time, + const gfx::Transform& head_pose) { + Draw(kWebXrFrame, current_time, head_pose); } -void BrowserRenderer::Draw(GraphicsDelegate::FrameType frame_type, - base::TimeTicks current_time) { +void BrowserRenderer::Draw(FrameType frame_type, + base::TimeTicks current_time, + const gfx::Transform& head_pose) { TRACE_EVENT1("gpu", __func__, "frame_type", frame_type); - const auto& render_info = graphics_delegate_->GetRenderInfo( - frame_type, scheduler_delegate_->GetHeadPose()); + const auto& render_info = + graphics_delegate_->GetRenderInfo(frame_type, head_pose); UpdateUi(render_info, current_time, frame_type); ui_->OnProjMatrixChanged(render_info.left_eye_model.proj_matrix); bool use_quad_layer = ui_->IsContentVisibleAndOpaque() && @@ -62,7 +64,7 @@ ui_->SetContentUsesQuadLayer(use_quad_layer); graphics_delegate_->InitializeBuffers(); - if (frame_type == GraphicsDelegate::kWebXrFrame) { + if (frame_type == kWebXrFrame) { DCHECK(!use_quad_layer); DrawWebXr(); if (ui_->HasWebXrOverlayElementsToDraw()) @@ -77,6 +79,8 @@ ui_processing_time_.GetAverage().InMicroseconds(), "controller", ui_controller_update_time_.GetAverage().InMicroseconds()); + + scheduler_delegate_->SubmitDrawnFrame(frame_type, head_pose); } void BrowserRenderer::DrawWebXr() { @@ -128,16 +132,16 @@ } void BrowserRenderer::OnPause() { - DCHECK(controller_delegate_); - controller_delegate_->OnPause(); + DCHECK(input_delegate_); + input_delegate_->OnPause(); scheduler_delegate_->OnPause(); ui_->OnPause(); } void BrowserRenderer::OnResume() { - DCHECK(controller_delegate_); + DCHECK(input_delegate_); scheduler_delegate_->OnResume(); - controller_delegate_->OnResume(); + input_delegate_->OnResume(); } void BrowserRenderer::OnExitPresent() { @@ -251,7 +255,7 @@ void BrowserRenderer::UpdateUi(const RenderInfo& render_info, base::TimeTicks current_time, - GraphicsDelegate::FrameType frame_type) { + FrameType frame_type) { TRACE_EVENT0("gpu", __func__); // Update the render position of all UI elements. @@ -260,7 +264,7 @@ // WebXR handles controller input in OnVsync. base::TimeDelta controller_time; - if (frame_type == GraphicsDelegate::kUiFrame) + if (frame_type == kUiFrame) controller_time = ProcessControllerInput(render_info, current_time); if (ui_->SceneHasDirtyTextures()) { @@ -281,19 +285,19 @@ void BrowserRenderer::ProcessControllerInputForWebXr( base::TimeTicks current_time) { TRACE_EVENT0("gpu", __func__); - DCHECK(controller_delegate_); + DCHECK(input_delegate_); DCHECK(ui_); base::TimeTicks timing_start = base::TimeTicks::Now(); - controller_delegate_->UpdateController(scheduler_delegate_->GetHeadPose(), - current_time, true); - auto input_event_list = controller_delegate_->GetGestures(current_time); + // No transform required for input handling while in WebXR. + input_delegate_->UpdateController(gfx::Transform(), current_time, true); + auto input_event_list = input_delegate_->GetGestures(current_time); ui_->HandleMenuButtonEvents(&input_event_list); ui_controller_update_time_.AddSample(base::TimeTicks::Now() - timing_start); scheduler_delegate_->AddInputSourceState( - controller_delegate_->GetInputSourceState()); + input_delegate_->GetInputSourceState()); } void BrowserRenderer::ConnectPresentingService( @@ -307,16 +311,15 @@ const RenderInfo& render_info, base::TimeTicks current_time) { TRACE_EVENT0("gpu", __func__); - DCHECK(controller_delegate_); + DCHECK(input_delegate_); DCHECK(ui_); base::TimeTicks timing_start = base::TimeTicks::Now(); - controller_delegate_->UpdateController(render_info.head_pose, current_time, - false); - auto input_event_list = controller_delegate_->GetGestures(current_time); + input_delegate_->UpdateController(render_info.head_pose, current_time, false); + auto input_event_list = input_delegate_->GetGestures(current_time); ReticleModel reticle_model; ControllerModel controller_model = - controller_delegate_->GetModel(render_info.head_pose); + input_delegate_->GetControllerModel(render_info.head_pose); ui_->HandleInput(current_time, render_info, controller_model, &reticle_model, &input_event_list); ui_->OnControllerUpdated(controller_model, reticle_model); @@ -328,30 +331,29 @@ void BrowserRenderer::PerformControllerActionForTesting( ControllerTestInput controller_input) { - DCHECK(controller_delegate_); + DCHECK(input_delegate_); if (controller_input.action == VrControllerTestAction::kRevertToRealController) { - if (using_controller_delegate_for_testing_) { - DCHECK( - static_cast<ControllerDelegateForTesting*>(controller_delegate_.get()) - ->IsQueueEmpty()) + if (using_input_delegate_for_testing_) { + DCHECK(static_cast<InputDelegateForTesting*>(input_delegate_.get()) + ->IsQueueEmpty()) << "Attempted to revert to using real controller with actions still " "queued"; - using_controller_delegate_for_testing_ = false; - controller_delegate_for_testing_.swap(controller_delegate_); + using_input_delegate_for_testing_ = false; + input_delegate_for_testing_.swap(input_delegate_); } return; } - if (!using_controller_delegate_for_testing_) { - using_controller_delegate_for_testing_ = true; - if (!controller_delegate_for_testing_) - controller_delegate_for_testing_ = - std::make_unique<ControllerDelegateForTesting>(ui_.get()); - controller_delegate_for_testing_.swap(controller_delegate_); + if (!using_input_delegate_for_testing_) { + using_input_delegate_for_testing_ = true; + if (!input_delegate_for_testing_) + input_delegate_for_testing_ = + std::make_unique<InputDelegateForTesting>(ui_.get()); + input_delegate_for_testing_.swap(input_delegate_); } if (controller_input.action != VrControllerTestAction::kEnableMockedController) { - static_cast<ControllerDelegateForTesting*>(controller_delegate_.get()) + static_cast<InputDelegateForTesting*>(input_delegate_.get()) ->QueueControllerActionForTesting(controller_input); } }
diff --git a/chrome/browser/vr/browser_renderer.h b/chrome/browser/vr/browser_renderer.h index 3a090a6..2af36dd 100644 --- a/chrome/browser/vr/browser_renderer.h +++ b/chrome/browser/vr/browser_renderer.h
@@ -26,7 +26,7 @@ enum class VrUiTestActivityResult; class BrowserUiInterface; -class ControllerDelegate; +class InputDelegate; class PlatformInputHandler; class PlatformUiInputDelegate; class BrowserRendererBrowserInterface; @@ -45,7 +45,7 @@ BrowserRenderer(std::unique_ptr<UiInterface> ui, std::unique_ptr<SchedulerDelegate> scheduler_delegate, std::unique_ptr<GraphicsDelegate> graphics_delegate, - std::unique_ptr<ControllerDelegate> controller_delegate, + std::unique_ptr<InputDelegate> input_delegate, BrowserRendererBrowserInterface* browser, size_t sliding_time_size); ~BrowserRenderer() override; @@ -82,20 +82,22 @@ device::mojom::VRDisplayInfoPtr display_info, device::mojom::XRRuntimeSessionOptionsPtr options); + private: // SchedulerBrowserRendererInterface implementation. void DrawBrowserFrame(base::TimeTicks current_time) override; - void DrawWebXrFrame(base::TimeTicks current_time) override; + void DrawWebXrFrame(base::TimeTicks current_time, + const gfx::Transform& head_pose) override; void ProcessControllerInputForWebXr(base::TimeTicks current_time) override; - private: - void Draw(GraphicsDelegate::FrameType frame_type, - base::TimeTicks current_time); + void Draw(FrameType frame_type, + base::TimeTicks current_time, + const gfx::Transform& head_pose); // Position, hide and/or show UI elements, process input and update textures. // Returns true if the scene changed. void UpdateUi(const RenderInfo& render_info, base::TimeTicks currrent_time, - GraphicsDelegate::FrameType frame_type); + FrameType frame_type); void DrawWebXr(); void DrawWebXrOverlay(const RenderInfo& render_info); void DrawContentQuad(); @@ -110,9 +112,9 @@ std::unique_ptr<UiInterface> ui_; std::unique_ptr<SchedulerDelegate> scheduler_delegate_; std::unique_ptr<GraphicsDelegate> graphics_delegate_; - std::unique_ptr<ControllerDelegate> controller_delegate_; - std::unique_ptr<ControllerDelegate> controller_delegate_for_testing_; - bool using_controller_delegate_for_testing_ = false; + std::unique_ptr<InputDelegate> input_delegate_; + std::unique_ptr<InputDelegate> input_delegate_for_testing_; + bool using_input_delegate_for_testing_ = false; std::unique_ptr<PlatformUiInputDelegate> vr_dialog_input_delegate_;
diff --git a/chrome/browser/vr/frame_type.h b/chrome/browser/vr/frame_type.h new file mode 100644 index 0000000..eda9f29 --- /dev/null +++ b/chrome/browser/vr/frame_type.h
@@ -0,0 +1,14 @@ +// 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_VR_FRAME_TYPE_H_ +#define CHROME_BROWSER_VR_FRAME_TYPE_H_ + +namespace vr { + +enum FrameType { kUiFrame, kWebXrFrame }; + +} // namespace vr + +#endif // CHROME_BROWSER_VR_FRAME_TYPE_H_
diff --git a/chrome/browser/vr/graphics_delegate.h b/chrome/browser/vr/graphics_delegate.h index f9785f6..a90d9c70a 100644 --- a/chrome/browser/vr/graphics_delegate.h +++ b/chrome/browser/vr/graphics_delegate.h
@@ -7,6 +7,7 @@ #include "base/callback.h" #include "chrome/browser/vr/fov_rectangle.h" +#include "chrome/browser/vr/frame_type.h" #include "chrome/browser/vr/gl_texture_location.h" #include "chrome/browser/vr/vr_export.h" @@ -29,7 +30,6 @@ class VR_EXPORT GraphicsDelegate { public: using Transform = float[16]; - enum FrameType { kUiFrame, kWebXrFrame }; using SkiaContextCallback = base::OnceCallback<void()>; using TexturesInitializedCallback = base::OnceCallback< void(GlTextureLocation, unsigned int, unsigned int, unsigned int)>;
diff --git a/chrome/browser/vr/controller_delegate.h b/chrome/browser/vr/input_delegate.h similarity index 69% rename from chrome/browser/vr/controller_delegate.h rename to chrome/browser/vr/input_delegate.h index bb93fa6..5175dc36 100644 --- a/chrome/browser/vr/controller_delegate.h +++ b/chrome/browser/vr/input_delegate.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_VR_CONTROLLER_DELEGATE_H_ -#define CHROME_BROWSER_VR_CONTROLLER_DELEGATE_H_ +#ifndef CHROME_BROWSER_VR_INPUT_DELEGATE_H_ +#define CHROME_BROWSER_VR_INPUT_DELEGATE_H_ #include <memory> #include <vector> @@ -22,16 +22,17 @@ using InputEventList = std::vector<std::unique_ptr<InputEvent>>; -// Communicates with the PlatformController to update it and obtain input and -// movement information. -class ControllerDelegate { +// Obtains input from the controller and head poses from the headset. +class InputDelegate { public: - virtual ~ControllerDelegate() {} + virtual ~InputDelegate() {} + virtual gfx::Transform GetHeadPose() = 0; virtual void UpdateController(const gfx::Transform& head_pose, base::TimeTicks current_time, bool is_webxr_frame) = 0; - virtual ControllerModel GetModel(const gfx::Transform& head_pose) = 0; + virtual ControllerModel GetControllerModel( + const gfx::Transform& head_pose) = 0; virtual InputEventList GetGestures(base::TimeTicks current_time) = 0; virtual device::mojom::XRInputSourceStatePtr GetInputSourceState() = 0; virtual void OnResume() = 0; @@ -40,4 +41,4 @@ } // namespace vr -#endif // CHROME_BROWSER_VR_CONTROLLER_DELEGATE_H_ +#endif // CHROME_BROWSER_VR_INPUT_DELEGATE_H_
diff --git a/chrome/browser/vr/controller_delegate_for_testing.cc b/chrome/browser/vr/input_delegate_for_testing.cc similarity index 82% rename from chrome/browser/vr/controller_delegate_for_testing.cc rename to chrome/browser/vr/input_delegate_for_testing.cc index 2604fdbe..621c0fb 100644 --- a/chrome/browser/vr/controller_delegate_for_testing.cc +++ b/chrome/browser/vr/input_delegate_for_testing.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "chrome/browser/vr/controller_delegate_for_testing.h" +#include "chrome/browser/vr/input_delegate_for_testing.h" #include "chrome/browser/vr/input_event.h" #include "chrome/browser/vr/ui_interface.h" @@ -34,15 +34,18 @@ namespace vr { -ControllerDelegateForTesting::ControllerDelegateForTesting(UiInterface* ui) - : ui_(ui) { +InputDelegateForTesting::InputDelegateForTesting(UiInterface* ui) : ui_(ui) { cached_controller_model_.laser_direction = kForwardVector; SetOriginAndTransform(&cached_controller_model_); } -ControllerDelegateForTesting::~ControllerDelegateForTesting() = default; +InputDelegateForTesting::~InputDelegateForTesting() = default; -void ControllerDelegateForTesting::QueueControllerActionForTesting( +gfx::Transform InputDelegateForTesting::GetHeadPose() { + return gfx::Transform(); +} + +void InputDelegateForTesting::QueueControllerActionForTesting( ControllerTestInput controller_input) { DCHECK_NE(controller_input.action, VrControllerTestAction::kRevertToRealController); @@ -92,14 +95,13 @@ } } -bool ControllerDelegateForTesting::IsQueueEmpty() const { +bool InputDelegateForTesting::IsQueueEmpty() const { return controller_model_queue_.empty(); } -void ControllerDelegateForTesting::UpdateController( - const gfx::Transform& head_pose, - base::TimeTicks current_time, - bool is_webxr_frame) { +void InputDelegateForTesting::UpdateController(const gfx::Transform& head_pose, + base::TimeTicks current_time, + bool is_webxr_frame) { if (!controller_model_queue_.empty()) { cached_controller_model_ = controller_model_queue_.front(); controller_model_queue_.pop(); @@ -108,18 +110,18 @@ cached_controller_model_.last_button_timestamp = current_time; } -ControllerModel ControllerDelegateForTesting::GetModel( +ControllerModel InputDelegateForTesting::GetControllerModel( const gfx::Transform& head_pose) { return cached_controller_model_; } -InputEventList ControllerDelegateForTesting::GetGestures( +InputEventList InputDelegateForTesting::GetGestures( base::TimeTicks current_time) { return InputEventList(); } device::mojom::XRInputSourceStatePtr -ControllerDelegateForTesting::GetInputSourceState() { +InputDelegateForTesting::GetInputSourceState() { auto state = device::mojom::XRInputSourceState::New(); state->description = device::mojom::XRInputSourceDescription::New(); state->source_id = 1; @@ -130,8 +132,8 @@ return state; } -void ControllerDelegateForTesting::OnResume() {} +void InputDelegateForTesting::OnResume() {} -void ControllerDelegateForTesting::OnPause() {} +void InputDelegateForTesting::OnPause() {} } // namespace vr
diff --git a/chrome/browser/vr/controller_delegate_for_testing.h b/chrome/browser/vr/input_delegate_for_testing.h similarity index 62% rename from chrome/browser/vr/controller_delegate_for_testing.h rename to chrome/browser/vr/input_delegate_for_testing.h index deac978..8a37c66 100644 --- a/chrome/browser/vr/controller_delegate_for_testing.h +++ b/chrome/browser/vr/input_delegate_for_testing.h
@@ -2,13 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROME_BROWSER_VR_CONTROLLER_DELEGATE_FOR_TESTING_H_ -#define CHROME_BROWSER_VR_CONTROLLER_DELEGATE_FOR_TESTING_H_ +#ifndef CHROME_BROWSER_VR_INPUT_DELEGATE_FOR_TESTING_H_ +#define CHROME_BROWSER_VR_INPUT_DELEGATE_FOR_TESTING_H_ #include <queue> #include "base/macros.h" -#include "chrome/browser/vr/controller_delegate.h" +#include "chrome/browser/vr/input_delegate.h" #include "chrome/browser/vr/model/controller_model.h" namespace vr { @@ -16,19 +16,20 @@ class UiInterface; struct ControllerTestInput; -class ControllerDelegateForTesting : public ControllerDelegate { +class InputDelegateForTesting : public InputDelegate { public: - explicit ControllerDelegateForTesting(UiInterface* ui); - ~ControllerDelegateForTesting() override; + explicit InputDelegateForTesting(UiInterface* ui); + ~InputDelegateForTesting() override; void QueueControllerActionForTesting(ControllerTestInput controller_input); bool IsQueueEmpty() const; - // ControllerDelegate implementation. + // InputDelegate implementation. + gfx::Transform GetHeadPose() override; void UpdateController(const gfx::Transform& head_pose, base::TimeTicks current_time, bool is_webxr_frame) override; - ControllerModel GetModel(const gfx::Transform& head_pose) override; + ControllerModel GetControllerModel(const gfx::Transform& head_pose) override; InputEventList GetGestures(base::TimeTicks current_time) override; device::mojom::XRInputSourceStatePtr GetInputSourceState() override; void OnResume() override; @@ -39,9 +40,9 @@ std::queue<ControllerModel> controller_model_queue_; ControllerModel cached_controller_model_; - DISALLOW_COPY_AND_ASSIGN(ControllerDelegateForTesting); + DISALLOW_COPY_AND_ASSIGN(InputDelegateForTesting); }; } // namespace vr -#endif // CHROME_BROWSER_VR_CONTROLLER_DELEGATE_FOR_TESTING_H_ +#endif // CHROME_BROWSER_VR_INPUT_DELEGATE_FOR_TESTING_H_
diff --git a/chrome/browser/vr/scheduler_browser_renderer_interface.h b/chrome/browser/vr/scheduler_browser_renderer_interface.h index 51a6e3d..c60ad8e 100644 --- a/chrome/browser/vr/scheduler_browser_renderer_interface.h +++ b/chrome/browser/vr/scheduler_browser_renderer_interface.h
@@ -9,13 +9,19 @@ class TimeTicks; } +namespace gfx { +class Transform; +} + namespace vr { class SchedulerBrowserRendererInterface { public: virtual ~SchedulerBrowserRendererInterface() {} virtual void DrawBrowserFrame(base::TimeTicks current_time) = 0; - virtual void DrawWebXrFrame(base::TimeTicks current_time) = 0; + // Pass the same head_pose used to render the submitted WebXR frame. + virtual void DrawWebXrFrame(base::TimeTicks current_time, + const gfx::Transform& head_pose) = 0; virtual void ProcessControllerInputForWebXr(base::TimeTicks current_time) = 0; };
diff --git a/chrome/browser/vr/scheduler_delegate.h b/chrome/browser/vr/scheduler_delegate.h index 61076e21..f03e4fc4 100644 --- a/chrome/browser/vr/scheduler_delegate.h +++ b/chrome/browser/vr/scheduler_delegate.h
@@ -7,6 +7,7 @@ #include "base/callback.h" #include "base/time/time.h" +#include "chrome/browser/vr/frame_type.h" #include "chrome/browser/vr/vr_export.h" #include "device/vr/public/mojom/isolated_xr_service.mojom.h" #include "device/vr/public/mojom/vr_service.mojom.h" @@ -21,9 +22,7 @@ // The SchedulerDelegate is responsible for starting the draw calls of the // BrowserRenderer, given different signals, such as WebXR frames submitted or -// VSync events. It also provides head poses, obtained from the underlaying -// platform. -// TODO(acondor): Move head pose logic to the ControllerDelegate. +// VSync events. class VR_EXPORT SchedulerDelegate { public: virtual ~SchedulerDelegate() {} @@ -31,13 +30,14 @@ virtual void OnPause() = 0; virtual void OnResume() = 0; - virtual gfx::Transform GetHeadPose() = 0; virtual void OnExitPresent() = 0; virtual void OnTriggerEvent(bool pressed) = 0; virtual void SetWebXrMode(bool enabled) = 0; virtual void SetShowingVrDialog(bool showing) = 0; virtual void SetBrowserRenderer( SchedulerBrowserRendererInterface* browser_renderer) = 0; + virtual void SubmitDrawnFrame(FrameType frame_type, + const gfx::Transform& transform) = 0; virtual void AddInputSourceState( device::mojom::XRInputSourceStatePtr state) = 0; virtual void ConnectPresentingService(
diff --git a/chrome/browser/win/chrome_process_finder.cc b/chrome/browser/win/chrome_process_finder.cc index 4fdea2a..b29490a2 100644 --- a/chrome/browser/win/chrome_process_finder.cc +++ b/chrome/browser/win/chrome_process_finder.cc
@@ -11,6 +11,7 @@ #include "base/files/file_path.h" #include "base/files/file_util.h" #include "base/logging.h" +#include "base/numerics/safe_conversions.h" #include "base/process/process.h" #include "base/process/process_info.h" #include "base/strings/string_number_conversions.h" @@ -25,7 +26,7 @@ namespace { -int timeout_in_milliseconds = 20 * 1000; +uint32_t g_timeout_in_milliseconds = 20 * 1000; } // namespace @@ -74,7 +75,7 @@ DWORD_PTR result = 0; if (::SendMessageTimeout(remote_window, WM_COPYDATA, NULL, reinterpret_cast<LPARAM>(&cds), SMTO_ABORTIFHUNG, - timeout_in_milliseconds, &result)) { + g_timeout_in_milliseconds, &result)) { return result ? NOTIFY_SUCCESS : NOTIFY_FAILED; } @@ -93,8 +94,9 @@ base::TimeDelta SetNotificationTimeoutForTesting(base::TimeDelta new_timeout) { base::TimeDelta old_timeout = - base::TimeDelta::FromMilliseconds(timeout_in_milliseconds); - timeout_in_milliseconds = new_timeout.InMilliseconds(); + base::TimeDelta::FromMilliseconds(g_timeout_in_milliseconds); + g_timeout_in_milliseconds = + base::checked_cast<uint32_t>(new_timeout.InMilliseconds()); return old_timeout; }
diff --git a/chrome/chrome_cleaner/constants/BUILD.gn b/chrome/chrome_cleaner/constants/BUILD.gn index 68783b4..d2e8e24 100644 --- a/chrome/chrome_cleaner/constants/BUILD.gn +++ b/chrome/chrome_cleaner/constants/BUILD.gn
@@ -3,15 +3,8 @@ # found in the LICENSE file. import("//build/config/chrome_build.gni") -import("//build/util/lastchange.gni") import("//build/util/process_version.gni") - -declare_args() { - reporter_branding_path = "REPORTER_BRANDING" - cleaner_branding_path = "CLEANER_BRANDING" - version_path = "VERSION" - lastchange_path = lastchange_file -} +import("//chrome/chrome_cleaner/constants/args.gni") process_version("version_header") { sources = [
diff --git a/chrome/chrome_cleaner/constants/CLEANER_BRANDING b/chrome/chrome_cleaner/constants/CLEANER_BRANDING index be44837..0d0e3bc1 100644 --- a/chrome/chrome_cleaner/constants/CLEANER_BRANDING +++ b/chrome/chrome_cleaner/constants/CLEANER_BRANDING
@@ -4,4 +4,4 @@ PRODUCT_SHORTNAME=Chrome Cleanup Tool PRODUCT_INSTALLER_FULLNAME=Chrome Cleanup Tool Installer PRODUCT_INSTALLER_SHORTNAME=Chrome Cleanup Tool Installer -COPYRIGHT=Copyright 2015 Google Inc. All Rights Reserved. +COPYRIGHT=Copyright 2018 The Chromium Authors. All rights reserved.
diff --git a/chrome/chrome_cleaner/constants/REPORTER_BRANDING b/chrome/chrome_cleaner/constants/REPORTER_BRANDING index ce00d89f..5a8e29e 100644 --- a/chrome/chrome_cleaner/constants/REPORTER_BRANDING +++ b/chrome/chrome_cleaner/constants/REPORTER_BRANDING
@@ -4,4 +4,4 @@ PRODUCT_SHORTNAME=Software Reporter Tool PRODUCT_INSTALLER_FULLNAME=Software Reporter Tool Installer PRODUCT_INSTALLER_SHORTNAME=Software Reporter Tool Installer -COPYRIGHT=Copyright 2015 Google Inc. All Rights Reserved. +COPYRIGHT=Copyright 2018 The Chromium Authors. All rights reserved.
diff --git a/chrome/chrome_cleaner/constants/args.gni b/chrome/chrome_cleaner/constants/args.gni new file mode 100644 index 0000000..06fdb05 --- /dev/null +++ b/chrome/chrome_cleaner/constants/args.gni
@@ -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. + +import("//build/util/lastchange.gni") + +declare_args() { + reporter_branding_path = "//chrome/chrome_cleaner/constants/REPORTER_BRANDING" + cleaner_branding_path = "//chrome/chrome_cleaner/constants/CLEANER_BRANDING" + version_path = "//chrome/chrome_cleaner/constants/VERSION" + lastchange_path = lastchange_file +}
diff --git a/chrome/chrome_cleaner/logging/proto/removal_status.proto b/chrome/chrome_cleaner/logging/proto/removal_status.proto index 1560763..a25fbc0 100644 --- a/chrome/chrome_cleaner/logging/proto/removal_status.proto +++ b/chrome/chrome_cleaner/logging/proto/removal_status.proto
@@ -33,4 +33,19 @@ // File deletion was requested, not performed due to non-executable file // extension, but reported as success. REMOVAL_STATUS_NOT_REMOVED_INACTIVE_EXTENSION = 9; + // There is an error in the archiver. + REMOVAL_STATUS_ERROR_IN_ARCHIVER = 10; +} + +// Quarantine status for file. +enum QuarantineStatus { + QUARANTINE_STATUS_UNSPECIFIED = 0; + // The quarantine feature is disabled. + QUARANTINE_STATUS_DISABLED = 1; + // The file is quarantined. + QUARANTINE_STATUS_QUARANTINED = 2; + // Removal of the file is done without quarantining. + QUARANTINE_STATUS_SKIPPED = 3; + // There is an error and the quarantine operation failed. + QUARANTINE_STATUS_ERROR = 4; }
diff --git a/chrome/chrome_cleaner/logging/proto/shared_data.proto b/chrome/chrome_cleaner/logging/proto/shared_data.proto index 3e010fb1..eebc194 100644 --- a/chrome/chrome_cleaner/logging/proto/shared_data.proto +++ b/chrome/chrome_cleaner/logging/proto/shared_data.proto
@@ -103,13 +103,16 @@ } // Information related to a matched UwS file. -// Next tag: 3. +// Next tag: 4. message MatchedFile { optional FileInformation file_information = 1; // Indication if the file was matched only, removed, scheduled for removal, // etc. optional RemovalStatus removal_status = 2; + + // Indicates the quarantine status of the file. + optional QuarantineStatus quarantine_status = 3; } // Information related to a matched UwS folder.
diff --git a/chrome/chrome_cleaner/os/file_removal_status_updater.cc b/chrome/chrome_cleaner/os/file_removal_status_updater.cc index ff97ef6..268d6260 100644 --- a/chrome/chrome_cleaner/os/file_removal_status_updater.cc +++ b/chrome/chrome_cleaner/os/file_removal_status_updater.cc
@@ -51,6 +51,7 @@ {REMOVAL_STATUS_NOT_FOUND, kOkToOverride}, {REMOVAL_STATUS_SCHEDULED_FOR_REMOVAL_FALLBACK, kOkToOverride}, {REMOVAL_STATUS_NOT_REMOVED_INACTIVE_EXTENSION, kOkToOverride}, + {REMOVAL_STATUS_ERROR_IN_ARCHIVER, kOkToOverride}, }; (*overriding_decisions)[REMOVAL_STATUS_MATCHED_ONLY] = { @@ -64,6 +65,7 @@ {REMOVAL_STATUS_NOT_FOUND, kOkToOverride}, {REMOVAL_STATUS_SCHEDULED_FOR_REMOVAL_FALLBACK, kOkToOverride}, {REMOVAL_STATUS_NOT_REMOVED_INACTIVE_EXTENSION, kOkToOverride}, + {REMOVAL_STATUS_ERROR_IN_ARCHIVER, kOkToOverride}, }; (*overriding_decisions)[REMOVAL_STATUS_BLACKLISTED_FOR_REMOVAL] = { @@ -77,6 +79,7 @@ {REMOVAL_STATUS_NOT_FOUND, kNotAllowed}, {REMOVAL_STATUS_SCHEDULED_FOR_REMOVAL_FALLBACK, kNotAllowed}, {REMOVAL_STATUS_NOT_REMOVED_INACTIVE_EXTENSION, kNotAllowed}, + {REMOVAL_STATUS_ERROR_IN_ARCHIVER, kNotAllowed}, }; (*overriding_decisions)[REMOVAL_STATUS_REMOVED] = { @@ -90,6 +93,7 @@ {REMOVAL_STATUS_NOT_FOUND, kSkip}, {REMOVAL_STATUS_SCHEDULED_FOR_REMOVAL_FALLBACK, kOkToOverride}, {REMOVAL_STATUS_NOT_REMOVED_INACTIVE_EXTENSION, kNotAllowed}, + {REMOVAL_STATUS_ERROR_IN_ARCHIVER, kNotAllowed}, }; (*overriding_decisions)[REMOVAL_STATUS_FAILED_TO_REMOVE] = { @@ -103,6 +107,7 @@ {REMOVAL_STATUS_NOT_FOUND, kOkToOverride}, {REMOVAL_STATUS_SCHEDULED_FOR_REMOVAL_FALLBACK, kOkToOverride}, {REMOVAL_STATUS_NOT_REMOVED_INACTIVE_EXTENSION, kNotAllowed}, + {REMOVAL_STATUS_ERROR_IN_ARCHIVER, kOkToOverride}, }; (*overriding_decisions)[REMOVAL_STATUS_SCHEDULED_FOR_REMOVAL] = { @@ -116,6 +121,7 @@ {REMOVAL_STATUS_NOT_FOUND, kOkToOverride}, {REMOVAL_STATUS_SCHEDULED_FOR_REMOVAL_FALLBACK, kOkToOverride}, {REMOVAL_STATUS_NOT_REMOVED_INACTIVE_EXTENSION, kNotAllowed}, + {REMOVAL_STATUS_ERROR_IN_ARCHIVER, kSkip}, }; (*overriding_decisions)[REMOVAL_STATUS_FAILED_TO_SCHEDULE_FOR_REMOVAL] = { @@ -129,6 +135,7 @@ {REMOVAL_STATUS_NOT_FOUND, kOkToOverride}, {REMOVAL_STATUS_SCHEDULED_FOR_REMOVAL_FALLBACK, kOkToOverride}, {REMOVAL_STATUS_NOT_REMOVED_INACTIVE_EXTENSION, kNotAllowed}, + {REMOVAL_STATUS_ERROR_IN_ARCHIVER, kOkToOverride}, }; (*overriding_decisions)[REMOVAL_STATUS_NOT_FOUND] = { @@ -142,6 +149,7 @@ {REMOVAL_STATUS_NOT_FOUND, kOkToOverride}, {REMOVAL_STATUS_SCHEDULED_FOR_REMOVAL_FALLBACK, kOkToOverride}, {REMOVAL_STATUS_NOT_REMOVED_INACTIVE_EXTENSION, kNotAllowed}, + {REMOVAL_STATUS_ERROR_IN_ARCHIVER, kOkToOverride}, }; (*overriding_decisions)[REMOVAL_STATUS_SCHEDULED_FOR_REMOVAL_FALLBACK] = { @@ -155,6 +163,7 @@ {REMOVAL_STATUS_NOT_FOUND, kOkToOverride}, {REMOVAL_STATUS_SCHEDULED_FOR_REMOVAL_FALLBACK, kOkToOverride}, {REMOVAL_STATUS_NOT_REMOVED_INACTIVE_EXTENSION, kNotAllowed}, + {REMOVAL_STATUS_ERROR_IN_ARCHIVER, kSkip}, }; (*overriding_decisions)[REMOVAL_STATUS_NOT_REMOVED_INACTIVE_EXTENSION] = { @@ -168,6 +177,21 @@ {REMOVAL_STATUS_NOT_FOUND, kNotAllowed}, {REMOVAL_STATUS_SCHEDULED_FOR_REMOVAL_FALLBACK, kNotAllowed}, {REMOVAL_STATUS_NOT_REMOVED_INACTIVE_EXTENSION, kNotAllowed}, + {REMOVAL_STATUS_ERROR_IN_ARCHIVER, kNotAllowed}, + }; + + (*overriding_decisions)[REMOVAL_STATUS_ERROR_IN_ARCHIVER] = { + {REMOVAL_STATUS_UNSPECIFIED, kNotAllowed}, + {REMOVAL_STATUS_MATCHED_ONLY, kNotAllowed}, + {REMOVAL_STATUS_BLACKLISTED_FOR_REMOVAL, kNotAllowed}, + {REMOVAL_STATUS_REMOVED, kOkToOverride}, + {REMOVAL_STATUS_FAILED_TO_REMOVE, kOkToOverride}, + {REMOVAL_STATUS_SCHEDULED_FOR_REMOVAL, kOkToOverride}, + {REMOVAL_STATUS_FAILED_TO_SCHEDULE_FOR_REMOVAL, kOkToOverride}, + {REMOVAL_STATUS_NOT_FOUND, kOkToOverride}, + {REMOVAL_STATUS_SCHEDULED_FOR_REMOVAL_FALLBACK, kOkToOverride}, + {REMOVAL_STATUS_NOT_REMOVED_INACTIVE_EXTENSION, kNotAllowed}, + {REMOVAL_STATUS_ERROR_IN_ARCHIVER, kOkToOverride}, }; return overriding_decisions; }(); @@ -194,7 +218,7 @@ // Force update of RemovalStatusCanBeOverriddenBy() if RemovalStatus enum // changes. REMOVAL_STATUS_UNSPECIFIED should never be set. DCHECK(status > REMOVAL_STATUS_UNSPECIFIED && - status <= REMOVAL_STATUS_NOT_REMOVED_INACTIVE_EXTENSION); + status <= REMOVAL_STATUS_ERROR_IN_ARCHIVER); const base::string16 sanitized_path = SanitizePath(path);
diff --git a/chrome/chrome_cleaner/settings/settings.cc b/chrome/chrome_cleaner/settings/settings.cc index 114b224..b7cee01 100644 --- a/chrome/chrome_cleaner/settings/settings.cc +++ b/chrome/chrome_cleaner/settings/settings.cc
@@ -12,7 +12,7 @@ #include "chrome/chrome_cleaner/constants/chrome_cleaner_switches.h" #include "chrome/chrome_cleaner/engines/engine_resources.h" #include "chrome/chrome_cleaner/settings/settings_definitions.h" -#include "mojo/public/cpp/platform/named_platform_channel.h" +#include "mojo/public/cpp/platform/platform_channel.h" namespace chrome_cleaner { @@ -322,7 +322,7 @@ chrome_mojo_pipe_token_ = command_line.GetSwitchValueASCII( chrome_cleaner::kChromeMojoPipeTokenSwitch); has_parent_pipe_handle_ = - command_line.HasSwitch(mojo::NamedPlatformChannel::kNamedHandleSwitch); + command_line.HasSwitch(mojo::PlatformChannel::kHandleSwitch); #if !defined(CHROME_CLEANER_OFFICIAL_BUILD) remove_report_only_uws_ = command_line.HasSwitch(kRemoveScanOnlyUwS); #endif
diff --git a/chrome/common/DEPS b/chrome/common/DEPS index d183792..6c567654 100644 --- a/chrome/common/DEPS +++ b/chrome/common/DEPS
@@ -22,7 +22,7 @@ "+components/metrics/call_stack_profile_metrics_provider.h", "+components/metrics/call_stack_profile_params.h", "+components/metrics/child_call_stack_profile_collector.h", - "+components/metrics/call_stack_profile_builder.h", + "+components/metrics/legacy_call_stack_profile_builder.h", "+components/metrics/client_info.h", "+components/metrics/metrics_pref_names.h", "+components/nacl/common",
diff --git a/chrome/common/extensions/chrome_extensions_client.cc b/chrome/common/extensions/chrome_extensions_client.cc index 254dc0a..c38ad97 100644 --- a/chrome/common/extensions/chrome_extensions_client.cc +++ b/chrome/common/extensions/chrome_extensions_client.cc
@@ -88,8 +88,6 @@ } void ChromeExtensionsClient::Initialize() { - SCOPED_UMA_HISTOGRAM_TIMER("Extensions.ChromeExtensionsClientInitTime"); - // Set up the scripting whitelist. // Whitelist ChromeVox, an accessibility extension from Google that needs // the ability to script webui pages. This is temporary and is not
diff --git a/chrome/common/heap_profiler_controller.cc b/chrome/common/heap_profiler_controller.cc index 3c135bd..7dbe01ff 100644 --- a/chrome/common/heap_profiler_controller.cc +++ b/chrome/common/heap_profiler_controller.cc
@@ -15,7 +15,7 @@ #include "base/sampling_heap_profiler/sampling_heap_profiler.h" #include "base/strings/string_number_conversions.h" #include "base/task/post_task.h" -#include "components/metrics/call_stack_profile_builder.h" +#include "components/metrics/legacy_call_stack_profile_builder.h" #include "content/public/common/content_switches.h" namespace { @@ -104,7 +104,7 @@ metrics::CallStackProfileParams::BROWSER_PROCESS, metrics::CallStackProfileParams::UNKNOWN_THREAD, metrics::CallStackProfileParams::PERIODIC_HEAP_COLLECTION); - metrics::CallStackProfileBuilder profile_builder(params); + metrics::LegacyCallStackProfileBuilder profile_builder(params); for (const base::SamplingHeapProfiler::Sample& sample : samples) { std::vector<base::StackSamplingProfiler::Frame> frames;
diff --git a/chrome/common/heap_profiler_controller_unittest.cc b/chrome/common/heap_profiler_controller_unittest.cc index 7e6b22b..be338561 100644 --- a/chrome/common/heap_profiler_controller_unittest.cc +++ b/chrome/common/heap_profiler_controller_unittest.cc
@@ -8,7 +8,7 @@ #include "base/sampling_heap_profiler/poisson_allocation_sampler.h" #include "base/test/bind_test_util.h" #include "base/test/test_mock_time_task_runner.h" -#include "components/metrics/call_stack_profile_builder.h" +#include "components/metrics/legacy_call_stack_profile_builder.h" #include "content/public/common/content_switches.h" #include "testing/gtest/include/gtest/gtest.h" #include "third_party/metrics_proto/sampled_profile.pb.h" @@ -21,7 +21,7 @@ command_line->AppendSwitchASCII(switches::kSamplingHeapProfiler, "1"); int profiles_collected = 0; - metrics::CallStackProfileBuilder::SetBrowserProcessReceiverCallback( + metrics::LegacyCallStackProfileBuilder::SetBrowserProcessReceiverCallback( base::BindLambdaForTesting( [&](base::TimeTicks time, metrics::SampledProfile profile) { EXPECT_EQ(metrics::SampledProfile::PERIODIC_HEAP_COLLECTION,
diff --git a/chrome/common/thread_profiler.cc b/chrome/common/thread_profiler.cc index 2eba1e9b..af771ba2 100644 --- a/chrome/common/thread_profiler.cc +++ b/chrome/common/thread_profiler.cc
@@ -21,8 +21,8 @@ #include "services/service_manager/embedder/switches.h" #include "services/service_manager/public/cpp/connector.h" -using CallStackProfileBuilder = metrics::CallStackProfileBuilder; using CallStackProfileParams = metrics::CallStackProfileParams; +using LegacyCallStackProfileBuilder = metrics::LegacyCallStackProfileBuilder; using StackSamplingProfiler = base::StackSamplingProfiler; namespace { @@ -150,7 +150,8 @@ void ThreadProfiler::SetBrowserProcessReceiverCallback( const base::RepeatingCallback<void(base::TimeTicks, metrics::SampledProfile)>& callback) { - metrics::CallStackProfileBuilder::SetBrowserProcessReceiverCallback(callback); + metrics::LegacyCallStackProfileBuilder::SetBrowserProcessReceiverCallback( + callback); } // static @@ -164,7 +165,7 @@ metrics::mojom::CallStackProfileCollectorPtr browser_interface; connector->BindInterface(content::mojom::kBrowserServiceName, &browser_interface); - CallStackProfileBuilder::SetParentProfileCollectorForChildProcess( + LegacyCallStackProfileBuilder::SetParentProfileCollectorForChildProcess( std::move(browser_interface)); } @@ -197,9 +198,9 @@ if (!StackSamplingConfiguration::Get()->IsProfilerEnabledForCurrentProcess()) return; - auto profile_builder = std::make_unique<CallStackProfileBuilder>( - CallStackProfileParams(GetProcess(), thread, - CallStackProfileParams::PROCESS_STARTUP)); + auto profile_builder = + std::make_unique<LegacyCallStackProfileBuilder>(CallStackProfileParams( + GetProcess(), thread, CallStackProfileParams::PROCESS_STARTUP)); startup_profiler_ = std::make_unique<StackSamplingProfiler>( base::PlatformThread::CurrentId(), kSamplingParams, @@ -244,7 +245,7 @@ void ThreadProfiler::StartPeriodicSamplingCollection() { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); // NB: Destroys the previous profiler as side effect. - auto profile_builder = std::make_unique<CallStackProfileBuilder>( + auto profile_builder = std::make_unique<LegacyCallStackProfileBuilder>( periodic_profile_params_, base::BindOnce(&ThreadProfiler::OnPeriodicCollectionCompleted, owning_thread_task_runner_, weak_factory_.GetWeakPtr()));
diff --git a/chrome/common/thread_profiler.h b/chrome/common/thread_profiler.h index 7209775..f1cb7e7 100644 --- a/chrome/common/thread_profiler.h +++ b/chrome/common/thread_profiler.h
@@ -14,8 +14,8 @@ #include "base/threading/thread.h" #include "base/threading/thread_checker.h" #include "base/time/time.h" -#include "components/metrics/call_stack_profile_builder.h" #include "components/metrics/call_stack_profile_params.h" +#include "components/metrics/legacy_call_stack_profile_builder.h" namespace service_manager { class Connector;
diff --git a/chrome/service/service_utility_process_host.cc b/chrome/service/service_utility_process_host.cc index 7ea4f211..e27ac00 100644 --- a/chrome/service/service_utility_process_host.cc +++ b/chrome/service/service_utility_process_host.cc
@@ -428,8 +428,6 @@ if (sandbox) { mojo::PlatformChannel channel; - mojo::PlatformChannelEndpoint client_endpoint = - channel.TakeRemoteEndpoint(); base::HandlesToInheritVector handles; channel.PrepareToPassRemoteEndpoint(&handles, cmd_line);
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index 37dba14..c6870bf 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -673,6 +673,7 @@ "../browser/net/profile_network_context_service_browsertest.cc", "../browser/net/proxy_browsertest.cc", "../browser/net/reporting_browsertest.cc", + "../browser/net/system_network_context_manager_browsertest.cc", "../browser/net/variations_http_headers_browsertest.cc", "../browser/net/websocket_browsertest.cc", "../browser/no_background_tasks_browsertest.cc", @@ -2323,6 +2324,7 @@ "../browser/android/explore_sites/explore_sites_feature_unittest.cc", "../browser/android/explore_sites/explore_sites_schema_unittest.cc", "../browser/android/explore_sites/explore_sites_store_unittest.cc", + "../browser/android/explore_sites/import_catalog_task_unittest.cc", "../browser/android/explore_sites/ntp_json_fetcher_unittest.cc", "../browser/android/history_report/data_observer_unittest.cc", "../browser/android/history_report/delta_file_backend_leveldb_unittest.cc", @@ -3650,6 +3652,7 @@ "../browser/media_galleries/chromeos/mtp_device_object_enumerator_unittest.cc", "../browser/metrics/extensions_metrics_provider_unittest.cc", "../browser/notifications/notification_system_observer_unittest.cc", + "../browser/policy/chrome_extension_policy_migrator_unittest.cc", "../browser/renderer_context_menu/context_menu_content_type_unittest.cc", "../browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_config_unittest.cc", "../browser/safe_browsing/settings_reset_prompt/settings_reset_prompt_model_unittest.cc", @@ -4999,7 +5002,6 @@ "../browser/chromeos/accessibility/select_to_speak_browsertest.cc", "../browser/chromeos/accessibility/spoken_feedback_browsertest.cc", "../browser/chromeos/accessibility/sticky_keys_browsertest.cc", - "../browser/chromeos/accessibility/switch_access_browsertest.cc", "../browser/chromeos/input_method/textinput_browsertest.cc", "../browser/chromeos/input_method/textinput_surroundingtext_browsertest.cc", "../browser/chromeos/input_method/textinput_test_helper.cc",
diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeActivityTestRule.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeActivityTestRule.java index 836c467..0c6f1a6f 100644 --- a/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeActivityTestRule.java +++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeActivityTestRule.java
@@ -57,6 +57,7 @@ import org.chromium.content_public.browser.test.util.JavaScriptUtils; import org.chromium.content_public.browser.test.util.RenderProcessLimit; import org.chromium.net.test.EmbeddedTestServer; +import org.chromium.ui.KeyboardVisibilityDelegate; import org.chromium.ui.base.PageTransition; import java.lang.reflect.AnnotatedElement; @@ -389,8 +390,8 @@ } /** - * Starts the Main activity as if it was started from an external application, on the specified - * URL. + * Starts the Main activity as if it was started from an external application, on the + * specified URL. */ public void startMainActivityFromExternalApp(String url, String appId) throws InterruptedException { @@ -636,6 +637,16 @@ return getActivity().getActivityTab().getWebContents(); } + /** + * @return {@link KeyboardVisibilityDelegate} for the activity. + */ + public KeyboardVisibilityDelegate getKeyboardDelegate() { + if (getActivity().getWindowAndroid() == null) { + return KeyboardVisibilityDelegate.getInstance(); + } + return getActivity().getWindowAndroid().getKeyboardDelegate(); + } + public void setActivity(T chromeActivity) { mSetActivity = chromeActivity; }
diff --git a/chrome/test/chromedriver/element_util.cc b/chrome/test/chromedriver/element_util.cc index 54ef4c4..289ce6d0 100644 --- a/chrome/test/chromedriver/element_util.cc +++ b/chrome/test/chromedriver/element_util.cc
@@ -662,18 +662,8 @@ " return document.evaluate(xpath, document, null," " XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;" "}"; - bool needs_special_oopif_handling = - !session->chrome->GetBrowserInfo()->is_android && - session->chrome->GetBrowserInfo()->major_version <= 65; - bool has_saved_region_offset = false; - WebPoint saved_region_offset; for (std::list<FrameInfo>::reverse_iterator rit = session->frames.rbegin(); rit != session->frames.rend(); ++rit) { - if (needs_special_oopif_handling && !has_saved_region_offset && - web_view->IsOOPIF(rit->frame_id)) { - saved_region_offset = region_offset; - has_saved_region_offset = true; - } base::ListValue args; args.AppendString( base::StringPrintf("//*[@cd_frame_id_ = '%s']", @@ -707,8 +697,6 @@ if (status.IsError()) return status; } - if (has_saved_region_offset) - region_offset = saved_region_offset; *location = region_offset; return Status(kOk); }
diff --git a/chrome/test/chromedriver/server/chromedriver_server.cc b/chrome/test/chromedriver/server/chromedriver_server.cc index 567ef7e..65b0f4b 100644 --- a/chrome/test/chromedriver/server/chromedriver_server.cc +++ b/chrome/test/chromedriver/server/chromedriver_server.cc
@@ -141,13 +141,12 @@ void HandleRequestOnCmdThread( HttpHandler* handler, - const std::vector<std::string>& whitelisted_ips, + const std::vector<net::IPAddress>& whitelisted_ips, const net::HttpServerRequestInfo& request, const HttpResponseSenderFunc& send_response_func) { if (!whitelisted_ips.empty()) { - std::string peer_address = request.peer.ToStringWithoutPort(); - if (peer_address != net::IPAddress::IPv4Localhost().ToString() && - !base::ContainsValue(whitelisted_ips, peer_address)) { + const net::IPAddress& peer_address = request.peer.address(); + if (!base::ContainsValue(whitelisted_ips, peer_address)) { LOG(WARNING) << "unauthorized access from " << request.peer.ToString(); std::unique_ptr<net::HttpServerResponseInfo> response( new net::HttpServerResponseInfo(net::HTTP_UNAUTHORIZED)); @@ -294,7 +293,7 @@ void RunServer(uint16_t port, bool allow_remote, - const std::vector<std::string>& whitelisted_ips, + const std::vector<net::IPAddress>& whitelisted_ips, const std::string& url_base, int adb_port) { base::Thread io_thread("ChromeDriver IO"); @@ -342,7 +341,7 @@ uint16_t port = 9515; int adb_port = 5037; bool allow_remote = false; - std::vector<std::string> whitelisted_ips; + std::vector<net::IPAddress> whitelisted_ips; std::string url_base; if (cmd_line->HasSwitch("h") || cmd_line->HasSwitch("help")) { std::string options; @@ -369,7 +368,7 @@ "url-base", "base URL path prefix for commands, e.g. wd/url", "whitelisted-ips", - "comma-separated whitelist of remote IPv4 addresses " + "comma-separated whitelist of remote IP addresses " "which are allowed to connect to ChromeDriver", }; for (size_t i = 0; i < arraysize(kOptionAndDescriptions) - 1; i += 2) { @@ -410,8 +409,34 @@ if (cmd_line->HasSwitch("whitelisted-ips")) { allow_remote = true; std::string whitelist = cmd_line->GetSwitchValueASCII("whitelisted-ips"); - whitelisted_ips = base::SplitString( + std::vector<std::string> whitelist_ip_strs = base::SplitString( whitelist, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); + if (!whitelist_ip_strs.empty()) { + // Convert IP address strings into net::IPAddress objects. + for (const auto& ip_str : whitelist_ip_strs) { + base::StringPiece ip_str_piece(ip_str); + if (ip_str_piece.size() >= 2 && ip_str_piece.front() == '[' && + ip_str_piece.back() == ']') { + ip_str_piece.remove_prefix(1); + ip_str_piece.remove_suffix(1); + } + net::IPAddress ip; + if (!ip.AssignFromIPLiteral(ip_str_piece)) { + printf("Invalid IP address %s. Exiting...\n", ip_str.c_str()); + return 1; + } + whitelisted_ips.push_back(ip); + if (ip.IsIPv4()) { + whitelisted_ips.push_back(net::ConvertIPv4ToIPv4MappedIPv6(ip)); + } else if (ip.IsIPv4MappedIPv6()) { + whitelisted_ips.push_back(net::ConvertIPv4MappedIPv6ToIPv4(ip)); + } + } + whitelisted_ips.push_back(net::IPAddress::IPv4Localhost()); + whitelisted_ips.push_back(net::IPAddress::IPv6Localhost()); + whitelisted_ips.push_back( + net::ConvertIPv4ToIPv4MappedIPv6(net::IPAddress::IPv4Localhost())); + } } if (!cmd_line->HasSwitch("silent") && cmd_line->GetSwitchValueASCII("log-level") != "OFF") {
diff --git a/chrome/test/chromedriver/test/test_expectations b/chrome/test/chromedriver/test/test_expectations index 2d7d34dd..0bf601f 100644 --- a/chrome/test/chromedriver/test/test_expectations +++ b/chrome/test/chromedriver/test/test_expectations
@@ -37,6 +37,12 @@ _OS_NEGATIVE_FILTER['mac'] = [ # https://bugs.chromium.org/p/chromedriver/issues/detail?id=2480 'TakesScreenshotTest.testShouldCaptureScreenshotOfCurrentViewport', + + # https://crbug.com/868599 + 'WindowTest.testCanMaximizeTheWindowFromFrame', + 'WindowTest.testCanMaximizeTheWindowFromIframe', + 'WindowTest.testSetsTheSizeOfTheCurrentWindow', + 'WindowTest.testCanMaximizeTheWindow', ] _SPECIFIC_OS_REVISION_NEGATIVE_FILTER = {} @@ -69,6 +75,12 @@ 'TakesScreenshotTest.testShouldCaptureScreenshotAtFramePage', 'TakesScreenshotTest.testShouldCaptureScreenshotAtFramePageAfterSwitching', 'TakesScreenshotTest.testShouldCaptureScreenshotAtIFramePageAfterSwitching', + + # Tests require multiple sessions, not supported on Android' + 'CorrectEventFiringTest.testShouldFireFocusEventInNonTopmostWindow', + 'PerformanceLoggingTest.testLogsSingleHttpCommand', + 'ProxySettingTest.*', + # https://bugs.chromium.org/p/chromedriver/issues/detail?id=2376 'ImplicitWaitTest.testShouldImplicitlyWaitForASingleElement', @@ -165,17 +177,22 @@ _OS_NEGATIVE_FILTER['android:chrome_stable'] = ( _OS_NEGATIVE_FILTER['android:chrome'] + [ + # https://bugs.chromium.org/p/chromedriver/issues/detail?id=2480 + 'CorrectEventFiringTest.testClickingAnUnfocusableChildShouldNotBlurTheParent', ] ) _OS_NEGATIVE_FILTER['android:chrome_beta'] = ( _OS_NEGATIVE_FILTER['android:chrome'] + [ # https://bugs.chromium.org/p/chromedriver/issues/detail?id=2480 'CorrectEventFiringTest.testClickingAnUnfocusableChildShouldNotBlurTheParent', - 'CorrectEventFiringTest.testShouldFireFocusEventInNonTopmostWindow', ] ) _OS_NEGATIVE_FILTER['android:chromium'] = ( _OS_NEGATIVE_FILTER['android:chrome'] + [ + # https://bugs.chromium.org/p/chromedriver/issues/detail?id=2580 + 'LocalStorageTest.*', + 'LocationContextTest.*', + 'SessionStorageTest.*', ] ) _OS_NEGATIVE_FILTER['android:chromedriver_webview_shell'] = (
diff --git a/chrome/test/data/webui/settings/all_sites_tests.js b/chrome/test/data/webui/settings/all_sites_tests.js index fe83aea..c9ef41d2 100644 --- a/chrome/test/data/webui/settings/all_sites_tests.js +++ b/chrome/test/data/webui/settings/all_sites_tests.js
@@ -105,7 +105,16 @@ return browserProxy.whenCalled('getAllSites').then(() => { // Use resolver to ensure that the list container is populated. const resolver = new PromiseResolver(); - testElement.async(resolver.resolve); + // In Polymer2, we need to wait until after the next render for the list + // to be populated. TODO (rbpotter): Remove conditional when migration to + // Polymer 2 is completed. + if (Polymer.DomIf) { + Polymer.RenderStatus.beforeNextRender(testElement, () => { + resolver.resolve(); + }); + } else { + testElement.async(resolver.resolve); + } return resolver.promise.then(() => { assertEquals(3, testElement.siteGroupMap.size);
diff --git a/chrome/test/data/webui/settings/fingerprint_browsertest_chromeos.js b/chrome/test/data/webui/settings/fingerprint_browsertest_chromeos.js index 236a5eab..87a507a1 100644 --- a/chrome/test/data/webui/settings/fingerprint_browsertest_chromeos.js +++ b/chrome/test/data/webui/settings/fingerprint_browsertest_chromeos.js
@@ -168,7 +168,7 @@ // First tap on the sensor to start fingerprint enrollment. browserProxy.scanReceived( settings.FingerprintResultType.SUCCESS, false, 20 /* percent */); - assertEquals(0, dialog.percentComplete_); + assertEquals(20, dialog.percentComplete_); assertEquals(settings.FingerprintSetupStep.MOVE_FINGER, dialog.step_); assertTrue(dialog.$$('#scannerLocation').hidden); assertFalse(dialog.$$('#arc').hidden); @@ -177,7 +177,7 @@ // problem message should be visible. browserProxy.scanReceived( settings.FingerprintResultType.TOO_FAST, false, 20 /* percent */); - assertEquals(0, dialog.percentComplete_); + assertEquals(20, dialog.percentComplete_); assertEquals( 'visible', window.getComputedStyle(dialog.$$('#messageDiv')).visibility);
diff --git a/chromecast/graphics/BUILD.gn b/chromecast/graphics/BUILD.gn index 2a80cc9..d241a63 100644 --- a/chromecast/graphics/BUILD.gn +++ b/chromecast/graphics/BUILD.gn
@@ -8,6 +8,7 @@ cast_source_set("graphics") { sources = [ + "cast_touch_activity_observer.h", "cast_window_manager.h", "gestures/cast_gesture_handler.cc", "gestures/cast_gesture_handler.h", @@ -44,6 +45,8 @@ "accessibility/partial_magnification_controller.h", "cast_focus_client_aura.cc", "cast_focus_client_aura.h", + "cast_touch_event_gate.cc", + "cast_touch_event_gate.h", "cast_window_manager_aura.cc", "cast_window_manager_aura.h", "gestures/cast_system_gesture_dispatcher.cc", @@ -114,6 +117,7 @@ "accessibility/accessibility_focus_ring_controller_unittest.cc", "accessibility/partial_magnification_controller_unittest.cc", "cast_focus_client_aura_test.cc", + "cast_touch_event_gate_test.cc", "cast_views_test.cc", "cast_window_manager_aura_test.cc", "gestures/cast_system_gesture_dispatcher_test.cc",
diff --git a/chromecast/graphics/cast_touch_activity_observer.h b/chromecast/graphics/cast_touch_activity_observer.h new file mode 100644 index 0000000..f08fa02 --- /dev/null +++ b/chromecast/graphics/cast_touch_activity_observer.h
@@ -0,0 +1,24 @@ +// 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 CHROMECAST_GRAPHICS_CAST_TOUCH_ACTIVITY_OBSERVER_H_ +#define CHROMECAST_GRAPHICS_CAST_TOUCH_ACTIVITY_OBSERVER_H_ + +namespace chromecast { + +class CastTouchActivityObserver { + public: + virtual ~CastTouchActivityObserver() = default; + + // Invoked when the window manager has touch input disabled. + virtual void OnTouchEventsDisabled(bool disabled) = 0; + + // Invoked when input is disabled and an input event is received. + // Can be used by the observer to turn touch input back on. + virtual void OnTouchActivity() = 0; +}; + +} // namespace chromecast + +#endif // CHROMECAST_GRAPHICS_CAST_TOUCH_ACTIVITY_OBSERVER_H_
diff --git a/chromecast/graphics/cast_touch_event_gate.cc b/chromecast/graphics/cast_touch_event_gate.cc new file mode 100644 index 0000000..73c9db0 --- /dev/null +++ b/chromecast/graphics/cast_touch_event_gate.cc
@@ -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. + +#include "chromecast/graphics/cast_touch_event_gate.h" + +#include "chromecast/graphics/cast_touch_activity_observer.h" +#include "chromecast/graphics/cast_window_manager.h" +#include "ui/aura/window.h" +#include "ui/aura/window_event_dispatcher.h" +#include "ui/aura/window_tree_host.h" + +namespace chromecast { + +CastTouchEventGate::CastTouchEventGate(aura::Window* root_window) + : root_window_(root_window) { + DCHECK(root_window); + root_window_->GetHost()->GetEventSource()->AddEventRewriter(this); +} + +CastTouchEventGate::~CastTouchEventGate() { + root_window_->GetHost()->GetEventSource()->RemoveEventRewriter(this); + if (enabled_) { + for (auto* observer : observers_) { + observer->OnTouchEventsDisabled(false); + } + } +} + +void CastTouchEventGate::AddObserver(CastTouchActivityObserver* observer) { + observers_.insert(observer); +} + +void CastTouchEventGate::RemoveObserver(CastTouchActivityObserver* observer) { + observers_.erase(observer); +} + +void CastTouchEventGate::SetEnabled(bool enabled) { + enabled_ = enabled; + for (auto* observer : observers_) { + observer->OnTouchEventsDisabled(enabled_); + } +} + +ui::EventRewriteStatus CastTouchEventGate::RewriteEvent( + const ui::Event& event, + std::unique_ptr<ui::Event>* rewritten_event) { + if (!enabled_ || !event.IsTouchEvent()) + return ui::EVENT_REWRITE_CONTINUE; + + for (auto* observer : observers_) { + observer->OnTouchActivity(); + } + return ui::EVENT_REWRITE_DISCARD; +} + +ui::EventRewriteStatus CastTouchEventGate::NextDispatchEvent( + const ui::Event& last_event, + std::unique_ptr<ui::Event>* new_event) { + return ui::EVENT_REWRITE_DISCARD; +} + +} // namespace chromecast
diff --git a/chromecast/graphics/cast_touch_event_gate.h b/chromecast/graphics/cast_touch_event_gate.h new file mode 100644 index 0000000..b59d535 --- /dev/null +++ b/chromecast/graphics/cast_touch_event_gate.h
@@ -0,0 +1,51 @@ +// 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 CHROMECAST_GRAPHICS_CAST_TOUCH_EVENT_GATE_H_ +#define CHROMECAST_GRAPHICS_CAST_TOUCH_EVENT_GATE_H_ + +#include "base/containers/flat_set.h" +#include "ui/events/event_rewriter.h" + +namespace aura { +class Window; +} // namespace aura + +namespace chromecast { + +class CastTouchActivityObserver; + +// An event rewriter whose purpose is to discard events (when enabled). This +// class is meant to be installed as the first rewriter in the chain, to handle +// scenarios where all input needs to be disabled, such as when the device +// screen is turned off. Instances of CastTouchActivityObserver can be +// registered to receive notifications of gated events. +class CastTouchEventGate : public ui::EventRewriter { + public: + explicit CastTouchEventGate(aura::Window* root_window); + ~CastTouchEventGate() override; + + void SetEnabled(bool enabled); + + void AddObserver(CastTouchActivityObserver* observer); + void RemoveObserver(CastTouchActivityObserver* observer); + + // ui::EventRewriter implementation. + ui::EventRewriteStatus RewriteEvent( + const ui::Event& event, + std::unique_ptr<ui::Event>* rewritten_event) override; + + ui::EventRewriteStatus NextDispatchEvent( + const ui::Event& last_event, + std::unique_ptr<ui::Event>* new_event) override; + + private: + bool enabled_ = false; + aura::Window* root_window_; + base::flat_set<CastTouchActivityObserver*> observers_; +}; + +} // namespace chromecast + +#endif // CHROMECAST_GRAPHICS_CAST_TOUCH_EVENT_GATE_H_
diff --git a/chromecast/graphics/cast_touch_event_gate_test.cc b/chromecast/graphics/cast_touch_event_gate_test.cc new file mode 100644 index 0000000..28c8e0ae --- /dev/null +++ b/chromecast/graphics/cast_touch_event_gate_test.cc
@@ -0,0 +1,115 @@ +// 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 "chromecast/graphics/cast_touch_event_gate.h" + +#include <memory> + +#include "base/run_loop.h" +#include "chromecast/graphics/cast_touch_activity_observer.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "ui/aura/test/aura_test_base.h" +#include "ui/aura/window.h" +#include "ui/events/event_utils.h" +#include "ui/events/test/event_generator.h" +#include "ui/events/test/events_test_utils.h" + +using testing::_; +using testing::AtLeast; +using testing::Eq; + +namespace chromecast { + +class MockEventHandler : public ui::EventHandler { + public: + ~MockEventHandler() override = default; + MOCK_METHOD1(OnTouchEvent, void(ui::TouchEvent* event)); +}; + +class MockEventGateObserver : public CastTouchActivityObserver { + public: + ~MockEventGateObserver() override = default; + + MOCK_METHOD1(OnTouchEventsDisabled, void(bool disabled)); + MOCK_METHOD0(OnTouchActivity, void()); +}; + +class CastTouchEventGateTest : public aura::test::AuraTestBase { + public: + ~CastTouchEventGateTest() override = default; + + void SetUp() override { + aura::test::AuraTestBase::SetUp(); + + event_gate_ = std::make_unique<CastTouchEventGate>(root_window()); + event_handler_ = std::make_unique<MockEventHandler>(); + root_window()->AddPreTargetHandler(event_handler_.get()); + generator_ = std::make_unique<ui::test::EventGenerator>(root_window()); + gate_observer_ = std::make_unique<MockEventGateObserver>(); + event_gate_->AddObserver(gate_observer_.get()); + } + + void TearDown() override { + event_gate_.reset(); + aura::test::AuraTestBase::TearDown(); + } + + CastTouchEventGate& event_gate() { return *event_gate_; } + MockEventGateObserver& gate_observer() { return *gate_observer_; } + MockEventHandler& mock_event_handler() { return *event_handler_; } + ui::test::EventGenerator& event_generator() { return *generator_; } + + private: + std::unique_ptr<CastTouchEventGate> event_gate_; + std::unique_ptr<MockEventGateObserver> gate_observer_; + std::unique_ptr<MockEventHandler> event_handler_; + std::unique_ptr<ui::test::EventGenerator> generator_; +}; + +TEST_F(CastTouchEventGateTest, DisabledByDefaultTest) { + // Tap leads to 2 touch events. + EXPECT_CALL(mock_event_handler(), OnTouchEvent(_)).Times(2); + + // Expect no notifications to the observer. + EXPECT_CALL(gate_observer(), OnTouchEventsDisabled(_)).Times(0); + EXPECT_CALL(gate_observer(), OnTouchActivity()).Times(0); + event_generator().GestureTapAt(gfx::Point(50, 50)); + + base::RunLoop().RunUntilIdle(); +} + +TEST_F(CastTouchEventGateTest, EnabledBlocksEvent) { + // No event should get through. + EXPECT_CALL(mock_event_handler(), OnTouchEvent(_)).Times(0); + + // We should receive a notification at the observer that the gate was enabled. + EXPECT_CALL(gate_observer(), OnTouchEventsDisabled(Eq(true))).Times(1); + + // Also that it was disabled at destruction. + EXPECT_CALL(gate_observer(), OnTouchEventsDisabled(Eq(false))).Times(1); + + // And that the tap event was observed (multiple events) + EXPECT_CALL(gate_observer(), OnTouchActivity()).Times(AtLeast(2)); + + event_gate().SetEnabled(true); + event_generator().GestureTapAt(gfx::Point(50, 50)); + + base::RunLoop().RunUntilIdle(); +} + +TEST_F(CastTouchEventGateTest, EnableThenDisable) { + EXPECT_CALL(mock_event_handler(), OnTouchEvent(_)).Times(2); + EXPECT_CALL(gate_observer(), OnTouchEventsDisabled(Eq(true))).Times(1); + EXPECT_CALL(gate_observer(), OnTouchEventsDisabled(Eq(false))).Times(1); + EXPECT_CALL(gate_observer(), OnTouchActivity()).Times(AtLeast(2)); + + event_gate().SetEnabled(true); + event_generator().GestureTapAt(gfx::Point(50, 50)); + event_gate().SetEnabled(false); + event_generator().GestureTapAt(gfx::Point(50, 50)); + + base::RunLoop().RunUntilIdle(); +} + +} // namespace chromecast
diff --git a/chromecast/graphics/cast_window_manager.h b/chromecast/graphics/cast_window_manager.h index 906ae276..2b170f2 100644 --- a/chromecast/graphics/cast_window_manager.h +++ b/chromecast/graphics/cast_window_manager.h
@@ -16,6 +16,7 @@ namespace chromecast { +class CastTouchActivityObserver; class CastGestureHandler; // Chromecast's window-manager interface. @@ -71,6 +72,18 @@ // Enable/Disable color inversion. virtual void SetColorInversion(bool enable) = 0; + + // Enable/disable the handling of all touch events. + virtual void SetTouchInputDisabled(bool disabled) = 0; + + // Add an observer for when input events occur while touch input is disabled. + virtual void AddTouchActivityObserver( + CastTouchActivityObserver* observer) = 0; + + // Remove an observer for when input events occur while touch input is + // disabled. + virtual void RemoveTouchActivityObserver( + CastTouchActivityObserver* observer) = 0; }; } // namespace chromecast
diff --git a/chromecast/graphics/cast_window_manager_aura.cc b/chromecast/graphics/cast_window_manager_aura.cc index ddc6046..88a9c47 100644 --- a/chromecast/graphics/cast_window_manager_aura.cc +++ b/chromecast/graphics/cast_window_manager_aura.cc
@@ -6,6 +6,8 @@ #include "base/memory/ptr_util.h" #include "chromecast/graphics/cast_focus_client_aura.h" +#include "chromecast/graphics/cast_touch_activity_observer.h" +#include "chromecast/graphics/cast_touch_event_gate.h" #include "chromecast/graphics/gestures/cast_system_gesture_event_handler.h" #include "chromecast/graphics/gestures/side_swipe_detector.h" #include "ui/aura/client/default_capture_client.h" @@ -220,6 +222,11 @@ screen_position_client_.get()); window_tree_host_->Show(); + + // Install the CastTouchEventGate before other event rewriters. It has to be + // the first in the chain. + event_gate_ = std::make_unique<CastTouchEventGate>(root_window); + system_gesture_dispatcher_ = std::make_unique<CastSystemGestureDispatcher>(); system_gesture_event_handler_ = std::make_unique<CastSystemGestureEventHandler>( @@ -237,6 +244,7 @@ if (!window_tree_host_) { return; } + event_gate_.reset(); side_swipe_detector_.reset(); capture_client_.reset(); aura::client::SetWindowParentingClient(window_tree_host_->window(), nullptr); @@ -302,4 +310,18 @@ return system_gesture_dispatcher_.get(); } +void CastWindowManagerAura::SetTouchInputDisabled(bool disabled) { + event_gate_->SetEnabled(disabled); +} + +void CastWindowManagerAura::AddTouchActivityObserver( + CastTouchActivityObserver* observer) { + event_gate_->AddObserver(observer); +} + +void CastWindowManagerAura::RemoveTouchActivityObserver( + CastTouchActivityObserver* observer) { + event_gate_->RemoveObserver(observer); +} + } // namespace chromecast
diff --git a/chromecast/graphics/cast_window_manager_aura.h b/chromecast/graphics/cast_window_manager_aura.h index 45319b0..032a638 100644 --- a/chromecast/graphics/cast_window_manager_aura.h +++ b/chromecast/graphics/cast_window_manager_aura.h
@@ -21,6 +21,7 @@ namespace chromecast { +class CastTouchEventGate; class CastFocusClientAura; class CastGestureHandler; class CastSystemGestureEventHandler; @@ -75,12 +76,18 @@ CastGestureHandler* GetGestureHandler() const; + void SetTouchInputDisabled(bool disabled) override; + void AddTouchActivityObserver(CastTouchActivityObserver* observer) override; + void RemoveTouchActivityObserver( + CastTouchActivityObserver* observer) override; + private: const bool enable_input_; std::unique_ptr<CastWindowTreeHost> window_tree_host_; std::unique_ptr<aura::client::DefaultCaptureClient> capture_client_; std::unique_ptr<CastFocusClientAura> focus_client_; std::unique_ptr<aura::client::ScreenPositionClient> screen_position_client_; + std::unique_ptr<CastTouchEventGate> event_gate_; std::unique_ptr<CastSystemGestureDispatcher> system_gesture_dispatcher_; std::unique_ptr<CastSystemGestureEventHandler> system_gesture_event_handler_; std::unique_ptr<SideSwipeDetector> side_swipe_detector_;
diff --git a/chromecast/graphics/cast_window_manager_default.cc b/chromecast/graphics/cast_window_manager_default.cc index ca8fe8e..5bcf7f1b 100644 --- a/chromecast/graphics/cast_window_manager_default.cc +++ b/chromecast/graphics/cast_window_manager_default.cc
@@ -5,6 +5,7 @@ #include "chromecast/graphics/cast_window_manager_default.h" #include "base/memory/ptr_util.h" +#include "chromecast/graphics/cast_touch_activity_observer.h" namespace chromecast { @@ -29,4 +30,11 @@ void CastWindowManagerDefault::RemoveGestureHandler( CastGestureHandler* handler) {} +void CastWindowManagerDefault::SetTouchInputDisabled(bool disabled) {} + +void CastWindowManagerDefault::AddTouchActivityObserver( + CastTouchActivityObserver* observer) {} +void CastWindowManagerDefault::RemoveTouchActivityObserver( + CastTouchActivityObserver* observer) {} + } // namespace chromecast
diff --git a/chromecast/graphics/cast_window_manager_default.h b/chromecast/graphics/cast_window_manager_default.h index d26675b..e2101f9 100644 --- a/chromecast/graphics/cast_window_manager_default.h +++ b/chromecast/graphics/cast_window_manager_default.h
@@ -30,6 +30,11 @@ void SetColorInversion(bool enable) override; + void SetTouchInputDisabled(bool disabled) override; + void AddTouchActivityObserver(CastTouchActivityObserver* observer) override; + void RemoveTouchActivityObserver( + CastTouchActivityObserver* observer) override; + private: DISALLOW_COPY_AND_ASSIGN(CastWindowManagerDefault); };
diff --git a/chromecast/graphics/gestures/cast_system_gesture_dispatcher.cc b/chromecast/graphics/gestures/cast_system_gesture_dispatcher.cc index 5cc1d4e..533f9d7e 100644 --- a/chromecast/graphics/gestures/cast_system_gesture_dispatcher.cc +++ b/chromecast/graphics/gestures/cast_system_gesture_dispatcher.cc
@@ -60,7 +60,8 @@ // from getting stuck, route new gesture events to the main UI when this // happens. base::TimeTicks now = tick_clock_->NowTicks(); - if (event == CastSideSwipeEvent::BEGIN) { + if (event == CastSideSwipeEvent::BEGIN && + swipe_origin == CastSideSwipeOrigin::LEFT) { recent_events_.push({now, swipe_origin}); // Flush events which are older than the prescribed time. while (!recent_events_.empty() && @@ -70,6 +71,11 @@ // If there are too many recent swipes, then this gesture should go to the // root UI. send_gestures_to_root_ = recent_events_.size() >= kMaxSwipes; + if (send_gestures_to_root_) { + LOG(INFO) << "User swiped " << kMaxSwipes << " times within " + << kExpirationTime + << ", sending next swipe gesture to root UI."; + } } CastGestureHandler* best_handler = nullptr; Priority highest_priority = Priority::NONE; @@ -89,6 +95,12 @@ } if (best_handler) best_handler->HandleSideSwipe(event, swipe_origin, touch_location); + if (send_gestures_to_root_ && event == CastSideSwipeEvent::END) { + // Reset the recent events. + std::queue<GestureEvent> empty; + std::swap(recent_events_, empty); + send_gestures_to_root_ = false; + } } void CastSystemGestureDispatcher::HandleTapDownGesture(
diff --git a/chromecast/graphics/gestures/cast_system_gesture_dispatcher_test.cc b/chromecast/graphics/gestures/cast_system_gesture_dispatcher_test.cc index 0734fd8..a1106d23 100644 --- a/chromecast/graphics/gestures/cast_system_gesture_dispatcher_test.cc +++ b/chromecast/graphics/gestures/cast_system_gesture_dispatcher_test.cc
@@ -138,7 +138,7 @@ gesture_dispatcher_->RemoveGestureHandler(&handler_1); } -TEST_F(CastSystemGestureDispatcherTest, MultipleSwipesToRootUi) { +TEST_F(CastSystemGestureDispatcherTest, MultipleBackSwipesToRootUi) { MockCastGestureHandler handler_1; MockCastGestureHandler handler_2; ON_CALL(handler_1, GetPriority()) @@ -156,6 +156,16 @@ CastSideSwipeOrigin origin = CastSideSwipeOrigin::TOP; gfx::Point point(0, 0); + // Swipe gestures from any other edge but LEFT will always hit the main target + // handler. + for (size_t i = 0; i < 2 * kMaxSwipesWithinTimeout; ++i) { + EXPECT_CALL(handler_1, HandleSideSwipe(_, _, _)).Times(0); + EXPECT_CALL(handler_2, HandleSideSwipe(event, origin, point)); + gesture_dispatcher_->HandleSideSwipe(event, origin, point); + } + + // Now test LEFT events. + origin = CastSideSwipeOrigin::LEFT; // Trigger N - 1 events within the recent events timeout window. for (size_t i = 0; i < kMaxSwipesWithinTimeout - 1; ++i) { EXPECT_CALL(handler_1, HandleSideSwipe(_, _, _)).Times(0); @@ -182,9 +192,6 @@ EXPECT_CALL(handler_2, HandleSideSwipe(_, _, _)).Times(0); gesture_dispatcher_->HandleSideSwipe(event, origin, point); - // We are now outside the timeout window. - test_clock_->Advance(kTimeoutWindow); - // All events will go to the root UI until the next BEGIN event after the // 3-event timeout. event = CastSideSwipeEvent::CONTINUE; @@ -197,7 +204,8 @@ EXPECT_CALL(handler_2, HandleSideSwipe(_, _, _)).Times(0); gesture_dispatcher_->HandleSideSwipe(event, origin, point); - // Timeout has elapsed, next BEGIN event will go to the main handler. + // The next event will behave as normal; the timeout period restarts after + // the END swipe event. event = CastSideSwipeEvent::BEGIN; EXPECT_CALL(handler_1, HandleSideSwipe(_, _, _)).Times(0); EXPECT_CALL(handler_2, HandleSideSwipe(event, origin, point));
diff --git a/chromecast/media/cma/BUILD.gn b/chromecast/media/cma/BUILD.gn index 3a952b1..427c96c 100644 --- a/chromecast/media/cma/BUILD.gn +++ b/chromecast/media/cma/BUILD.gn
@@ -36,13 +36,16 @@ "//base", "//chromecast/common/mojom", "//chromecast/media/cma/backend", - "//chromecast/media/cma/backend:null_video", "//chromecast/media/cma/base", "//media:test_support", "//testing/gmock", "//testing/gtest", "//ui/gfx/geometry", ] + + if (!enable_video_with_mixed_audio) { + deps += [ "//chromecast/media/cma/backend:null_video" ] + } } cast_source_set("unittests") {
diff --git a/chromecast/media/cma/backend/media_pipeline_backend_manager.cc b/chromecast/media/cma/backend/media_pipeline_backend_manager.cc index 71413b4..0178dbe6 100644 --- a/chromecast/media/cma/backend/media_pipeline_backend_manager.cc +++ b/chromecast/media/cma/backend/media_pipeline_backend_manager.cc
@@ -185,12 +185,14 @@ void MediaPipelineBackendManager::AddExtraPlayingStream( bool sfx, const AudioContentType type) { + MAKE_SURE_MEDIA_THREAD(AddExtraPlayingStream, sfx, type); UpdatePlayingAudioCount(sfx, type, 1); } void MediaPipelineBackendManager::RemoveExtraPlayingStream( bool sfx, const AudioContentType type) { + MAKE_SURE_MEDIA_THREAD(RemoveExtraPlayingStream, sfx, type); UpdatePlayingAudioCount(sfx, type, -1); }
diff --git a/chromeos/assistant/OWNERS b/chromeos/assistant/OWNERS index bb22e76..10f82ddb 100644 --- a/chromeos/assistant/OWNERS +++ b/chromeos/assistant/OWNERS
@@ -1,4 +1,6 @@ -xiaohuic@chromium.org muyuanli@chromium.org +updowndota@chromium.org +wutao@chromium.org +xiaohuic@chromium.org # COMPONENTS: UI>Shell>Assistant
diff --git a/chromeos/components/proximity_auth/proximity_auth_profile_pref_manager.cc b/chromeos/components/proximity_auth/proximity_auth_profile_pref_manager.cc index c535d10..9bf657bb 100644 --- a/chromeos/components/proximity_auth/proximity_auth_profile_pref_manager.cc +++ b/chromeos/components/proximity_auth/proximity_auth_profile_pref_manager.cc
@@ -195,7 +195,7 @@ } feature_state_ = it->second; - if (local_state_) + if (local_state_ && account_id_.is_valid()) SyncPrefsToLocalState(); }
diff --git a/chromeos/components/proximity_auth/proximity_auth_profile_pref_manager.h b/chromeos/components/proximity_auth/proximity_auth_profile_pref_manager.h index 2e4cf14..201c13b 100644 --- a/chromeos/components/proximity_auth/proximity_auth_profile_pref_manager.h +++ b/chromeos/components/proximity_auth/proximity_auth_profile_pref_manager.h
@@ -79,20 +79,20 @@ // Contains perferences that outlive the lifetime of this object and across // process restarts. Not owned and must outlive this instance. - PrefService* pref_service_; + PrefService* pref_service_ = nullptr; // Listens to pref changes so they can be synced to the local state. PrefChangeRegistrar registrar_; // The local state to which to sync the profile prefs. - PrefService* local_state_; + PrefService* local_state_ = nullptr; // The account id of the current profile. AccountId account_id_; // Used to determine the FeatureState of Smart Lock. See |feature_state_|. chromeos::multidevice_setup::MultiDeviceSetupClient* - multidevice_setup_client_; + multidevice_setup_client_ = nullptr; // Caches feature state of Smart Lock. Populated by using // |multidevice_setup_client_|.
diff --git a/chromeos/components/tether/fake_host_scan_scheduler.cc b/chromeos/components/tether/fake_host_scan_scheduler.cc index d2d949b..f65af25 100644 --- a/chromeos/components/tether/fake_host_scan_scheduler.cc +++ b/chromeos/components/tether/fake_host_scan_scheduler.cc
@@ -12,8 +12,8 @@ FakeHostScanScheduler::~FakeHostScanScheduler() = default; -void FakeHostScanScheduler::ScheduleScan() { - ++num_scheduled_scans_; +void FakeHostScanScheduler::AttemptScanIfOffline() { + ++num_attempted_scans_; } } // namespace tether
diff --git a/chromeos/components/tether/fake_host_scan_scheduler.h b/chromeos/components/tether/fake_host_scan_scheduler.h index ada875be..4537509 100644 --- a/chromeos/components/tether/fake_host_scan_scheduler.h +++ b/chromeos/components/tether/fake_host_scan_scheduler.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_COMPONENTS_TETHER_FAKE_HOST_SCAN_SCHEDULER_H -#define CHROMEOS_COMPONENTS_TETHER_FAKE_HOST_SCAN_SCHEDULER_H +#ifndef CHROMEOS_COMPONENTS_TETHER_FAKE_HOST_SCAN_SCHEDULER_H_ +#define CHROMEOS_COMPONENTS_TETHER_FAKE_HOST_SCAN_SCHEDULER_H_ #include "base/macros.h" #include "chromeos/components/tether/host_scan_scheduler.h" @@ -18,13 +18,13 @@ FakeHostScanScheduler(); ~FakeHostScanScheduler() override; - int num_scheduled_scans() { return num_scheduled_scans_; } + int num_attempted_scans() { return num_attempted_scans_; } // HostScanScheduler: - void ScheduleScan() override; + void AttemptScanIfOffline() override; private: - int num_scheduled_scans_ = 0; + int num_attempted_scans_ = 0; DISALLOW_COPY_AND_ASSIGN(FakeHostScanScheduler); }; @@ -33,4 +33,4 @@ } // namespace chromeos -#endif // CHROMEOS_COMPONENTS_TETHER_FAKE_HOST_SCAN_SCHEDULER_H +#endif // CHROMEOS_COMPONENTS_TETHER_FAKE_HOST_SCAN_SCHEDULER_H_
diff --git a/chromeos/components/tether/host_scan_scheduler.h b/chromeos/components/tether/host_scan_scheduler.h index bd42ca744..7505685c 100644 --- a/chromeos/components/tether/host_scan_scheduler.h +++ b/chromeos/components/tether/host_scan_scheduler.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CHROMEOS_COMPONENTS_TETHER_HOST_SCAN_SCHEDULER_H -#define CHROMEOS_COMPONENTS_TETHER_HOST_SCAN_SCHEDULER_H +#ifndef CHROMEOS_COMPONENTS_TETHER_HOST_SCAN_SCHEDULER_H_ +#define CHROMEOS_COMPONENTS_TETHER_HOST_SCAN_SCHEDULER_H_ #include "base/macros.h" @@ -17,9 +17,10 @@ HostScanScheduler() {} virtual ~HostScanScheduler() {} - // Schedules a scan to run immediately. If a scan is already active, this - // function is a no-op. - virtual void ScheduleScan() = 0; + // Attempts to perform a Tether host scan. If the device is already connected + // to the internet, a scan will not be performed. If a scan is already active, + // this function is a no-op. + virtual void AttemptScanIfOffline() = 0; private: DISALLOW_COPY_AND_ASSIGN(HostScanScheduler); @@ -29,4 +30,4 @@ } // namespace chromeos -#endif // CHROMEOS_COMPONENTS_TETHER_HOST_SCAN_SCHEDULER_H +#endif // CHROMEOS_COMPONENTS_TETHER_HOST_SCAN_SCHEDULER_H_
diff --git a/chromeos/components/tether/host_scan_scheduler_impl.cc b/chromeos/components/tether/host_scan_scheduler_impl.cc index 108347e3..8fac55f 100644 --- a/chromeos/components/tether/host_scan_scheduler_impl.cc +++ b/chromeos/components/tether/host_scan_scheduler_impl.cc
@@ -15,6 +15,7 @@ #include "chromeos/network/network_handler.h" #include "chromeos/network/network_state.h" #include "chromeos/network/network_state_handler.h" +#include "chromeos/network/network_type_pattern.h" #include "components/session_manager/core/session_manager.h" namespace chromeos { @@ -88,15 +89,23 @@ LogHostScanBatchMetric(); } -void HostScanSchedulerImpl::ScheduleScan() { +void HostScanSchedulerImpl::AttemptScanIfOffline() { + const chromeos::NetworkState* first_network = + network_state_handler_->FirstNetworkByType( + chromeos::NetworkTypePattern::Default()); + if (IsOnlineOrHasActiveTetherConnection(first_network)) { + PA_LOG(INFO) << "Skipping scan attempt because the device is already " + "connected to a network."; + return; + } + AttemptScan(); } void HostScanSchedulerImpl::DefaultNetworkChanged(const NetworkState* network) { // If there is an active (i.e., connecting or connected) network, there is no // need to schedule a scan. - if ((network && network->IsConnectingOrConnected()) || - IsTetherNetworkConnectingOrConnected()) { + if (IsOnlineOrHasActiveTetherConnection(network)) { return; } @@ -109,8 +118,9 @@ weak_ptr_factory_.GetWeakPtr())); } -void HostScanSchedulerImpl::ScanRequested() { - AttemptScan(); +void HostScanSchedulerImpl::ScanRequested(const NetworkTypePattern& type) { + if (NetworkTypePattern::Tether().MatchesPattern(type)) + AttemptScan(); } void HostScanSchedulerImpl::ScanFinished() { @@ -142,14 +152,15 @@ if (!was_screen_locked) return; - // If the device was just unlocked, start a scan. + // If the device was just unlocked, start a scan if not already connected to a + // network. if (base::FeatureList::IsEnabled(chromeos::features::kMultiDeviceApi)) { - AttemptScan(); + AttemptScanIfOffline(); } else { delay_scan_after_unlock_timer_->Start( FROM_HERE, base::TimeDelta::FromSeconds(kNumSecondsToDelayScanAfterUnlock), - base::BindRepeating(&HostScanSchedulerImpl::AttemptScan, + base::BindRepeating(&HostScanSchedulerImpl::AttemptScanIfOffline, weak_ptr_factory_.GetWeakPtr())); } } @@ -202,6 +213,12 @@ NetworkTypePattern::Tether()); } +bool HostScanSchedulerImpl::IsOnlineOrHasActiveTetherConnection( + const NetworkState* default_network) { + return (default_network && default_network->IsConnectingOrConnected()) || + IsTetherNetworkConnectingOrConnected(); +} + void HostScanSchedulerImpl::LogHostScanBatchMetric() { DCHECK(!last_scan_batch_start_timestamp_.is_null()); DCHECK(!last_scan_end_timestamp_.is_null());
diff --git a/chromeos/components/tether/host_scan_scheduler_impl.h b/chromeos/components/tether/host_scan_scheduler_impl.h index e9ad939..a3a6cb6 100644 --- a/chromeos/components/tether/host_scan_scheduler_impl.h +++ b/chromeos/components/tether/host_scan_scheduler_impl.h
@@ -28,6 +28,7 @@ namespace chromeos { class NetworkStateHandler; +class NetworkTypePattern; namespace tether { @@ -47,12 +48,12 @@ ~HostScanSchedulerImpl() override; // HostScanScheduler: - void ScheduleScan() override; + void AttemptScanIfOffline() override; protected: // NetworkStateHandlerObserver: void DefaultNetworkChanged(const NetworkState* network) override; - void ScanRequested() override; + void ScanRequested(const NetworkTypePattern& type) override; // HostScanner::Observer: void ScanFinished() override; @@ -65,6 +66,7 @@ void AttemptScan(); bool IsTetherNetworkConnectingOrConnected(); + bool IsOnlineOrHasActiveTetherConnection(const NetworkState* default_network); void LogHostScanBatchMetric(); void SetTestDoubles(
diff --git a/chromeos/components/tether/host_scan_scheduler_impl_unittest.cc b/chromeos/components/tether/host_scan_scheduler_impl_unittest.cc index d9e023d..b96601b9 100644 --- a/chromeos/components/tether/host_scan_scheduler_impl_unittest.cc +++ b/chromeos/components/tether/host_scan_scheduler_impl_unittest.cc
@@ -60,11 +60,6 @@ histogram_tester_ = std::make_unique<base::HistogramTester>(); - ethernet_service_path_ = ConfigureService(CreateConfigurationJsonString( - kEthernetServiceGuid, shill::kTypeEthernet)); - test_manager_client()->SetManagerProperty( - shill::kDefaultServiceProperty, base::Value(ethernet_service_path_)); - network_state_handler()->SetTetherTechnologyState( NetworkStateHandler::TECHNOLOGY_ENABLED); @@ -100,7 +95,16 @@ scoped_feature_list_.InitAndEnableFeature(features::kMultiDeviceApi); } - void RequestScan() { host_scan_scheduler_->ScanRequested(); } + void RequestScan(const NetworkTypePattern& type) { + host_scan_scheduler_->ScanRequested(type); + } + + void InitializeEthernet() { + ethernet_service_path_ = ConfigureService(CreateConfigurationJsonString( + kEthernetServiceGuid, shill::kTypeEthernet)); + test_manager_client()->SetManagerProperty( + shill::kDefaultServiceProperty, base::Value(ethernet_service_path_)); + } // Disconnects the Ethernet network and manually sets the default network to // |new_default_service_path|. If |new_default_service_path| is empty then no @@ -156,6 +160,58 @@ : session_manager::SessionState::LOGIN_PRIMARY); } + void TestDeviceLockAndUnlock(bool is_online) { + if (is_online) + InitializeEthernet(); + + // Lock the screen. This should never trigger a scan. + SetScreenLockedState(true /* is_locked */); + EXPECT_EQ(0u, fake_host_scanner_->num_scans_started()); + EXPECT_FALSE(mock_delay_scan_after_unlock_timer_->IsRunning()); + + // Try to start a scan. Because the screen is locked, this should not + // cause a scan to be started. + host_scan_scheduler_->AttemptScanIfOffline(); + EXPECT_EQ(0u, fake_host_scanner_->num_scans_started()); + EXPECT_FALSE(mock_delay_scan_after_unlock_timer_->IsRunning()); + + // Unlock the screen. A scan should not yet have been scheduled yet, but the + // timer should have. + SetScreenLockedState(false /* is_locked */); + EXPECT_EQ(0u, fake_host_scanner_->num_scans_started()); + ASSERT_TRUE(mock_delay_scan_after_unlock_timer_->IsRunning()); + + // Fire the timer; this should only start the scan if the device is offline. + mock_delay_scan_after_unlock_timer_->Fire(); + EXPECT_EQ(is_online ? 0u : 1u, fake_host_scanner_->num_scans_started()); + } + + void TestDeviceLockAndUnlock_MultiDeviceApiEnabled(bool is_online) { + if (is_online) + InitializeEthernet(); + + SetMultiDeviceApiEnabled(); + + // Lock the screen. This should not trigger a scan. + SetScreenLockedState(true /* is_locked */); + EXPECT_EQ(0u, fake_host_scanner_->num_scans_started()); + EXPECT_FALSE(mock_delay_scan_after_unlock_timer_->IsRunning()); + + // Try to start a scan. Regardless of screen lock state, this should cause a + // scan if the device is offline. The timer should not have been started. + host_scan_scheduler_->AttemptScanIfOffline(); + EXPECT_EQ(is_online ? 0u : 1u, fake_host_scanner_->num_scans_started()); + EXPECT_FALSE(mock_delay_scan_after_unlock_timer_->IsRunning()); + + fake_host_scanner_->StopScan(); + + // Unlock the screen. If the device is offline, a new scan should have + // started. The timer should be untouched. + SetScreenLockedState(false /* is_locked */); + EXPECT_EQ(is_online ? 0u : 2u, fake_host_scanner_->num_scans_started()); + EXPECT_FALSE(mock_delay_scan_after_unlock_timer_->IsRunning()); + } + void VerifyScanDuration(size_t expected_num_seconds) { histogram_tester_->ExpectTimeBucketCount( "InstantTethering.HostScanBatchDuration", @@ -180,8 +236,8 @@ base::test::ScopedFeatureList scoped_feature_list_; }; -TEST_F(HostScanSchedulerImplTest, ScheduleScan) { - host_scan_scheduler_->ScheduleScan(); +TEST_F(HostScanSchedulerImplTest, AttemptScanIfOffline) { + host_scan_scheduler_->AttemptScanIfOffline(); EXPECT_EQ(1u, fake_host_scanner_->num_scans_started()); EXPECT_TRUE( network_state_handler()->GetScanningByType(NetworkTypePattern::Tether())); @@ -197,62 +253,33 @@ VerifyScanDuration(5u /* expected_num_sections */); } -TEST_F(HostScanSchedulerImplTest, TestDeviceLockAndUnlock) { - // Lock the screen. This should not trigger a scan. - SetScreenLockedState(true /* is_locked */); - EXPECT_EQ(0u, fake_host_scanner_->num_scans_started()); - EXPECT_FALSE(mock_delay_scan_after_unlock_timer_->IsRunning()); +TEST_F(HostScanSchedulerImplTest, TestDeviceLockAndUnlock_Offline) { + TestDeviceLockAndUnlock(false /* is_online */); +} - // Try to start a scan. Because the screen is locked, this should not actually - // cause a scan to be started. - host_scan_scheduler_->ScheduleScan(); - EXPECT_EQ(0u, fake_host_scanner_->num_scans_started()); - EXPECT_FALSE(mock_delay_scan_after_unlock_timer_->IsRunning()); - - // Unlock the screen. A scan should not yet have been started, but the timer - // should have. - SetScreenLockedState(false /* is_locked */); - EXPECT_EQ(0u, fake_host_scanner_->num_scans_started()); - ASSERT_TRUE(mock_delay_scan_after_unlock_timer_->IsRunning()); - - // Fire the timer; this should start the scan. - mock_delay_scan_after_unlock_timer_->Fire(); - EXPECT_EQ(1u, fake_host_scanner_->num_scans_started()); +TEST_F(HostScanSchedulerImplTest, TestDeviceLockAndUnlock_Online) { + TestDeviceLockAndUnlock(true /* is_online */); } TEST_F(HostScanSchedulerImplTest, - TestDeviceLockAndUnlock_MultiDeviceApiEnabled) { - SetMultiDeviceApiEnabled(); + TestDeviceLockAndUnlock_MultiDeviceApiEnabled_Offline) { + TestDeviceLockAndUnlock_MultiDeviceApiEnabled(false /* is_online */); +} - // Lock the screen. This should not trigger a scan. - SetScreenLockedState(true /* is_locked */); - EXPECT_EQ(0u, fake_host_scanner_->num_scans_started()); - EXPECT_FALSE(mock_delay_scan_after_unlock_timer_->IsRunning()); - - // Try to start a scan. Even thought the screen is locked, this should cause a - // scan to be started. - host_scan_scheduler_->ScheduleScan(); - EXPECT_EQ(1u, fake_host_scanner_->num_scans_started()); - EXPECT_FALSE(mock_delay_scan_after_unlock_timer_->IsRunning()); - - fake_host_scanner_->StopScan(); - - // Unlock the screen. A new scan should have started, and the timer should be - // untouched. - SetScreenLockedState(false /* is_locked */); - EXPECT_EQ(2u, fake_host_scanner_->num_scans_started()); - EXPECT_FALSE(mock_delay_scan_after_unlock_timer_->IsRunning()); +TEST_F(HostScanSchedulerImplTest, + TestDeviceLockAndUnlock_MultiDeviceApiEnabled_Online) { + TestDeviceLockAndUnlock_MultiDeviceApiEnabled(true /* is_online */); } TEST_F(HostScanSchedulerImplTest, ScanRequested) { // Begin scanning. - RequestScan(); + RequestScan(NetworkTypePattern::Tether()); EXPECT_EQ(1u, fake_host_scanner_->num_scans_started()); EXPECT_TRUE( network_state_handler()->GetScanningByType(NetworkTypePattern::Tether())); // Should not begin a new scan while a scan is active. - RequestScan(); + RequestScan(NetworkTypePattern::Tether()); EXPECT_EQ(1u, fake_host_scanner_->num_scans_started()); EXPECT_TRUE( network_state_handler()->GetScanningByType(NetworkTypePattern::Tether())); @@ -266,14 +293,21 @@ VerifyScanDuration(5u /* expected_num_sections */); // A new scan should be allowed once a scan is not active. - RequestScan(); + RequestScan(NetworkTypePattern::Tether()); EXPECT_EQ(2u, fake_host_scanner_->num_scans_started()); EXPECT_TRUE( network_state_handler()->GetScanningByType(NetworkTypePattern::Tether())); } +TEST_F(HostScanSchedulerImplTest, ScanRequested_NonMatchingNetworkTypePattern) { + RequestScan(NetworkTypePattern::WiFi()); + EXPECT_EQ(0u, fake_host_scanner_->num_scans_started()); + EXPECT_FALSE( + network_state_handler()->GetScanningByType(NetworkTypePattern::Tether())); +} + TEST_F(HostScanSchedulerImplTest, HostScanSchedulerDestroyed) { - host_scan_scheduler_->ScheduleScan(); + host_scan_scheduler_->AttemptScanIfOffline(); EXPECT_TRUE( network_state_handler()->GetScanningByType(NetworkTypePattern::Tether())); @@ -289,7 +323,7 @@ TEST_F(HostScanSchedulerImplTest, HostScanBatchMetric) { // The first scan takes 5 seconds. After stopping, the timer should be // running. - host_scan_scheduler_->ScheduleScan(); + host_scan_scheduler_->AttemptScanIfOffline(); test_clock_.Advance(base::TimeDelta::FromSeconds(5)); fake_host_scanner_->StopScan(); EXPECT_TRUE(mock_host_scan_batch_timer_->IsRunning()); @@ -299,7 +333,7 @@ test_clock_.Advance(base::TimeDelta::FromSeconds(1)); EXPECT_LT(base::TimeDelta::FromSeconds(1), mock_host_scan_batch_timer_->GetCurrentDelay()); - host_scan_scheduler_->ScheduleScan(); + host_scan_scheduler_->AttemptScanIfOffline(); EXPECT_FALSE(mock_host_scan_batch_timer_->IsRunning()); // Stop the scan; the duration should not have been recorded, and the timer @@ -313,7 +347,7 @@ test_clock_.Advance(base::TimeDelta::FromSeconds(59)); EXPECT_LT(base::TimeDelta::FromSeconds(59), mock_host_scan_batch_timer_->GetCurrentDelay()); - host_scan_scheduler_->ScheduleScan(); + host_scan_scheduler_->AttemptScanIfOffline(); EXPECT_FALSE(mock_host_scan_batch_timer_->IsRunning()); // Stop the scan; the duration should not have been recorded, and the timer @@ -335,7 +369,7 @@ // Now, start a new 5-second scan, then wait for the timer to fire. A new // batch duration should have been logged to metrics. - host_scan_scheduler_->ScheduleScan(); + host_scan_scheduler_->AttemptScanIfOffline(); test_clock_.Advance(base::TimeDelta::FromSeconds(5)); fake_host_scanner_->StopScan(); EXPECT_TRUE(mock_host_scan_batch_timer_->IsRunning()); @@ -347,6 +381,8 @@ } TEST_F(HostScanSchedulerImplTest, DefaultNetworkChanged) { + InitializeEthernet(); + // When no Tether network is present, a scan should start when the default // network is disconnected. SetEthernetNetworkConnecting();
diff --git a/chromeos/components/tether/tether_component_impl.cc b/chromeos/components/tether/tether_component_impl.cc index bd8ed14..eab378f 100644 --- a/chromeos/components/tether/tether_component_impl.cc +++ b/chromeos/components/tether/tether_component_impl.cc
@@ -213,7 +213,8 @@ } // Start a scan now that the Tether module has started up. - synchronous_shutdown_object_container_->host_scan_scheduler()->ScheduleScan(); + synchronous_shutdown_object_container_->host_scan_scheduler() + ->AttemptScanIfOffline(); } void TetherComponentImpl::InitiateShutdown() {
diff --git a/chromeos/login/auth/user_context.cc b/chromeos/login/auth/user_context.cc index 0d26875..ceaf59ab 100644 --- a/chromeos/login/auth/user_context.cc +++ b/chromeos/login/auth/user_context.cc
@@ -143,6 +143,10 @@ !auth_code_.empty(); } +bool UserContext::IsUnderAdvancedProtection() const { + return is_under_advanced_protection_; +} + void UserContext::SetAccountId(const AccountId& account_id) { account_id_ = account_id; } @@ -208,6 +212,11 @@ sync_password_data_ = {sync_password_data}; } +void UserContext::SetIsUnderAdvancedProtection( + bool is_under_advanced_protection) { + is_under_advanced_protection_ = is_under_advanced_protection; +} + void UserContext::ClearSecrets() { key_.ClearSecret(); password_key_.ClearSecret();
diff --git a/chromeos/login/auth/user_context.h b/chromeos/login/auth/user_context.h index 3930ad1..7820999 100644 --- a/chromeos/login/auth/user_context.h +++ b/chromeos/login/auth/user_context.h
@@ -88,6 +88,9 @@ bool HasCredentials() const; + // If this user is under advanced protection. + bool IsUnderAdvancedProtection() const; + void SetAccountId(const AccountId& account_id); void SetKey(const Key& key); void SetPasswordKey(const Key& key); @@ -105,6 +108,7 @@ void SetGAPSCookie(const std::string& gaps_cookie); void SetSyncPasswordData( const password_manager::PasswordHashData& sync_password_data); + void SetIsUnderAdvancedProtection(bool is_under_advanced_protection); void ClearSecrets(); @@ -126,6 +130,7 @@ std::string public_session_input_method_; std::string device_id_; std::string gaps_cookie_; + bool is_under_advanced_protection_ = false; // For password reuse detection use. base::Optional<password_manager::PasswordHashData> sync_password_data_;
diff --git a/chromeos/network/network_state_handler.cc b/chromeos/network/network_state_handler.cc index b27cc3b..7122246 100644 --- a/chromeos/network/network_state_handler.cc +++ b/chromeos/network/network_state_handler.cc
@@ -41,7 +41,7 @@ if (network->is_captive_portal() != prev_is_captive_portal) return true; std::string connection_state = network->connection_state(); - // Treat 'idle' and 'discoonect' the same. + // Treat 'idle' and 'disconnect' the same. bool prev_idle = prev_connection_state.empty() || prev_connection_state == shill::kStateIdle || prev_connection_state == shill::kStateDisconnect; @@ -108,7 +108,7 @@ NetworkStateHandler::~NetworkStateHandler() { // Normally Shutdown() will get called in ~NetworkHandler, however unit // tests do not use that class so this needs to call Shutdown when we - // destry the class. + // destroy the class. if (!did_shutdown_) Shutdown(); } @@ -193,21 +193,28 @@ return tether_technology_state_; } - TechnologyState state; + // If a technology is not in Shill's 'AvailableTechnologies' list, it is + // always unavailable. + if (!shill_property_handler_->IsTechnologyAvailable(technology)) + return TECHNOLOGY_UNAVAILABLE; + + // Prohibited should take precedence over other states. + if (shill_property_handler_->IsTechnologyProhibited(technology)) + return TECHNOLOGY_PROHIBITED; + + // Enabled and Uninitialized should be mutually exclusive. 'Enabling', which + // is a pseudo state used by the UI, takes precedence over 'Uninitialized', + // but not 'Enabled'. if (shill_property_handler_->IsTechnologyEnabled(technology)) - state = TECHNOLOGY_ENABLED; - else if (shill_property_handler_->IsTechnologyEnabling(technology)) - state = TECHNOLOGY_ENABLING; - else if (shill_property_handler_->IsTechnologyProhibited(technology)) - state = TECHNOLOGY_PROHIBITED; - else if (shill_property_handler_->IsTechnologyUninitialized(technology)) - state = TECHNOLOGY_UNINITIALIZED; - else if (shill_property_handler_->IsTechnologyAvailable(technology)) - state = TECHNOLOGY_AVAILABLE; - else - state = TECHNOLOGY_UNAVAILABLE; - VLOG(2) << "GetTechnologyState: " << type.ToDebugString() << " = " << state; - return state; + return TECHNOLOGY_ENABLED; + if (shill_property_handler_->IsTechnologyEnabling(technology)) + return TECHNOLOGY_ENABLING; + if (shill_property_handler_->IsTechnologyUninitialized(technology)) + return TECHNOLOGY_UNINITIALIZED; + + // Default state is 'Available', which is equivalent to 'Initialized but not + // enabled'. + return TECHNOLOGY_AVAILABLE; } void NetworkStateHandler::SetTechnologyEnabled( @@ -970,19 +977,16 @@ void NetworkStateHandler::RequestScan(const NetworkTypePattern& type) { NET_LOG_USER("RequestScan", type.ToDebugString()); - bool did_scan = false; + if (type.MatchesType(shill::kTypeWifi)) { shill_property_handler_->RequestScanByType(shill::kTypeWifi); - did_scan = true; } if (type.Equals(NetworkTypePattern::Primitive(shill::kTypeCellular))) { // Only request a Cellular scan if Cellular is requested explicitly. shill_property_handler_->RequestScanByType(shill::kTypeCellular); - did_scan = true; } - if (!did_scan) - NET_LOG(ERROR) << "RequestScan: Invalid type: " << type.ToDebugString(); - NotifyScanRequested(); + + NotifyScanRequested(type); } void NetworkStateHandler::RequestUpdateForNetwork( @@ -1821,11 +1825,11 @@ observer.DevicePropertiesUpdated(device); } -void NetworkStateHandler::NotifyScanRequested() { +void NetworkStateHandler::NotifyScanRequested(const NetworkTypePattern& type) { SCOPED_NET_LOG_IF_SLOW(); NET_LOG_EVENT("NOTIFY:ScanRequested", ""); for (auto& observer : observers_) - observer.ScanRequested(); + observer.ScanRequested(type); } void NetworkStateHandler::NotifyScanCompleted(const DeviceState* device) { @@ -1863,7 +1867,7 @@ if (type.Equals(NetworkTypePattern::Wimax())) return shill::kTypeWimax; - // Prefer Wimax over Cellular only if it's available. + // Prefer WiMAX over Cellular only if it's available. if (type.MatchesType(shill::kTypeWimax) && shill_property_handler_->IsTechnologyAvailable(shill::kTypeWimax)) { return shill::kTypeWimax;
diff --git a/chromeos/network/network_state_handler.h b/chromeos/network/network_state_handler.h index 3c4ed0a..7058608a 100644 --- a/chromeos/network/network_state_handler.h +++ b/chromeos/network/network_state_handler.h
@@ -523,7 +523,7 @@ void NotifyDevicePropertiesUpdated(const DeviceState* device); // Called to ask observers to scan for networks. - void NotifyScanRequested(); + void NotifyScanRequested(const NetworkTypePattern& type); // Called whenever Device.Scanning state transitions to false. void NotifyScanCompleted(const DeviceState* device);
diff --git a/chromeos/network/network_state_handler_observer.cc b/chromeos/network/network_state_handler_observer.cc index ae08bc6f..16f35f9 100644 --- a/chromeos/network/network_state_handler_observer.cc +++ b/chromeos/network/network_state_handler_observer.cc
@@ -32,7 +32,8 @@ const chromeos::DeviceState* device) { } -void NetworkStateHandlerObserver::ScanRequested() {} +void NetworkStateHandlerObserver::ScanRequested( + const NetworkTypePattern& type) {} void NetworkStateHandlerObserver::ScanCompleted(const DeviceState* device) { }
diff --git a/chromeos/network/network_state_handler_observer.h b/chromeos/network/network_state_handler_observer.h index ae1c365..02a98d23 100644 --- a/chromeos/network/network_state_handler_observer.h +++ b/chromeos/network/network_state_handler_observer.h
@@ -10,6 +10,7 @@ #include "base/macros.h" #include "chromeos/chromeos_export.h" +#include "chromeos/network/network_type_pattern.h" namespace chromeos { @@ -49,8 +50,8 @@ // One or more properties of |device| have been updated. virtual void DevicePropertiesUpdated(const DeviceState* device); - // A scan for has been requested. - virtual void ScanRequested(); + // A scan for a given network type has been requested. + virtual void ScanRequested(const NetworkTypePattern& type); // A scan for |device| completed. virtual void ScanCompleted(const DeviceState* device);
diff --git a/chromeos/network/network_state_handler_unittest.cc b/chromeos/network/network_state_handler_unittest.cc index a456dae..57cdd31 100644 --- a/chromeos/network/network_state_handler_unittest.cc +++ b/chromeos/network/network_state_handler_unittest.cc
@@ -83,7 +83,6 @@ network_list_changed_count_(0), network_count_(0), default_network_change_count_(0), - scan_requested_count_(0), scan_completed_count_(0) {} ~TestObserver() override = default; @@ -135,7 +134,9 @@ device_property_updates_[device->path()]++; } - void ScanRequested() override { scan_requested_count_++; } + void ScanRequested(const NetworkTypePattern& type) override { + scan_requests_.push_back(type); + } void ScanCompleted(const DeviceState* device) override { DCHECK(device); @@ -149,14 +150,17 @@ size_t default_network_change_count() { return default_network_change_count_; } - size_t scan_requested_count() { return scan_requested_count_; } + size_t scan_requested_count() { return scan_requests_.size(); } + const std::vector<NetworkTypePattern>& scan_requests() { + return scan_requests_; + } size_t scan_completed_count() { return scan_completed_count_; } void reset_change_counts() { VLOG(1) << "=== RESET CHANGE COUNTS ==="; default_network_change_count_ = 0; device_list_changed_count_ = 0; network_list_changed_count_ = 0; - scan_requested_count_ = 0; + scan_requests_.clear(); scan_completed_count_ = 0; connection_state_changes_.clear(); } @@ -193,7 +197,7 @@ size_t network_list_changed_count_; size_t network_count_; size_t default_network_change_count_; - size_t scan_requested_count_; + std::vector<NetworkTypePattern> scan_requests_; size_t scan_completed_count_; std::string default_network_; std::string default_network_connection_state_; @@ -700,11 +704,11 @@ NetworkStateHandler::TECHNOLOGY_AVAILABLE, network_state_handler_->GetTechnologyState(NetworkTypePattern::WiFi())); - // Run the message loop. An additional notification will be received when - // Shill updates the enabled technologies. The state should remain AVAILABLE. + // Run the message loop. No additional notification should be received when + // Shill updates the enabled technologies since the state remains AVAILABLE. test_observer_->reset_change_counts(); base::RunLoop().RunUntilIdle(); - EXPECT_EQ(1u, test_observer_->device_list_changed_count()); + EXPECT_EQ(0u, test_observer_->device_list_changed_count()); EXPECT_EQ( NetworkStateHandler::TECHNOLOGY_AVAILABLE, network_state_handler_->GetTechnologyState(NetworkTypePattern::WiFi())); @@ -1668,7 +1672,12 @@ TEST_F(NetworkStateHandlerTest, RequestScan) { EXPECT_EQ(0u, test_observer_->scan_requested_count()); network_state_handler_->RequestScan(NetworkTypePattern::WiFi()); - EXPECT_EQ(1u, test_observer_->scan_requested_count()); + network_state_handler_->RequestScan(NetworkTypePattern::Tether()); + EXPECT_EQ(2u, test_observer_->scan_requested_count()); + EXPECT_TRUE( + NetworkTypePattern::WiFi().Equals(test_observer_->scan_requests()[0])); + EXPECT_TRUE( + NetworkTypePattern::Tether().Equals(test_observer_->scan_requests()[1])); } TEST_F(NetworkStateHandlerTest, NetworkGuidInProfile) {
diff --git a/chromeos/network/shill_property_handler.cc b/chromeos/network/shill_property_handler.cc index a80dce3..d1093c0 100644 --- a/chromeos/network/shill_property_handler.cc +++ b/chromeos/network/shill_property_handler.cc
@@ -430,13 +430,20 @@ void ShillPropertyHandler::UpdateAvailableTechnologies( const base::ListValue& technologies) { NET_LOG(EVENT) << "AvailableTechnologies:" << technologies; - available_technologies_.clear(); - for (base::ListValue::const_iterator iter = technologies.begin(); - iter != technologies.end(); ++iter) { - std::string technology; - iter->GetAsString(&technology); - DCHECK(!technology.empty()); - available_technologies_.insert(technology); + std::set<std::string> new_available_technologies; + for (const base::Value& technology : technologies.GetList()) + new_available_technologies.insert(technology.GetString()); + if (new_available_technologies == available_technologies_) + return; + available_technologies_.swap(new_available_technologies); + // If any entries in |enabling_technologies_| are no longer available, + // remove them from the enabling list. + for (auto iter = enabling_technologies_.begin(); + iter != enabling_technologies_.end();) { + if (!available_technologies_.count(*iter)) + iter = enabling_technologies_.erase(iter); + else + ++iter; } listener_->TechnologyListChanged(); } @@ -444,14 +451,20 @@ void ShillPropertyHandler::UpdateEnabledTechnologies( const base::ListValue& technologies) { NET_LOG(EVENT) << "EnabledTechnologies:" << technologies; - enabled_technologies_.clear(); - for (base::ListValue::const_iterator iter = technologies.begin(); - iter != technologies.end(); ++iter) { - std::string technology; - iter->GetAsString(&technology); - DCHECK(!technology.empty()); - enabled_technologies_.insert(technology); - enabling_technologies_.erase(technology); + std::set<std::string> new_enabled_technologies; + for (const base::Value& technology : technologies.GetList()) + new_enabled_technologies.insert(technology.GetString()); + if (new_enabled_technologies == enabled_technologies_) + return; + enabled_technologies_.swap(new_enabled_technologies); + // If any entries in |enabling_technologies_| are enabled, remove them from + // the enabling list. + for (auto iter = enabling_technologies_.begin(); + iter != enabling_technologies_.end();) { + if (enabled_technologies_.count(*iter)) + iter = enabling_technologies_.erase(iter); + else + ++iter; } listener_->TechnologyListChanged(); } @@ -459,14 +472,12 @@ void ShillPropertyHandler::UpdateUninitializedTechnologies( const base::ListValue& technologies) { NET_LOG(EVENT) << "UninitializedTechnologies:" << technologies; - uninitialized_technologies_.clear(); - for (base::ListValue::const_iterator iter = technologies.begin(); - iter != technologies.end(); ++iter) { - std::string technology; - iter->GetAsString(&technology); - DCHECK(!technology.empty()); - uninitialized_technologies_.insert(technology); - } + std::set<std::string> new_uninitialized_technologies; + for (const base::Value& technology : technologies.GetList()) + new_uninitialized_technologies.insert(technology.GetString()); + if (new_uninitialized_technologies == uninitialized_technologies_) + return; + uninitialized_technologies_.swap(new_uninitialized_technologies); listener_->TechnologyListChanged(); }
diff --git a/chromeos/services/assistant/platform/audio_output_provider_impl_unittest.cc b/chromeos/services/assistant/platform/audio_output_provider_impl_unittest.cc index ca15648..e8893ed2 100644 --- a/chromeos/services/assistant/platform/audio_output_provider_impl_unittest.cc +++ b/chromeos/services/assistant/platform/audio_output_provider_impl_unittest.cc
@@ -4,6 +4,9 @@ #include "chromeos/services/assistant/platform/audio_output_provider_impl.h" +#include <memory> +#include <utility> + #include "base/callback.h" #include "base/macros.h" #include "base/run_loop.h" @@ -98,8 +101,8 @@ delegate.set_num_of_bytes_to_fill(200); delegate.Reset(); - auto owner = - std::make_unique<AudioDeviceOwner>(base::ThreadTaskRunnerHandle::Get()); + auto owner = std::make_unique<AudioDeviceOwner>( + base::ThreadTaskRunnerHandle::Get(), base::ThreadTaskRunnerHandle::Get()); // Upon start, it will start to fill the buffer. owner->StartOnMainThread(&delegate, nullptr, format); delegate.Wait();
diff --git a/chromeos/services/assistant/public/mojom/assistant.mojom b/chromeos/services/assistant/public/mojom/assistant.mojom index 68c13e8..9a67e0a55 100644 --- a/chromeos/services/assistant/public/mojom/assistant.mojom +++ b/chromeos/services/assistant/public/mojom/assistant.mojom
@@ -134,26 +134,6 @@ ax.mojom.AssistantTree? structure); }; -// Interface for assistant to call into browser for audio input related -// functions. -interface AudioInput { - // Registers audio input observer. We assume dual-channel, 16kHz and signed - // 32-bit int interleaved format. Audio stream starts recording as soon as - // the first observer is added. And will stop recording if last observer is - // closed. - AddObserver(AudioInputObserver observer); -}; - -// Observer for assistant to receive audio input data. -interface AudioInputObserver { - // Notifies that audio frames are available. - // TODO(muyuanli): Use data pipe. - OnAudioInputFramesAvailable(array<int32> buffer, uint32 frame_count, - mojo_base.mojom.TimeTicks timestamp); - // Notifies that audio input stream is closed. - OnAudioInputClosed(); -}; - // Interface for assistant to call into browser to perform device actions. interface DeviceActions { // Enables or disables WiFi.
diff --git a/chromeos/services/assistant/service_unittest.cc b/chromeos/services/assistant/service_unittest.cc index 767c1a7..aa9b06b 100644 --- a/chromeos/services/assistant/service_unittest.cc +++ b/chromeos/services/assistant/service_unittest.cc
@@ -123,25 +123,6 @@ DISALLOW_COPY_AND_ASSIGN(FakeAssistantClient); }; -class FakeAudioInput : mojom::AudioInput { - public: - FakeAudioInput() : binding_(this) {} - - mojom::AudioInputPtr CreateInterfacePtrAndBind() { - mojom::AudioInputPtr ptr; - binding_.Bind(mojo::MakeRequest(&ptr)); - return ptr; - } - - private: - // mojom::AudioInput: - void AddObserver(mojom::AudioInputObserverPtr observer) override {} - - mojo::Binding<mojom::AudioInput> binding_; - - DISALLOW_COPY_AND_ASSIGN(FakeAudioInput); -}; - class FakeDeviceActions : mojom::DeviceActions { public: FakeDeviceActions() : binding_(this) {} @@ -249,7 +230,6 @@ fake_identity_manager_ = std::make_unique<FakeIdentityManager>(); fake_assistant_client_ = std::make_unique<FakeAssistantClient>(); fake_device_actions_ = std::make_unique<FakeDeviceActions>(); - fake_audio_input_ = std::make_unique<FakeAudioInput>(); fake_assistant_manager_ptr_ = new FakeAssistantManagerServiceImpl(); std::unique_ptr<chromeos::DBusThreadManagerSetter> dbus_setter = @@ -298,7 +278,6 @@ std::unique_ptr<FakeIdentityManager> fake_identity_manager_; std::unique_ptr<FakeAssistantClient> fake_assistant_client_; - std::unique_ptr<FakeAudioInput> fake_audio_input_; std::unique_ptr<FakeDeviceActions> fake_device_actions_; FakeAssistantManagerServiceImpl* fake_assistant_manager_ptr_;
diff --git a/chromeos/services/multidevice_setup/DEPS b/chromeos/services/multidevice_setup/DEPS index 80b2683..69b3333e 100644 --- a/chromeos/services/multidevice_setup/DEPS +++ b/chromeos/services/multidevice_setup/DEPS
@@ -1,4 +1,5 @@ include_rules = [ + "+chrome/common/url_constants.h", "+components/proximity_auth/logging/logging.h", "+components/cryptauth", "+components/sync_preferences/testing_pref_service_syncable.h",
diff --git a/chromeos/services/multidevice_setup/public/cpp/BUILD.gn b/chromeos/services/multidevice_setup/public/cpp/BUILD.gn index 5b06a1a9..4d36b56 100644 --- a/chromeos/services/multidevice_setup/public/cpp/BUILD.gn +++ b/chromeos/services/multidevice_setup/public/cpp/BUILD.gn
@@ -52,6 +52,18 @@ ] } +source_set("url_provider") { + sources = [ + "url_provider.cc", + "url_provider.h", + ] + + deps = [ + "//base", + "//chrome/common", + ] +} + static_library("test_support") { testonly = true
diff --git a/chromeos/services/multidevice_setup/public/cpp/url_provider.cc b/chromeos/services/multidevice_setup/public/cpp/url_provider.cc new file mode 100644 index 0000000..a4a6f8c --- /dev/null +++ b/chromeos/services/multidevice_setup/public/cpp/url_provider.cc
@@ -0,0 +1,22 @@ +// 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/services/multidevice_setup/public/cpp/url_provider.h" + +#include "base/strings/utf_string_conversions.h" +#include "base/sys_info.h" +#include "chrome/common/url_constants.h" + +namespace chromeos { + +namespace multidevice_setup { + +GURL GetBoardSpecificLearnMoreUrl() { + return GURL(std::string(chrome::kMultiDeviceLearnMoreURL) + + "&b=" + base::SysInfo::GetLsbReleaseBoard()); +} + +} // namespace multidevice_setup + +} // namespace chromeos
diff --git a/chromeos/services/multidevice_setup/public/cpp/url_provider.h b/chromeos/services/multidevice_setup/public/cpp/url_provider.h new file mode 100644 index 0000000..dc87e9f --- /dev/null +++ b/chromeos/services/multidevice_setup/public/cpp/url_provider.h
@@ -0,0 +1,20 @@ +// 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_SERVICES_MULTIDEVICE_SETUP_PUBLIC_CPP_URL_PROVIDER_H_ +#define CHROMEOS_SERVICES_MULTIDEVICE_SETUP_PUBLIC_CPP_URL_PROVIDER_H_ + +#include "url/gurl.h" + +namespace chromeos { + +namespace multidevice_setup { + +GURL GetBoardSpecificLearnMoreUrl(); + +} // namespace multidevice_setup + +} // namespace chromeos + +#endif // CHROMEOS_SERVICES_MULTIDEVICE_SETUP_PUBLIC_CPP_URL_PROVIDER_H_
diff --git a/chromeos/strings/chromeos_strings_am.xtb b/chromeos/strings/chromeos_strings_am.xtb index e399089..5877d63 100644 --- a/chromeos/strings/chromeos_strings_am.xtb +++ b/chromeos/strings/chromeos_strings_am.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="am"> +<translation id="2083960536266308407">በማያ ገጹ ላይ ምንም አልተገኘም</translation> +<translation id="5212543919916444558">እኔ ላግዝ የምችልበት ምንም ነገር በእርስዎ ማያ ገጽ ላይ አላገኘሁም። +ማንኛውም ነገር እኔን ለመጠየቅ ማይክሮፎኑን መታ አድርገው ይሞክሩ።</translation> <translation id="6674412557034343536">ሰዓት ቆጣሪ አቁም</translation> <translation id="8626219642120025691">የሰዓት ቆጣሪ ተጠናቅቋል</translation> +<translation id="8898978413391960553">00:00 ሴ</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_ar.xtb b/chromeos/strings/chromeos_strings_ar.xtb index 0f658f0..01983e33 100644 --- a/chromeos/strings/chromeos_strings_ar.xtb +++ b/chromeos/strings/chromeos_strings_ar.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ar"> -<translation id="6674412557034343536">إيقاف المؤقّت</translation> -<translation id="8626219642120025691">تم الانتهاء من المؤقّت</translation> +<translation id="2083960536266308407">لم يتم العثور على أي نتائج على الشاشة</translation> +<translation id="5212543919916444558">يتعذَّر عليَّ العثور على أي شيء على الشاشة التي يمكنني المساعدة باستخدامها. +يُرجى تجربة النقر على الميكروفون لمطالبتي بأي شيء.</translation> +<translation id="6674412557034343536">إيقاف الموقّت</translation> +<translation id="8626219642120025691">تم الانتهاء من الموقّت</translation> +<translation id="8898978413391960553">00:00 ثانية</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_et.xtb b/chromeos/strings/chromeos_strings_et.xtb index 83da553..beb8da27 100644 --- a/chromeos/strings/chromeos_strings_et.xtb +++ b/chromeos/strings/chromeos_strings_et.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="et"> +<translation id="2083960536266308407">Ekraanilt ei leitud midagi</translation> +<translation id="5212543919916444558">Ma ei leia teie ekraanilt midagi, mille puhul saaksin aidata. +Kui soovite mulle küsimuse esitada, puudutage mikrofoni.</translation> <translation id="6674412557034343536">peata taimer</translation> <translation id="8626219642120025691">Taimer jõudis lõpule</translation> +<translation id="8898978413391960553">00:00 s</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_fa.xtb b/chromeos/strings/chromeos_strings_fa.xtb index 52eead44..f582ef6 100644 --- a/chromeos/strings/chromeos_strings_fa.xtb +++ b/chromeos/strings/chromeos_strings_fa.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="fa"> +<translation id="2083960536266308407">چیزی در صفحه پیدا نشد</translation> +<translation id="5212543919916444558">در صفحهتان چیزی پیدا نمیکنم تا درمورد آن کمکتان کنم. +برای درخواست از من، روی میکروفون ضربه بزنید.</translation> <translation id="6674412557034343536">توقف تایمر</translation> <translation id="8626219642120025691">تایمر تمام</translation> +<translation id="8898978413391960553">00:00ثانیه</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_fil.xtb b/chromeos/strings/chromeos_strings_fil.xtb index 8afa614..f79ee0c6 100644 --- a/chromeos/strings/chromeos_strings_fil.xtb +++ b/chromeos/strings/chromeos_strings_fil.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="fil"> +<translation id="2083960536266308407">Walang nakita sa screen</translation> +<translation id="5212543919916444558">Wala akong makitang kahit ano sa iyong screen kung saan ako makakatulong. +Subukang i-tap ang mikropono para humiling sa akin ng kahit ano.</translation> <translation id="6674412557034343536">ihinto ang timer</translation> <translation id="8626219642120025691">Tapos na ang timer</translation> +<translation id="8898978413391960553">00:00s</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_gu.xtb b/chromeos/strings/chromeos_strings_gu.xtb index 80a82f9..2403b10b 100644 --- a/chromeos/strings/chromeos_strings_gu.xtb +++ b/chromeos/strings/chromeos_strings_gu.xtb
@@ -2,5 +2,5 @@ <!DOCTYPE translationbundle> <translationbundle lang="gu"> <translation id="6674412557034343536">ટાઇમર રોકો</translation> -<translation id="8626219642120025691">ટાઇમર લગાવ્યું</translation> +<translation id="8626219642120025691">ટાઇમર પૂરું થયું</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_hr.xtb b/chromeos/strings/chromeos_strings_hr.xtb index 4e86073..0596f39 100644 --- a/chromeos/strings/chromeos_strings_hr.xtb +++ b/chromeos/strings/chromeos_strings_hr.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="hr"> +<translation id="2083960536266308407">Na zaslonu nije ništa pronađeno</translation> +<translation id="5212543919916444558">Na zaslonu ne mogu pronaći ništa u vezi s čime mogu pružiti pomoć. +Dodirnite mikrofon da biste mi dali glasovnu naredbu.</translation> <translation id="6674412557034343536">zaustavi odbrojavanje</translation> <translation id="8626219642120025691">Odbrojavanje gotovo</translation> +<translation id="8898978413391960553">00:00</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_hu.xtb b/chromeos/strings/chromeos_strings_hu.xtb index e94f5d5..8e0cb4ef 100644 --- a/chromeos/strings/chromeos_strings_hu.xtb +++ b/chromeos/strings/chromeos_strings_hu.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="hu"> +<translation id="2083960536266308407">Semmi nem található a képernyőn</translation> +<translation id="5212543919916444558">Nem találok semmi olyat a képernyőn, amellyel kapcsolatban segíthetnék. +Koppintson a mikrofonra, és kérdezzen tőlem.</translation> <translation id="6674412557034343536">időzítés leállítása</translation> <translation id="8626219642120025691">Időzítés kész</translation> +<translation id="8898978413391960553">00:00 s</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_id.xtb b/chromeos/strings/chromeos_strings_id.xtb index 795ea888..1817831 100644 --- a/chromeos/strings/chromeos_strings_id.xtb +++ b/chromeos/strings/chromeos_strings_id.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="id"> +<translation id="2083960536266308407">Tidak menemukan apa pun di layar</translation> +<translation id="5212543919916444558">Di layar tidak ada hal yang membutuhkan bantuan saya. +Tap mikrofon untuk menanyakan apa pun.</translation> <translation id="6674412557034343536">hentikan timer</translation> <translation id="8626219642120025691">Timer selesai</translation> +<translation id="8898978413391960553">00.00d</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_it.xtb b/chromeos/strings/chromeos_strings_it.xtb index 0423ec7..24d010ae 100644 --- a/chromeos/strings/chromeos_strings_it.xtb +++ b/chromeos/strings/chromeos_strings_it.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="it"> +<translation id="2083960536266308407">Non è stato trovato niente sullo schermo</translation> +<translation id="5212543919916444558">Non riesco a trovare nulla sullo schermo per cui poterti essere utile. +Prova a toccare il microfono per chiedermi qualcosa.</translation> <translation id="6674412557034343536">interrompi timer</translation> <translation id="8626219642120025691">Timer creato</translation> +<translation id="8898978413391960553">00:00 s</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_iw.xtb b/chromeos/strings/chromeos_strings_iw.xtb index f8709b6..ff668c8 100644 --- a/chromeos/strings/chromeos_strings_iw.xtb +++ b/chromeos/strings/chromeos_strings_iw.xtb
@@ -1,6 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="iw"> -<translation id="6674412557034343536">הפסקת הטיימר</translation> -<translation id="8626219642120025691">הטיימר סיים</translation> +<translation id="6674412557034343536">stop timer</translation> +<translation id="8626219642120025691">פעולת הטיימר הסתיימה</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_ja.xtb b/chromeos/strings/chromeos_strings_ja.xtb index c7109ca..4dcfc85 100644 --- a/chromeos/strings/chromeos_strings_ja.xtb +++ b/chromeos/strings/chromeos_strings_ja.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ja"> +<translation id="2083960536266308407">画面では何も見つかりませんでした</translation> +<translation id="5212543919916444558">画面からはサポートできる内容が見つかりませんでした。 +マイクをタップして質問してみてください。</translation> <translation id="6674412557034343536">タイマーを止めて</translation> <translation id="8626219642120025691">タイマーが設定されました</translation> +<translation id="8898978413391960553">00:00 秒</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_lt.xtb b/chromeos/strings/chromeos_strings_lt.xtb index fec677a..029ed3f 100644 --- a/chromeos/strings/chromeos_strings_lt.xtb +++ b/chromeos/strings/chromeos_strings_lt.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="lt"> +<translation id="2083960536266308407">Ekrane nieko nerasta</translation> +<translation id="5212543919916444558">Ekrane nieko nerasta, dėl ko galėtume jums padėti. +Palieskite mikrofoną, kad užduotumėte reikiamus klausimus.</translation> <translation id="6674412557034343536">stabdyti laikmatį</translation> <translation id="8626219642120025691">Laikmatis atliktas</translation> +<translation id="8898978413391960553">00:00 sek.</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_ms.xtb b/chromeos/strings/chromeos_strings_ms.xtb index 44d702fb..32bbb2d 100644 --- a/chromeos/strings/chromeos_strings_ms.xtb +++ b/chromeos/strings/chromeos_strings_ms.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ms"> +<translation id="2083960536266308407">Tiada apa-apa ditemui pada skrin</translation> +<translation id="5212543919916444558">Saya tidak menemui apa-apa pada skrin anda yang boleh saya bantu. +Cuba ketik mikrofon untuk bertanyakan sebarang perkara kepada saya.</translation> <translation id="6674412557034343536">hentikan pemasa</translation> <translation id="8626219642120025691">Pemasa selesai</translation> +<translation id="8898978413391960553">00:00s</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_pl.xtb b/chromeos/strings/chromeos_strings_pl.xtb index 6241d04..c78c304 100644 --- a/chromeos/strings/chromeos_strings_pl.xtb +++ b/chromeos/strings/chromeos_strings_pl.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="pl"> +<translation id="2083960536266308407">Na ekranie nic nie znaleziono</translation> +<translation id="5212543919916444558">Na Twoim ekranie nie ma nic, w czym mogę pomóc. +Kliknij mikrofon i zadaj pytanie.</translation> <translation id="6674412557034343536">zatrzymaj minutnik</translation> -<translation id="8626219642120025691">Minutnik gotowy</translation> +<translation id="8626219642120025691">Czas minął</translation> +<translation id="8898978413391960553">00:00 s</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_pt-BR.xtb b/chromeos/strings/chromeos_strings_pt-BR.xtb index a5a4cab..80ca829 100644 --- a/chromeos/strings/chromeos_strings_pt-BR.xtb +++ b/chromeos/strings/chromeos_strings_pt-BR.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="pt-BR"> +<translation id="2083960536266308407">Nada encontrado na tela</translation> +<translation id="5212543919916444558">Não foi possível encontrar na sua tela nada com o que eu possa ajudar. +Tente tocar no microfone para me pedir algo.</translation> <translation id="6674412557034343536">parar timer</translation> <translation id="8626219642120025691">Timer finalizado</translation> +<translation id="8898978413391960553">00:00s</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_sk.xtb b/chromeos/strings/chromeos_strings_sk.xtb index d55a04f..5f5c4ec 100644 --- a/chromeos/strings/chromeos_strings_sk.xtb +++ b/chromeos/strings/chromeos_strings_sk.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sk"> +<translation id="2083960536266308407">Na obrazovke sa nič nenašlo</translation> +<translation id="5212543919916444558">Na obrazovke nie je nič, s čím by som mohol pomôcť. +Skúste klepnúť na mikrofón a niečo prikázať.</translation> <translation id="6674412557034343536">zastaviť časovač</translation> -<translation id="8626219642120025691">Časovač skončil</translation> +<translation id="8626219642120025691">Časovač je ukončený</translation> +<translation id="8898978413391960553">00:00 s</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_sr.xtb b/chromeos/strings/chromeos_strings_sr.xtb index a7a1379..692316b08 100644 --- a/chromeos/strings/chromeos_strings_sr.xtb +++ b/chromeos/strings/chromeos_strings_sr.xtb
@@ -2,5 +2,5 @@ <!DOCTYPE translationbundle> <translationbundle lang="sr"> <translation id="6674412557034343536">заустави тајмер</translation> -<translation id="8626219642120025691">Тајмер је искључен</translation> +<translation id="8626219642120025691">Време је истекло</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_sw.xtb b/chromeos/strings/chromeos_strings_sw.xtb index c7f77f3bc..a7d9444 100644 --- a/chromeos/strings/chromeos_strings_sw.xtb +++ b/chromeos/strings/chromeos_strings_sw.xtb
@@ -1,6 +1,9 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="sw"> +<translation id="2083960536266308407">Sijapata chochote kwenye skrini</translation> +<translation id="5212543919916444558">Sijapata swali lolote kwenye skrini yako. Jaribu kugonga maikrofoni ili uniulize chochote.</translation> <translation id="6674412557034343536">simamisha kipima muda</translation> <translation id="8626219642120025691">Kipima muda kimemaliza kuhesabu</translation> +<translation id="8898978413391960553">Sekunde 00:00</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_ta.xtb b/chromeos/strings/chromeos_strings_ta.xtb index b4a932d..4d5548999 100644 --- a/chromeos/strings/chromeos_strings_ta.xtb +++ b/chromeos/strings/chromeos_strings_ta.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="ta"> +<translation id="2083960536266308407">திரையில் எதுவுமில்லை</translation> +<translation id="5212543919916444558">உங்களுக்கு நான் உதவும் வகையில், உங்கள் திரையில் எதுவுமில்லை. +என்னிடம் ஏதேனும் கேட்க, மைக்கைத் தட்டவும்.</translation> <translation id="6674412557034343536">டைமரை நிறுத்து</translation> <translation id="8626219642120025691">டைமர் முடிந்தது</translation> +<translation id="8898978413391960553">00:00வி</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_te.xtb b/chromeos/strings/chromeos_strings_te.xtb index 3710f5e8..537d936e 100644 --- a/chromeos/strings/chromeos_strings_te.xtb +++ b/chromeos/strings/chromeos_strings_te.xtb
@@ -1,6 +1,6 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="te"> -<translation id="6674412557034343536">టైమర్ను ఆపివేయండి</translation> +<translation id="6674412557034343536">టైమర్ను ఆపివేయి</translation> <translation id="8626219642120025691">టైమర్ పూర్తయింది</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_th.xtb b/chromeos/strings/chromeos_strings_th.xtb index db00135..8501daa2 100644 --- a/chromeos/strings/chromeos_strings_th.xtb +++ b/chromeos/strings/chromeos_strings_th.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="th"> +<translation id="2083960536266308407">ไม่พบสิ่งใดในหน้าจอ</translation> +<translation id="5212543919916444558">ฉันไม่พบสิ่งที่จะช่วยได้ในหน้าจอ +ลองแตะไมโครโฟนเพื่อถามเรื่องอะไรก็ได้</translation> <translation id="6674412557034343536">หยุดตัวจับเวลา</translation> <translation id="8626219642120025691">ตัวจับเวลาสิ้นสุดแล้ว</translation> +<translation id="8898978413391960553">00:00 วินาที</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_tr.xtb b/chromeos/strings/chromeos_strings_tr.xtb index 1d06ea5..13490d7f 100644 --- a/chromeos/strings/chromeos_strings_tr.xtb +++ b/chromeos/strings/chromeos_strings_tr.xtb
@@ -2,5 +2,5 @@ <!DOCTYPE translationbundle> <translationbundle lang="tr"> <translation id="6674412557034343536">zamanlayıcıyı durdur</translation> -<translation id="8626219642120025691">Zamanlayıcı bitti</translation> +<translation id="8626219642120025691">Zamanlayıcı sona erdi</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_uk.xtb b/chromeos/strings/chromeos_strings_uk.xtb index 5d4f732..ee04d54 100644 --- a/chromeos/strings/chromeos_strings_uk.xtb +++ b/chromeos/strings/chromeos_strings_uk.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="uk"> +<translation id="2083960536266308407">На екрані не знайдено проблемних елементів</translation> +<translation id="5212543919916444558">На екрані не знайдено елементів, проблеми з якими я можу вирішити. +Торкніться значка мікрофона, щоб поставити запитання.</translation> <translation id="6674412557034343536">зупинити таймер</translation> <translation id="8626219642120025691">Таймер вимкнено</translation> +<translation id="8898978413391960553">00:00 с</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_vi.xtb b/chromeos/strings/chromeos_strings_vi.xtb index 743043c9..036449e 100644 --- a/chromeos/strings/chromeos_strings_vi.xtb +++ b/chromeos/strings/chromeos_strings_vi.xtb
@@ -2,5 +2,5 @@ <!DOCTYPE translationbundle> <translationbundle lang="vi"> <translation id="6674412557034343536">dừng hẹn giờ</translation> -<translation id="8626219642120025691">Đã thiết lập xong bộ hẹn giờ</translation> +<translation id="8626219642120025691">Bộ hẹn giờ đã kết thúc</translation> </translationbundle> \ No newline at end of file
diff --git a/chromeos/strings/chromeos_strings_zh-TW.xtb b/chromeos/strings/chromeos_strings_zh-TW.xtb index 5de4b9a1..e5cffa2 100644 --- a/chromeos/strings/chromeos_strings_zh-TW.xtb +++ b/chromeos/strings/chromeos_strings_zh-TW.xtb
@@ -1,6 +1,10 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="zh-TW"> +<translation id="2083960536266308407">在畫面上找不到任何相符內容</translation> +<translation id="5212543919916444558">系統在你的畫面上找不到任何能提供協助的內容。 +請輕觸麥克風圖示,直接說出你的問題。</translation> <translation id="6674412557034343536">停止計時器</translation> <translation id="8626219642120025691">計時完成</translation> +<translation id="8898978413391960553">00:00 秒</translation> </translationbundle> \ No newline at end of file
diff --git a/components/arc/audio/arc_audio_bridge.cc b/components/arc/audio/arc_audio_bridge.cc index 258d9db..24e78652 100644 --- a/components/arc/audio/arc_audio_bridge.cc +++ b/components/arc/audio/arc_audio_bridge.cc
@@ -98,14 +98,17 @@ cras_audio_handler_->GetDeviceFromId(output_id); bool headphone_inserted = (output_device && - output_device->type == chromeos::AudioDeviceType::AUDIO_TYPE_HEADPHONE); + (output_device->type == + chromeos::AudioDeviceType::AUDIO_TYPE_HEADPHONE || + output_device->type == chromeos::AudioDeviceType::AUDIO_TYPE_USB)); uint64_t input_id = cras_audio_handler_->GetPrimaryActiveInputNode(); const chromeos::AudioDevice* input_device = cras_audio_handler_->GetDeviceFromId(input_id); bool microphone_inserted = (input_device && - input_device->type == chromeos::AudioDeviceType::AUDIO_TYPE_MIC); + (input_device->type == chromeos::AudioDeviceType::AUDIO_TYPE_MIC || + input_device->type == chromeos::AudioDeviceType::AUDIO_TYPE_USB)); DVLOG(1) << "HEADPHONE " << headphone_inserted << " MICROPHONE " << microphone_inserted;
diff --git a/components/autofill/OWNERS b/components/autofill/OWNERS index d07c416b..5f6d6d2d 100644 --- a/components/autofill/OWNERS +++ b/components/autofill/OWNERS
@@ -1,5 +1,7 @@ dvadym@chromium.org estade@chromium.org +ftirelo@chromium.org +mahmadi@chromium.org mathp@chromium.org rogerm@chromium.org sebsg@chromium.org
diff --git a/components/autofill/core/browser/autofill_experiments.cc b/components/autofill/core/browser/autofill_experiments.cc index c5f5911..642075b 100644 --- a/components/autofill/core/browser/autofill_experiments.cc +++ b/components/autofill/core/browser/autofill_experiments.cc
@@ -28,6 +28,14 @@ namespace autofill { #if !defined(OS_ANDROID) +const base::Feature kAutofillPrimaryInfoStyleExperiment{ + "AutofillPrimaryInfoStyleExperiment", base::FEATURE_DISABLED_BY_DEFAULT}; +const char kAutofillPrimaryInfoFontWeightParameterName[] = "font_weight"; +const char kAutofillPrimaryInfoFontWeightParameterMedium[] = "medium"; +const char kAutofillPrimaryInfoFontWeightParameterSemiBold[] = "semi-bold"; +const char kAutofillPrimaryInfoFontWeightParameterBold[] = "bold"; +const char kAutofillPrimaryInfoFontWeightParameterExtraBold[] = "extra-bold"; + const base::Feature kAutofillDropdownLayoutExperiment{ "AutofillDropdownLayout", base::FEATURE_DISABLED_BY_DEFAULT}; const char kAutofillDropdownLayoutParameterName[] = "variant"; @@ -156,6 +164,45 @@ } #if !defined(OS_ANDROID) +namespace { + +// Returns the font weight corresponding to the value of param +// kAutofillPrimaryInfoFontWeightParameterName, or INVALID if the param is not +// valid. +gfx::Font::Weight GetFontWeightFromParam() { + std::string param = base::GetFieldTrialParamValueByFeature( + autofill::kAutofillPrimaryInfoStyleExperiment, + autofill::kAutofillPrimaryInfoFontWeightParameterName); + + if (param == autofill::kAutofillPrimaryInfoFontWeightParameterMedium) + return gfx::Font::Weight::MEDIUM; + if (param == autofill::kAutofillPrimaryInfoFontWeightParameterSemiBold) + return gfx::Font::Weight::SEMIBOLD; + if (param == autofill::kAutofillPrimaryInfoFontWeightParameterBold) + return gfx::Font::Weight::BOLD; + if (param == autofill::kAutofillPrimaryInfoFontWeightParameterExtraBold) + return gfx::Font::Weight::EXTRA_BOLD; + + return gfx::Font::Weight::INVALID; +} + +} // namespace + +bool ShouldUseCustomFontWeightForPrimaryInfo(gfx::Font::Weight* font_weight) { + if (!base::FeatureList::IsEnabled( + autofill::kAutofillPrimaryInfoStyleExperiment)) { + return false; + } + + // Only read the feature param's value the first time it's needed. + static gfx::Font::Weight font_weight_from_param = GetFontWeightFromParam(); + if (font_weight_from_param == gfx::Font::Weight::INVALID) + return false; + + *font_weight = font_weight_from_param; + return true; +} + ForcedPopupLayoutState GetForcedPopupLayoutState() { if (!base::FeatureList::IsEnabled( autofill::kAutofillDropdownLayoutExperiment))
diff --git a/components/autofill/core/browser/autofill_experiments.h b/components/autofill/core/browser/autofill_experiments.h index 594a091..08b1e94 100644 --- a/components/autofill/core/browser/autofill_experiments.h +++ b/components/autofill/core/browser/autofill_experiments.h
@@ -9,6 +9,7 @@ #include "base/strings/string16.h" #include "build/build_config.h" +#include "ui/gfx/font.h" class PrefService; @@ -28,6 +29,13 @@ extern const char kAutofillDropdownLayoutParameterName[]; extern const char kAutofillDropdownLayoutParameterLeadingIcon[]; extern const char kAutofillDropdownLayoutParameterTrailingIcon[]; + +extern const base::Feature kAutofillPrimaryInfoStyleExperiment; +extern const char kAutofillPrimaryInfoFontWeightParameterName[]; +extern const char kAutofillPrimaryInfoFontWeightParameterMedium[]; +extern const char kAutofillPrimaryInfoFontWeightParameterSemiBold[]; +extern const char kAutofillPrimaryInfoFontWeightParameterBold[]; +extern const char kAutofillPrimaryInfoFontWeightParameterExtraBold[]; #endif // !defined(OS_ANDROID) // Returns true if uploading credit cards to Wallet servers is enabled. This @@ -59,6 +67,12 @@ bool ShouldUseActiveSignedInAccount(); #if !defined(OS_ANDROID) +// Sets |font_weight| as the font weight to be used for primary information on +// the Autofill dropdown for Addresses and Credit Cards. Returns false if +// feature kAutofillPrimaryInfoStyleExperiment is disabled or if the +// corresponding feature param is invalid. +bool ShouldUseCustomFontWeightForPrimaryInfo(gfx::Font::Weight* font_weight); + enum class ForcedPopupLayoutState { kDefault, // No popup layout forced by experiment. kLeadingIcon, // Experiment forces leading (left in LTR) icon layout.
diff --git a/components/autofill/core/browser/personal_data_manager.cc b/components/autofill/core/browser/personal_data_manager.cc index 92af4d6a..502dd53 100644 --- a/components/autofill/core/browser/personal_data_manager.cc +++ b/components/autofill/core/browser/personal_data_manager.cc
@@ -720,12 +720,15 @@ // Otherwise, return the latest cached AccountInfo of the user's primary // account, which is empty if the user has disabled sync. // In both cases, the AccountInfo will be empty if the user is not signed in. - return ShouldUseActiveSignedInAccount() + return ShouldUseActiveSignedInAccount() && sync_service_ ? sync_service_->GetAuthenticatedAccountInfo() : identity_manager_->GetPrimaryAccountInfo(); } bool PersonalDataManager::IsSyncFeatureEnabled() const { + if (!sync_service_) + return false; + return !sync_service_->GetAuthenticatedAccountInfo().IsEmpty() && !database_helper_->IsUsingAccountStorageForServerCards(); }
diff --git a/components/autofill/core/browser/proto/server.proto b/components/autofill/core/browser/proto/server.proto index d187f4b..741932a 100644 --- a/components/autofill/core/browser/proto/server.proto +++ b/components/autofill/core/browser/proto/server.proto
@@ -50,9 +50,136 @@ } } +// This message contains a randomized encoding of a string, where each bit +// in the encoded string is randomly sent as either the true value seen by +// the client, or random noise. The mapping of specific bits in the encoded +// string back to bits in the original string is specified by the EncodingType. +message AutofillRandomizedValue { + enum EncodingType { + // Reserved default value. Should never be sent over the wire. + UNSPECIFIED_ENCODING_TYPE = -1; + + // This string encodes only one bit, bit N, for each byte. + BIT_0 = 0; + BIT_1 = 1; + BIT_2 = 2; + BIT_3 = 3; + BIT_4 = 4; + BIT_5 = 5; + BIT_6 = 6; + BIT_7 = 7; + + // For each byte, the encoded value contains even or odd bits only. + EVEN_BITS = 8; + ODD_BITS = 9; + + // The encoded value contains all of the bits. + ALL_BITS = 10; + } + + // Selector denoting the source bits to which the encoded bits correspond. + optional EncodingType encoding_type = 1 [default = UNSPECIFIED_ENCODING_TYPE]; + + // The encoded bits. Only the bits denoted by |encoding_type| are included in + // |encoded_bits|. + // + // BIT_K encodings: + // each randomized bit i in |encoded_bits| corresponds to bit k of the byte + // at the corresponsding offset i of the original metadata value, up to + // i=64 (8 bytes). + // + // EVEN_BITS encoding: + // each randomized bit i in |encoded_bits| corresponds to bit 2*i of the + // original metadata value, up to i=256 (32 bytes). + // + // ODD_BITS encoding: + // each randomized bit i in |encoded_bits| corresponds to bit 2*i+1 of the + // original metadata value, up to i=256 (32 bytes). + // + // ALL_BITS encding: + // each bit i in |encoded_bits| corresponds to bit i of the original + // metadata value, up to i=512 (64 bytes). + // + // The encoded data is generally not user data, however, it is possible that + // user visible metadata (like the Label for an input field) could be + // personalized and thus contains user data (possibly PII). For the ALL_BITS + // encoding, each randomized byte has a 10% probability of being encoded 1:1 + // as the true byte seen by the client, even if some of those bits were + // transmitted as noise. For all of the other encodings, the encoded bits + // does not encode any full bytes. + optional bytes encoded_bits = 2; +} + +// The collection of autofill field metadata to be sent using randomization. +message AutofillRandomizedFormMetadata { + // Form element id. Example: <form id="XXXXXXXX"> + optional AutofillRandomizedValue id = 1; + + // Form element name. Example: <form name="XXXXXXXX"> + optional AutofillRandomizedValue name = 2; + + // Form element action. Example: <form action="XXXXXXXX"> + optional AutofillRandomizedValue action = 3; +} + +// The collection of autofill field metadata to be sent using randomization. +message AutofillRandomizedFieldMetadata { + // Input element id. Example: <input id="XXXXXXXX"> + optional AutofillRandomizedValue id = 1; + + // Input element name. Example: <input name="XXXXXXXX"> + optional AutofillRandomizedValue name = 2; + + // Input element type. Example: <input type="XXXXXXXX"> + optional AutofillRandomizedValue type = 3; + + // Input field label value seen by the user, either explicitly annotated in + // the DOM or inferred by the client. + // + // The value encountered by the client may be personalized (for example: + // "Please enter the password for foo@bar.net"). The system will learn the + // common/static prefix and determine that the personalized substring is + // noise. That said, for a given upload using the ALL_BITS encoding, each + // byte has a 10% probability or matching the original plaintext byte and + // a 1 in 10^m chance of the full m-character string being uploaded as + // plaintext. The other encodings only send partial bytes. + // + // Example: <label for="id">XXXXXXX</label> + optional AutofillRandomizedValue label = 4; + + // Input field label value exposed to the user via ARIA. + // Example 1: <input aria-label="XXXXXX> + // Example 2: <div id="foo">XXXXXXX</div> + // <input aria-labelledby="foo"> + optional AutofillRandomizedValue aria_label = 5; + + // Input field description exposed to the user via ARIA. + // Example: + // <div id="foo">XXXXXXX</div> + // <input aria-describedby="foo"> + optional AutofillRandomizedValue aria_description = 6; + + // CSS class for the input element. + // Example: <input class="XXXXXXXX"> + optional AutofillRandomizedValue css_class = 7; + + // Placeholder text for the input element. + // Example: <input placeholder="XXXXXXXX"> + optional AutofillRandomizedValue placeholder = 8; + + // Hash of the initial value of the field. We want to learn if the initial + // value of this field is personalized to the user (we will learn that the + // value is noise) or if it is a placeholder in disguise (we will learn a + // constant hash). + // + // Example: <input value="VVVVVVV"> + // XXXXXXXX = hash("VVVVVVV"") + optional AutofillRandomizedValue initial_value_hash = 9; +} + // This message contains information about the field types in a single form. // It is sent by the toolbar to contribute to the field type statistics. -// Next available id: 31 +// Next available id: 34 message AutofillUploadContents { required string client_version = 1; required fixed64 form_signature = 2; @@ -80,14 +207,20 @@ // The value of the name attribute on the field, if present. Otherwise, the // value of the id attribute. See HTMLFormControlElement::nameForAutofill. + // TODO(850606): Deprecate once randomized metadata is launched. optional string name = 8; // The value of the autocomplete attribute on the field, if present. + // TODO(850606): Deprecate once randomized metadata is launched. optional string autocomplete = 9; // The type of input control for this field (e.g. text, textarea, email). + // TODO(850606): Deprecate once randomized metadata is launched. optional string type = 10; + // The field-level metadata associated with this field, randomized. + optional AutofillRandomizedFieldMetadata randomized_field_metadata = 33; + enum PasswordGenerationType { NO_GENERATION = 0; AUTOMATICALLY_TRIGGERED_GENERATION_ON_SIGN_UP_FORM = 1; @@ -100,6 +233,7 @@ optional PasswordGenerationType generation_type = 17; // The value of the class attribute on the field, if present. + // TODO(850606): Deprecate once randomized metadata is launched. optional string css_classes = 19; // The properties mask (i.e. whether the field was autofilled, user @@ -108,6 +242,7 @@ // The value of the id attribute, if it differs from the name attribute. // Otherwise, this field is absent. + // TODO(850606): Deprecate once randomized metadata is launched. optional string id = 21; // True iff the user changed generated password. If there was no generation, @@ -207,6 +342,12 @@ // The type of the event that was taken as an indication that the form has // been successfully submitted. optional SubmissionIndicatorEvent submission_event = 30; + + // The language of the page on which this form appears. + optional string language = 31; + + // Form-level metadata observed by the client, randomized. + optional AutofillRandomizedFormMetadata randomized_form_metadata = 32; } // This proto contains information about the validity of each field in an
diff --git a/components/autofill/core/common/autofill_prefs.cc b/components/autofill/core/common/autofill_prefs.cc index 0ac08ba..5b9c0dcf 100644 --- a/components/autofill/core/common/autofill_prefs.cc +++ b/components/autofill/core/common/autofill_prefs.cc
@@ -70,27 +70,33 @@ "autofill.wallet_import_storage_checkbox_state"; void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry) { + // Synced prefs. Used for cross-device choices, e.g., credit card Autofill. registry->RegisterDoublePref( prefs::kAutofillBillingCustomerNumber, 0.0, user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF); - // This pref is not synced because it's for a signin promo, which by - // definition will not be synced. - registry->RegisterIntegerPref( - prefs::kAutofillCreditCardSigninPromoImpressionCount, 0); registry->RegisterBooleanPref( prefs::kAutofillEnabledDeprecated, true, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterBooleanPref( prefs::kAutofillProfileEnabled, true, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); - registry->RegisterBooleanPref(prefs::kAutofillJapanCityFieldMigrated, false); registry->RegisterIntegerPref( prefs::kAutofillLastVersionDeduped, 0, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); registry->RegisterIntegerPref( prefs::kAutofillLastVersionDisusedAddressesDeleted, 0, user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); - // These choices are made on a per-device basis, so they're not syncable. + registry->RegisterBooleanPref( + prefs::kAutofillCreditCardEnabled, true, + user_prefs::PrefRegistrySyncable::SYNCABLE_PREF); + registry->RegisterStringPref( + prefs::kAutofillProfileValidity, "", + user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF); + + // Non-synced prefs. Used for per-device choices, e.g., signin promo. + registry->RegisterIntegerPref( + prefs::kAutofillCreditCardSigninPromoImpressionCount, 0); + registry->RegisterBooleanPref(prefs::kAutofillJapanCityFieldMigrated, false); registry->RegisterBooleanPref(prefs::kAutofillWalletImportEnabled, true); registry->RegisterBooleanPref( prefs::kAutofillWalletImportStorageCheckboxState, true); @@ -99,11 +105,7 @@ prefs::PREVIOUS_SAVE_CREDIT_CARD_PROMPT_USER_DECISION_NONE); registry->RegisterIntegerPref( prefs::kAutofillLastVersionDisusedCreditCardsDeleted, 0); - registry->RegisterBooleanPref(prefs::kAutofillCreditCardEnabled, true); registry->RegisterBooleanPref(prefs::kAutofillOrphanRowsRemoved, false); - registry->RegisterStringPref( - prefs::kAutofillProfileValidity, "", - user_prefs::PrefRegistrySyncable::SYNCABLE_PRIORITY_PREF); } void MigrateDeprecatedAutofillPrefs(PrefService* prefs) {
diff --git a/components/autofill/ios/browser/fake_autofill_agent.mm b/components/autofill/ios/browser/fake_autofill_agent.mm index b486c25..072e818 100644 --- a/components/autofill/ios/browser/fake_autofill_agent.mm +++ b/components/autofill/ios/browser/fake_autofill_agent.mm
@@ -5,6 +5,8 @@ #import "components/autofill/ios/browser/fake_autofill_agent.h" #include "base/bind.h" +#include "base/task/post_task.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #if !defined(__has_feature) || !__has_feature(objc_arc) @@ -63,8 +65,8 @@ webState:(web::WebState*)webState completionHandler: (SuggestionsAvailableCompletion)completion { - web::WebThread::PostTask( - web::WebThread::UI, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ NSString* key = [self keyForFormName:formName fieldIdentifier:fieldIdentifier]; completion([_suggestionsByFormAndFieldName[key] count] ? YES : NO); @@ -79,8 +81,8 @@ typedValue:(NSString*)typedValue webState:(web::WebState*)webState completionHandler:(SuggestionsReadyCompletion)completion { - web::WebThread::PostTask( - web::WebThread::UI, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ NSString* key = [self keyForFormName:formName fieldIdentifier:fieldIdentifier]; completion(_suggestionsByFormAndFieldName[key], self); @@ -92,8 +94,8 @@ fieldIdentifier:(NSString*)fieldIdentifier form:(NSString*)formName completionHandler:(SuggestionHandledCompletion)completion { - web::WebThread::PostTask( - web::WebThread::UI, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ NSString* key = [self keyForFormName:formName fieldIdentifier:fieldIdentifier]; _selectedSuggestionByFormAndFieldName[key] = suggestion;
diff --git a/components/autofill/ios/browser/fake_js_autofill_manager.mm b/components/autofill/ios/browser/fake_js_autofill_manager.mm index 4d7203d..70bfe3b 100644 --- a/components/autofill/ios/browser/fake_js_autofill_manager.mm +++ b/components/autofill/ios/browser/fake_js_autofill_manager.mm
@@ -5,6 +5,8 @@ #import "components/autofill/ios/browser/fake_js_autofill_manager.h" #include "base/bind.h" +#include "base/task/post_task.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #if !defined(__has_feature) || !__has_feature(objc_arc) @@ -19,7 +21,7 @@ - (void)clearAutofilledFieldsForFormName:(NSString*)formName fieldIdentifier:(NSString*)fieldIdentifier completionHandler:(ProceduralBlock)completionHandler { - web::WebThread::PostTask(web::WebThread::UI, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ _lastClearedFormName = [formName copy]; _lastClearedFieldIdentifier = [fieldIdentifier copy];
diff --git a/components/autofill_assistant/browser/BUILD.gn b/components/autofill_assistant/browser/BUILD.gn index 7d1285f..5c5d4103 100644 --- a/components/autofill_assistant/browser/BUILD.gn +++ b/components/autofill_assistant/browser/BUILD.gn
@@ -72,6 +72,7 @@ "mock_ui_controller.h", "mock_web_controller.cc", "mock_web_controller.h", + "protocol_utils_unittest.cc", "script_executor_unittest.cc", "script_precondition_unittest.cc", "script_tracker_unittest.cc",
diff --git a/components/autofill_assistant/browser/protocol_utils.cc b/components/autofill_assistant/browser/protocol_utils.cc index e188ff8..949daa1 100644 --- a/components/autofill_assistant/browser/protocol_utils.cc +++ b/components/autofill_assistant/browser/protocol_utils.cc
@@ -51,11 +51,8 @@ const auto& presentation = script_proto.presentation(); script->handle.name = presentation.name(); - - if (presentation.has_precondition()) { - script->precondition = - ScriptPrecondition::FromProto(presentation.precondition()); - } + script->precondition = + ScriptPrecondition::FromProto(presentation.precondition()); if (script->handle.name.empty() || script->handle.path.empty() || !script->precondition) {
diff --git a/components/autofill_assistant/browser/protocol_utils_unittest.cc b/components/autofill_assistant/browser/protocol_utils_unittest.cc new file mode 100644 index 0000000..3c5c1c21 --- /dev/null +++ b/components/autofill_assistant/browser/protocol_utils_unittest.cc
@@ -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. + +#include "components/autofill_assistant/browser/protocol_utils.h" + +#include "base/macros.h" +#include "components/autofill_assistant/browser/service.pb.h" +#include "testing/gmock/include/gmock/gmock.h" + +namespace autofill_assistant { +namespace { + +using ::testing::SizeIs; +using ::testing::IsEmpty; + +TEST(ProtocolUtilsTest, NoScripts) { + std::vector<std::unique_ptr<Script>> scripts; + EXPECT_TRUE(ProtocolUtils::ParseScripts("", &scripts)); + EXPECT_THAT(scripts, IsEmpty()); +} + +TEST(ProtocolUtilsTest, SomeInvalidScripts) { + SupportsScriptResponseProto proto; + + // 2 Invalid scripts, 1 valid one, with no preconditions. + proto.add_scripts()->mutable_presentation()->set_name("missing path"); + proto.add_scripts()->set_path("missing name"); + SupportedScriptProto* script = proto.add_scripts(); + script->set_path("ok"); + script->mutable_presentation()->set_name("ok name"); + + // Only the valid script is returned. + std::vector<std::unique_ptr<Script>> scripts; + std::string proto_str; + proto.SerializeToString(&proto_str); + EXPECT_TRUE(ProtocolUtils::ParseScripts(proto_str, &scripts)); + ASSERT_THAT(scripts, SizeIs(1)); + EXPECT_EQ("ok", scripts[0]->handle.path); + EXPECT_EQ("ok name", scripts[0]->handle.name); + EXPECT_NE(nullptr, scripts[0]->precondition); +} + +} // namespace +} // namespace autofill_assistant
diff --git a/components/autofill_assistant/browser/script_tracker.cc b/components/autofill_assistant/browser/script_tracker.cc index cee19db..cb1d6e1 100644 --- a/components/autofill_assistant/browser/script_tracker.cc +++ b/components/autofill_assistant/browser/script_tracker.cc
@@ -14,7 +14,10 @@ ScriptTracker::ScriptTracker(ScriptExecutorDelegate* delegate, ScriptTracker::Listener* listener) - : delegate_(delegate), listener_(listener), weak_ptr_factory_(this) { + : delegate_(delegate), + listener_(listener), + pending_precondition_check_count_(0), + weak_ptr_factory_(this) { DCHECK(delegate_); DCHECK(listener_); }
diff --git a/components/autofill_assistant/browser/service.proto b/components/autofill_assistant/browser/service.proto index 501d1c581..757d969 100644 --- a/components/autofill_assistant/browser/service.proto +++ b/components/autofill_assistant/browser/service.proto
@@ -27,7 +27,7 @@ // Supported script. message SupportedScriptProto { // This is the internal name of the script. - required string path = 1; + optional string path = 1; message PresentationProto { // Script name.
diff --git a/components/chrome_cleaner/public/constants/result_codes.h b/components/chrome_cleaner/public/constants/result_codes.h index ff41456..802ebeca 100644 --- a/components/chrome_cleaner/public/constants/result_codes.h +++ b/components/chrome_cleaner/public/constants/result_codes.h
@@ -218,6 +218,10 @@ // while the pipe was still needed by the broker process. RESULT_CODE_JSON_PARSER_SANDBOX_DISCONNECTED_TOO_SOON = 54, + // The target process for the zip archiver sandbox disconnected from the IPC + // while the pipe was still needed by the broker process. + RESULT_CODE_ZIP_ARCHIVER_SANDBOX_DISCONNECTED_TOO_SOON = 55, + // WHEN YOU ADD NEW EXIT CODES, DON'T FORGET TO UPDATE THE MONITORING RULES. // See http://go/chrome-cleaner-exit-codes. (Google internal only - external // contributors please ask one of the OWNERS to do the update.)
diff --git a/components/drive/drive_api_util.cc b/components/drive/drive_api_util.cc index b910ca5..6848f9da 100644 --- a/components/drive/drive_api_util.cc +++ b/components/drive/drive_api_util.cc
@@ -21,8 +21,6 @@ #include "base/task_runner_util.h" #include "base/values.h" #include "google_apis/drive/drive_api_parser.h" -#include "net/base/escape.h" -#include "net/base/net_errors.h" #include "third_party/re2/src/re2/re2.h" #include "url/gurl.h"
diff --git a/components/drive/service/drive_api_service.cc b/components/drive/service/drive_api_service.cc index 9f45b7a..3ec2a27 100644 --- a/components/drive/service/drive_api_service.cc +++ b/components/drive/service/drive_api_service.cc
@@ -22,7 +22,6 @@ #include "google_apis/drive/files_list_request_runner.h" #include "google_apis/drive/request_sender.h" #include "google_apis/google_api_keys.h" -#include "net/url_request/url_request_context_getter.h" #include "services/network/public/cpp/shared_url_loader_factory.h" using google_apis::AboutResourceCallback; @@ -267,7 +266,6 @@ DriveAPIService::DriveAPIService( OAuth2TokenService* oauth2_token_service, - net::URLRequestContextGetter* url_request_context_getter, scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, base::SequencedTaskRunner* blocking_task_runner, const GURL& base_url, @@ -275,7 +273,6 @@ const std::string& custom_user_agent, const net::NetworkTrafficAnnotationTag& traffic_annotation) : oauth2_token_service_(oauth2_token_service), - url_request_context_getter_(url_request_context_getter), url_loader_factory_(url_loader_factory), blocking_task_runner_(blocking_task_runner), url_generator_(base_url, @@ -304,10 +301,10 @@ scopes.push_back(kDocsListScope); sender_ = std::make_unique<RequestSender>( - new google_apis::AuthService(oauth2_token_service_, account_id, - url_loader_factory_, scopes), - url_request_context_getter_.get(), blocking_task_runner_.get(), - custom_user_agent_, traffic_annotation_); + std::make_unique<google_apis::AuthService>( + oauth2_token_service_, account_id, url_loader_factory_, scopes), + url_loader_factory_, blocking_task_runner_.get(), custom_user_agent_, + traffic_annotation_); sender_->auth_service()->AddObserver(this); files_list_request_runner_ =
diff --git a/components/drive/service/drive_api_service.h b/components/drive/service/drive_api_service.h index cbe4be4b..9d3250d 100644 --- a/components/drive/service/drive_api_service.h +++ b/components/drive/service/drive_api_service.h
@@ -38,9 +38,6 @@ } // namespace drive } // namespace google_apis -namespace net { -class URLRequestContextGetter; -} // namespace net namespace network { class SharedURLLoaderFactory; } @@ -110,7 +107,6 @@ // be created to perform this service. DriveAPIService( OAuth2TokenService* oauth2_token_service, - net::URLRequestContextGetter* url_request_context_getter, scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, base::SequencedTaskRunner* blocking_task_runner, const GURL& base_url, @@ -282,7 +278,6 @@ base::ThreadChecker thread_checker_; OAuth2TokenService* oauth2_token_service_; - scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_; scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_; scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; std::unique_ptr<google_apis::RequestSender> sender_;
diff --git a/components/drive/service/drive_api_service_unittest.cc b/components/drive/service/drive_api_service_unittest.cc index 3708a8f..f86b941 100644 --- a/components/drive/service/drive_api_service_unittest.cc +++ b/components/drive/service/drive_api_service_unittest.cc
@@ -3,12 +3,16 @@ // found in the LICENSE file. #include "components/drive/service/drive_api_service.h" + +#include <utility> + #include "base/test/test_simple_task_runner.h" #include "google_apis/drive/dummy_auth_service.h" #include "google_apis/drive/request_sender.h" #include "google_apis/drive/test_util.h" #include "net/traffic_annotation/network_traffic_annotation_test_helper.h" -#include "net/url_request/url_request_test_util.h" +#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h" +#include "services/network/test/test_url_loader_factory.h" #include "testing/gtest/include/gtest/gtest.h" namespace drive { @@ -40,11 +44,14 @@ google_apis::TEAM_DRIVES_INTEGRATION_DISABLED); scoped_refptr<base::TestSimpleTaskRunner> task_runner = new base::TestSimpleTaskRunner(); - scoped_refptr<net::TestURLRequestContextGetter> request_context_getter = - new net::TestURLRequestContextGetter(task_runner.get()); + network::TestURLLoaderFactory test_url_loader_factory; + scoped_refptr<network::WeakWrapperSharedURLLoaderFactory> + test_shared_loader_factory = + base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>( + &test_url_loader_factory); google_apis::RequestSender sender( - new TestAuthService, request_context_getter.get(), task_runner.get(), - kTestUserAgent, TRAFFIC_ANNOTATION_FOR_TESTS); + std::make_unique<TestAuthService>(), test_shared_loader_factory, + task_runner.get(), kTestUserAgent, TRAFFIC_ANNOTATION_FOR_TESTS); std::unique_ptr<google_apis::drive::BatchUploadRequest> request = std::make_unique<google_apis::drive::BatchUploadRequest>(&sender, url_generator);
diff --git a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentViewRenderView.java b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentViewRenderView.java index 8c13ead..3ab1a247 100644 --- a/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentViewRenderView.java +++ b/components/embedder_support/android/java/src/org/chromium/components/embedder_support/view/ContentViewRenderView.java
@@ -37,8 +37,6 @@ private int mWidth; private int mHeight; - private int mFramesUntilHideBackground; - /** * Constructs a new ContentViewRenderView. * This should be called and the {@link ContentViewRenderView} should be added to the view @@ -96,8 +94,6 @@ mSurfaceView.setVisibility(mSurfaceView.getVisibility()); onReadyToRender(); - - mFramesUntilHideBackground = 2; } @Override @@ -210,36 +206,22 @@ @CalledByNative private void didSwapFrame() { - // When a new surface is created, wait a couple frames to show it to - // prevent flashes of incomplete frames. - if (mFramesUntilHideBackground > 1) { - mFramesUntilHideBackground--; - // Make sure another frame is always rendered. - requestRender(); - } else { - if (mSurfaceView.getBackground() != null) { - post(new Runnable() { - @Override - public void run() { - mSurfaceView.setBackgroundResource(0); - } - }); - } + if (mSurfaceView.getBackground() != null) { + post(new Runnable() { + @Override + public void run() { + mSurfaceView.setBackgroundResource(0); + } + }); } } - private void requestRender() { - if (mNativeContentViewRenderView != 0) - nativeSetNeedsComposite(mNativeContentViewRenderView); - } - private native long nativeInit(WindowAndroid rootWindow); private native void nativeDestroy(long nativeContentViewRenderView); private native void nativeSetCurrentWebContents( long nativeContentViewRenderView, WebContents webContents); private native void nativeOnPhysicalBackingSizeChanged( long nativeContentViewRenderView, WebContents webContents, int width, int height); - private native void nativeSetNeedsComposite(long nativeContentViewRenderView); private native void nativeSurfaceCreated(long nativeContentViewRenderView); private native void nativeSurfaceDestroyed(long nativeContentViewRenderView); private native void nativeSurfaceChanged(
diff --git a/components/embedder_support/android/view/content_view_render_view.cc b/components/embedder_support/android/view/content_view_render_view.cc index 3c4bdc3..96965cd0 100644 --- a/components/embedder_support/android/view/content_view_render_view.cc +++ b/components/embedder_support/android/view/content_view_render_view.cc
@@ -113,12 +113,6 @@ compositor_->SetNeedsComposite(); } -void ContentViewRenderView::SetNeedsComposite( - JNIEnv* env, - const base::android::JavaParamRef<jobject>& obj) { - compositor_->SetNeedsComposite(); -} - void ContentViewRenderView::UpdateLayerTreeHost() { // TODO(wkorman): Rename Layout to UpdateLayerTreeHost in all Android // Compositor related classes.
diff --git a/components/embedder_support/android/view/content_view_render_view.h b/components/embedder_support/android/view/content_view_render_view.h index 75a9b37..fe2feff 100644 --- a/components/embedder_support/android/view/content_view_render_view.h +++ b/components/embedder_support/android/view/content_view_render_view.h
@@ -51,8 +51,6 @@ void SetOverlayVideoMode(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj, bool enabled); - void SetNeedsComposite(JNIEnv* env, - const base::android::JavaParamRef<jobject>& obj); // CompositorClient implementation void UpdateLayerTreeHost() override;
diff --git a/components/exo/wayland/clients/client_base.cc b/components/exo/wayland/clients/client_base.cc index ec9728e..13a94184 100644 --- a/components/exo/wayland/clients/client_base.cc +++ b/components/exo/wayland/clients/client_base.cc
@@ -284,7 +284,7 @@ ClientBase::InitParams::InitParams() { #if defined(USE_GBM) - drm_format = DRM_FORMAT_ABGR8888; + drm_format = DRM_FORMAT_ARGB8888; bo_usage = GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING | GBM_BO_USE_TEXTURING; #endif }
diff --git a/components/gcm_driver/instance_id/instance_id_android.cc b/components/gcm_driver/instance_id/instance_id_android.cc index c865b8a..9d73bec 100644 --- a/components/gcm_driver/instance_id/instance_id_android.cc +++ b/components/gcm_driver/instance_id/instance_id_android.cc
@@ -13,6 +13,7 @@ #include "base/bind.h" #include "base/location.h" #include "base/logging.h" +#include "base/metrics/histogram_macros.h" #include "base/threading/thread_task_runner_handle.h" #include "base/time/time.h" #include "jni/InstanceIDBridge_jni.h" @@ -95,6 +96,8 @@ const GetTokenCallback& callback) { DCHECK(thread_checker_.CalledOnValidThread()); + UMA_HISTOGRAM_COUNTS_100("InstanceID.GetToken.OptionsCount", options.size()); + int32_t request_id = get_token_callbacks_.Add(std::make_unique<GetTokenCallback>(callback));
diff --git a/components/gcm_driver/instance_id/instance_id_impl.cc b/components/gcm_driver/instance_id/instance_id_impl.cc index 49f8ba7..ab61a7c 100644 --- a/components/gcm_driver/instance_id/instance_id_impl.cc +++ b/components/gcm_driver/instance_id/instance_id_impl.cc
@@ -13,6 +13,7 @@ #include "base/bind.h" #include "base/logging.h" #include "base/memory/ptr_util.h" +#include "base/metrics/histogram_macros.h" #include "base/stl_util.h" #include "base/strings/string_number_conversions.h" #include "base/threading/thread_task_runner_handle.h" @@ -95,6 +96,8 @@ DCHECK(!authorized_entity.empty()); DCHECK(!scope.empty()); + UMA_HISTOGRAM_COUNTS_100("InstanceID.GetToken.OptionsCount", options.size()); + RunWhenReady(base::Bind(&InstanceIDImpl::DoGetToken, weak_ptr_factory_.GetWeakPtr(), authorized_entity, scope, options, callback));
diff --git a/components/image_fetcher/OWNERS b/components/image_fetcher/OWNERS index b8b98892..e2501f1 100644 --- a/components/image_fetcher/OWNERS +++ b/components/image_fetcher/OWNERS
@@ -1,6 +1,5 @@ fgorski@chromium.org markusheintz@chromium.org -mathp@chromium.org treib@chromium.org # COMPONENT: Internals>Images
diff --git a/components/image_fetcher/core/image_data_fetcher.cc b/components/image_fetcher/core/image_data_fetcher.cc index 1b2857f..0c36e848 100644 --- a/components/image_fetcher/core/image_data_fetcher.cc +++ b/components/image_fetcher/core/image_data_fetcher.cc
@@ -120,7 +120,8 @@ std::unique_ptr<ImageDataFetcherRequest> request_track( new ImageDataFetcherRequest(std::move(callback), std::move(loader))); - pending_requests_[request_track->loader.get()] = std::move(request_track); + network::SimpleURLLoader* loader_raw = request_track->loader.get(); + pending_requests_[loader_raw] = std::move(request_track); } void ImageDataFetcher::OnURLLoaderComplete( @@ -155,8 +156,10 @@ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); auto request_iter = pending_requests_.find(source); DCHECK(request_iter != pending_requests_.end()); - std::move(request_iter->second->callback).Run(image_data, metadata); + auto callback = std::move(request_iter->second->callback); pending_requests_.erase(request_iter); + std::move(callback).Run(image_data, metadata); + // |this| might be destroyed now. } void ImageDataFetcher::InjectResultForTesting(const RequestMetadata& metadata,
diff --git a/components/image_fetcher/core/image_data_fetcher_unittest.cc b/components/image_fetcher/core/image_data_fetcher_unittest.cc index b773ee10..4f1e5ba 100644 --- a/components/image_fetcher/core/image_data_fetcher_unittest.cc +++ b/components/image_fetcher/core/image_data_fetcher_unittest.cc
@@ -10,6 +10,7 @@ #include "base/macros.h" #include "base/memory/ref_counted.h" #include "base/message_loop/message_loop.h" +#include "base/test/bind_test_util.h" #include "net/base/load_flags.h" #include "net/http/http_response_headers.h" #include "net/http/http_status_code.h" @@ -265,4 +266,20 @@ base::RunLoop().RunUntilIdle(); } +TEST_F(ImageDataFetcherTest, DeleteFromCallback) { + // Test to make sure that deleting an ImageDataFetcher from the callback + // passed to its FetchImageData() does not crash. + auto heap_fetcher = std::make_unique<ImageDataFetcher>(shared_factory_); + heap_fetcher->FetchImageData( + GURL(kImageURL), + base::BindLambdaForTesting( + [&](const std::string&, const RequestMetadata&) { + heap_fetcher = nullptr; + }), + TRAFFIC_ANNOTATION_FOR_TESTS); + + test_url_loader_factory_.AddResponse(kImageURL, ""); + base::RunLoop().RunUntilIdle(); +} + } // namespace image_fetcher
diff --git a/components/location/android/java/src/org/chromium/components/location/LocationUtils.java b/components/location/android/java/src/org/chromium/components/location/LocationUtils.java index db0dc44..857f2bbb 100644 --- a/components/location/android/java/src/org/chromium/components/location/LocationUtils.java +++ b/components/location/android/java/src/org/chromium/components/location/LocationUtils.java
@@ -5,9 +5,11 @@ package org.chromium.components.location; import android.Manifest; +import android.annotation.SuppressLint; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; +import android.location.LocationManager; import android.os.Build; import android.os.Process; import android.provider.Settings; @@ -70,10 +72,15 @@ * Returns whether location services are enabled system-wide, i.e. whether any application is * able to access location. */ + @SuppressLint("NewApi") @SuppressWarnings("deprecation") public boolean isSystemLocationSettingEnabled() { Context context = ContextUtils.getApplicationContext(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + LocationManager locationManager = + (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); + return locationManager != null && locationManager.isLocationEnabled(); + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { return Settings.Secure.getInt(context.getContentResolver(), Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF) != Settings.Secure.LOCATION_MODE_OFF; @@ -84,6 +91,35 @@ } /** + * Returns whether location services are enabled in sensors-only mode, i.e. when network + * location services are disabled but GPS and other sensors are enabled. + */ + @SuppressLint("NewApi") + @SuppressWarnings("deprecation") + public boolean isSystemLocationSettingSensorsOnly() { + Context context = ContextUtils.getApplicationContext(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + LocationManager locationManager = + (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); + return locationManager != null && locationManager.isLocationEnabled() + && locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) + && !locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); + } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + return Settings.Secure.getInt(context.getContentResolver(), + Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF) + == Settings.Secure.LOCATION_MODE_SENSORS_ONLY; + } else { + // Before Android K, location provider settings were stored as a comma-delimited list + // containing the names of enabled providers. In sensors-only mode, the GPS provider is + // present and the network provider is absent. + String locationProviders = Settings.Secure.getString( + context.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED); + return locationProviders.contains(LocationManager.GPS_PROVIDER) + && !locationProviders.contains(LocationManager.NETWORK_PROVIDER); + } + } + + /** * Returns true iff a prompt can be triggered to ask the user to turn on the system location * setting on their device. *
diff --git a/components/metrics/BUILD.gn b/components/metrics/BUILD.gn index 504f6d37..def6ed2 100644 --- a/components/metrics/BUILD.gn +++ b/components/metrics/BUILD.gn
@@ -276,10 +276,12 @@ public = [ "call_stack_profile_builder.h", "child_call_stack_profile_collector.h", + "legacy_call_stack_profile_builder.h", ] sources = [ "call_stack_profile_builder.cc", "child_call_stack_profile_collector.cc", + "legacy_call_stack_profile_builder.cc", ] public_deps = [ ":call_stack_profile_params", @@ -370,6 +372,7 @@ "field_trials_provider_unittest.cc", "file_metrics_provider_unittest.cc", "histogram_encoder_unittest.cc", + "legacy_call_stack_profile_builder_unittest.cc", "machine_id_provider_win_unittest.cc", "metrics_log_manager_unittest.cc", "metrics_log_store_unittest.cc",
diff --git a/components/metrics/call_stack_profile_builder.cc b/components/metrics/call_stack_profile_builder.cc index 0517b8b..0d691aa 100644 --- a/components/metrics/call_stack_profile_builder.cc +++ b/components/metrics/call_stack_profile_builder.cc
@@ -4,10 +4,10 @@ #include "components/metrics/call_stack_profile_builder.h" +#include <algorithm> #include <string> #include <utility> -#include "base/atomicops.h" #include "base/files/file_path.h" #include "base/lazy_instance.h" #include "base/logging.h" @@ -32,51 +32,7 @@ return *instance; } -// Identifies an unknown module. -const size_t kUnknownModuleIndex = static_cast<size_t>(-1); - -// This global variables holds the current system state and is recorded with -// every captured sample, done on a separate thread which is why updates to -// this must be atomic. A PostTask to move the the updates to that thread -// would skew the timing and a lock could result in deadlock if the thread -// making a change was also being profiled and got stopped. -static base::subtle::Atomic32 g_process_milestones = 0; - -void ChangeAtomicFlags(base::subtle::Atomic32* flags, - base::subtle::Atomic32 set, - base::subtle::Atomic32 clear) { - DCHECK(set != 0 || clear != 0); - DCHECK_EQ(0, set & clear); - - base::subtle::Atomic32 bits = base::subtle::NoBarrier_Load(flags); - while (true) { - base::subtle::Atomic32 existing = base::subtle::NoBarrier_CompareAndSwap( - flags, bits, (bits | set) & ~clear); - if (existing == bits) - break; - bits = existing; - } -} - -// Provide a mapping from the C++ "enum" definition of various process mile- -// stones to the equivalent protobuf "enum" definition. This table-lookup -// conversion allows for the implementation to evolve and still be compatible -// with the protobuf -- even if there are ever more than 32 defined proto -// values, though never more than 32 could be in-use in a given C++ version -// of the code. -const ProcessPhase kProtoPhases[CallStackProfileBuilder::MILESTONES_MAX_VALUE] = - { - ProcessPhase::MAIN_LOOP_START, - ProcessPhase::MAIN_NAVIGATION_START, - ProcessPhase::MAIN_NAVIGATION_FINISHED, - ProcessPhase::FIRST_NONEMPTY_PAINT, - - ProcessPhase::SHUTDOWN_START, -}; - -// These functions are used to encode protobufs. -------------------------- - -// The protobuf expects the MD5 checksum prefix of the module name. +// Convert |filename| to its MD5 hash. uint64_t HashModuleFilename(const base::FilePath& filename) { const base::FilePath::StringType basename = filename.BaseName().value(); // Copy the bytes in basename into a string buffer. @@ -87,198 +43,111 @@ return base::HashMetricName(name_bytes); } -// Transcode |sample| into |proto_sample|, using base addresses in |modules| to -// compute module instruction pointer offsets. -void CopySampleToProto(const CallStackProfileBuilder::Sample& sample, - const std::vector<base::ModuleCache::Module>& modules, - CallStackProfile::Sample* proto_sample) { - for (const auto& frame : sample.frames) { - CallStackProfile::Location* location = proto_sample->add_frame(); - // A frame may not have a valid module. If so, we can't compute the - // instruction pointer offset, and we don't want to send bare pointers, - // so leave call_stack_entry empty. - if (frame.module_index == kUnknownModuleIndex) - continue; - int64_t module_offset = - reinterpret_cast<const char*>(frame.instruction_pointer) - - reinterpret_cast<const char*>(modules[frame.module_index].base_address); - DCHECK_GE(module_offset, 0); - location->set_address(static_cast<uint64_t>(module_offset)); - location->set_module_id_index(frame.module_index); - } -} - -// Transcode Sample annotations into protobuf fields. The C++ code uses a -// bit- field with each bit corresponding to an entry in an enumeration -// while the protobuf uses a repeated field of individual values. Conversion -// tables allow for arbitrary mapping, though no more than 32 in any given -// version of the code. -void CopyAnnotationsToProto(uint32_t new_milestones, - CallStackProfile::Sample* sample_proto) { - for (size_t bit = 0; new_milestones != 0 && bit < sizeof(new_milestones) * 8; - ++bit) { - const uint32_t flag = 1U << bit; - if (new_milestones & flag) { - if (bit >= base::size(kProtoPhases)) { - NOTREACHED(); - continue; - } - sample_proto->add_process_phase(kProtoPhases[bit]); - new_milestones ^= flag; // Bit is set so XOR will clear it. - } - } -} - } // namespace -// CallStackProfileBuilder::Frame --------------------------------------------- - -CallStackProfileBuilder::Frame::Frame(uintptr_t instruction_pointer, - size_t module_index) - : instruction_pointer(instruction_pointer), module_index(module_index) {} - -CallStackProfileBuilder::Frame::~Frame() = default; - -CallStackProfileBuilder::Frame::Frame() - : instruction_pointer(0), module_index(kUnknownModuleIndex) {} - -// CallStackProfileBuilder::Sample -------------------------------------------- - -CallStackProfileBuilder::Sample::Sample() = default; - -CallStackProfileBuilder::Sample::Sample(const Sample& sample) = default; - -CallStackProfileBuilder::Sample::~Sample() = default; - -CallStackProfileBuilder::Sample::Sample(const Frame& frame) { - frames.push_back(std::move(frame)); -} - -CallStackProfileBuilder::Sample::Sample(const std::vector<Frame>& frames) - : frames(frames) {} - CallStackProfileBuilder::CallStackProfileBuilder( const CallStackProfileParams& profile_params, base::OnceClosure completed_callback) - : profile_params_(profile_params), - profile_start_time_(base::TimeTicks::Now()) { + : profile_start_time_(base::TimeTicks::Now()) { completed_callback_ = std::move(completed_callback); + sampled_profile_.set_process( + ToExecutionContextProcess(profile_params.process)); + sampled_profile_.set_thread(ToExecutionContextThread(profile_params.thread)); + sampled_profile_.set_trigger_event( + ToSampledProfileTriggerEvent(profile_params.trigger)); } CallStackProfileBuilder::~CallStackProfileBuilder() = default; -void CallStackProfileBuilder::RecordAnnotations() { - // The code inside this method must not do anything that could acquire a - // mutex, including allocating memory (which includes LOG messages) because - // that mutex could be held by a stopped thread, thus resulting in deadlock. - sample_.process_milestones = - base::subtle::NoBarrier_Load(&g_process_milestones); -} - +// static void CallStackProfileBuilder::OnSampleCompleted( std::vector<base::StackSamplingProfiler::Frame> frames) { OnSampleCompleted(std::move(frames), 1); } +// TODO(chengx): record |count| as per-Stacksample metadata in the new proto +// format. void CallStackProfileBuilder::OnSampleCompleted( std::vector<base::StackSamplingProfiler::Frame> frames, - size_t count) { - // Assemble sample_ from |frames| first. - for (const auto& frame : frames) { - const base::ModuleCache::Module& module(frame.module); - if (!module.is_valid) { - sample_.frames.emplace_back(frame.instruction_pointer, - kUnknownModuleIndex); - continue; - } + size_t /*count*/) { + // Write CallStackProfile::Stack protobuf message. + CallStackProfile::Stack stack; - // Dedup modules and cache them in modules_. - auto loc = module_index_.find(module.base_address); - if (loc == module_index_.end()) { + for (const auto& frame : frames) { + // keep the frame information even if its module is invalid so we have + // visibility into how often this issue is happening on the server. + CallStackProfile::Location* location = stack.add_frame(); + if (!frame.module.is_valid) + continue; + + // Dedup modules. + const base::ModuleCache::Module& module = frame.module; + auto module_loc = module_index_.find(module.base_address); + if (module_loc == module_index_.end()) { modules_.push_back(module); size_t index = modules_.size() - 1; - loc = module_index_.insert(std::make_pair(module.base_address, index)) - .first; + module_loc = module_index_.emplace(module.base_address, index).first; } - sample_.frames.emplace_back(frame.instruction_pointer, loc->second); + + // Write CallStackProfile::Location protobuf message. + ptrdiff_t module_offset = + reinterpret_cast<const char*>(frame.instruction_pointer) - + reinterpret_cast<const char*>(module.base_address); + DCHECK_GE(module_offset, 0); + location->set_address(static_cast<uint64_t>(module_offset)); + location->set_module_id_index(module_loc->second); } - // Write CallStackProfile::Sample protocol buffer message based on sample_. - int existing_sample_index = -1; - auto location = sample_index_.find(sample_); - if (location != sample_index_.end()) - existing_sample_index = location->second; + CallStackProfile* call_stack_profile = + sampled_profile_.mutable_call_stack_profile(); - if (existing_sample_index != -1) { - CallStackProfile::Sample* sample_proto = - proto_profile_.mutable_deprecated_sample(existing_sample_index); - sample_proto->set_count(sample_proto->count() + count); - return; + // Dedup Stacks. + auto stack_loc = stack_index_.find(&stack); + if (stack_loc == stack_index_.end()) { + *call_stack_profile->add_stack() = std::move(stack); + int stack_index = call_stack_profile->stack_size() - 1; + // It is safe to store the Stack pointer because the repeated message + // representation ensures pointer stability. + stack_loc = stack_index_ + .emplace(call_stack_profile->mutable_stack(stack_index), + stack_index) + .first; } - CallStackProfile::Sample* sample_proto = - proto_profile_.add_deprecated_sample(); - CopySampleToProto(sample_, modules_, sample_proto); - sample_proto->set_count(count); - CopyAnnotationsToProto(sample_.process_milestones & ~milestones_, - sample_proto); - milestones_ = sample_.process_milestones; - - sample_index_.insert(std::make_pair( - std::move(sample_), - static_cast<int>(proto_profile_.deprecated_sample_size()) - 1)); - - sample_ = Sample(); + // Write CallStackProfile::StackSample protobuf message. + CallStackProfile::StackSample* stack_sample_proto = + call_stack_profile->add_stack_sample(); + stack_sample_proto->set_stack_index(stack_loc->second); } -// Build a SampledProfile in the protocol buffer message format from the -// collected sampling data. The message is then passed to -// CallStackProfileMetricsProvider or ChildCallStackProfileCollector. - -// A SampledProfile message (third_party/metrics_proto/sampled_profile.proto) -// contains a CallStackProfile message -// (third_party/metrics_proto/call_stack_profile.proto) and associated profile -// parameters (process/thread/trigger event). A CallStackProfile message -// contains a set of Sample messages and ModuleIdentifier messages, and other -// sampling information. One Sample corresponds to a single recorded stack, and -// the ModuleIdentifiers record those modules associated with the recorded stack -// frames. void CallStackProfileBuilder::OnProfileCompleted( base::TimeDelta profile_duration, base::TimeDelta sampling_period) { - proto_profile_.set_profile_duration_ms(profile_duration.InMilliseconds()); - proto_profile_.set_sampling_period_ms(sampling_period.InMilliseconds()); + // Build the SampledProfile protobuf message. + CallStackProfile* call_stack_profile = + sampled_profile_.mutable_call_stack_profile(); + call_stack_profile->set_profile_duration_ms( + profile_duration.InMilliseconds()); + call_stack_profile->set_sampling_period_ms(sampling_period.InMilliseconds()); + // Write CallStackProfile::ModuleIdentifier protobuf message. for (const auto& module : modules_) { CallStackProfile::ModuleIdentifier* module_id = - proto_profile_.add_module_id(); + call_stack_profile->add_module_id(); module_id->set_build_id(module.id); module_id->set_name_md5_prefix(HashModuleFilename(module.filename)); } - // Clear the caches etc. - modules_.clear(); - module_index_.clear(); - sample_index_.clear(); - - // Assemble the SampledProfile protocol buffer message and run the associated - // callback to pass it. - SampledProfile sampled_profile; - CallStackProfile* proto_profile = - sampled_profile.mutable_call_stack_profile(); - *proto_profile = std::move(proto_profile_); - - sampled_profile.set_process( - ToExecutionContextProcess(profile_params_.process)); - sampled_profile.set_thread(ToExecutionContextThread(profile_params_.thread)); - sampled_profile.set_trigger_event( - ToSampledProfileTriggerEvent(profile_params_.trigger)); - - PassProfilesToMetricsProvider(std::move(sampled_profile)); + PassProfilesToMetricsProvider(std::move(sampled_profile_)); // Run the completed callback if there is one. if (!completed_callback_.is_null()) std::move(completed_callback_).Run(); + + // Clear the caches. + stack_index_.clear(); + module_index_.clear(); + modules_.clear(); } // static @@ -289,15 +158,6 @@ } // static -void CallStackProfileBuilder::SetProcessMilestone(int milestone) { - DCHECK_LE(0, milestone); - DCHECK_GT(static_cast<int>(sizeof(g_process_milestones) * 8), milestone); - DCHECK_EQ(0, base::subtle::NoBarrier_Load(&g_process_milestones) & - (1 << milestone)); - ChangeAtomicFlags(&g_process_milestones, 1 << milestone, 0); -} - -// static void CallStackProfileBuilder::SetParentProfileCollectorForChildProcess( metrics::mojom::CallStackProfileCollectorPtr browser_interface) { g_child_call_stack_profile_collector.Get().SetParentProfileCollector( @@ -306,7 +166,7 @@ void CallStackProfileBuilder::PassProfilesToMetricsProvider( SampledProfile sampled_profile) { - if (profile_params_.process == CallStackProfileParams::BROWSER_PROCESS) { + if (sampled_profile.process() == BROWSER_PROCESS) { GetBrowserProcessReceiverCallbackInstance().Run(profile_start_time_, std::move(sampled_profile)); } else { @@ -316,38 +176,17 @@ } } -// These operators permit types to be compared and used in a map of Samples. - -bool operator==(const CallStackProfileBuilder::Sample& a, - const CallStackProfileBuilder::Sample& b) { - return a.process_milestones == b.process_milestones && a.frames == b.frames; -} - -bool operator!=(const CallStackProfileBuilder::Sample& a, - const CallStackProfileBuilder::Sample& b) { - return !(a == b); -} - -bool operator<(const CallStackProfileBuilder::Sample& a, - const CallStackProfileBuilder::Sample& b) { - if (a.process_milestones != b.process_milestones) - return a.process_milestones < b.process_milestones; - - return a.frames < b.frames; -} - -bool operator==(const CallStackProfileBuilder::Frame& a, - const CallStackProfileBuilder::Frame& b) { - return a.instruction_pointer == b.instruction_pointer && - a.module_index == b.module_index; -} - -bool operator<(const CallStackProfileBuilder::Frame& a, - const CallStackProfileBuilder::Frame& b) { - if (a.module_index != b.module_index) - return a.module_index < b.module_index; - - return a.instruction_pointer < b.instruction_pointer; +bool CallStackProfileBuilder::StackComparer::operator()( + const CallStackProfile::Stack* stack1, + const CallStackProfile::Stack* stack2) const { + return std::lexicographical_compare( + stack1->frame().begin(), stack1->frame().end(), stack2->frame().begin(), + stack2->frame().end(), + [](const CallStackProfile::Location& loc1, + const CallStackProfile::Location& loc2) { + return std::make_pair(loc1.address(), loc1.module_id_index()) < + std::make_pair(loc2.address(), loc2.module_id_index()); + }); } } // namespace metrics
diff --git a/components/metrics/call_stack_profile_builder.h b/components/metrics/call_stack_profile_builder.h index 85d9fd7..e0beea9 100644 --- a/components/metrics/call_stack_profile_builder.h +++ b/components/metrics/call_stack_profile_builder.h
@@ -18,66 +18,14 @@ namespace metrics { -class SampledProfile; - // An instance of the class is meant to be passed to base::StackSamplingProfiler // to collect profiles. The profiles collected are uploaded via the metrics log. +// +// This uses the new StackSample encoding rather than the legacy Sample +// encoding. class CallStackProfileBuilder : public base::StackSamplingProfiler::ProfileBuilder { public: - // Frame represents an individual sampled stack frame with module information. - struct Frame { - Frame(uintptr_t instruction_pointer, size_t module_index); - ~Frame(); - - // Default constructor to satisfy IPC macros. Do not use explicitly. - Frame(); - - // The sampled instruction pointer within the function. - uintptr_t instruction_pointer; - - // Index of the module in the associated vector of mofules. We don't - // represent module state directly here to save space. - size_t module_index; - }; - - // Sample represents a set of stack frames with some extra information. - struct Sample { - Sample(); - Sample(const Sample& sample); - ~Sample(); - - // These constructors are used only during testing. - Sample(const Frame& frame); - Sample(const std::vector<Frame>& frames); - - // The entire stack frame when the sample is taken. - std::vector<Frame> frames; - - // A bit-field indicating which process milestones have passed. This can be - // used to tell where in the process lifetime the samples are taken. Just - // as a "lifetime" can only move forward, these bits mark the milestones of - // the processes life as they occur. Bits can be set but never reset. The - // actual definition of the individual bits is left to the user of this - // module. - uint32_t process_milestones = 0; - }; - - // These milestones of a process lifetime can be passed as process "mile- - // stones" to CallStackProfileBuilder::SetProcessMilestone(). Be sure to - // update the translation constants at the top of the .cc file when this is - // changed. - enum Milestones : int { - MAIN_LOOP_START, - MAIN_NAVIGATION_START, - MAIN_NAVIGATION_FINISHED, - FIRST_NONEMPTY_PAINT, - - SHUTDOWN_START, - - MILESTONES_MAX_VALUE - }; - // |completed_callback| is made when sampling a profile completes. Other // threads, including the UI thread, may block on callback completion so this // should run as quickly as possible. @@ -92,7 +40,6 @@ ~CallStackProfileBuilder() override; // base::StackSamplingProfiler::ProfileBuilder: - void RecordAnnotations() override; void OnSampleCompleted( std::vector<base::StackSamplingProfiler::Frame> frames) override; void OnProfileCompleted(base::TimeDelta profile_duration, @@ -110,14 +57,6 @@ const base::RepeatingCallback<void(base::TimeTicks, SampledProfile)>& callback); - // Sets the current system state that is recorded with each captured stack - // frame. This is thread-safe so can be called from anywhere. The parameter - // value should be from an enumeration of the appropriate type with values - // ranging from 0 to 31, inclusive. This sets bits within Sample field of - // |process_milestones|. The actual meanings of these bits are defined - // (globally) by the caller(s). - static void SetProcessMilestone(int milestone); - // Sets the CallStackProfileCollector interface from |browser_interface|. // This function must be called within child processes. static void SetParentProfileCollectorForChildProcess( @@ -128,14 +67,18 @@ virtual void PassProfilesToMetricsProvider(SampledProfile sampled_profile); private: - // The collected stack samples in proto buffer message format. - CallStackProfile proto_profile_; + // The functor for Stack comparison. + struct StackComparer { + bool operator()(const CallStackProfile::Stack* stack1, + const CallStackProfile::Stack* stack2) const; + }; - // The current sample being recorded. - Sample sample_; + // The SampledProfile protobuf message which contains the collected stack + // samples. + SampledProfile sampled_profile_; - // The indexes of samples, indexed by the sample. - std::map<Sample, int> sample_index_; + // The indexes of stacks, indexed by stack's address. + std::map<const CallStackProfile::Stack*, int, StackComparer> stack_index_; // The indexes of modules, indexed by module's base_address. std::map<uintptr_t, size_t> module_index_; @@ -143,15 +86,9 @@ // The distinct modules in the current profile. std::vector<base::ModuleCache::Module> modules_; - // The process milestones of a previous sample. - uint32_t milestones_ = 0; - // Callback made when sampling a profile completes. base::OnceClosure completed_callback_; - // The parameters associated with the sampled profile. - const CallStackProfileParams profile_params_; - // The start time of a profile collection. const base::TimeTicks profile_start_time_;
diff --git a/components/metrics/call_stack_profile_builder_unittest.cc b/components/metrics/call_stack_profile_builder_unittest.cc index dd7a1368..d2fd084 100644 --- a/components/metrics/call_stack_profile_builder_unittest.cc +++ b/components/metrics/call_stack_profile_builder_unittest.cc
@@ -34,7 +34,7 @@ ~TestingCallStackProfileBuilder() override; - const SampledProfile& sampled_profile() { return sampled_profile_; } + const SampledProfile& test_sampled_profile() { return test_sampled_profile_; } protected: // Overridden for testing. @@ -42,7 +42,7 @@ private: // The completed profile. - SampledProfile sampled_profile_; + SampledProfile test_sampled_profile_; }; TestingCallStackProfileBuilder::TestingCallStackProfileBuilder( @@ -54,45 +54,11 @@ void TestingCallStackProfileBuilder::PassProfilesToMetricsProvider( SampledProfile sampled_profile) { - sampled_profile_ = std::move(sampled_profile); + test_sampled_profile_ = std::move(sampled_profile); } } // namespace -TEST(CallStackProfileBuilderTest, SetProcessMilestone) { - auto profile_builder = - std::make_unique<TestingCallStackProfileBuilder>(kProfileParams); - - // The default milestone is 0. - profile_builder->RecordAnnotations(); - profile_builder->OnSampleCompleted(std::vector<Frame>()); - - CallStackProfileBuilder::SetProcessMilestone(1); - profile_builder->RecordAnnotations(); - profile_builder->OnSampleCompleted(std::vector<Frame>()); - - profile_builder->OnProfileCompleted(base::TimeDelta(), base::TimeDelta()); - - const SampledProfile& proto = profile_builder->sampled_profile(); - - ASSERT_TRUE(proto.has_call_stack_profile()); - const CallStackProfile& profile = proto.call_stack_profile(); - - ASSERT_EQ(2, profile.deprecated_sample_size()); - - uint32_t process_milestones = 0; - for (int i = 0; i < profile.deprecated_sample(0).process_phase().size(); ++i) - process_milestones |= - 1U << profile.deprecated_sample(0).process_phase().Get(i); - EXPECT_EQ(0U, process_milestones); - - process_milestones = 0; - for (int i = 0; i < profile.deprecated_sample(1).process_phase().size(); ++i) - process_milestones |= - 1U << profile.deprecated_sample(1).process_phase().Get(i); - EXPECT_EQ(1U << 1, process_milestones); -} - TEST(CallStackProfileBuilderTest, ProfilingCompleted) { // Set up a mock completed callback which will be run once. base::MockCallback<base::OnceClosure> mock_closure; @@ -129,7 +95,7 @@ profile_builder->OnProfileCompleted(base::TimeDelta::FromMilliseconds(500), base::TimeDelta::FromMilliseconds(100)); - const SampledProfile& proto = profile_builder->sampled_profile(); + const SampledProfile& proto = profile_builder->test_sampled_profile(); ASSERT_TRUE(proto.has_process()); ASSERT_EQ(BROWSER_PROCESS, proto.process()); @@ -141,29 +107,33 @@ ASSERT_TRUE(proto.has_call_stack_profile()); const CallStackProfile& profile = proto.call_stack_profile(); - ASSERT_EQ(2, profile.deprecated_sample_size()); - ASSERT_EQ(2, profile.deprecated_sample(0).frame_size()); - ASSERT_TRUE(profile.deprecated_sample(0).frame(0).has_module_id_index()); - EXPECT_EQ(0, profile.deprecated_sample(0).frame(0).module_id_index()); - ASSERT_TRUE(profile.deprecated_sample(0).frame(1).has_module_id_index()); - EXPECT_EQ(1, profile.deprecated_sample(0).frame(1).module_id_index()); - ASSERT_EQ(1, profile.deprecated_sample(1).frame_size()); - ASSERT_TRUE(profile.deprecated_sample(1).frame(0).has_module_id_index()); - EXPECT_EQ(2, profile.deprecated_sample(1).frame(0).module_id_index()); + ASSERT_EQ(2, profile.stack_size()); + ASSERT_EQ(2, profile.stack(0).frame_size()); + ASSERT_TRUE(profile.stack(0).frame(0).has_module_id_index()); + EXPECT_EQ(0, profile.stack(0).frame(0).module_id_index()); + ASSERT_TRUE(profile.stack(0).frame(1).has_module_id_index()); + EXPECT_EQ(1, profile.stack(0).frame(1).module_id_index()); + ASSERT_EQ(1, profile.stack(1).frame_size()); + ASSERT_TRUE(profile.stack(1).frame(0).has_module_id_index()); + EXPECT_EQ(2, profile.stack(1).frame(0).module_id_index()); ASSERT_EQ(3, profile.module_id().size()); ASSERT_TRUE(profile.module_id(0).has_build_id()); - ASSERT_EQ("1", profile.module_id(0).build_id()); + EXPECT_EQ("1", profile.module_id(0).build_id()); ASSERT_TRUE(profile.module_id(0).has_name_md5_prefix()); - ASSERT_EQ(module_md5, profile.module_id(0).name_md5_prefix()); + EXPECT_EQ(module_md5, profile.module_id(0).name_md5_prefix()); ASSERT_TRUE(profile.module_id(1).has_build_id()); - ASSERT_EQ("2", profile.module_id(1).build_id()); + EXPECT_EQ("2", profile.module_id(1).build_id()); ASSERT_TRUE(profile.module_id(1).has_name_md5_prefix()); - ASSERT_EQ(module_md5, profile.module_id(1).name_md5_prefix()); + EXPECT_EQ(module_md5, profile.module_id(1).name_md5_prefix()); ASSERT_TRUE(profile.module_id(2).has_build_id()); - ASSERT_EQ("3", profile.module_id(2).build_id()); + EXPECT_EQ("3", profile.module_id(2).build_id()); ASSERT_TRUE(profile.module_id(2).has_name_md5_prefix()); - ASSERT_EQ(module_md5, profile.module_id(2).name_md5_prefix()); + EXPECT_EQ(module_md5, profile.module_id(2).name_md5_prefix()); + + ASSERT_EQ(2, profile.stack_sample_size()); + EXPECT_EQ(0, profile.stack_sample(0).stack_index()); + EXPECT_EQ(1, profile.stack_sample(1).stack_index()); ASSERT_TRUE(profile.has_profile_duration_ms()); EXPECT_EQ(500, profile.profile_duration_ms()); @@ -171,7 +141,7 @@ EXPECT_EQ(100, profile.sampling_period_ms()); } -TEST(CallStackProfileBuilderTest, SamplesDeduped) { +TEST(CallStackProfileBuilderTest, StacksDeduped) { auto profile_builder = std::make_unique<TestingCallStackProfileBuilder>(kProfileParams); @@ -191,19 +161,14 @@ std::vector<Frame> frames = {frame1, frame2}; - // Two samples are completed with the same frames. They also have the same - // process milestone therefore they are deduped to one. - CallStackProfileBuilder::SetProcessMilestone(0); - - profile_builder->RecordAnnotations(); - profile_builder->OnSampleCompleted(frames, 42); - - profile_builder->RecordAnnotations(); + // Two stacks are completed with the same frames therefore they are deduped + // to one. + profile_builder->OnSampleCompleted(frames); profile_builder->OnSampleCompleted(frames); profile_builder->OnProfileCompleted(base::TimeDelta(), base::TimeDelta()); - const SampledProfile& proto = profile_builder->sampled_profile(); + const SampledProfile& proto = profile_builder->test_sampled_profile(); ASSERT_TRUE(proto.has_process()); ASSERT_EQ(BROWSER_PROCESS, proto.process()); @@ -213,11 +178,14 @@ ASSERT_EQ(SampledProfile::PROCESS_STARTUP, proto.trigger_event()); ASSERT_TRUE(proto.has_call_stack_profile()); - ASSERT_EQ(1, proto.call_stack_profile().deprecated_sample_size()); - ASSERT_EQ(43, proto.call_stack_profile().deprecated_sample(0).count()); + const CallStackProfile& profile = proto.call_stack_profile(); + ASSERT_EQ(1, profile.stack_size()); + ASSERT_EQ(2, profile.stack_sample_size()); + EXPECT_EQ(0, profile.stack_sample(0).stack_index()); + EXPECT_EQ(0, profile.stack_sample(1).stack_index()); } -TEST(CallStackProfileBuilderTest, SamplesNotDeduped) { +TEST(CallStackProfileBuilderTest, StacksNotDeduped) { auto profile_builder = std::make_unique<TestingCallStackProfileBuilder>(kProfileParams); @@ -235,21 +203,16 @@ Module module2 = {module_base_address2, "2", module_path}; Frame frame2 = {module_base_address2 + 0x10, module2}; - std::vector<Frame> frames = {frame1, frame2}; + std::vector<Frame> frames1 = {frame1}; + std::vector<Frame> frames2 = {frame2}; - // Two samples are completed with the same frames but different process - // milestones. They are considered as different samples threfore not deduped. - CallStackProfileBuilder::SetProcessMilestone(2); - profile_builder->RecordAnnotations(); - profile_builder->OnSampleCompleted(frames); - - CallStackProfileBuilder::SetProcessMilestone(4); - profile_builder->RecordAnnotations(); - profile_builder->OnSampleCompleted(frames); + // Two stacks are completed with the different frames therefore not deduped. + profile_builder->OnSampleCompleted(frames1); + profile_builder->OnSampleCompleted(frames2); profile_builder->OnProfileCompleted(base::TimeDelta(), base::TimeDelta()); - const SampledProfile& proto = profile_builder->sampled_profile(); + const SampledProfile& proto = profile_builder->test_sampled_profile(); ASSERT_TRUE(proto.has_process()); ASSERT_EQ(BROWSER_PROCESS, proto.process()); @@ -259,7 +222,11 @@ ASSERT_EQ(SampledProfile::PROCESS_STARTUP, proto.trigger_event()); ASSERT_TRUE(proto.has_call_stack_profile()); - ASSERT_EQ(2, proto.call_stack_profile().deprecated_sample_size()); + const CallStackProfile& profile = proto.call_stack_profile(); + ASSERT_EQ(2, profile.stack_size()); + ASSERT_EQ(2, profile.stack_sample_size()); + EXPECT_EQ(0, profile.stack_sample(0).stack_index()); + EXPECT_EQ(1, profile.stack_sample(1).stack_index()); } TEST(CallStackProfileBuilderTest, Modules) { @@ -286,27 +253,30 @@ profile_builder->OnSampleCompleted(frames); profile_builder->OnProfileCompleted(base::TimeDelta(), base::TimeDelta()); - const SampledProfile& proto = profile_builder->sampled_profile(); + const SampledProfile& proto = profile_builder->test_sampled_profile(); ASSERT_TRUE(proto.has_call_stack_profile()); const CallStackProfile& profile = proto.call_stack_profile(); - ASSERT_EQ(1, profile.deprecated_sample_size()); - ASSERT_EQ(2, profile.deprecated_sample(0).frame_size()); + ASSERT_EQ(1, profile.stack_sample_size()); + EXPECT_EQ(0, profile.stack_sample(0).stack_index()); - ASSERT_FALSE(profile.deprecated_sample(0).frame(0).has_module_id_index()); - ASSERT_FALSE(profile.deprecated_sample(0).frame(0).has_address()); + ASSERT_EQ(1, profile.stack_size()); + ASSERT_EQ(2, profile.stack(0).frame_size()); - ASSERT_TRUE(profile.deprecated_sample(0).frame(1).has_module_id_index()); - EXPECT_EQ(0, profile.deprecated_sample(0).frame(1).module_id_index()); - ASSERT_TRUE(profile.deprecated_sample(0).frame(1).has_address()); - EXPECT_EQ(0x10ULL, profile.deprecated_sample(0).frame(1).address()); + ASSERT_FALSE(profile.stack(0).frame(0).has_module_id_index()); + ASSERT_FALSE(profile.stack(0).frame(0).has_address()); + + ASSERT_TRUE(profile.stack(0).frame(1).has_module_id_index()); + EXPECT_EQ(0, profile.stack(0).frame(1).module_id_index()); + ASSERT_TRUE(profile.stack(0).frame(1).has_address()); + EXPECT_EQ(0x10ULL, profile.stack(0).frame(1).address()); ASSERT_EQ(1, profile.module_id().size()); ASSERT_TRUE(profile.module_id(0).has_build_id()); - ASSERT_EQ("2", profile.module_id(0).build_id()); + EXPECT_EQ("2", profile.module_id(0).build_id()); ASSERT_TRUE(profile.module_id(0).has_name_md5_prefix()); - ASSERT_EQ(module_md5, profile.module_id(0).name_md5_prefix()); + EXPECT_EQ(module_md5, profile.module_id(0).name_md5_prefix()); } TEST(CallStackProfileBuilderTest, DedupModules) { @@ -334,31 +304,34 @@ profile_builder->OnSampleCompleted(frames); profile_builder->OnProfileCompleted(base::TimeDelta(), base::TimeDelta()); - const SampledProfile& proto = profile_builder->sampled_profile(); + const SampledProfile& proto = profile_builder->test_sampled_profile(); ASSERT_TRUE(proto.has_call_stack_profile()); const CallStackProfile& profile = proto.call_stack_profile(); - ASSERT_EQ(1, profile.deprecated_sample_size()); - ASSERT_EQ(2, profile.deprecated_sample(0).frame_size()); + ASSERT_EQ(1, profile.stack_sample_size()); + EXPECT_EQ(0, profile.stack_sample(0).stack_index()); + + ASSERT_EQ(1, profile.stack_size()); + ASSERT_EQ(2, profile.stack(0).frame_size()); // Since module1 and module2 have the same base address, they are considered // the same module and therefore deduped. - ASSERT_TRUE(profile.deprecated_sample(0).frame(0).has_module_id_index()); - EXPECT_EQ(0, profile.deprecated_sample(0).frame(0).module_id_index()); - ASSERT_TRUE(profile.deprecated_sample(0).frame(0).has_address()); - EXPECT_EQ(0x10ULL, profile.deprecated_sample(0).frame(0).address()); + ASSERT_TRUE(profile.stack(0).frame(0).has_module_id_index()); + EXPECT_EQ(0, profile.stack(0).frame(0).module_id_index()); + ASSERT_TRUE(profile.stack(0).frame(0).has_address()); + EXPECT_EQ(0x10ULL, profile.stack(0).frame(0).address()); - ASSERT_TRUE(profile.deprecated_sample(0).frame(1).has_module_id_index()); - EXPECT_EQ(0, profile.deprecated_sample(0).frame(1).module_id_index()); - ASSERT_TRUE(profile.deprecated_sample(0).frame(1).has_address()); - EXPECT_EQ(0x20ULL, profile.deprecated_sample(0).frame(1).address()); + ASSERT_TRUE(profile.stack(0).frame(1).has_module_id_index()); + EXPECT_EQ(0, profile.stack(0).frame(1).module_id_index()); + ASSERT_TRUE(profile.stack(0).frame(1).has_address()); + EXPECT_EQ(0x20ULL, profile.stack(0).frame(1).address()); ASSERT_EQ(1, profile.module_id().size()); ASSERT_TRUE(profile.module_id(0).has_build_id()); - ASSERT_EQ("1", profile.module_id(0).build_id()); + EXPECT_EQ("1", profile.module_id(0).build_id()); ASSERT_TRUE(profile.module_id(0).has_name_md5_prefix()); - ASSERT_EQ(module_md5, profile.module_id(0).name_md5_prefix()); + EXPECT_EQ(module_md5, profile.module_id(0).name_md5_prefix()); } -} // namespace metrics +} // namespace metrics \ No newline at end of file
diff --git a/components/metrics/legacy_call_stack_profile_builder.cc b/components/metrics/legacy_call_stack_profile_builder.cc new file mode 100644 index 0000000..c5b97a2 --- /dev/null +++ b/components/metrics/legacy_call_stack_profile_builder.cc
@@ -0,0 +1,355 @@ +// 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 "components/metrics/legacy_call_stack_profile_builder.h" + +#include <string> +#include <utility> + +#include "base/atomicops.h" +#include "base/files/file_path.h" +#include "base/lazy_instance.h" +#include "base/logging.h" +#include "base/metrics/metrics_hashes.h" +#include "base/no_destructor.h" +#include "base/stl_util.h" +#include "components/metrics/call_stack_profile_encoding.h" + +namespace metrics { + +namespace { + +// Only used by child processes. +base::LazyInstance<ChildCallStackProfileCollector>::Leaky + g_child_call_stack_profile_collector = LAZY_INSTANCE_INITIALIZER; + +base::RepeatingCallback<void(base::TimeTicks, SampledProfile)>& +GetBrowserProcessReceiverCallbackInstance() { + static base::NoDestructor< + base::RepeatingCallback<void(base::TimeTicks, SampledProfile)>> + instance; + return *instance; +} + +// Identifies an unknown module. +const size_t kUnknownModuleIndex = static_cast<size_t>(-1); + +// This global variables holds the current system state and is recorded with +// every captured sample, done on a separate thread which is why updates to +// this must be atomic. A PostTask to move the the updates to that thread +// would skew the timing and a lock could result in deadlock if the thread +// making a change was also being profiled and got stopped. +static base::subtle::Atomic32 g_process_milestones = 0; + +void ChangeAtomicFlags(base::subtle::Atomic32* flags, + base::subtle::Atomic32 set, + base::subtle::Atomic32 clear) { + DCHECK(set != 0 || clear != 0); + DCHECK_EQ(0, set & clear); + + base::subtle::Atomic32 bits = base::subtle::NoBarrier_Load(flags); + while (true) { + base::subtle::Atomic32 existing = base::subtle::NoBarrier_CompareAndSwap( + flags, bits, (bits | set) & ~clear); + if (existing == bits) + break; + bits = existing; + } +} + +// Provide a mapping from the C++ "enum" definition of various process mile- +// stones to the equivalent protobuf "enum" definition. This table-lookup +// conversion allows for the implementation to evolve and still be compatible +// with the protobuf -- even if there are ever more than 32 defined proto +// values, though never more than 32 could be in-use in a given C++ version +// of the code. +const ProcessPhase + kProtoPhases[LegacyCallStackProfileBuilder::MILESTONES_MAX_VALUE] = { + ProcessPhase::MAIN_LOOP_START, + ProcessPhase::MAIN_NAVIGATION_START, + ProcessPhase::MAIN_NAVIGATION_FINISHED, + ProcessPhase::FIRST_NONEMPTY_PAINT, + + ProcessPhase::SHUTDOWN_START, +}; + +// These functions are used to encode protobufs. -------------------------- + +// The protobuf expects the MD5 checksum prefix of the module name. +uint64_t HashModuleFilename(const base::FilePath& filename) { + const base::FilePath::StringType basename = filename.BaseName().value(); + // Copy the bytes in basename into a string buffer. + size_t basename_length_in_bytes = + basename.size() * sizeof(base::FilePath::CharType); + std::string name_bytes(basename_length_in_bytes, '\0'); + memcpy(&name_bytes[0], &basename[0], basename_length_in_bytes); + return base::HashMetricName(name_bytes); +} + +// Transcode |sample| into |proto_sample|, using base addresses in |modules| to +// compute module instruction pointer offsets. +void CopySampleToProto(const LegacyCallStackProfileBuilder::Sample& sample, + const std::vector<base::ModuleCache::Module>& modules, + CallStackProfile::Sample* proto_sample) { + for (const auto& frame : sample.frames) { + CallStackProfile::Location* location = proto_sample->add_frame(); + // A frame may not have a valid module. If so, we can't compute the + // instruction pointer offset, and we don't want to send bare pointers, + // so leave call_stack_entry empty. + if (frame.module_index == kUnknownModuleIndex) + continue; + int64_t module_offset = + reinterpret_cast<const char*>(frame.instruction_pointer) - + reinterpret_cast<const char*>(modules[frame.module_index].base_address); + DCHECK_GE(module_offset, 0); + location->set_address(static_cast<uint64_t>(module_offset)); + location->set_module_id_index(frame.module_index); + } +} + +// Transcode Sample annotations into protobuf fields. The C++ code uses a +// bit- field with each bit corresponding to an entry in an enumeration +// while the protobuf uses a repeated field of individual values. Conversion +// tables allow for arbitrary mapping, though no more than 32 in any given +// version of the code. +void CopyAnnotationsToProto(uint32_t new_milestones, + CallStackProfile::Sample* sample_proto) { + for (size_t bit = 0; new_milestones != 0 && bit < sizeof(new_milestones) * 8; + ++bit) { + const uint32_t flag = 1U << bit; + if (new_milestones & flag) { + if (bit >= base::size(kProtoPhases)) { + NOTREACHED(); + continue; + } + sample_proto->add_process_phase(kProtoPhases[bit]); + new_milestones ^= flag; // Bit is set so XOR will clear it. + } + } +} + +} // namespace + +// LegacyCallStackProfileBuilder::Frame +// --------------------------------------------- + +LegacyCallStackProfileBuilder::Frame::Frame(uintptr_t instruction_pointer, + size_t module_index) + : instruction_pointer(instruction_pointer), module_index(module_index) {} + +LegacyCallStackProfileBuilder::Frame::~Frame() = default; + +LegacyCallStackProfileBuilder::Frame::Frame() + : instruction_pointer(0), module_index(kUnknownModuleIndex) {} + +// LegacyCallStackProfileBuilder::Sample +// -------------------------------------------- + +LegacyCallStackProfileBuilder::Sample::Sample() = default; + +LegacyCallStackProfileBuilder::Sample::Sample(const Sample& sample) = default; + +LegacyCallStackProfileBuilder::Sample::~Sample() = default; + +LegacyCallStackProfileBuilder::Sample::Sample(const Frame& frame) { + frames.push_back(std::move(frame)); +} + +LegacyCallStackProfileBuilder::Sample::Sample(const std::vector<Frame>& frames) + : frames(frames) {} + +LegacyCallStackProfileBuilder::LegacyCallStackProfileBuilder( + const CallStackProfileParams& profile_params, + base::OnceClosure completed_callback) + : profile_params_(profile_params), + profile_start_time_(base::TimeTicks::Now()) { + completed_callback_ = std::move(completed_callback); +} + +LegacyCallStackProfileBuilder::~LegacyCallStackProfileBuilder() = default; + +void LegacyCallStackProfileBuilder::RecordAnnotations() { + // The code inside this method must not do anything that could acquire a + // mutex, including allocating memory (which includes LOG messages) because + // that mutex could be held by a stopped thread, thus resulting in deadlock. + sample_.process_milestones = + base::subtle::NoBarrier_Load(&g_process_milestones); +} + +void LegacyCallStackProfileBuilder::OnSampleCompleted( + std::vector<base::StackSamplingProfiler::Frame> frames) { + OnSampleCompleted(std::move(frames), 1); +} + +void LegacyCallStackProfileBuilder::OnSampleCompleted( + std::vector<base::StackSamplingProfiler::Frame> frames, + size_t count) { + // Assemble sample_ from |frames| first. + for (const auto& frame : frames) { + const base::ModuleCache::Module& module(frame.module); + if (!module.is_valid) { + sample_.frames.emplace_back(frame.instruction_pointer, + kUnknownModuleIndex); + continue; + } + + // Dedup modules and cache them in modules_. + auto loc = module_index_.find(module.base_address); + if (loc == module_index_.end()) { + modules_.push_back(module); + size_t index = modules_.size() - 1; + loc = module_index_.insert(std::make_pair(module.base_address, index)) + .first; + } + sample_.frames.emplace_back(frame.instruction_pointer, loc->second); + } + + // Write CallStackProfile::Sample protocol buffer message based on sample_. + int existing_sample_index = -1; + auto location = sample_index_.find(sample_); + if (location != sample_index_.end()) + existing_sample_index = location->second; + + if (existing_sample_index != -1) { + CallStackProfile::Sample* sample_proto = + proto_profile_.mutable_deprecated_sample(existing_sample_index); + sample_proto->set_count(sample_proto->count() + count); + return; + } + + CallStackProfile::Sample* sample_proto = + proto_profile_.add_deprecated_sample(); + CopySampleToProto(sample_, modules_, sample_proto); + sample_proto->set_count(count); + CopyAnnotationsToProto(sample_.process_milestones & ~milestones_, + sample_proto); + milestones_ = sample_.process_milestones; + + sample_index_.insert(std::make_pair( + std::move(sample_), + static_cast<int>(proto_profile_.deprecated_sample_size()) - 1)); + + sample_ = Sample(); +} + +// Build a SampledProfile in the protocol buffer message format from the +// collected sampling data. The message is then passed to +// CallStackProfileMetricsProvider or ChildCallStackProfileCollector. + +// A SampledProfile message (third_party/metrics_proto/sampled_profile.proto) +// contains a CallStackProfile message +// (third_party/metrics_proto/call_stack_profile.proto) and associated profile +// parameters (process/thread/trigger event). A CallStackProfile message +// contains a set of Sample messages and ModuleIdentifier messages, and other +// sampling information. One Sample corresponds to a single recorded stack, and +// the ModuleIdentifiers record those modules associated with the recorded stack +// frames. +void LegacyCallStackProfileBuilder::OnProfileCompleted( + base::TimeDelta profile_duration, + base::TimeDelta sampling_period) { + proto_profile_.set_profile_duration_ms(profile_duration.InMilliseconds()); + proto_profile_.set_sampling_period_ms(sampling_period.InMilliseconds()); + + for (const auto& module : modules_) { + CallStackProfile::ModuleIdentifier* module_id = + proto_profile_.add_module_id(); + module_id->set_build_id(module.id); + module_id->set_name_md5_prefix(HashModuleFilename(module.filename)); + } + + // Clear the caches etc. + modules_.clear(); + module_index_.clear(); + sample_index_.clear(); + + // Assemble the SampledProfile protocol buffer message and run the associated + // callback to pass it. + SampledProfile sampled_profile; + CallStackProfile* proto_profile = + sampled_profile.mutable_call_stack_profile(); + *proto_profile = std::move(proto_profile_); + + sampled_profile.set_process( + ToExecutionContextProcess(profile_params_.process)); + sampled_profile.set_thread(ToExecutionContextThread(profile_params_.thread)); + sampled_profile.set_trigger_event( + ToSampledProfileTriggerEvent(profile_params_.trigger)); + + PassProfilesToMetricsProvider(std::move(sampled_profile)); + + // Run the completed callback if there is one. + if (!completed_callback_.is_null()) + std::move(completed_callback_).Run(); +} + +// static +void LegacyCallStackProfileBuilder::SetBrowserProcessReceiverCallback( + const base::RepeatingCallback<void(base::TimeTicks, SampledProfile)>& + callback) { + GetBrowserProcessReceiverCallbackInstance() = callback; +} + +void LegacyCallStackProfileBuilder::PassProfilesToMetricsProvider( + SampledProfile sampled_profile) { + if (profile_params_.process == CallStackProfileParams::BROWSER_PROCESS) { + GetBrowserProcessReceiverCallbackInstance().Run(profile_start_time_, + std::move(sampled_profile)); + } else { + g_child_call_stack_profile_collector.Get() + .ChildCallStackProfileCollector::Collect(profile_start_time_, + std::move(sampled_profile)); + } +} + +// static +void LegacyCallStackProfileBuilder::SetProcessMilestone(int milestone) { + DCHECK_LE(0, milestone); + DCHECK_GT(static_cast<int>(sizeof(g_process_milestones) * 8), milestone); + DCHECK_EQ(0, base::subtle::NoBarrier_Load(&g_process_milestones) & + (1 << milestone)); + ChangeAtomicFlags(&g_process_milestones, 1 << milestone, 0); +} + +// static +void LegacyCallStackProfileBuilder::SetParentProfileCollectorForChildProcess( + metrics::mojom::CallStackProfileCollectorPtr browser_interface) { + g_child_call_stack_profile_collector.Get().SetParentProfileCollector( + std::move(browser_interface)); +} + +// These operators permit types to be compared and used in a map of Samples. + +bool operator==(const LegacyCallStackProfileBuilder::Sample& a, + const LegacyCallStackProfileBuilder::Sample& b) { + return a.process_milestones == b.process_milestones && a.frames == b.frames; +} + +bool operator!=(const LegacyCallStackProfileBuilder::Sample& a, + const LegacyCallStackProfileBuilder::Sample& b) { + return !(a == b); +} + +bool operator<(const LegacyCallStackProfileBuilder::Sample& a, + const LegacyCallStackProfileBuilder::Sample& b) { + if (a.process_milestones != b.process_milestones) + return a.process_milestones < b.process_milestones; + + return a.frames < b.frames; +} + +bool operator==(const LegacyCallStackProfileBuilder::Frame& a, + const LegacyCallStackProfileBuilder::Frame& b) { + return a.instruction_pointer == b.instruction_pointer && + a.module_index == b.module_index; +} + +bool operator<(const LegacyCallStackProfileBuilder::Frame& a, + const LegacyCallStackProfileBuilder::Frame& b) { + if (a.module_index != b.module_index) + return a.module_index < b.module_index; + + return a.instruction_pointer < b.instruction_pointer; +} + +} // namespace metrics
diff --git a/components/metrics/legacy_call_stack_profile_builder.h b/components/metrics/legacy_call_stack_profile_builder.h new file mode 100644 index 0000000..ef0dc3e --- /dev/null +++ b/components/metrics/legacy_call_stack_profile_builder.h
@@ -0,0 +1,164 @@ +// 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 COMPONENTS_METRICS_LEGACY_CALL_STACK_PROFILE_BUILDER_H_ +#define COMPONENTS_METRICS_LEGACY_CALL_STACK_PROFILE_BUILDER_H_ + +#include <map> +#include <vector> + +#include "base/callback.h" +#include "base/profiler/stack_sampling_profiler.h" +#include "base/sampling_heap_profiler/module_cache.h" +#include "base/time/time.h" +#include "components/metrics/call_stack_profile_params.h" +#include "components/metrics/child_call_stack_profile_collector.h" +#include "third_party/metrics_proto/sampled_profile.pb.h" + +namespace metrics { + +// An instance of the class is meant to be passed to base::StackSamplingProfiler +// to collect profiles. The profiles collected are uploaded via the metrics log. +// +// This uses the legacy Sample encoding rather than the new StackSample +// encoding. +class LegacyCallStackProfileBuilder + : public base::StackSamplingProfiler::ProfileBuilder { + public: + // Frame represents an individual sampled stack frame with module information. + struct Frame { + Frame(uintptr_t instruction_pointer, size_t module_index); + ~Frame(); + + // Default constructor to satisfy IPC macros. Do not use explicitly. + Frame(); + + // The sampled instruction pointer within the function. + uintptr_t instruction_pointer; + + // Index of the module in the associated vector of mofules. We don't + // represent module state directly here to save space. + size_t module_index; + }; + + // Sample represents a set of stack frames with some extra information. + struct Sample { + Sample(); + Sample(const Sample& sample); + ~Sample(); + + // These constructors are used only during testing. + Sample(const Frame& frame); + Sample(const std::vector<Frame>& frames); + + // The entire stack frame when the sample is taken. + std::vector<Frame> frames; + + // A bit-field indicating which process milestones have passed. This can be + // used to tell where in the process lifetime the samples are taken. Just + // as a "lifetime" can only move forward, these bits mark the milestones of + // the processes life as they occur. Bits can be set but never reset. The + // actual definition of the individual bits is left to the user of this + // module. + uint32_t process_milestones = 0; + }; + + // These milestones of a process lifetime can be passed as process "mile- + // stones" to LegacyCallStackProfileBuilder::SetProcessMilestone(). Be sure to + // update the translation constants at the top of the .cc file when this is + // changed. + enum Milestones : int { + MAIN_LOOP_START, + MAIN_NAVIGATION_START, + MAIN_NAVIGATION_FINISHED, + FIRST_NONEMPTY_PAINT, + + SHUTDOWN_START, + + MILESTONES_MAX_VALUE + }; + + // |completed_callback| is made when sampling a profile completes. Other + // threads, including the UI thread, may block on callback completion so this + // should run as quickly as possible. + // + // IMPORTANT NOTE: The callback is invoked on a thread the profiler + // constructs, rather than on the thread used to construct the profiler, and + // thus the callback must be callable on any thread. + explicit LegacyCallStackProfileBuilder( + const CallStackProfileParams& profile_params, + base::OnceClosure completed_callback = base::OnceClosure()); + + ~LegacyCallStackProfileBuilder() override; + + // base::StackSamplingProfiler::ProfileBuilder: + void RecordAnnotations() override; + void OnSampleCompleted( + std::vector<base::StackSamplingProfiler::Frame> frames) override; + void OnProfileCompleted(base::TimeDelta profile_duration, + base::TimeDelta sampling_period) override; + + // The function is used by sampling heap profiler. Its samples already come + // with different counts. + void OnSampleCompleted(std::vector<base::StackSamplingProfiler::Frame> frames, + size_t count); + + // Sets the callback to use for reporting browser process profiles. This + // indirection is required to avoid a dependency on unnecessary metrics code + // in child processes. + static void SetBrowserProcessReceiverCallback( + const base::RepeatingCallback<void(base::TimeTicks, SampledProfile)>& + callback); + + // Sets the current system state that is recorded with each captured stack + // frame. This is thread-safe so can be called from anywhere. The parameter + // value should be from an enumeration of the appropriate type with values + // ranging from 0 to 31, inclusive. This sets bits within Sample field of + // |process_milestones|. The actual meanings of these bits are defined + // (globally) by the caller(s). + static void SetProcessMilestone(int milestone); + + // Sets the CallStackProfileCollector interface from |browser_interface|. + // This function must be called within child processes. + static void SetParentProfileCollectorForChildProcess( + metrics::mojom::CallStackProfileCollectorPtr browser_interface); + + protected: + // Test seam. + virtual void PassProfilesToMetricsProvider(SampledProfile sampled_profile); + + private: + // The collected stack samples in proto buffer message format. + CallStackProfile proto_profile_; + + // The current sample being recorded. + Sample sample_; + + // The indexes of samples, indexed by the sample. + std::map<Sample, int> sample_index_; + + // The indexes of modules, indexed by module's base_address. + std::map<uintptr_t, size_t> module_index_; + + // The distinct modules in the current profile. + std::vector<base::ModuleCache::Module> modules_; + + // The process milestones of a previous sample. + uint32_t milestones_ = 0; + + // Callback made when sampling a profile completes. + base::OnceClosure completed_callback_; + + // The parameters associated with the sampled profile. + const CallStackProfileParams profile_params_; + + // The start time of a profile collection. + const base::TimeTicks profile_start_time_; + + DISALLOW_COPY_AND_ASSIGN(LegacyCallStackProfileBuilder); +}; + +} // namespace metrics + +#endif // COMPONENTS_METRICS_LEGACY_CALL_STACK_PROFILE_BUILDER_H_
diff --git a/components/metrics/legacy_call_stack_profile_builder_unittest.cc b/components/metrics/legacy_call_stack_profile_builder_unittest.cc new file mode 100644 index 0000000..d47cbc8 --- /dev/null +++ b/components/metrics/legacy_call_stack_profile_builder_unittest.cc
@@ -0,0 +1,367 @@ +// 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 "components/metrics/legacy_call_stack_profile_builder.h" + +#include "base/files/file_path.h" +#include "base/sampling_heap_profiler/module_cache.h" +#include "base/test/bind_test_util.h" +#include "base/test/mock_callback.h" +#include "base/time/time.h" +#include "build/build_config.h" +#include "components/metrics/call_stack_profile_params.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "third_party/metrics_proto/sampled_profile.pb.h" + +using Frame = base::StackSamplingProfiler::Frame; +using Module = base::ModuleCache::Module; + +namespace metrics { + +namespace { + +constexpr CallStackProfileParams kProfileParams = { + CallStackProfileParams::BROWSER_PROCESS, + CallStackProfileParams::MAIN_THREAD, + CallStackProfileParams::PROCESS_STARTUP}; + +class TestingLegacyCallStackProfileBuilder + : public LegacyCallStackProfileBuilder { + public: + TestingLegacyCallStackProfileBuilder( + const CallStackProfileParams& profile_params, + base::OnceClosure completed_callback = base::OnceClosure()); + + ~TestingLegacyCallStackProfileBuilder() override; + + const SampledProfile& sampled_profile() { return sampled_profile_; } + + protected: + // Overridden for testing. + void PassProfilesToMetricsProvider(SampledProfile sampled_profile) override; + + private: + // The completed profile. + SampledProfile sampled_profile_; +}; + +TestingLegacyCallStackProfileBuilder::TestingLegacyCallStackProfileBuilder( + const CallStackProfileParams& profile_params, + base::OnceClosure completed_callback) + : LegacyCallStackProfileBuilder(profile_params, + std::move(completed_callback)) {} + +TestingLegacyCallStackProfileBuilder::~TestingLegacyCallStackProfileBuilder() = + default; + +void TestingLegacyCallStackProfileBuilder::PassProfilesToMetricsProvider( + SampledProfile sampled_profile) { + sampled_profile_ = std::move(sampled_profile); +} + +} // namespace + +TEST(LegacyCallStackProfileBuilderTest, SetProcessMilestone) { + auto profile_builder = + std::make_unique<TestingLegacyCallStackProfileBuilder>(kProfileParams); + + // The default milestone is 0. + profile_builder->RecordAnnotations(); + profile_builder->OnSampleCompleted(std::vector<Frame>()); + + LegacyCallStackProfileBuilder::SetProcessMilestone(1); + profile_builder->RecordAnnotations(); + profile_builder->OnSampleCompleted(std::vector<Frame>()); + + profile_builder->OnProfileCompleted(base::TimeDelta(), base::TimeDelta()); + + const SampledProfile& proto = profile_builder->sampled_profile(); + + ASSERT_TRUE(proto.has_call_stack_profile()); + const CallStackProfile& profile = proto.call_stack_profile(); + + ASSERT_EQ(2, profile.deprecated_sample_size()); + + uint32_t process_milestones = 0; + for (int i = 0; i < profile.deprecated_sample(0).process_phase().size(); ++i) + process_milestones |= + 1U << profile.deprecated_sample(0).process_phase().Get(i); + EXPECT_EQ(0U, process_milestones); + + process_milestones = 0; + for (int i = 0; i < profile.deprecated_sample(1).process_phase().size(); ++i) + process_milestones |= + 1U << profile.deprecated_sample(1).process_phase().Get(i); + EXPECT_EQ(1U << 1, process_milestones); +} + +TEST(LegacyCallStackProfileBuilderTest, ProfilingCompleted) { + // Set up a mock completed callback which will be run once. + base::MockCallback<base::OnceClosure> mock_closure; + EXPECT_CALL(mock_closure, Run()).Times(1); + + auto profile_builder = std::make_unique<TestingLegacyCallStackProfileBuilder>( + kProfileParams, mock_closure.Get()); + +#if defined(OS_WIN) + uint64_t module_md5 = 0x46C3E4166659AC02ULL; + base::FilePath module_path(L"c:\\some\\path\\to\\chrome.exe"); +#else + uint64_t module_md5 = 0x554838A8451AC36CULL; + base::FilePath module_path("/some/path/to/chrome"); +#endif + + const uintptr_t module_base_address1 = 0x1000; + Module module1 = {module_base_address1, "1", module_path}; + Frame frame1 = {module_base_address1 + 0x10, module1}; + + const uintptr_t module_base_address2 = 0x1100; + Module module2 = {module_base_address2, "2", module_path}; + Frame frame2 = {module_base_address2 + 0x10, module2}; + + const uintptr_t module_base_address3 = 0x1010; + Module module3 = {module_base_address3, "3", module_path}; + Frame frame3 = {module_base_address3 + 0x10, module3}; + + std::vector<Frame> frames1 = {frame1, frame2}; + std::vector<Frame> frames2 = {frame3}; + + profile_builder->OnSampleCompleted(frames1); + profile_builder->OnSampleCompleted(frames2); + profile_builder->OnProfileCompleted(base::TimeDelta::FromMilliseconds(500), + base::TimeDelta::FromMilliseconds(100)); + + const SampledProfile& proto = profile_builder->sampled_profile(); + + ASSERT_TRUE(proto.has_process()); + ASSERT_EQ(BROWSER_PROCESS, proto.process()); + ASSERT_TRUE(proto.has_thread()); + ASSERT_EQ(MAIN_THREAD, proto.thread()); + ASSERT_TRUE(proto.has_trigger_event()); + ASSERT_EQ(SampledProfile::PROCESS_STARTUP, proto.trigger_event()); + + ASSERT_TRUE(proto.has_call_stack_profile()); + const CallStackProfile& profile = proto.call_stack_profile(); + + ASSERT_EQ(2, profile.deprecated_sample_size()); + ASSERT_EQ(2, profile.deprecated_sample(0).frame_size()); + ASSERT_TRUE(profile.deprecated_sample(0).frame(0).has_module_id_index()); + EXPECT_EQ(0, profile.deprecated_sample(0).frame(0).module_id_index()); + ASSERT_TRUE(profile.deprecated_sample(0).frame(1).has_module_id_index()); + EXPECT_EQ(1, profile.deprecated_sample(0).frame(1).module_id_index()); + ASSERT_EQ(1, profile.deprecated_sample(1).frame_size()); + ASSERT_TRUE(profile.deprecated_sample(1).frame(0).has_module_id_index()); + EXPECT_EQ(2, profile.deprecated_sample(1).frame(0).module_id_index()); + + ASSERT_EQ(3, profile.module_id().size()); + ASSERT_TRUE(profile.module_id(0).has_build_id()); + ASSERT_EQ("1", profile.module_id(0).build_id()); + ASSERT_TRUE(profile.module_id(0).has_name_md5_prefix()); + ASSERT_EQ(module_md5, profile.module_id(0).name_md5_prefix()); + ASSERT_TRUE(profile.module_id(1).has_build_id()); + ASSERT_EQ("2", profile.module_id(1).build_id()); + ASSERT_TRUE(profile.module_id(1).has_name_md5_prefix()); + ASSERT_EQ(module_md5, profile.module_id(1).name_md5_prefix()); + ASSERT_TRUE(profile.module_id(2).has_build_id()); + ASSERT_EQ("3", profile.module_id(2).build_id()); + ASSERT_TRUE(profile.module_id(2).has_name_md5_prefix()); + ASSERT_EQ(module_md5, profile.module_id(2).name_md5_prefix()); + + ASSERT_TRUE(profile.has_profile_duration_ms()); + EXPECT_EQ(500, profile.profile_duration_ms()); + ASSERT_TRUE(profile.has_sampling_period_ms()); + EXPECT_EQ(100, profile.sampling_period_ms()); +} + +TEST(LegacyCallStackProfileBuilderTest, SamplesDeduped) { + auto profile_builder = + std::make_unique<TestingLegacyCallStackProfileBuilder>(kProfileParams); + +#if defined(OS_WIN) + base::FilePath module_path(L"c:\\some\\path\\to\\chrome.exe"); +#else + base::FilePath module_path("/some/path/to/chrome"); +#endif + + const uintptr_t module_base_address1 = 0x1000; + Module module1 = {module_base_address1, "1", module_path}; + Frame frame1 = {module_base_address1 + 0x10, module1}; + + const uintptr_t module_base_address2 = 0x1100; + Module module2 = {module_base_address2, "2", module_path}; + Frame frame2 = {module_base_address2 + 0x10, module2}; + + std::vector<Frame> frames = {frame1, frame2}; + + // Two samples are completed with the same frames. They also have the same + // process milestone therefore they are deduped to one. + LegacyCallStackProfileBuilder::SetProcessMilestone(0); + + profile_builder->RecordAnnotations(); + profile_builder->OnSampleCompleted(frames, 42); + + profile_builder->RecordAnnotations(); + profile_builder->OnSampleCompleted(frames); + + profile_builder->OnProfileCompleted(base::TimeDelta(), base::TimeDelta()); + + const SampledProfile& proto = profile_builder->sampled_profile(); + + ASSERT_TRUE(proto.has_process()); + ASSERT_EQ(BROWSER_PROCESS, proto.process()); + ASSERT_TRUE(proto.has_thread()); + ASSERT_EQ(MAIN_THREAD, proto.thread()); + ASSERT_TRUE(proto.has_trigger_event()); + ASSERT_EQ(SampledProfile::PROCESS_STARTUP, proto.trigger_event()); + + ASSERT_TRUE(proto.has_call_stack_profile()); + ASSERT_EQ(1, proto.call_stack_profile().deprecated_sample_size()); + ASSERT_EQ(43, proto.call_stack_profile().deprecated_sample(0).count()); +} + +TEST(LegacyCallStackProfileBuilderTest, SamplesNotDeduped) { + auto profile_builder = + std::make_unique<TestingLegacyCallStackProfileBuilder>(kProfileParams); + +#if defined(OS_WIN) + base::FilePath module_path(L"c:\\some\\path\\to\\chrome.exe"); +#else + base::FilePath module_path("/some/path/to/chrome"); +#endif + + const uintptr_t module_base_address1 = 0x1000; + Module module1 = {module_base_address1, "1", module_path}; + Frame frame1 = {module_base_address1 + 0x10, module1}; + + const uintptr_t module_base_address2 = 0x1100; + Module module2 = {module_base_address2, "2", module_path}; + Frame frame2 = {module_base_address2 + 0x10, module2}; + + std::vector<Frame> frames = {frame1, frame2}; + + // Two samples are completed with the same frames but different process + // milestones. They are considered as different samples threfore not deduped. + LegacyCallStackProfileBuilder::SetProcessMilestone(2); + profile_builder->RecordAnnotations(); + profile_builder->OnSampleCompleted(frames); + + LegacyCallStackProfileBuilder::SetProcessMilestone(4); + profile_builder->RecordAnnotations(); + profile_builder->OnSampleCompleted(frames); + + profile_builder->OnProfileCompleted(base::TimeDelta(), base::TimeDelta()); + + const SampledProfile& proto = profile_builder->sampled_profile(); + + ASSERT_TRUE(proto.has_process()); + ASSERT_EQ(BROWSER_PROCESS, proto.process()); + ASSERT_TRUE(proto.has_thread()); + ASSERT_EQ(MAIN_THREAD, proto.thread()); + ASSERT_TRUE(proto.has_trigger_event()); + ASSERT_EQ(SampledProfile::PROCESS_STARTUP, proto.trigger_event()); + + ASSERT_TRUE(proto.has_call_stack_profile()); + ASSERT_EQ(2, proto.call_stack_profile().deprecated_sample_size()); +} + +TEST(LegacyCallStackProfileBuilderTest, Modules) { + auto profile_builder = + std::make_unique<TestingLegacyCallStackProfileBuilder>(kProfileParams); + + const uintptr_t module_base_address1 = 0x1000; + Module module1; // module1 has no information hence invalid. + Frame frame1 = {module_base_address1 + 0x10, module1}; + + const uintptr_t module_base_address2 = 0x1100; +#if defined(OS_WIN) + uint64_t module_md5 = 0x46C3E4166659AC02ULL; + base::FilePath module_path(L"c:\\some\\path\\to\\chrome.exe"); +#else + uint64_t module_md5 = 0x554838A8451AC36CULL; + base::FilePath module_path("/some/path/to/chrome"); +#endif + Module module2 = {module_base_address2, "2", module_path}; + Frame frame2 = {module_base_address2 + 0x10, module2}; + + std::vector<Frame> frames = {frame1, frame2}; + + profile_builder->OnSampleCompleted(frames); + profile_builder->OnProfileCompleted(base::TimeDelta(), base::TimeDelta()); + + const SampledProfile& proto = profile_builder->sampled_profile(); + + ASSERT_TRUE(proto.has_call_stack_profile()); + const CallStackProfile& profile = proto.call_stack_profile(); + + ASSERT_EQ(1, profile.deprecated_sample_size()); + ASSERT_EQ(2, profile.deprecated_sample(0).frame_size()); + + ASSERT_FALSE(profile.deprecated_sample(0).frame(0).has_module_id_index()); + ASSERT_FALSE(profile.deprecated_sample(0).frame(0).has_address()); + + ASSERT_TRUE(profile.deprecated_sample(0).frame(1).has_module_id_index()); + EXPECT_EQ(0, profile.deprecated_sample(0).frame(1).module_id_index()); + ASSERT_TRUE(profile.deprecated_sample(0).frame(1).has_address()); + EXPECT_EQ(0x10ULL, profile.deprecated_sample(0).frame(1).address()); + + ASSERT_EQ(1, profile.module_id().size()); + ASSERT_TRUE(profile.module_id(0).has_build_id()); + ASSERT_EQ("2", profile.module_id(0).build_id()); + ASSERT_TRUE(profile.module_id(0).has_name_md5_prefix()); + ASSERT_EQ(module_md5, profile.module_id(0).name_md5_prefix()); +} + +TEST(LegacyCallStackProfileBuilderTest, DedupModules) { + auto profile_builder = + std::make_unique<TestingLegacyCallStackProfileBuilder>(kProfileParams); + + const uintptr_t module_base_address = 0x1000; + +#if defined(OS_WIN) + uint64_t module_md5 = 0x46C3E4166659AC02ULL; + base::FilePath module_path(L"c:\\some\\path\\to\\chrome.exe"); +#else + uint64_t module_md5 = 0x554838A8451AC36CULL; + base::FilePath module_path("/some/path/to/chrome"); +#endif + + Module module1 = {module_base_address, "1", module_path}; + Frame frame1 = {module_base_address + 0x10, module1}; + + Module module2 = {module_base_address, "1", module_path}; + Frame frame2 = {module_base_address + 0x20, module2}; + + std::vector<Frame> frames = {frame1, frame2}; + + profile_builder->OnSampleCompleted(frames); + profile_builder->OnProfileCompleted(base::TimeDelta(), base::TimeDelta()); + + const SampledProfile& proto = profile_builder->sampled_profile(); + + ASSERT_TRUE(proto.has_call_stack_profile()); + const CallStackProfile& profile = proto.call_stack_profile(); + + ASSERT_EQ(1, profile.deprecated_sample_size()); + ASSERT_EQ(2, profile.deprecated_sample(0).frame_size()); + + // Since module1 and module2 have the same base address, they are considered + // the same module and therefore deduped. + ASSERT_TRUE(profile.deprecated_sample(0).frame(0).has_module_id_index()); + EXPECT_EQ(0, profile.deprecated_sample(0).frame(0).module_id_index()); + ASSERT_TRUE(profile.deprecated_sample(0).frame(0).has_address()); + EXPECT_EQ(0x10ULL, profile.deprecated_sample(0).frame(0).address()); + + ASSERT_TRUE(profile.deprecated_sample(0).frame(1).has_module_id_index()); + EXPECT_EQ(0, profile.deprecated_sample(0).frame(1).module_id_index()); + ASSERT_TRUE(profile.deprecated_sample(0).frame(1).has_address()); + EXPECT_EQ(0x20ULL, profile.deprecated_sample(0).frame(1).address()); + + ASSERT_EQ(1, profile.module_id().size()); + ASSERT_TRUE(profile.module_id(0).has_build_id()); + ASSERT_EQ("1", profile.module_id(0).build_id()); + ASSERT_TRUE(profile.module_id(0).has_name_md5_prefix()); + ASSERT_EQ(module_md5, profile.module_id(0).name_md5_prefix()); +} + +} // namespace metrics
diff --git a/components/omnibox/browser/autocomplete_provider_client.h b/components/omnibox/browser/autocomplete_provider_client.h index 25febf26..9bf2735 100644 --- a/components/omnibox/browser/autocomplete_provider_client.h +++ b/components/omnibox/browser/autocomplete_provider_client.h
@@ -106,6 +106,15 @@ // This function returns true if the user is signed in. virtual bool IsAuthenticated() const = 0; + // Determines whether Unified Consent is on as a feature, and the user has + // accepted the bit. Note this is a subset of + // IsPersonalizedUrlDataCollectionActive() in that the user has not + // necessarily consented to share browsing data with Google. + virtual bool IsUnifiedConsentGiven() const = 0; + + // Determines whether sync is enabled. + virtual bool IsSyncActive() const = 0; + // Given some string |text| that the user wants to use for navigation, // determines how it should be interpreted. virtual void Classify(
diff --git a/components/omnibox/browser/document_provider.cc b/components/omnibox/browser/document_provider.cc index 4c5923e..238db4d2 100644 --- a/components/omnibox/browser/document_provider.cc +++ b/components/omnibox/browser/document_provider.cc
@@ -110,24 +110,30 @@ } bool DocumentProvider::IsDocumentProviderAllowed( - PrefService* prefs, - bool is_incognito, - bool is_authenticated, - const TemplateURLService* template_url_service) { + AutocompleteProviderClient* client) { // Feature must be on. if (!base::FeatureList::IsEnabled(omnibox::kDocumentProvider)) return false; + // These may seem like search suggestions, so gate on that setting too. + if (!client->SearchSuggestEnabled()) + return false; + // Client-side toggle must be enabled. - if (!prefs->GetBoolean(omnibox::kDocumentSuggestEnabled)) + if (!client->GetPrefs()->GetBoolean(omnibox::kDocumentSuggestEnabled)) return false; // No incognito. - if (is_incognito) + if (client->IsOffTheRecord()) return false; - // User must be signed in. - if (!is_authenticated) + // If the user opted into unity, we may proceed. + // Otherwise (either unity hasn't been offered or the not-yet button was + // clicked), we may check sync's status and proceed if active. + bool authenticated_and_syncing = + client->IsAuthenticated() && + (client->IsUnifiedConsentGiven() || client->IsSyncActive()); + if (!authenticated_and_syncing) return false; // We haven't received a server backoff signal. @@ -137,6 +143,7 @@ // Google must be set as default search provider; we mix results which may // change placement. + auto* template_url_service = client->GetTemplateURLService(); if (template_url_service == nullptr) return false; const TemplateURL* default_provider = @@ -173,9 +180,9 @@ TRACE_EVENT0("omnibox", "DocumentProvider::Start"); matches_.clear(); - if (!IsDocumentProviderAllowed(client_->GetPrefs(), client_->IsOffTheRecord(), - client_->IsAuthenticated(), - client_->GetTemplateURLService())) { + // Perform various checks - feature is enabled, user is allowed to use the + // feature, we're not under backoff, etc. + if (!IsDocumentProviderAllowed(client_)) { return; }
diff --git a/components/omnibox/browser/document_provider.h b/components/omnibox/browser/document_provider.h index dc5aaad0..47039c16 100644 --- a/components/omnibox/browser/document_provider.h +++ b/components/omnibox/browser/document_provider.h
@@ -22,7 +22,6 @@ class AutocompleteProviderListener; class AutocompleteProviderClient; -class PrefService; namespace base { class Value; @@ -59,6 +58,8 @@ FRIEND_TEST_ALL_PREFIXES(DocumentProviderTest, CheckFeaturePrerequisiteNoIncognito); FRIEND_TEST_ALL_PREFIXES(DocumentProviderTest, + CheckFeaturePrerequisiteNoConsentBit); + FRIEND_TEST_ALL_PREFIXES(DocumentProviderTest, CheckFeaturePrerequisiteClientSettingOff); FRIEND_TEST_ALL_PREFIXES(DocumentProviderTest, CheckFeaturePrerequisiteDefaultSearch); @@ -77,13 +78,9 @@ ~DocumentProvider() override; - // Using this provider requires the user is signed-in and has Google set as - // default search engine. - bool IsDocumentProviderAllowed( - PrefService* prefs, - bool is_incognito, - bool is_authenticated, - const TemplateURLService* template_url_service); + // Determines whether the profile/session/window meet the feature + // prerequisites. + bool IsDocumentProviderAllowed(AutocompleteProviderClient* client); // Determines if the input is a URL, or is the start of the user entering one. // We avoid queries for these cases for quality and scaling reasons.
diff --git a/components/omnibox/browser/document_provider_unittest.cc b/components/omnibox/browser/document_provider_unittest.cc index a2bca72..37661523 100644 --- a/components/omnibox/browser/document_provider_unittest.cc +++ b/components/omnibox/browser/document_provider_unittest.cc
@@ -22,6 +22,8 @@ namespace { +using testing::Return; + class FakeAutocompleteProviderClient : public MockAutocompleteProviderClient { public: FakeAutocompleteProviderClient() @@ -93,67 +95,82 @@ } TEST_F(DocumentProviderTest, CheckFeatureBehindFlag) { - PrefService* fake_prefs = client_->GetPrefs(); - TemplateURLService* template_url_service = client_->GetTemplateURLService(); - bool is_incognito = false; - bool is_authenticated = true; - base::test::ScopedFeatureList feature_list; feature_list.InitAndDisableFeature(omnibox::kDocumentProvider); - EXPECT_FALSE(provider_->IsDocumentProviderAllowed( - fake_prefs, is_incognito, is_authenticated, template_url_service)); + EXPECT_FALSE(provider_->IsDocumentProviderAllowed(client_.get())); } TEST_F(DocumentProviderTest, CheckFeaturePrerequisiteNoIncognito) { - PrefService* fake_prefs = client_->GetPrefs(); - TemplateURLService* template_url_service = client_->GetTemplateURLService(); - bool is_incognito = false; - bool is_authenticated = true; base::test::ScopedFeatureList feature_list; feature_list.InitAndEnableFeature(omnibox::kDocumentProvider); + EXPECT_CALL(*client_.get(), SearchSuggestEnabled()) + .WillRepeatedly(Return(true)); + EXPECT_CALL(*client_.get(), IsAuthenticated()).WillRepeatedly(Return(true)); + EXPECT_CALL(*client_.get(), IsUnifiedConsentGiven()) + .WillRepeatedly(Return(true)); + EXPECT_CALL(*client_.get(), IsOffTheRecord()).WillRepeatedly(Return(false)); // Feature starts enabled. - EXPECT_TRUE(provider_->IsDocumentProviderAllowed( - fake_prefs, is_incognito, is_authenticated, template_url_service)); + EXPECT_TRUE(provider_->IsDocumentProviderAllowed(client_.get())); // Feature should be disabled in incognito. - is_incognito = true; - EXPECT_FALSE(provider_->IsDocumentProviderAllowed( - fake_prefs, is_incognito, is_authenticated, template_url_service)); + EXPECT_CALL(*client_.get(), IsOffTheRecord()).WillRepeatedly(Return(true)); + EXPECT_FALSE(provider_->IsDocumentProviderAllowed(client_.get())); +} + +TEST_F(DocumentProviderTest, CheckFeaturePrerequisiteNoConsentBit) { + base::test::ScopedFeatureList feature_list; + feature_list.InitAndEnableFeature(omnibox::kDocumentProvider); + EXPECT_CALL(*client_.get(), SearchSuggestEnabled()) + .WillRepeatedly(Return(true)); + EXPECT_CALL(*client_.get(), IsAuthenticated()).WillRepeatedly(Return(true)); + EXPECT_CALL(*client_.get(), IsUnifiedConsentGiven()) + .WillRepeatedly(Return(true)); + EXPECT_CALL(*client_.get(), IsOffTheRecord()).WillRepeatedly(Return(false)); + + // Feature starts enabled. + EXPECT_TRUE(provider_->IsDocumentProviderAllowed(client_.get())); + + // Feature should be disabled without a consent bit. + EXPECT_CALL(*client_.get(), IsUnifiedConsentGiven()).WillOnce(Return(false)); + EXPECT_FALSE(provider_->IsDocumentProviderAllowed(client_.get())); } TEST_F(DocumentProviderTest, CheckFeaturePrerequisiteClientSettingOff) { - PrefService* fake_prefs = client_->GetPrefs(); - TemplateURLService* template_url_service = client_->GetTemplateURLService(); - bool is_incognito = false; - bool is_authenticated = true; base::test::ScopedFeatureList feature_list; feature_list.InitAndEnableFeature(omnibox::kDocumentProvider); + EXPECT_CALL(*client_.get(), SearchSuggestEnabled()) + .WillRepeatedly(Return(true)); + EXPECT_CALL(*client_.get(), IsAuthenticated()).WillRepeatedly(Return(true)); + EXPECT_CALL(*client_.get(), IsUnifiedConsentGiven()) + .WillRepeatedly(Return(true)); + EXPECT_CALL(*client_.get(), IsOffTheRecord()).WillRepeatedly(Return(false)); // Feature starts enabled. - EXPECT_TRUE(provider_->IsDocumentProviderAllowed( - fake_prefs, is_incognito, is_authenticated, template_url_service)); + EXPECT_TRUE(provider_->IsDocumentProviderAllowed(client_.get())); // Disabling toggle in chrome://settings should be respected. + PrefService* fake_prefs = client_->GetPrefs(); fake_prefs->SetBoolean(omnibox::kDocumentSuggestEnabled, false); - EXPECT_FALSE(provider_->IsDocumentProviderAllowed( - fake_prefs, is_incognito, is_authenticated, template_url_service)); + EXPECT_FALSE(provider_->IsDocumentProviderAllowed(client_.get())); fake_prefs->SetBoolean(omnibox::kDocumentSuggestEnabled, true); } TEST_F(DocumentProviderTest, CheckFeaturePrerequisiteDefaultSearch) { - PrefService* fake_prefs = client_->GetPrefs(); - TemplateURLService* template_url_service = client_->GetTemplateURLService(); - bool is_incognito = false; - bool is_authenticated = true; base::test::ScopedFeatureList feature_list; feature_list.InitAndEnableFeature(omnibox::kDocumentProvider); + EXPECT_CALL(*client_.get(), SearchSuggestEnabled()) + .WillRepeatedly(Return(true)); + EXPECT_CALL(*client_.get(), IsAuthenticated()).WillRepeatedly(Return(true)); + EXPECT_CALL(*client_.get(), IsUnifiedConsentGiven()) + .WillRepeatedly(Return(true)); + EXPECT_CALL(*client_.get(), IsOffTheRecord()).WillRepeatedly(Return(false)); // Feature starts enabled. - EXPECT_TRUE(provider_->IsDocumentProviderAllowed( - fake_prefs, is_incognito, is_authenticated, template_url_service)); + EXPECT_TRUE(provider_->IsDocumentProviderAllowed(client_.get())); // Switching default search disables it. + TemplateURLService* template_url_service = client_->GetTemplateURLService(); TemplateURLData data; data.SetShortName(base::ASCIIToUTF16("t")); data.SetURL("https://www.notgoogle.com/?q={searchTerms}"); @@ -162,29 +179,28 @@ template_url_service->Add(std::make_unique<TemplateURL>(data)); template_url_service->SetUserSelectedDefaultSearchProvider( new_default_provider); - EXPECT_FALSE(provider_->IsDocumentProviderAllowed( - fake_prefs, is_incognito, is_authenticated, template_url_service)); + EXPECT_FALSE(provider_->IsDocumentProviderAllowed(client_.get())); template_url_service->SetUserSelectedDefaultSearchProvider( default_template_url_); template_url_service->Remove(new_default_provider); } TEST_F(DocumentProviderTest, CheckFeaturePrerequisiteServerBackoff) { - PrefService* fake_prefs = client_->GetPrefs(); - TemplateURLService* template_url_service = client_->GetTemplateURLService(); - bool is_incognito = false; - bool is_authenticated = true; base::test::ScopedFeatureList feature_list; feature_list.InitAndEnableFeature(omnibox::kDocumentProvider); + EXPECT_CALL(*client_.get(), SearchSuggestEnabled()) + .WillRepeatedly(Return(true)); + EXPECT_CALL(*client_.get(), IsAuthenticated()).WillRepeatedly(Return(true)); + EXPECT_CALL(*client_.get(), IsUnifiedConsentGiven()) + .WillRepeatedly(Return(true)); + EXPECT_CALL(*client_.get(), IsOffTheRecord()).WillRepeatedly(Return(false)); // Feature starts enabled. - EXPECT_TRUE(provider_->IsDocumentProviderAllowed( - fake_prefs, is_incognito, is_authenticated, template_url_service)); + EXPECT_TRUE(provider_->IsDocumentProviderAllowed(client_.get())); // Server setting backoff flag disables it. provider_->backoff_for_session_ = true; - EXPECT_FALSE(provider_->IsDocumentProviderAllowed( - fake_prefs, is_incognito, is_authenticated, template_url_service)); + EXPECT_FALSE(provider_->IsDocumentProviderAllowed(client_.get())); provider_->backoff_for_session_ = false; }
diff --git a/components/omnibox/browser/mock_autocomplete_provider_client.h b/components/omnibox/browser/mock_autocomplete_provider_client.h index ea03fe70..4d13a42 100644 --- a/components/omnibox/browser/mock_autocomplete_provider_client.h +++ b/components/omnibox/browser/mock_autocomplete_provider_client.h
@@ -82,6 +82,9 @@ MOCK_CONST_METHOD0(SearchSuggestEnabled, bool()); MOCK_CONST_METHOD0(IsPersonalizedUrlDataCollectionActive, bool()); MOCK_CONST_METHOD0(IsAuthenticated, bool()); + MOCK_CONST_METHOD0(IsUnifiedConsentGiven, bool()); + MOCK_CONST_METHOD0(IsSyncActive, bool()); + MOCK_METHOD6( Classify, void(const base::string16& text,
diff --git a/components/page_info_strings.grdp b/components/page_info_strings.grdp index 6488ce5..e327470 100644 --- a/components/page_info_strings.grdp +++ b/components/page_info_strings.grdp
@@ -428,7 +428,7 @@ <!-- Billing --> <message name="IDS_PAGE_INFO_BILLING_SUMMARY" desc="A one-line summary at the top of the Page Info bubble (which shows when you click the security indicator) if the website has been flagged for a billing interstitial"> - The page ahead may try to charge you money + This page may try to charge you money </message> <message name="IDS_PAGE_INFO_BILLING_DETAILS" desc="A one-line summary at the top of the Page Info bubble (which shows when you click the security indicator) if the website has been flagged for a billing interstitial."> These charges could be one-time or recurring and may not be obvious.
diff --git a/components/policy/core/common/BUILD.gn b/components/policy/core/common/BUILD.gn index b33b03fc..eed2888 100644 --- a/components/policy/core/common/BUILD.gn +++ b/components/policy/core/common/BUILD.gn
@@ -89,7 +89,6 @@ "config_dir_policy_loader.h", "configuration_policy_provider.cc", "configuration_policy_provider.h", - "extension_policy_migrator.cc", "extension_policy_migrator.h", "external_data_fetcher.cc", "external_data_fetcher.h", @@ -315,7 +314,6 @@ "cloud/device_management_service_unittest.cc", "cloud/policy_header_service_unittest.cc", "cloud/user_info_fetcher_unittest.cc", - "extension_policy_migrator_unittest.cc", "generate_policy_source_unittest.cc", "plist_writer_unittest.cc", "policy_bundle_unittest.cc",
diff --git a/components/policy/core/common/extension_policy_migrator.cc b/components/policy/core/common/extension_policy_migrator.cc deleted file mode 100644 index 87ebbf84..0000000 --- a/components/policy/core/common/extension_policy_migrator.cc +++ /dev/null
@@ -1,35 +0,0 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "components/policy/core/common/extension_policy_migrator.h" - -namespace policy { - -ExtensionPolicyMigrator::~ExtensionPolicyMigrator() {} - -void ExtensionPolicyMigrator::CopyPoliciesIfUnset( - PolicyBundle* bundle, - const std::string& extension_id, - base::span<const Migration> migrations) { - PolicyMap& extension_map = bundle->Get( - PolicyNamespace(PolicyDomain::POLICY_DOMAIN_EXTENSIONS, extension_id)); - if (extension_map.empty()) - return; - - PolicyMap& chrome_map = bundle->Get(PolicyNamespace( - PolicyDomain::POLICY_DOMAIN_CHROME, /* component_id */ std::string())); - - for (const auto& migration : migrations) { - PolicyMap::Entry* entry = extension_map.GetMutable(migration.old_name); - if (entry) { - if (!chrome_map.Get(migration.new_name)) { - chrome_map.Set(migration.new_name, entry->DeepCopy()); - } - // TODO(crbug/869958): Mark the old policy as deprecated for - // chrome://policy. - } - } -} - -} // namespace policy
diff --git a/components/policy/core/common/extension_policy_migrator.h b/components/policy/core/common/extension_policy_migrator.h index ae94bbe..072d6ec7 100644 --- a/components/policy/core/common/extension_policy_migrator.h +++ b/components/policy/core/common/extension_policy_migrator.h
@@ -19,7 +19,7 @@ // |LegacyPoliciesDeprecatingPolicyHandler| instead. class POLICY_EXPORT ExtensionPolicyMigrator { public: - virtual ~ExtensionPolicyMigrator(); + virtual ~ExtensionPolicyMigrator() {} // If there are deprecated policies in |bundle|, set the value of the new // policies accordingly. @@ -33,14 +33,6 @@ // New name for the policy, in the Chrome domain. const char* new_name; }; - - protected: - // Helper function intended for implementers who want to rename policies and - // copy them from an extension domain to the Chrome domain. If one of the - // Chrome domain policies is already set, it is not overridden. - void CopyPoliciesIfUnset(PolicyBundle* bundle, - const std::string& extension_id, - base::span<const Migration> migrations); }; } // namespace policy
diff --git a/components/policy/resources/policy_templates.json b/components/policy/resources/policy_templates.json index e3dad71..17f379e 100644 --- a/components/policy/resources/policy_templates.json +++ b/components/policy/resources/policy_templates.json
@@ -6400,7 +6400,7 @@ 'tags': [], 'desc': '''If this policy is set to true or not configured, <ph name="PRODUCT_OS_NAME">$2<ex>Google Chrome OS</ex></ph> will show existing users on the login screen and allow to pick one. - If this policy is set to false, <ph name="PRODUCT_OS_NAME">$2<ex>Google Chrome OS</ex></ph> will not show existing users on the login screen. The normal sign-in screen (prompting for the user email and password or phone) or the SAML interstital screen (if enabled via the <ph name="LOGIN_AUTHENTICATION_BEHAVIOR_POLICY_NAME">LoginAuthenticationBehavior</ph> policy) will be shown, unless a Public Session is configured. When a Public Session is configured, only the Public Session accounts will be shown, allowing to pick one of them. + If this policy is set to false, <ph name="PRODUCT_OS_NAME">$2<ex>Google Chrome OS</ex></ph> will not show existing users on the login screen. The normal sign-in screen (prompting for the user email and password or phone) or the SAML interstitial screen (if enabled via the <ph name="LOGIN_AUTHENTICATION_BEHAVIOR_POLICY_NAME">LoginAuthenticationBehavior</ph> policy) will be shown, unless a Managed Session is configured. When a Managed Session is configured, only the Managed Session accounts will be shown, allowing to pick one of them. Note that this policy does not affect whether the device keeps or discards the local user data.''', }, @@ -6841,11 +6841,11 @@ }, 'example_value': "public@example.com", 'id': 194, - 'caption': '''Public session for auto-login''', + 'caption': '''Device-local account for auto-login''', 'tags': [], - 'desc': '''A public session to auto-login after a delay. + 'desc': '''A device-local account to auto-login after a delay. - If this policy is set, the specified session will be automatically logged in after a period of time has elapsed at the login screen without user interaction. The public session must already be configured (see |DeviceLocalAccounts|). + If this policy is set, the specified session will be automatically logged in after a period of time has elapsed at the login screen without user interaction. The device-local account must already be configured (see |DeviceLocalAccounts|). If this policy is unset, there will be no auto-login.''', }, @@ -6861,13 +6861,13 @@ }, 'example_value': 180000, 'id': 195, - 'caption': '''Public session auto-login timer''', + 'caption': '''Device-local account auto-login timer''', 'tags': [], - 'desc': '''The public session auto-login delay. + 'desc': '''The device-local account auto-login delay. If the |DeviceLocalAccountAutoLoginId| policy is unset, this policy has no effect. Otherwise: - If this policy is set, it determines the amount of time without user activity that should elapse before automatically logging into the public session specified by the |DeviceLocalAccountAutoLoginId| policy. + If this policy is set, it determines the amount of time without user activity that should elapse before automatically logging into the device-local account specified by the |DeviceLocalAccountAutoLoginId| policy. If this policy is unset, 0 milliseconds will be used as the timeout. @@ -9269,19 +9269,19 @@ }, 'example_value': ['de', 'fr'], 'id': 274, - 'caption': '''Set the recommended locales for a public session''', + 'caption': '''Set the recommended locales for a managed session''', 'tags': [], - 'desc': '''Sets one or more recommended locales for a public session, allowing users to easily choose one of these locales. + 'desc': '''Sets one or more recommended locales for a managed session, allowing users to easily choose one of these locales. - The user can choose a locale and a keyboard layout before starting a public session. By default, all locales supported by <ph name="PRODUCT_OS_NAME">$2<ex>Google Chrome OS</ex></ph> are listed in alphabetic order. You can use this policy to move a set of recommended locales to the top of the list. + The user can choose a locale and a keyboard layout before starting a managed session. By default, all locales supported by <ph name="PRODUCT_OS_NAME">$2<ex>Google Chrome OS</ex></ph> are listed in alphabetic order. You can use this policy to move a set of recommended locales to the top of the list. If this policy is not set, the current UI locale will be pre-selected. If this policy is set, the recommended locales will be moved to the top of the list and will be visually separated from all other locales. The recommended locales will be listed in the order in which they appear in the policy. The first recommended locale will be pre-selected. - If there is more than one recommended locale, it is assumed that users will want to select among these locales. Locale and keyboard layout selection will be prominently offered when starting a public session. Otherwise, it is assumed that most users will want to use the pre-selected locale. Locale and keyboard layout selection will be less prominently offered when starting a public session. + If there is more than one recommended locale, it is assumed that users will want to select among these locales. Locale and keyboard layout selection will be prominently offered when starting a managed session. Otherwise, it is assumed that most users will want to use the pre-selected locale. Locale and keyboard layout selection will be less prominently offered when starting a managed session. - When this policy is set and automatic login is enabled (see the |DeviceLocalAccountAutoLoginId| and |DeviceLocalAccountAutoLoginDelay| policies), the automatically started public session will use the first recommended locale and the most popular keyboard layout matching this locale. + When this policy is set and automatic login is enabled (see the |DeviceLocalAccountAutoLoginId| and |DeviceLocalAccountAutoLoginDelay| policies), the automatically started managed session will use the first recommended locale and the most popular keyboard layout matching this locale. The pre-selected keyboard layout will always be the most popular layout matching the pre-selected locale.
diff --git a/components/policy/resources/policy_templates_am.xtb b/components/policy/resources/policy_templates_am.xtb index b307ad6..5164953c 100644 --- a/components/policy/resources/policy_templates_am.xtb +++ b/components/policy/resources/policy_templates_am.xtb
@@ -187,6 +187,7 @@ <translation id="1522425503138261032">ጣቢያዎች የተጠቃሚዎች አካላዊ አካባቢ እንዲከታተሉ ይፍቀዱ</translation> <translation id="152657506688053119">የነባሪ ፍለጋ አቅራቢው ተለዋጭ ዩ አር ኤሎች ዝርዝር</translation> <translation id="1530812829012954197">በአስተናጋጅ አሳሹ ውስጥ ያሉት የሚከተሉት የዩ አር ኤል ስርዓተ ጥለቶችን ሁልጊዜ አዘጋጅ</translation> +<translation id="1541170838458414064">የህትመት ገጹ መጠንን ይገድቡ</translation> <translation id="1553684822621013552">ይህ መመሪያ ወደ እውነት ሲቀናበር ARC ለተጠቃሚው ይነቃል (ለተጨማሪ የመመሪያ ቅንብሮች ፍተሻዎች ተገዢ ነው - አሁን ባለው የተጠቃሚ ክፍለ-ጊዜ የበጣም አጭር ጊዜ ሁነታ ወይም በርካታ በመለያ መግባት ከነቃ @@ -368,6 +369,12 @@ <translation id="2082205219176343977">ለመሣሪያው የተፈቀደው ዝቅተኛው የChrome ስሪት ያዋቅሩ።</translation> <translation id="209586405398070749">የረጋ ሰርጥ</translation> <translation id="2098658257603918882">የአጠቃቀም እና ከብልሽት ጋር የተያያዘ የውሂብ ሪፖርት ማድረግን ያንቁ</translation> +<translation id="2098916259427011890">ይህ መመሪያ እንደ የሥርዓተ ክወና ስሪት፣ የሥርዓተ ከውና መሣሪያ ሥርዓት፣ የሥርዓተ ክወና መዋቅረ-ኮምፒውተር፣ የ<ph name="PRODUCT_NAME" /> ስሪት እና የ<ph name="PRODUCT_NAME" /> ሰርጥ ያለ የስሪት መረጃን ሪፖርት ይደረግ እንደሆነ ይቆጣጠራል። + + ይህ መመሪያ እንዳልተዋቀረ ከተተወ ወይም ወደ እውነት ሲዋቀር የስሪት መረጃ ይሰበሰባል። + ይህ መመሪያ ወደ ሐሰት ሲዋቀር የስሪት መረጃ አይሰበሰብም። + + ይህ መመሪያ ተግባራዊ የሚሆነው የChrome ሪፖርት ማድረጊያ ቅጥያ እና የደመና አስተዳደር ከነቁ ብቻ ነው።</translation> <translation id="2111016292707172233">በ<ph name="PRODUCT_NAME" /> ይዘት እይታ ውስጥ ለመፈለግ የመታ ማድረግ ተገኝነትን ያነቃል። ይህን ቅንብር ካነቁት ለመፈለግ መታ ማድረግ ለተጠቃሚው የሚገኝ ይሆናል፣ እና ባህሪውን ለማብራት ወይም ለማጥፋት መምረጥ ይችላሉ። @@ -401,6 +408,8 @@ መመሪያው ካልተዋቀረ ነባሪው እሴት 0 ዲግሪ ነው፣ እና ተጠቃሚው ሊለውጠው ይችላል። ይህ በሚሆንበት ጊዜ ነባሪው እሴት በዳግም ማስጀመር ጊዜ ዳግም አይተገበርም።</translation> +<translation id="214901426630414675">የህትመት ዱፕሌክስ ሁነታን ይገድቡ</translation> +<translation id="2149330464730004005">የቀለም ህትመትን ያንቁ</translation> <translation id="2156132677421487971">ተጠቃሚዎች የትሮች፣ ጣቢያዎች ወይም ዴስክቶፕ ይዘት ከአሳሹ ወደ የርቀት ማሳያዎች እና የድምጽ ስርዓቶች እንዲልኩ የሚያስችል ባህሪ የሆነው የ<ph name="PRODUCT_NAME" /> መመሪያዎችን ያዋቅሩ።</translation> <translation id="2166472654199325139">ለዐዋቂ ይዘት ጣቢያዎችን አታጣራ</translation> <translation id="2168397434410358693">በሶኬት ኃይል ላይ ሲሆን የስራ ፈትቶ መዘግየት</translation> @@ -592,6 +601,7 @@ <translation id="2529880111512635313">በግዳጅ የተጫኑ የመተግበሪያዎች እና የቅጥያዎች ዝርዝሩን ያዋቅሩ</translation> <translation id="253135976343875019">በሶኬት ኃይል ላይ ሲሆን የስራ ፈትቶ ማስጠንቀቂያ መዘግየት</translation> <translation id="2536525645274582300">ተጠቃሚ የGoogle አካባቢ አገልግሎቶችን የሚበራ ከሆነ ይወስናል</translation> +<translation id="2550593661567988768">ሲምፕሌክስ ህትመት ብቻ</translation> <translation id="2552966063069741410">የሰዓት ሰቅ</translation> <translation id="2562339630163277285">ፈጣን ውጤቶችን ለማቅረብ ጥቅም ላይ የሚውለው የፍለጋ ፕሮግራም ዩአርኤል ይገልጻል። ዩአርኤሉ የ<ph name="SEARCH_TERM_MARKER" /> ሕብረቁምፊ ሊኖረው ይገባል፣ ይህም በመጠይቅ ጊዜ ተጠቃሚው ባስገባው ጽሑፍ የሚተካ ነው። @@ -726,9 +736,12 @@ ይህን ቅንብር ካሰናከሉት ወይም እሴት ካላዋቀሩ የሕትመት ቅድመ-እይታ በጣም በቅርብ ጊዜ ጥቅም ላይ የዋለውን ማተሚያ እንደ ነባሪ የመድረሻ ምርጫ አድርጎ ይጠቀማል። ይህን ቅንብር ካዋቀሩት የሕትመት ቅድመ-እይታ የስርዓተ-ክወና ሥርዓቱን ነባሪ ማተሚያ እንደ ነባሪው የመድረሻ ምርጫ አድርጎ ይጠቀማል።</translation> +<translation id="2856674246949497058">የሥርዓተ ክወናው ስሪቱ ከዒላማው ይበልጥ አዲስ ከሆነ ይቀልብሱና በዒላማ ስሪቱ ላይ ይቆዩ። በሂደቱ ላይ ፓወርዋሽ ያከናውኑ።</translation> <translation id="2872961005593481000">ዝጋ</translation> +<translation id="2873651257716068683">ነባሪው የህትመት ገጽ መጠኑን ይሽራል። የገጹ መጠን የማይገኝ ከሆነ ይህ መመሪያ ችላ ይባላል።</translation> <translation id="2874209944580848064">የAndroid መተግበሪያዎችን ለሚደግፉ የ<ph name="PRODUCT_OS_NAME" /> መሣሪያዎች ማስታወሻ፦</translation> <translation id="2877225735001246144">የKerberos ማረጋገጫ ሲደራደሩ CNAMEን ፍለጋን ያሰናክሉ</translation> +<translation id="2892414556511568464">የህትመት ዱፕሌክስ ሁነታን ይገድባል። ያልተዋቀረ መመሪያና ባዶ ስብስብ እንደ ምንም ገደብ ነው የሚቆጠሩት።</translation> <translation id="2893546967669465276">የስርዓት ምዝግብ ማስታወሻዎችን ወደ የአስተዳደር አገልጋዩ ይላኩ</translation> <translation id="2899002520262095963">የAndroid መተግበሪያዎች በዚህ መመሪያ በኩል የተዋቀሩ የአውታረ መረብ ውቅረቶችን እና የCA እውቅና ማረጋገጫዎችን መጠቀም ይችላሉ፣ ነገር ግን አንዳንድ የውቅረት አማራጮች መዳረሻ አይኖራቸውም።</translation> <translation id="290002216614278247">በደንበኛው ሰዓት ወይም በዕለቱ የአጠቃቀም ኮታ ላይ ተመስርተው የተጠቃሚውን ክፍለ-ጊዜ እንዲቆልፉ ያስችልዎታል። @@ -815,6 +828,7 @@ አገልጋዮች ወደ የECDHE ስነ መሰውር ስብስቦች እንዲሸጋገሩ ይበረታታሉ። እነዚህ የማይገኙ ከሆነ የRSA ቁልፍ ልውውጥ የሚጠቀም የስነ መሰውር ስብስብ የነቃ መሆኑን ያረጋግጡ።</translation> <translation id="316778957754360075">ይህ ቅንብር ከ<ph name="PRODUCT_NAME" /> ስሪት 29 ጀምሮ ስራ አቁሟል። የሚመከረው በድርጅት የሚስተናገዱ የቅጥያ/መተግበሪያ ስብስቦች የሚዋቀሩበት መንገድ የCRX ጥቅሎች የሚያስተናግደውን ጣቢያ በ ExtensionInstallSources ውስጥ ማካተት እና ወደ ጥቅሎቹ የሚወስዱ የቀጥታ ውርድ አገናኞች በአንድ ድረ-ገጽ ላይ ማስቀመጥ ነው። የ ExtensionInstallForcelist መመሪያውን በመጠቀም የዚያ ድረ-ገጽ ማስጀመሪያ መፍጠር ይቻላል።</translation> +<translation id="3171369832001535378">የመሣሪያ አውታረ መረብ አስተናጋጅ ስም አብነት</translation> <translation id="3185009703220253572">ከስሪት <ph name="SINCE_VERSION" /> ጀምሮ</translation> <translation id="3187220842205194486">የAndroid መተግበሪያዎች የኮርፖሬት ቁልፎች መዳረሻን ማግኘት አይችሉም። ይህ መመሪያ በእነሱ ላይ ምንም ተጽዕኖ የለውም።</translation> <translation id="3201273385265130876"><ph name="PRODUCT_NAME" /> የሚጠቀመውን የተኪ አገልጋዩን እንዲጠቅሱ ያስችልዎታል፣ እና ተጠቃሚዎች የተኪ ቅንብሮችን እንዳይለውጡ ይከላከላል። @@ -927,6 +941,7 @@ የዚህ መመሪያ እሴት ከGoogle Admin console ተሰርስሮ ሊወጣ የሚችል የምዝገባ ማስመሰያ ነው።</translation> <translation id="3496296378755072552">የይለፍ ቃል አቀናባሪ</translation> +<translation id="3502555714327823858">ሁሉንም የዱፕሌክስ ሁነታዎችን ይፍቀዱ</translation> <translation id="350443680860256679">ኤአርሲን አዋቅር</translation> <translation id="3504791027627803580">የምስል ፍለጋ በሚደረግበት ወቅት ጥቅም ላይ የዋለውን የፍለጋ ፕሮግራሙ ዩ አር ኤልን ይጠቅሳል። የፍለጋ ጥያቄዎች የGET ስልትን በመጠቀም ይላካሉ። የDefaultSearchProviderImageURLPostParams መመሪያው ከተዘጋጀ የምስል ፍለጋ ጥያቄዎች ከሱ ይልቅ POST ስልትን ይጠቀማሉ። @@ -937,6 +952,7 @@ <translation id="350797926066071931">ተርጉምን ያንቁ</translation> <translation id="3512226956150568738">የደንበኛ መሣሪያ ሞዴሉ ወደ ext4 ከማፍለስ በፊት ቀደም ብሎ ARCን የሚደግፍ ከሆነ እና የArcEnabled መመሪያ ወደ እውነት ከተዋቀረ ይህ አማራጭ እንደ AskUser (እሴት 3) ይሆናል። በሌሎች ሁኔታዎች ሁሉ (የመሣሪያው ሞዴል ከዚህ ቀደም ARC የማይደግፍ ከሆነ ወይም የArcEnabled መመሪያ ወደ ሀሰት ከተዋቀረ) ይህ እሴት ከDisallowArc (እሴት 0) ጋር እኩል ነው።</translation> <translation id="3524204464536655762">ማንኛውም ጣቢያ በWebUSB ኤፒአዩ በኩል የዩኤስቢ መሣሪያዎች መዳረሻን እንዲጠይቅ አይፍቀዱ</translation> +<translation id="3526752951628474302">የሞኖክሮም ህትመት ብቻ</translation> <translation id="3528000905991875314">ተለዋጭ የስህተት ገጾችን ያንቁ</translation> <translation id="3545457887306538845">የገንቢ መሣሪያዎች የት መጠቀም እንደሚቻል እንዲቆጣጠሩ ያስችልዎታል። @@ -960,6 +976,7 @@ <translation id="3577251398714997599">የሚረብሹ ማስታወሻዎች ላላቸው ጣቢያዎች የሆኑ የማስታወቂያዎች ቅንብሮች</translation> <translation id="3591584750136265240">የመግባት ማረጋገጥ ባህሪውን ያዋቅሩ</translation> <translation id="3627678165642179114">የፊደል ማረም ድር አገልግሎት ያንቁ ወይም ያሰናክሉ</translation> +<translation id="3628480121685794414">የሲምፕሌክስ ህትመትን ያንቁ</translation> <translation id="3646859102161347133">የማጉሊያ አይነት ያዋቅሩ</translation> <translation id="3653237928288822292">ነባሪ የፍለጋ አቅራቢ አዶ</translation> <translation id="3660562134618097814">በመግባት ጊዜ የSAML IdP ኩኪዎችን ያስተላልፉ</translation> @@ -1061,6 +1078,7 @@ መመሪያው ወደ ሐሰት ከተዋቀረ የክፍለ-ጊዜ መረጃ ሪፖርት አይደረግም። ወደ እውነት ከተዋቀረ ወይም እንዳልተዋቀረ ከተተወ የክፍለ-ጊዜ መረጃ ሪፖርት ይደረጋል።</translation> +<translation id="3858658082795336534">ነባሪ ህትመት ዱፕሌክስ ሁነታ</translation> <translation id="3859780406608282662">በ<ph name="PRODUCT_OS_NAME" /> ውስጥ ያለ የተለዋዋጭነት ዘር የሚመጣበት ልኬት ያክሉ። ከተገለጸ የተለዋዋጭነት ዘሩን ለማምጣት ስራ ላይ በሚውለው ዩአርኤል ላይ «restrict» የሚባል የመጠይቅ ልኬት ያክላል። የልኬቱ ዋጋ በዚህ መመሪያ የተገለጸው ዋጋ ይሆናል። @@ -1169,6 +1187,12 @@ አለበለዚያ ከሚከተሉት እሴቶች ውስጥ ወደ አንዱ ሊዋቀር ይችላል፦ «tls1.2» ወይም «tls1.3»። ሲዋቀር <ph name="PRODUCT_NAME" /> ከተገለጸው ስሪት በላይ የሆኑ የSSL/TLS ስሪቶችን አይጠቀምም። የማይታወቅ እሴት ችላ ይባላል።</translation> <translation id="4121350739760194865">የመተግበሪያ ማስተዋወቂያዎች በአዲስ የትር ገጽ ላይ እንዳይታዩ ያግዳል</translation> <translation id="412697421478384751">ተጠቃሚዎች ለማያ ገጽ ቁልፍ ፒን ደካማ ፒኖችን እንዲያቀናብሩ ያስችላቸዋል</translation> +<translation id="4129183564590133854">ይህ መመሪያ እንደ የሥርዓተ ክወና መግቢያ፣ የ<ph name="PRODUCT_NAME" /> መገለጫ መግቢያ፣ የ<ph name="PRODUCT_NAME" /> መገለጫ ስም፣ የ<ph name="PRODUCT_NAME" /> መገለጫ ዱካ እና የ<ph name="PRODUCT_NAME" /> ተፈጻሚ ዱካ ያለ ተጠቃሚዎችን ለመለየት ጥቅም ላይ ሊውል የሚችል መረጃ ሪፖርት ይደረግ እንደሆነ ይቆጣጠራል። + + ይህ መመሪያ እንዳልተዋቀረ ከተተወ ወይም ወደ እውነት ከተዋቀረ ተጠቃሚዎችን ለመለየት ጥቅም ላይ ሊውል የሚችል መረጃ ይሰበሰባል። + ይህ መመሪያ ወደ ሐሰት ከተዋቀረ ተጠቃሚዎችን ለመለየት ጥቅም ላይ ሊውል የሚችል መረጃ አይሰበሰብም። + + ይህ መመሪያ ተግባራዊ የሚሆነው የChrome ሪፖርት ማድረጊያ ቅጥያ እና የደመና አስተዳደር ከነቁ ብቻ ነው።</translation> <translation id="4138655880188755661">የጊዜ ገደብ</translation> <translation id="4157003184375321727">የስርዓተ ክወና እና የጽኑ ትዕዛዝ ስሪት ሪፖርት ያድርጉ</translation> <translation id="4157594634940419685">የቤተኛ CUPS አታሚዎች መዳረሻን ይፍቀዱ</translation> @@ -1481,6 +1505,12 @@ ካልተዋቀረ ተጠቃሚው የሚያስመጣ ከሆነ ወይም ማስመጣት በራስ-ሰር የሚፈጸም እንደሆነ ሊጠየቅ ይችላል።</translation> <translation id="5056708224511062314">የማያ ገጹ ማጉያ ተሰናክሏል</translation> <translation id="5058573563327660283">በራስ-ሰር ጽዳት ጊዜ የዲስክ ቦታ ነጻ ለማስለቀቅ ስራ ላይ የሚውለውን ስልት ይምረጡ (የተቋረጠ)</translation> +<translation id="5058771123777243130">ይህ መመሪያ መመሪያው እንዲመጣ ሲደረግ የነበረው የመመሪያ ውሂብ እና ጊዜ ሪፖርት ይደረግ እንደሆነ ይቆጣጠራል። + + ይህ መመሪያ እንዳልተዋቀረ ከተተወ ወይም እውነት ሲዋቀር የመመሪያ ውሂብ እና መመሪያው የመጣበት ጊዜ ይሰበሰባል። + ይህ መመሪያ ወደ ሐሰት ሲዋቀር የመመሪያ ውሂብ እና መመሪያው የመጣበት ጊዜ አይሰበሰብም። + + ይህ መመሪያ ተግባራዊ የሚሆነው የChrome ሪፖርት ማድረጊያ ቅጥያ እና የደመና አስተዳደር ከነቁ ብቻ ነው።</translation> <translation id="5067143124345820993">የተፈቀደላቸው የተጠቃሚዎች ዝርዝር ያስገቡ</translation> <translation id="5068140065960598044">የ<ph name="PRODUCT_NAME" /> ደመና መመሪያ የማሽን መመሪያን ይሽራል።</translation> <translation id="5085647276663819155">የህትመት ቅድመ-እይታን ያሰናክሉ</translation> @@ -1595,6 +1625,7 @@ <translation id="5366977351895725771">ወደ ሐሰት ከተዋቀረ በዚህ ተጠቃሚ የሚደረጉ ክትትል የሚደረግባቸው የተጠቃሚዎች መፍጠር ይሰናከላል። ማንኛቸውም ክትትል የሚደረግባቸው ተጠቃሚዎች አሁንም የሚገኙ ይሆናሉ። ወደ እውነት ከተዋቀረ ወይም ካልተዋቀረ ክትትል የሚደረግባቸው ተጠቃሚዎች በዚህ ተጠቃሚ ሊፈጠሩ እና ሊቀናበሩ ይችላሉ።</translation> +<translation id="5369937289900051171">የቀለም ህትመት ብቻ</translation> <translation id="5370279767682621504">ነባሪ ባልሆኑ ወደቦች ላይ የHTTP/0.9 ድጋፍን ያንቁ</translation> <translation id="5378985487213287085">ድር ጣቢያዎች የዴስክቶፕ ማሳወቂያዎች እንዲያሳዩ ይፈቀድላቸው እንደሆነ እንዲያዋቅሩ ያስችልዎታል። የዴስክቶፕ ማሳወቂያዎችን በነባሪነት እንዲታዩ ሊፈቀዱ፣ በነባሪነት ሊከለከሉ ወይም አንድ ድር ጣቢያ የዴስክቶፕ ማሳወቂያ ማሳየት በፈለገ ቁጥር ተጠቃሚው እንዲጠየቅ ማድረግ ይቻላል። @@ -1620,6 +1651,7 @@ ካልተዋቀረ ተጠቃሚው ያስመጣ እንደሆነ ወይም ማስመጣት በራስ-ሰር እንዲከናወን ሊጠየቅ ይችላል።</translation> <translation id="5423197884968724595">የAndroid WebView ገደብ ስም፦</translation> +<translation id="5424147596523390018">ሁሉንም የቀለም ሁነታዎች ይፍቀዱ</translation> <translation id="5442026853063570579">ይህ መመሪያ እንዲሁም ማን የAndroid ገንቢ አማራጮች መዳረሻ እንዳለው ይቆጣጠራል። ይህን መመሪያ ወደ 'DeveloperToolsDisallowed' (እሴት 2) ካዋቀሩት ተጠቃሚዎች የገንቢ አማራጮችን መድረስ አይችሉም። ይህን መመሪያ ወደ ሌላ እሴት ካዋቀሩት ወይም እንዳልተዋቀረ ከተዉት ተጠቃሚዎች በAndroid ቅንብሮች መተግበሪያው ውስጥ ያለውን የግንብ ቁጥሩን ሰባት ጊዜ መታ በማድረግ የገንቢ አማራጮችን መድረስ ይችላሉ።</translation> <translation id="5447306928176905178">የማህደረ ትውስታ መረጃ (JS ቁልል መጠን) ለገጽ ሪፖርት ማድረግን ያንቁ (የተቋረጠ)</translation> <translation id="5457065417344056871">በአሳሽ ውስጥ የእንግዳ ሁነታን ያንቁ</translation> @@ -1687,6 +1719,7 @@ <translation id="5586942249556966598">ምንም አትስራ</translation> <translation id="5630352020869108293">የመጨረሻውን ክፍለ-ጊዜ ወደነበረበት ይመልሱ</translation> <translation id="5645779841392247734">በእነዚህ ጣቢያዎች ላይ ኩኪዎችን ይፍቀዱ</translation> +<translation id="5689430183304951538">ነባሪ የህትመት ገጽ መጠን</translation> <translation id="5693469654327063861">የውሂብ ዝውውርን ይፍቀዱ</translation> <translation id="5694594914843889579">ይህ መመሪያ ወደ እውነት ከተዋቀረ ውጫዊ ማከማቻ በፋይል አሳሹ ውስጥ አይገኝም። @@ -1716,6 +1749,7 @@ ይህ መመሪያ ካልተዋቀረ ነባሪው የጊዜ ርዝመት ስራ ላይ ይውላል። የመመሪያው ዋጋ በሚሊሰከንዶች ነው መገለጽ ያለበት።</translation> +<translation id="5783009211970309878">ራስጌዎችን እና ግርጌዎችን ያትሙ</translation> <translation id="5809728392451418079">የማሳያ ስሙን ለመሣሪያ-አካባቢያዊ መለያዎች ያዋቅሩ</translation> <translation id="5814301096961727113">የሚነገረው ግብረመልስ ነባሪ ሁኔታ በመግቢያ ገጹ ላይ ያዋቅሩት</translation> <translation id="5815129011704381141">ከዝማኔ በኋላ በራስ-ዳግም አስጀምር</translation> @@ -1733,6 +1767,7 @@ «ተሰናክሏል» ከተመረጠ ገጾች በስውር ሁነታ ሊከፈቱ አይችሉም። «በግዳጅ» ከተመረጠ ገጾች በስውር ሁነታ ብቻ ነው ሊከፈቱ የሚችሉት።</translation> +<translation id="582857022372205358">የአጭር ጠርዝ ዱፕሌክስ ህትመትን ያንቁ</translation> <translation id="583091600226586337"> መመሪያው ከነቃ ተጠቃሚ ከማውረድ በፊት እያንዳንዱን ፋይል የት ማስቀመጥ እንዳለበት ይጠየቃል። መመሪያው ከተሰናከለ ማውረዶች ወዲያውኑ ይጀምራሉ፣ እና ተጠቃሚው ፋይሉ የት እንደሚቀመጥ አይጠየቅም። @@ -1768,6 +1803,7 @@ ይህ ቅንብር ከተሰናከለ ወይም ካልተዋቀረ የgnubby ማረጋገጫ ጥያቄዎች በተኪ አይተላለፉም።</translation> <translation id="5898486742390981550">በርካታ ተጠቃሚዎች ወደ መለያ ከገቡ ዋናው ተጠቃሚ ብቻ ነው የAndroid መተግበሪያዎችን መጠቀም የሚችለው።</translation> +<translation id="5901427587865226597">ዱፕሌክስ ህትመት ብቻ</translation> <translation id="5906199912611534122">የአውታረ መረብን ማፈንን ማንቃት ወይም ማቦዘንን ያስችላል። ይሄ ሁሉንም ተጠቃሚዎች እና በመሣሪያው ላይ ያሉ በይነገጾችን የሚመለከት ነው። አንዴ ከተዋቀረ በኋላ መመሪያው እሱን ለማሰናከል እስኪቀየር ድረስ ማፈኑ ይቀጥላል። @@ -1875,6 +1911,7 @@ የመመሪያ እሴቱ በሚሊሰከንዶች ነው መጠቀስ ያለበት። የእሴቶች ድምር ከስራ ፈት መዘግየቱ ያንሳሉ።</translation> <translation id="6097601282776163274">የዩእርኤል ቁልፍ ያለውን ማንነትን የማያሳውቅ ውሂብ ስብስብን አንቃ</translation> +<translation id="6099853574908182288">ነባሪ የህትመት ቀለም ሁነታ</translation> <translation id="6111936128861357925">የዳይኖሰር አስተር ኤግ ጨዋታን ፍቀድ</translation> <translation id="6114416803310251055">የተቋረጠ</translation> <translation id="6133088669883929098">ሁሉም ጣቢያዎች ቁልፍ ማመንጨትን እንዲጠቀሙ ያስችላል</translation> @@ -1889,6 +1926,7 @@ ይህ መመሪያ እንዳልተዋቀረ ከተተወ፣ የ«DefaultPluginsSetting» መመሪያው የተዋቀረ ከሆነ ከእሱ የመጣ ሁለገብ ነባሪ እሴቱ ለሁሉም ጣቢያዎች ስራ ላይ ይውላል፣ አለበለዚያ ደግሞ የተጠቃሚው የግል ውቅረት ስራ ላይ ይውላል።</translation> <translation id="6190022522129724693">ነባሪው የብቅ-ባዮች ቅንብር</translation> +<translation id="6190367314942602985">የተጠቃሚ መለያ መረጃን ሪፖርት ያድርጉ</translation> <translation id="6197453924249895891">የቅጥያዎች የኮርፓሬት ቁልፎች መድረሻን ይሰጣል። ቁልፎች በተዳደር መለያ ላይ የchrome.enterprise.platformKeys ኤፒአይን በመጠቀም የመነጩ ከሆኑ ለኮርፓሬት መጠቀም የተመደቡ ናቸው። በሌላ መንገድ የመጡ ወይም የመነጩ ቁልፎች ለኮርፓሬት መጠቀም የተመደቡ አይደሉም። @@ -1898,6 +1936,8 @@ በነባሪነት አንድ ቅጥያ ለኮርፓሬት መጠቀም የተመደበ ቁልፍ መጠቀም አይችልም፣ ይህም የallowCorporateKeyUsage ቅንብር ለዚያ ቅጥያ ወደ ሐሰት ከማዋቀር ጋር እኩል ነው። allowCorporateKeyUsage ለአንድ ቅጥያ ወደ እውነት ሲዋቀር ብቻ ነው የዘፈቀደ ውሂብን ለመፈረም ለኮርፓሬት መጠቀም የተመደበ ማንኛውም የመሣሪያ ስርዓት ቁልፍ ሊጠቀም የሚችለው። ይህ ፍቃድ መሰጠት ቅጥያው አጥቂዎች እንዳያጠቁት የቁልፉን መዳረሻ ደህንነት እንደሚጠብቅ የሚታመን ሲሆን ብቻ ነው።</translation> +<translation id="6208896993204286313">የ<ph name="PRODUCT_NAME" /> መመሪያ መረጃን ሪፖርት ያድርጉ</translation> +<translation id="6210259502936598222">የሥርዓተ ክወና እና የ<ph name="PRODUCT_NAME" /> የስሪት መረጃን ሪፖርት ያድርጉ</translation> <translation id="6211428344788340116">የመሣሪያ እንቅስቃሴ ጊዜዎችን ሪፖርት አድርግ። ይህ ቅንብር ካልተዋቀረ ወይም ወደ እውነት ከተዋቀረ፣ አንድ ተጠቃሚ በተመዘገቡ መሣሪያዎች ላይ ገቢር ሲሆን የተመዘገቡ መሳሪያዎች ጊዜዎቹን ሪፖርት ይደረጋሉ። ይህ ቅንብር ወደ ሐሰት ከተዋቀረ የመሣሪያ ገቢርነት ጊዜዎች አይመዘገቡም ወይም ሪፖርት አይደረጉም።</translation> @@ -1915,6 +1955,7 @@ ይህን ቅንብር ካነቁ እና መደበኛ ያልሆነ ወደብ (ማለትም፣ ከ80 ወይም 443 ሌላ የሆነ ወደብ) ከገባ በመነጨው Kerberos SPN ውስጥ ይካተታል። ይህን ቅንብር ካሰናከሉ ወይም እንዳልተዋቀረ ከተዉት የመነጨው Kerberos SPN በማንኛውም አይነት ሁኔታ ወደብ አያካትትም።</translation> +<translation id="6261643884958898336">የማሽን መለያ መረጃን ሪፖርት ያድርጉ</translation> <translation id="6281043242780654992">የቤተኛ የመልዕክት መላላኪያ መመሪያዎችን ያዋቅራል። በተከለከሉ ዝርዝር ላይ ያሉ የመልዕክት መላላኪያ አስተናጋጆች በተፈቀደላቸው ዝርዝር ላይ ካልተካተቱ በስተቀር አይፈቀዱም።</translation> <translation id="6282799760374509080">የድምጽ ቀረጻ ይፍቀዱ ወይም ይከልክሉ</translation> <translation id="6284362063448764300">TLS 1.1</translation> @@ -1945,6 +1986,7 @@ እርስዎ የተኪ አገልጋዩን በራስ-ሰር ፈልጎ ማግኘትን ከመረጡ የስክሪፕት ዩአርኤል «http://wpad/wpad.dat» ለAndroid መተግበሪያዎች ይሰጣል። ምንም ዓይነት ሌላ የተኪ ራስ-ሰር ፈልጎ ማግኛ ፕሮቶኮል ጥቅም ላይ አይውልም። እርስዎ የ .pac ተኪ ስክሪፕትን ለመጠቀም ከመረጡ የስክሪፕቱ ዩአርኤል ለAndroid መተግበሪያዎች ይሰጣል።</translation> +<translation id="6430366557948788869">የChrome ሪፖርት ማድረጊያ ቅጥያ</translation> <translation id="6440051664870270040">ጣቢያዎች ብቅ-ባዮችን በአንድ ላይ እንዲያስሱ እና እንዲከፍቱ ይፍቀዱ</translation> <translation id="6447948611083700881">ምትኬ እና ወደነበረበት መመለስ ተሰናክሏል</translation> <translation id="645425387487868471">ለ<ph name="PRODUCT_NAME" /> በግዳጅ በመለያ መግባትን ያንቁ</translation> @@ -1991,6 +2033,7 @@ <translation id="6628646143828354685">ድር ጣቢያዎች በአቅራቢያ ያሉ የብሉቱዝ መሣሪያዎች መዳረሻ ይኖራቸው ወይም አይኖራቸው እንደሆነ እንዲያዋቅሩ ያስችልዎታል። መዳረሻ ሙሉ በሙሉ ሊታገድ ወይም የድር ጣቢያ በአቅራቢያ ያሉ የብሉቱዝ መሣሪያዎች መዳረሻ ለማግኘት በፈለገ ቁጥር ተጠቃሚው ሊጠየቅ ይችላል። ይህ መምሪያ ሳይዋቀር ከተተወ «3» ሥራ ላይ ይውላል፣ እና ተጠቃሚው ሊቀይረው ይችላል።</translation> +<translation id="663685822663765995">የህትመት ቀለም ሁነታን ይገድቡ</translation> <translation id="6641981670621198190">የ3-ል ግራፊክስ ኤ ፒ አይዎች ድጋፍ ያሰናክሉ</translation> <translation id="6647965994887675196">ወደ እውነት ከተዋቀረ ክትትል የሚደረግባቸው ተጠቃሚዎች ሊፈጠሩ እና ስራ ላይ ሊውሉ ይችላሉ። @@ -2018,6 +2061,7 @@ በዚህ መመሪያ ውስጥ ያሉ የዩአርኤል ስርዓተ-ጥለቶች በWebUsbAskForUrls በኩል ከተዋቀሩት ጋር መጋጨት የለበትም። አንድ ዩአርኤል ከሁለቱም ጋር የሚዛመድ ከሆነ የትኛው ቅድሚያ እንደሚሰጠው ያልተገለጸ ነው።</translation> <translation id="6689792153960219308">የሃርድዌር ሁኔታን ሪፓርት ያድርጉ</translation> +<translation id="6698632841807204978">የሞኖክሮም ህትመትን ያንቁ</translation> <translation id="6699880231565102694">ባለሁለት ክፍል ማረጋገጫ ለሩቅ መዳረሻ አስተናጋጆችን ያንቁ</translation> <translation id="6724842112053619797">ይህን ቅንብር ካነቁት እንደ ዕልባቶች፣ የራስ-ሙላ ውሂብ፣ የይለፍ ቃላት፣ ወዘተ ያሉ በ<ph name="PRODUCT_NAME" /> መገለጫዎች ውስጥ የተከማቹት ቅንብሮች እንዲሁም በተንዣባቢ የተጠቃሚ መገለጫ አቃፊ ውስጥ ባለ የተከማቸ ፋይል ወይም በ<ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> መመሪያ በኩል በአስተዳዳሪው በተገለጸ ቦታ ላይ ይጻፋሉ። ይህን መመሪያ ማንቃት የደመና ስምረትን ያሰናከላል። @@ -2057,6 +2101,12 @@ ይህ ቅንብር ተጠቃሚዎች ወደ <ph name="PRODUCT_NAME" /> በመለያ እንዲገቡ፣ እንደ የእነርሱ ነባሪ አሳሽ እንዲመርጡት ወይም አለበለዚያ የምርት ባህሪያት ለእነርሱ ለማሳወቅ የሚያግዙ የእንኳን ደህና መጣችሁ ገጾችን አቀራረብ ይቆጣጠራል።</translation> <translation id="6766216162565713893">ጣቢያዎች በአቅራቢያ ያሉ የብሉቱዝ መሣሪያዎች መዳረሻ ለማግኘት ተጠቃሚውን እንዲጠይቁ ፍቀድ</translation> <translation id="6770454900105963262">ስለንቁ የኪዮስ ክፍለ-ጊዜዎች መረጃን ሪፓርት ያድርጉ</translation> +<translation id="6773056206551814546">ይህ መመሪያ እንደ የማሽን ስም እና የአውታረ መረብ አድራሻዎች ያለ ማሽኖችን ለመለየት ጥቅም ላይ ሊውል የሚችል መረጃ ሪፖርት ይደረግ እንደሆነ ይቆጣጠራል። + + ይህ መመሪያ እንዳልተዋቀረ ከተተወ ወይም ወደ እውነት ሲዋቀር ማሽኖችን ለመለየት ጥቅም ላይ ሊውል የሚችል መረጃ ይሰበሰባል። + ይህ መመሪያ ወደ ሐሰት ሲዋቀር ማሽኖችን ለመለየት ጥቅም ላይ ሊውል የሚችል መረጃ አይሰበሰብም። + + ይህ መመሪያ ተግባራዊ የሚሆነው የChrome ሪፖርት ማድረጊያ ቅጥያ እና የደመና አስተዳደር ከነቁ ብቻ ነው።</translation> <translation id="6786747875388722282">ቅጥያዎች</translation> <translation id="6786967369487349613">የተንዣባቢ መገለጫ ማውጫውን ያዘጋጁ</translation> <translation id="6810445994095397827">JavaScript በእነዚህ ጣቢያዎች ላይ ያግዱ</translation> @@ -2152,6 +2202,7 @@ <translation id="6923366716660828830">የነባሪ ፍለጋ አቅራቢው ስም ይገልጻል። ባዶ ወይም እንዳልተዋቀረ ከተተወ በፍለጋ ዩአርኤሉ የተገለጸው የአስተናጋጅ ስም ስራ ላይ ይውላል። ይህ መመሪያ የ«DefaultSearchProviderEnabled» መመሪያ ከነቃ ብቻ ነው የሚታሰብበት።</translation> +<translation id="6926703471186170050">የረጅም ጠርዝ ዱፕሌክስ ህትመትን ያንቁ</translation> <translation id="6931242315485576290">የውሂብ ከGoogle ጋር መመሳሰል ያሰናክሉ</translation> <translation id="6936894225179401731">ከተኪ አገልጋዩ ጋር የሚኖረው ከፍተኛው በአንድ ላይ የሚደረጉ የግንኙነቶች ብዛት ይገልጻል። @@ -2359,6 +2410,7 @@ ይህ ቅንብር ከተሰናከለ ወይም ካልተዋቀረ ተጠቃሚዎች ማስጠንቀቂያውን ካዩ በኋላ ወደ ተጠቆመው ጣቢያ ለመቀጠል መምረጥ ይችላሉ። በጥንቃቄ አሰሳ ላይ ተጨማሪ መረጃ ለማግኘት https://developers.google.com/safe-browsingን ይመልከቱ።</translation> +<translation id="737655323154569539">የህትመት ገጽ መጠንን ይገድባል። ያልተዋቀረ መመሪያና ባዶ ስብስብ እንደ ምንም ገደብ ነው የሚቆጠሩት።</translation> <translation id="7417728346887499628">ከተሰናከለ፣ Chrome ማጽጃ ከማይፈለግ ሶፍትዌር የሥርዓት ቅኝት እና ማጽዳት ሥራዎችን እንዳይሠራ ይከላከለዋል። Chrome ማጽጃን ከchrome://settings/cleanup ላይ በእጅ ማስጀመር ተሰናክሏል። ከነቃ ወይም ሳይቀናበር ከተተወ፣ Chrome ማጽጃ በተወሰነ ክፍለ ጊዜ ልዩነት ሥርዓቱን ላልተፈለገ ሶፍትዌር ይቃኘዋል እንዲሁም ምንም ዓይነት ያልተፈለገ ሶፍትዌር ቢገኝ፣ ተጠቃሚውን ሊያስወግዱት ይፈልጉ እንደሆነ ይጠይቃቸዋል። Chrome ማጽጃን ከchrome://settings ላይ በእጅ ማስጀመር ነቅቷል። @@ -2429,6 +2481,8 @@ <translation id="7617319494457709698">ይህ መመሪያ ለርቀት ማስረገጥ የድርጅት መሣሪያ ስርዓት ቁልፎች ኤፒአዩን <ph name="ENTERPRISE_PLATFORM_KEYS_API" /> ተግባርን <ph name="CHALLENGE_USER_KEY_FUNCTION" /> እንዲጠቀሙ የተፈቀደላቸው ቅጥያዎችን ይገልጻል። ቅጥያዎች ኤፒአዩን ለመጠቀም ወደዚህ ዝርዝር መታከል አለባቸው። አንድ ቅጥያ በዝርዝሩ ውስጥ ከሌለ ወይም ደግሞ ዝርዝሩ ካልተዋቀረ ወደ ኤፒአዩ የሚደረግ ጥሪ ከስህተት ኮድ ጋር አይሳካም።</translation> +<translation id="7618907117929117943">የሥርዓተ ክወና ስሪት ከዒላማ ስሪቱ ይበልጥ አዲስ ከሆነ እና በቅልበሳ በኩል የመሠሪያ-ደረጃ ውቅረት (የአውታረ መረብ መረጃዎች ጨምሮ) ይዞ ማስተላለፍ የሚቻል ከሆነ ይቀልብሱና በዒላማ ስሪቱ ላይ ይቆዩ፣ እንዲሁም ከቅልበሳ በኋላ OOBE በመዘለል። ይህ የሚቻል ካልሆነ (የዒላማ ስሪቱ ወሂብን ወደነበረበት መመለስ ስለማይደገፍ ወይም በኋሊዮሽ ኢ-ተኳኋኝነት ለውጥ ምክንያት) ቅልበሳን አያከናውኑ ወይም አያቋርጡ። + በ<ph name="PRODUCT_OS_NAME" /> ስሪት 70 እና ከዚያ በላይ ላይ ይደገፋል። ቆየት ላሉ ደንበኛዎች ይህ እሴት ቅልበሳው ተሰናክሏል ማለት ነው።</translation> <translation id="7625444193696794922">ይህ መሣሪያ አብሮ የሚታሰርበት የሚለቀቀው ሰርጥን ይገልጻል።</translation> <translation id="7632724434767231364">የGSSAPI ቤተ-መጽሐፍት ስም</translation> <translation id="7635471475589566552">በ<ph name="PRODUCT_NAME" /> ውስጥ የመተግበሪያውን አካባቢ የሚያዋቅር እና ተጠቃሚዎች አካባቢውን እንዳይቀይሩት የሚያግድ ነው። @@ -2632,6 +2686,7 @@ ይህን ቅንብር ካነቁት ወይም አንድ እሴት ካላቀናበሩ ራስ-ሙላ በተጠቃሚው ቁጥጥር ስር እንደሆነ ይቀጥላል። ይህ የራስ-ሙላ መገለጫዎችን እንዲያዋቅሩና በራሳቸው ውሳኔ ራስ-ሙላን እንዲያበሩ ወይም እንዲያጠፉ ያስችላቸዋል።</translation> <translation id="8044493735196713914">የመሣሪያ ማስነሻ ሁነታን ሪፖርት ያድርጉ</translation> <translation id="8050080920415773384">ቤተኛ ህትመት</translation> +<translation id="8053580360728293758">ነባሪው የህትመት ቀለም ሁነታውን ይሽራል። ሁነታው የማይገኝ ከሆነ ይህ መመሪያ ችላ ይባላል።</translation> <translation id="8059164285174960932">የርቀት መዳረሻ ደንበኞች የማረጋገጫ ማስመሰያቸውን ማግኘት ያለባቸው ዩአርኤል</translation> <translation id="8078366200175825572">ኩኪዎችን እንዲያዘጋጁ ያልተፈቀደላቸው ጣቢያዎችን የሚገልጹ የዩአርኤል ስርዓተ ጥለቶችን እንዲያዘጋጁ ያስችልዎታል። @@ -2818,6 +2873,7 @@ እዚህ «ስሪት» እንደ «61.0.3163.120» ያለ ትክክለኛ ስሪት ወይም እንደ «61.0» ያለ የስሪት ቅድመ-ቅጥያ ሊሆን ይችላል። </translation> <translation id="8544375438507658205">የ<ph name="PRODUCT_FRAME_NAME" /> ነባሪ ኤች ቲ ኤም ኤል አሳዪ</translation> <translation id="8544465954173828789">የኤስኤምኤስ መልዕክቶች ከስልክ ወደ Chromebook እንዲሳመሩ ይፍቀዱ።</translation> +<translation id="8548832052135586762">ማተም ወደ ቀለም ብቻ፣ ሞኖክሮም ብቻ ወይም የቀለም ሁነታ ገደብ የለም ያዋቅረዋል። ያልተዋቀረ መመሪያ እንደ ምንም ገደብ ነው የሚቆጠረው።</translation> <translation id="8549772397068118889">ከይዘት ጥቅሎች ውጪ የሆኑ ጣቢያዎችን በሚጎበኙበት ጊዜ ያስጠንቅቅ</translation> <translation id="8566842294717252664">የድር መደብሩን ከአዲስ ትር ገጹ እና ከመተግበሪያ ማስጀመሪያው ይደብቁ</translation> <translation id="8586528890725660268">ተጠቃሚው ሊጠቀምባቸው የማይችላቸው አታሚዎችን ይገልጻል። @@ -2929,6 +2985,7 @@ ይህ ቅንብር እንዳልተዋቀረ ከተተወ ተጠቃሚው ይህን ተግባር ለመጠቀም ወይም ላለመጠቀም ሊወስን ይችላል።</translation> <translation id="8870318296973696995">መነሻ ገጽ</translation> +<translation id="8876188741456358123">ነባሪው የህትመት ዱፕሌክስ ሁነታውን ይሽራል። ሁነታው የማይገኝ ከሆነ ይህ መመሪያ ችላ ይባላል።</translation> <translation id="8882006618241293596">በእነዚህ ጣቢያዎች ላይ የ<ph name="FLASH_PLUGIN_NAME" /> ተሰኪውን ያግዱ</translation> <translation id="890403179930035128">የፊደል ማረሚያ ቋንቋዎችን በግዳጅ ያነቃል። በዚያ ዝርዝር ውስጥ ያሉ ያልታወቁ ቋንቋዎች ችላ ይባላሉ። @@ -3010,6 +3067,8 @@ <translation id="9084985621503260744">የቪዲዮ እንቅስቃሴ የኃይል አስተዳደሩ ላይ ተጽዕኖ ይኖርበት ወይም አይኖርበት ይገልጻል</translation> <translation id="9088433379343318874">ክትትል የሚደረግበት የተጠቃሚ ይዘት አቅራቢን አንቃ</translation> <translation id="9088444059179765143">የራስ-ሰር ሰዓት ሰቅ ማወቂያ ስልቱን ያዋቅሩ</translation> +<translation id="9094064873808699479">የሥርዓተ ክወና ስሪት ከዒላማው ይበልጥ አዲስ ከሆነ ይቀልብሱና በዒላማ ስሪቱ ላይ ይቆዩ። ከተቻለ የመሣሪያ-ደረጃ ውቅረት (የአውታረ መረብ መረጃዎች ጨምሮ) በቅልበሳ ሂደቱ በኩል ለማስተላለፍ ይሞክሩ፣ ነገር ግን ውሂቡን ወደነበረበት መመለስ የማይቻል (የዒላማ ስሪቱ ውሂብን ወደነበረበት መመለስ ስለማይደግፍ ወይም በኋሊዮሽ ኢ-ተኳኋኝነት ለውጥ ምክንያት) ቢሆንም እንኳ ቅልበሳውን በሙሉ ፓወርዋሽ ያከናውኑት። + በ<ph name="PRODUCT_OS_NAME" /> ስሪት 70 እና ከዚያ በላይ ላይ ይደገፋል። ቆየት ላሉ ደንበኛዎች ይህ እሴት ቅልበሳው ተሰናክሏል ማለት ነው።</translation> <translation id="9096086085182305205">የተፈቀደላቸው የማረጋገጫ አገልጋይ ዝርዝር</translation> <translation id="9098553063150791878">የኤችቲቲፒ ማረጋገጫ መመሪያዎች</translation> <translation id="9105265795073104888">የተኪ ውቅረት አማራጮች ንዑስ ስብስብ ብቻ ነው ለAndroid መተግበሪያዎች የሚገኙ የሚደረጉት። የAndroid መተግበሪያዎች ተኪውን ለመጠቀም በፈቃዳቸው ሊመርጡ ይችላሉ። ተኪን እንዲጠቀሙ ሊያስገድዷቸው አይችሉም።</translation> @@ -3068,6 +3127,13 @@ <translation id="9187743794267626640">የውጫዊ ማከማቻ ማፈናጠጥን ያሰናክላል</translation> <translation id="9197740283131855199">ከመደብዘዝ በኋላ ተጠቃሚው ንቁ ቢሆን የማያ ገጹ መደብዘዝ መዘግየት የሚመጠንበት መቶኛ</translation> <translation id="9200828125069750521">POSTን ለሚጠቀም የምስል ዩአርኤል ግቤቶች</translation> +<translation id="920209539000507585">በህትመት መገናኛው ውስጥ «ራስጌዎች እና ግርጌዎች» እንዲበሩ ወይም እንዲጠፉ ያስገድዱ። + + መመሪያው ካልተዋቀረ ተጠቃሚው ራስጌዎች እና ግርጌዎች ይታተሙ እንደሆነ መወሰን ይችላል። + + መመሪያው ወደ ሐሰት ከተዋቀረ «ራስጌዎች እና ግርጌዎች» በህትመት ቅድመ-እይታ መገናኛው ውስጥ አይመረጥም፣ እና ተጠቃሚው ሊቀይረው አይችልም። + + መመሪያው ወደ እውነት ከተዋቀረ «ራስጌዎች እና ግርጌዎች» በህትመት ቅድመ-እይታ መገናኛው ውስጥ ይመረጣል፣ እና ተጠቃሚው ሊቀይረው አይችልም።</translation> <translation id="9210953373038593554">ለSAML መግቢያዎች የማረጋገጥ አይነትን ያዋቅራል። ይህ መመሪያ ካልተዋቀረ ወይም ወደ ነባሪ (እሴት 0) ከተዋቀረ የSAML መግቢያዎች ባህሪ በሌሎች ሁኔታዎች የሚወሰን ሆኖ በአሳሹ ነው የሚለየው። በጣም መሠረታዊ በሆነ ሁኔታ ላይ የተጠቃሚ ማረጋገጥ እና የተሸጎጠው የተጠቃሚ ውሂብ ጥበቃ ተጠቃሚዎች ራሳቸው ባስገቡት የይለፍ ቃላት ላይ የሚወሰን ነው። @@ -3075,6 +3141,9 @@ ይህ መመሪያ ወደ ClientCertificate (እሴት 1) ሲዋቀር የደንበኛ እውቅና ማረጋገጫን ማረጋገጥ በSAML መግቢያ በኩል ለሚገቡ አዲስ የታከሉ ተጠቃሚዎች ስራ ላይ ይውላል። እንዲህ ላሉ ተጠቃሚዎች ምንም የይለፍ ቃላት ስራ ላይ አይውሉም፣ እና ስነ መሰውራዊ ቁልፎችን በመጠቀም የተሸጎጠው አካባቢያዊ ውሂባቸው ይጠበቃል። ለምሳሌ፣ ይህ ቅንብር በዘመናዊ ካርድ ላይ የተመሠረተ የተጠቃሚ ማረጋገጥን ማዋቀር ይፈቅዳል (የዘመናዊ ካርድ መሃልዌር መተግበሪያዎች በDeviceLoginScreenAppInstallList መመሪያው በኩል መጫን እንዳለባቸው ልብ ይበሉ)። ይህ መመሪያ SAMLን በመጠቀም በሚያረጋግጡ ተጠቃሚዎች ላይ ብቻ ነው ተጽዕኖ የሚኖረው።</translation> +<translation id="9211439035693857287">ከChrome ሪፖርት ማድረጊያ ቅጥያ ጋር የሚዛመዱ መመሪያዎች። + + እነዚህ መመሪያዎች ተግባራዊ የሚሆኑት የChrome ሪፖርት ማድረጊያ ቅጥያ እና የደመና አስተዳደር ከነቁ ብቻ ነው።</translation> <translation id="9213347477683611358">ማንም ተጠቃሚ ገና ወደ መሣሪያው ካልገባ በመግቢያ ገጹ ላይ የሚታየውን የመሣሪያ ደረጃ ልጣፍ ምስል ያዋቅሩ። መመሪያው የሚዋቀረው የChrome OS መሣሪያው የልጣፍ ምስሉን ሊያወርድበት የሚችልበት ዩአርኤል እና የውርዱን ሙሉነት የሚያረጋግጥ ስነ መሰውራዊ ሃሽ በመግለጽ ነው። ምስሉ በJPEG ቅርጸት፣ ከ16 ሜባ የማይበልጥ መሆን አለበት። ዩአርኤሉ ያለምንም ማረጋገጥ ተደራሽ መሆን አለበት። የልጣፍ ምስሉ ወርዶ ተሸጉጧል። ዩአርኤሉ ወይም ሃሹ በተቀየረ ጊዜ ዳግም ይወርዳል። መመሪያው ዩአርኤሉን እና ሃሹን በJSON ቅርጸት በሚገለጽ ሕብረቁምፊ ነው መገለጽ ያለበት፣ ለምሳሌ፦
diff --git a/components/policy/resources/policy_templates_ar.xtb b/components/policy/resources/policy_templates_ar.xtb index be6dbba9..f47756f 100644 --- a/components/policy/resources/policy_templates_ar.xtb +++ b/components/policy/resources/policy_templates_ar.xtb
@@ -198,6 +198,7 @@ <translation id="1522425503138261032">السماح للمواقع بتتبع الموقع الفعلي للمستخدم</translation> <translation id="152657506688053119">قائمة بعناوين URL البديلة لموفر البحث التلقائي</translation> <translation id="1530812829012954197">عرض أنماط عنوان URL التالية دائمًا في المتصفح المضيف</translation> +<translation id="1541170838458414064">تقييد حجم صفحة الطباعة</translation> <translation id="1553684822621013552">عندما يتم تعيين هذه السياسة على "true"، سيتم تفعيل ARC للمستخدم (يخضع ذلك لعمليات تحقق إضافية من إعدادات السياسة - وستظل ARC غير متاحة في حالة تفعيل وضع الملف الشخصي المؤقت أو الدخول المتعدد @@ -374,6 +375,12 @@ <translation id="2082205219176343977">تهيئة أدنى إصدار Chrome مسموح به للجهاز.</translation> <translation id="209586405398070749">قناة ثابتة</translation> <translation id="2098658257603918882">تفعيل إعداد تقارير الاستخدام والبيانات المتعلقة بالأعطال</translation> +<translation id="2098916259427011890">تتحكَّم هذه السياسة في ما إذا كنت تريد الإبلاغ عن معلومات الإصدار، مثل إصدار نظام التشغيل والنظام الأساسي لنظام التشغيل وبنية نظام التشغيل وإصدار <ph name="PRODUCT_NAME" /> وقناة <ph name="PRODUCT_NAME" />. + + في حال ترك هذه السياسة بدون تحديد أو تحديدها على "True"، تُجمَع معلومات الإصدار. + في حال تحديد هذه السياسة على "False"، لن تُجمَع معلومات الإصدار. + + لن تُسري هذه السياسة إلا عند تفعيل "إضافة إعداد تقارير Chrome" و"إدارة السحابة الإلكترونية".</translation> <translation id="2111016292707172233">تعمل على تفعيل إتاحة ميزة "البحث بالنقر" في عرض محتوى <ph name="PRODUCT_NAME" />. إذا فعّلتَ هذا الإعداد، ستَتوفر ميزة "البحث بالنقر" للمستخدم ويمكنه اختيار تفعيل هذه الميزة أو إيقافها. @@ -407,6 +414,8 @@ ......إن لم يتم إعداد هذه السياسة، تكون القيمة التلقائية 0 درجة والمستخدم ......حر لتغييرها. في هذه الحالة، لن يتم إعادة تطبيق القيمة التلقائية عند ......إعادة التشغيل.</translation> +<translation id="214901426630414675">تقييد الوضع المزدوج للطباعة</translation> +<translation id="2149330464730004005">تفعيل الطباعة بالألوان</translation> <translation id="2156132677421487971">يمكنك تهيئة سياسات <ph name="PRODUCT_NAME" />، وهي ميزة تسمح للمستخدمين بإرسال محتويات علامات التبويب، أو مواقع الويب، أو سطح المكتب من المتصفح إلى أنظمة الصوت وشاشات العرض عن بُعد.</translation> <translation id="2166472654199325139">عدم تصفية مواقع الويب التي تتضمن محتوى للبالغين</translation> <translation id="2168397434410358693">مهلة وضع الخمول عند استخدام طاقة التيار المتردد</translation> @@ -591,6 +600,7 @@ <translation id="2529880111512635313">تهيئة القائمة التي تتضمن التطبيقات والإضافات التي تم فرض تثبيتها</translation> <translation id="253135976343875019">مهلة التحذير من الدخول في وضع الخمول عند استخدام طاقة التيار المتردد</translation> <translation id="2536525645274582300">يحدّد المستخدم رغبته بتفعيل خدمات الموقع الجغرافي</translation> +<translation id="2550593661567988768">طباعة أحادية الاتجاه فقط</translation> <translation id="2552966063069741410">المنطقة الزمنية</translation> <translation id="2562339630163277285">لتحديد عنوان URL لمحرك البحث المستخدَم لتوفير نتائج فورية. يجب أن يشتمل عنوان URL على السلسلة <ph name="SEARCH_TERM_MARKER" /> والتي سيتم استبدالها عند طلب البحث بالنص الذي أدخله المستخدم حتى الآن. @@ -645,11 +655,11 @@ يمكن تعيين عنوان URL لبحث Google على النحو: <ph name="GOOGLE_SEARCH_URL" />. يجب تعيين هذا الخيار في حالة تفعيل سياسة 'DefaultSearchProviderEnabled' ويتم الالتزام به فقط إذا كانت هذه هي الحالة.</translation> -<translation id="2659019163577049044">في حال تفعيل هذا الإعداد، سيُسمح للمستخدمين بإعداد أجهزتهم لمزامنة الرسائل القصيرة (SMS) بين هواتفهم وأجهزة Chromebook. وتجدر الإشارة إلى أنه إذا تم السماح بهذه السياسة، على المستخدمين تفعيل هذه الميزة بشكلٍ صريح عن طريق إكمال خطوات عملية الإعداد. وبعد اكتمال خطوات عملية الإعداد، سيتمكّن المستخدمون من إرسال رسائل SMS وتلقيها على أجهزة Chromebook. +<translation id="2659019163577049044">في حال تفعيل هذا الإعداد، سيُسمح للمستخدمين بإعداد أجهزتهم لمزامنة الرسائل القصيرة (SMS) بين هواتفهم وأجهزة Chromebook. وتجدر الإشارة إلى أنه إذا تم السماح بهذه السياسة، على المستخدمين تفعيل هذه الميزة بشكلٍ صريح عن طريق إنهاء خطوات عملية الإعداد. وبعد إنهاء خطوات عملية الإعداد، سيتمكّن المستخدمون من إرسال رسائل SMS وتلقيها على أجهزة Chromebook. إذا تم إلغاء تفعيل هذا الإعداد، لن يتمكّن المستخدمون من إعداد مزامنة رسائل SMS. - إذا لم يتم وضع هذه السياسة، لن يُسمح بالسياسة التلقائية للمستخدمين الخاضعين للإدارة، ولكن سيُسمح بها لغير الخاضعين للإدارة.</translation> + إذا لم يتم ضبط هذه السياسة، لن يُسمح للمستخدمين الخاضعين للإدارة باستخدام السياسة التلقائية، ولكن سيُسمح للمستخدمين غير الخاضعين للإدارة باستخدامها.</translation> <translation id="2660846099862559570">عدم استخدام خادم وكيل مطلقًا</translation> <translation id="267596348720209223">لتحديد ترميزات الحروف المعتمدة من قِبل مزود البحث. والترميزات هي أسماء صفحات الرموز، مثل UTF-8 وGB2312 وISO-8859-1. وتتم تجربتها بالترتيب المذكور. هذه السياسة اختيارية. وإذا لم يتم تعيينها، فسيتم استخدام الترميز التلقائي وهو UTF-8. لا يتم الالتزام بهذه السياسة إلا إذا تم تفعيل السياسة 'DefaultSearchProviderEnabled'.</translation> <translation id="268577405881275241">تفعيل ميزة ضغط البيانات في الخادم الوكيل</translation> @@ -712,9 +722,12 @@ إذا عطَّلتَ هذا الإعداد أو لم تعيّن قيمة، فستستخدم معاينة الطباعة آخر طابعة مستخدمة باعتبارها خيار الوجهة التلقائي. إذا مكَّنتَ هذا الإعداد، فستستخدم معاينة الطباعة الطابعة التلقائية لنظام التشغيل باعتبارها خيار الوجهة التلقائي.</translation> +<translation id="2856674246949497058">يمكنك العودة إلى الإصدار المستهدف والاستمرار في استخدامه في حال كان إصدار نظام التشغيل أحدث من الإصدار المستهدف. ويمكنك تنفيذ عملية Powerwash في هذه الأثناء.</translation> <translation id="2872961005593481000">إيقاف التشغيل</translation> +<translation id="2873651257716068683">يُلغَي حجم صفحة الطباعة التلقائية. وفي حال عدم توفُّر حجم الصفحة، سيتم تجاهل هذه السياسة.</translation> <translation id="2874209944580848064">ملاحظة لأجهزة <ph name="PRODUCT_OS_NAME" /> التي تدعم تطبيقات Android:</translation> <translation id="2877225735001246144">إيقاف بحث CNAME عند التفاوض مع مصادقة Kerberos</translation> +<translation id="2892414556511568464">يُقيَّد الوضع المزدوج للطباعة. يتم التعامل مع سياسة غير محددة ومجموعة فارغة بدون قيود.</translation> <translation id="2893546967669465276">إرسال سجلات النظام إلى خادم الإدارة</translation> <translation id="2899002520262095963">يمكن لتطبيقات Android استخدام عمليات تهيئة الشبكات وشهادات CA التي تم تعيينها عبر هذه السياسة، ولكن ليس لديها إمكانية وصول إلى بعض خيارات التهيئة.</translation> <translation id="290002216614278247">تسمح لك السياسة بإقفال جلسة المستخدم بناءً على الوقت المسموح للجلسة أو حصة الاستخدام اليومية. @@ -798,6 +811,7 @@ يتم تشجيع الخوادم على الانتقال إلى مجموعات تشفير ECDHE. وإذا لم تكن هذه المجموعات متاحة، فاحرص على تفعيل مجموعة تشفير تستخدم آلية التبادل الرئيسي RSA.</translation> <translation id="316778957754360075">لقد تمّ إيقاف هذا الإعداد اعتبارًا من الإصدار 29 من <ph name="PRODUCT_NAME" />. وإن الطريقة الموصى بها لإعداد مجموعة التطبيقات أو الإضافات التي تستضيفها المؤسسة، عبارة عن تضمين الموقع الذي يستضيف حزم CRX في ExtensionInstallSources وع وضع روابط للتنزيل المباشر في الحزم على صفحة الويب. ويُمكن إنشاء مشغّل لصفحة الويب هذه باستخدام سياسة ExtensionInstallForcelist.</translation> +<translation id="3171369832001535378">نموذج اسم مضيف شبكة الجهاز</translation> <translation id="3185009703220253572">منذ الإصدار <ph name="SINCE_VERSION" /></translation> <translation id="3187220842205194486">يتعذّر على تطبيقات Android الحصول على إمكانية الوصول إلى مفاتيح الشركة. ولا تؤثر هذه السياسة على هذه التطبيقات.</translation> <translation id="3201273385265130876">للسماح لك بتحديد الخادم الوكيل الذي يستخدمه <ph name="PRODUCT_NAME" /> ومنع المستخدمين من تغيير إعدادات الخادم الوكيل. @@ -902,6 +916,7 @@ تُمثل قيمة هذه السياسة رمزًا مميزًا للتسجيل يمكن الحصول عليه من "وحدة تحكم المُشرف في Google".</translation> <translation id="3496296378755072552">مدير كلمات المرور</translation> +<translation id="3502555714327823858">السماح بجميع الأوضاع المزدوجة</translation> <translation id="350443680860256679">تهيئة ARC</translation> <translation id="3504791027627803580">لتحديد عنوان URL لمحرك البحث المستخدم لتوفير إمكانية البحث عن الصور. سيتم إرسال طلبات البحث باستخدام طريقة GET. وعند تعيين سياسة DefaultSearchProviderImageURLPostParams فستستخدم طلبات البحث عن الصور طريقة المشاركة بدلاً من ذلك. @@ -911,6 +926,7 @@ <translation id="350797926066071931">تفعيل الترجمة</translation> <translation id="3512226956150568738">إذا كان طراز جهاز العميل قد دعّم ARC بالفعل قبل أن يُصبِح الترحيل إلى ext4 ضروريًا لتشغيل ARC وكانت سياسة ArcEnabled معينة على "true"، فسيعمل هذا الخيار عمل AskUser (القيمة 3). وفي جميع الحالات الأخرى (إذا كان طراز الجهاز لم يدعم ARC من قبل، أو إذا كانت سياسة ArcEnabled معينة على "false")، فستعادل هذه القيمة DisallowArc (القيمة 0).</translation> <translation id="3524204464536655762">عدم السماح لأي موقع بطلب الوصول إلى أجهزة USB من خلال واجهة برمجة تطبيقات WebUSB</translation> +<translation id="3526752951628474302">الطباعة أحادية اللون فقط</translation> <translation id="3528000905991875314">تفعيل صفحات الأخطاء البديلة</translation> <translation id="3545457887306538845">تسمح لك هذه السياسة بالتحكُّم في مكان استخدام "أدوات مطوّري البرامج". @@ -934,6 +950,7 @@ <translation id="3577251398714997599">إعداد الإعلانات للمواقع التي تتضمن إعلانات متداخلة</translation> <translation id="3591584750136265240">تهيئة سلوك مصادقة تسجيل الدخول</translation> <translation id="3627678165642179114">تفعيل أو إيقاف خدمة التدقيق الإملائي على الويب</translation> +<translation id="3628480121685794414">تفعيل الطباعة أحادية الاتجاه</translation> <translation id="3646859102161347133">تعيين نوع مكبر الشاشة</translation> <translation id="3653237928288822292">رمز مزود البحث التلقائي</translation> <translation id="3660562134618097814">نقل ملفات تعريف الارتباط SAML IdP أثناء تسجيل الدخول</translation> @@ -1035,6 +1052,7 @@ إذا تم تعيين السياسة على "false"، فلن يتم الإبلاغ عن معلومات جلسة الكشك وفي حالة تعيينها على "true" أو تركها دون تعيين، فسيتم الإبلاغ عن معلومات جلسة الكشك.</translation> +<translation id="3858658082795336534">الوضع المزدوج للطباعة التلقائية</translation> <translation id="3859780406608282662">يمكنك إضافة معلمة إلى جلب القيمة الأولية للأشكال المتنوعة من الأجهزة في <ph name="PRODUCT_OS_NAME" />. في حالة تحديد هذه السياسة، ستتم إضافة معلمة طلب بحث تسمى "restrict" إلى عنوان URL المستخدم لجلب القيمة الأولية للأشكال المتنوعة من الأجهزة. ستكون قيمة هذه المعلمة القيمة المحددة في هذه السياسة. @@ -1141,6 +1159,12 @@ بخلاف ذلك، قد يتم التعيين على إحدى القيم التالية: "tls1.2" أو "tls1.3". وعند التعيين، لن يستخدم <ph name="PRODUCT_NAME" /> إصدارات طبقة المقابس الآمنة/طبقة النقل الآمنة الأعلى من الإصدار المحدد. وسيتم تجاهل أي قيمة غير معروفة.</translation> <translation id="4121350739760194865">منع العروض الترويجية للتطبيقات من الظهور في صفحة علامة التبويب الجديدة</translation> <translation id="412697421478384751">إتاحة تعيين المستخدمين لأرقام تعريف شخصية ضعيفة كرقم التعريف الشخصي لشاشة القفل.</translation> +<translation id="4129183564590133854">تتحكَّم هذه السياسة في ما إذا كنت تريد الإبلاغ عن المعلومات التي يمكن استخدامها لتحديد هوية المستخدمين، مثل تسجيل الدخول إلى نظام التشغيل، وتسجيل الدخول إلى "الملف الشخصي" <ph name="PRODUCT_NAME" /> واسم "الملف الشخصي" <ph name="PRODUCT_NAME" /> ومسار "الملف الشخصي" <ph name="PRODUCT_NAME" /> والمسار القابل للتنفيذ <ph name="PRODUCT_NAME" />. + + في حال ترك هذه السياسة بدون تحديد أو تحديدها على "True"، تُجمَع المعلومات التي يمكن استخدامها لتحديد هوية المستخدمين. + في حال تحديد هذه السياسة على "False"، لن تُجمَع المعلومات التي يمكن استخدامها لتحديد هوية المستخدمين. + + لن تسري هذه السياسة إلا عند تفعيل "إضافة إعداد تقارير Chrome" و"إدارة السحابة الإلكترونية".</translation> <translation id="4138655880188755661">الحد الزمني</translation> <translation id="4157003184375321727">تسجيل إصدار نظام التشغيل والبرامج الثابتة</translation> <translation id="4157594634940419685">السماح بالوصول إلى طابعات CUPS الأصلية</translation> @@ -1288,10 +1312,10 @@ للاطلاع على الوصف الكامل للإعدادات المُحتملة وبنية هذه السياسة، يُرجى زيارة https://www.chromium.org/administrators/policy-list-3/extension-settings-full </translation> <translation id="4554651132977135445">وضع معالجة الاسترجاع لسياسة المستخدم</translation> -<translation id="4554841826517980623">تتحكّم هذه السياسة في ما إذا كانت ميزة "خوادم مشاركة الملفات على الشبكة" لـ <ph name="PRODUCT_NAME" /> يجب أن تستخدم <ph name="NETBIOS_PROTOCOL" /> لاكتشاف عمليات المشاركة على الشبكة. - عند ضبط هذه السياسة على True، سيستخدم إعداد "اكتشاف المشاركة" بروتوكول <ph name="NETBIOS_PROTOCOL" /> لاكتشاف عمليات المشاركة على الشبكة. - عند ضبط هذه السياسة على False، لن يستخدم إعداد "اكتشاف المشاركة" بروتوكول <ph name="NETBIOS_PROTOCOL" /> لاكتشاف عمليات المشاركة. - إذا لم يتم وضع هذه السياسة، سيُلغى تفعيل السياسة التلقائية للمستخدمين الخاضعين لإدارة المؤسسات وستُفعّل لغير الخاضعين للإدارة.</translation> +<translation id="4554841826517980623">تتحكّم هذه السياسة في ما إذا كانت ميزة "خوادم مشاركة الملفات على الشبكة" لـ <ph name="PRODUCT_NAME" /> تتطلّب استخدام البروتوكول <ph name="NETBIOS_PROTOCOL" /> لرصد عمليات المشاركة على الشبكة. +عند ضبط هذه السياسة على True، سيستخدم إعداد "رصد المشاركة" بروتوكول <ph name="NETBIOS_PROTOCOL" /> لرصد عمليات المشاركة على الشبكة. +وعند ضبط هذه السياسة على False، لن يستخدم إعداد "رصد المشاركة" بروتوكول <ph name="NETBIOS_PROTOCOL" /> لرصد عمليات المشاركة. +وفي حال عدم ضبط هذه السياسة، سيُلغى تفعيل السياسة التلقائية للمستخدمين الخاضعين لإدارة المؤسسات وستُفعّل للمستخدمين غير الخاضعين للإدارة.</translation> <translation id="4555850956567117258">يمكنك تفعيل التأكيد عن بُعد للمستخدم</translation> <translation id="4557134566541205630">عنوان URL لصفحة علامة تبويب جديدة لموفّر خدمة البحث التلقائي</translation> <translation id="4567137030726189378">السماح باستخدام "أدوات المطوّرين"</translation> @@ -1433,6 +1457,12 @@ <translation id="5052081091120171147">تفرض هذه السياسة استيراد سجل التصفح من المتصفح التلقائي الحالي إذا تم تمكينها. وفي حالة تمكينها، فإن هذه السياسة تؤثر أيضًا على مربع الحوار "استيراد". وإذا تم إيقافها، فلا يتم استيراد سجل التصفح. إذا لم يتم تعيينها، فقد يتم سؤال المستخدم بشأن الاستيراد أو إجراء الاستيراد تلقائيًا.</translation> <translation id="5056708224511062314">تمّ إيقاف مكبر الشاشة</translation> <translation id="5058573563327660283">اختيار الإستراتيجية المستخدمة لتفريغ مساحة القرص أثناء التنظيف التلقائي (متوقَّف)</translation> +<translation id="5058771123777243130">تتحكَّم هذه السياسة في ما إذا كنت تريد الإبلاغ عن بيانات السياسة ووقت جلب السياسة. + + في حال ترك هذه السياسة بدون تحديد أو تحديدها على "True"، تُجمَع بيانات السياسة ووقت جلب السياسة. + في حال تحديد هذه السياسة على "False"، لن تُجمَع بيانات السياسة ووقت جلب السياسة. + + لن تسري هذه السياسة إلا عند تفعيل "إضافة إعداد تقارير Chrome" و"إدارة السحابة الإلكترونية".</translation> <translation id="5067143124345820993">قائمة سماح تسجيل دخول المستخدم</translation> <translation id="5068140065960598044">سياسة تطبيقات السحاب في <ph name="PRODUCT_NAME" /> تلغي سياسة الجهاز.</translation> <translation id="5085647276663819155">إيقاف معاينة الطباعة</translation> @@ -1531,6 +1561,7 @@ <translation id="5366977351895725771">في حالة تعيين السياسة على القيمة false، فسيتم إيقاف إمكانية إنشاء هذا المستخدم لحسابات المستخدمين الخاضعة للإشراف. وستظل أي حسابات مستخدمين حالية خاضعة للإشراف متاحة. في حالة تعيين السياسة على القيمة true أو عدم تهيئتها، يمكن لهذا المستخدم إنشاء حسابات المستخدمين الخاضعة للإشراف وإدارتها.</translation> +<translation id="5369937289900051171">الطباعة بالألوان فقط</translation> <translation id="5370279767682621504">تفعيل دعم HTTP/0.9 في المنافذ غير التلقائية</translation> <translation id="5378985487213287085">للسماح لك بتعيين ما إذا كان يُسمح للمواقع الإلكترونية بعرض إشعارات سطح المكتب. يمكن السماح بعرض إشعارات سطح المكتب بشكل تلقائي أو رفضها بشكل تلقائي أو يمكن سؤال المستخدم في كل مرة يريد فيها موقع الويب عرض إشعارات سطح المكتب. إذا تم ترك هذه السياسة بدون تعيين، فسيتم استخدام السياسة 'AskNotifications' وسيتمكن المستخدم من تغييرها.</translation> <translation id="538108065117008131">السماح لـ <ph name="PRODUCT_FRAME_NAME" /> بالتعامل مع أنواع المحتوى التالية.</translation> @@ -1547,6 +1578,7 @@ إذا تم تعيين هذه السياسة إلى قائمة من مُعرّفات أساليب الإدخال، فستكون أساليب الإدخال المقدمة متاحةً في شاشة تسجيل الدخول. وسيتم مسبقًا تحديد أسلوب الإدخال المقدم أولاً. وفي حين أنه يتم تركيز لوحة المستخدم على شاشة تسجيل الدخول، سيتم توفير أسلوب الإدخال الأخير الذي تم استخدامه من قبل للمستخدم، بالإضافة إلى أساليب الإدخال المقدمة من خلال هذه السياسة. وإذا لم يتم تعيين هذه السياسة، فسيتم استرداد أساليب الإدخال في شاشة تسجيل الدخول من اللغة التي يتم من خلالها عرض شاشة تسجيل الدخول. وسيتم تجاهل القيم التي لا تمثل مُعرّفات أساليب إدخال صالحة.</translation> <translation id="5423001109873148185">تفرض هذه السياسة استيراد محركات البحث من المتصفح التلقائي الحالي إذا تم تمكينها. تؤثر هذه السياسة أيضًا على مربع الحوار "استيراد" إذا تم تمكينها. إذا تم إيقافها، فلن يتم استيراد محرك البحث التلقائي. إذا لم يتم تعيينها، فقد يتم سؤال المستخدم بشأن الاستيراد أو إجراء الاستيراد تلقائيًا.</translation> <translation id="5423197884968724595">اسم تقييد Android WebView:</translation> +<translation id="5424147596523390018">السماح بجميع الأوضاع بالألوان</translation> <translation id="5442026853063570579">تتحكَّم هذه السياسة أيضًا في إمكانية الوصول إلى خيارات المطوّرين في Android. في حال ضبط هذه السياسة على "DeveloperToolsDisallowed" (القيمة 2)، يتعذّر على المستخدمين الوصول إلى خيارات المطوّرين. أما في حال ضبطها على قيمة أخرى أو عدم ضبطها، يمكن للمستخدمين الوصول إلى خيارات المطوّرين من خلال النقر سبع مرّات على رقم الإصدار في تطبيق إعدادات Android.</translation> <translation id="5447306928176905178">تفعيل الإبلاغ عن معلومات الذاكرة (حجم كومة الذاكرة المؤقتة لجافا سكريبت) للصفحة (تم الإيقاف)</translation> <translation id="5457065417344056871">تفعيل وضع الضيف في المتصفح</translation> @@ -1614,6 +1646,7 @@ <translation id="5586942249556966598">عدم فعل شيء</translation> <translation id="5630352020869108293">استعادة الجلسة الأخيرة</translation> <translation id="5645779841392247734">السماح بملفات تعريف الارتباط في هذه المواقع</translation> +<translation id="5689430183304951538">حجم صفحة الطباعة التلقائية</translation> <translation id="5693469654327063861">السماح بترحيل البيانات</translation> <translation id="5694594914843889579">عندما يتم تعيين هذه السياسة على "true"، فإن وحدة التخزين الخارجية لن تكون متاحة في متصفح الملفات. @@ -1643,6 +1676,7 @@ عندما لا يتم تعيين هذه السياسة، يتم استخدام مدة زمنية تلقائية. يجب تحديد قيمة السياسة بالمللي ثانية.</translation> +<translation id="5783009211970309878">طباعة الرؤوس والتذييلات</translation> <translation id="5809728392451418079">تعيين اسم العرض للحسابات المحلية على الجهاز</translation> <translation id="5814301096961727113">تعيين الحالة التلقائية للتعليقات المنطوقة في شاشة تسجيل الدخول</translation> <translation id="5815129011704381141">إعادة التشغيل التلقائي بعد التحديث</translation> @@ -1654,6 +1688,7 @@ في حالة ترك هذا الإعداد بدون تعيين، سيتم استخدام دليل الملف الشخصي التلقائي.</translation> <translation id="5826047473100157858">لتحديد ما إذا كان المستخدم يمكنه فتح صفحات في وضع التصفح المتخفي في <ph name="PRODUCT_NAME" /> أم لا. إذا تم تحديد "تفعيل" أو ترك السياسة بدون تعيين، يمكن فتح الصفحات في وضع التصفح المتخفي. إذا تم تحديد "إيقاف"، فلا يمكن فتح الصفحات في وضع التصفح المتخفي. إذا تم تحديد "مفروض"، فلا يمكن فتح الصفحات إلا في وضع التصفح المتخفي فقط.</translation> +<translation id="582857022372205358">تفعيل الطباعة المزدوجة ذات الحافة القصيرة</translation> <translation id="583091600226586337"> إذا تم تفعيل السياسة، ستتم مطالبة المستخدم بمكان حفظ كل ملف قبل التنزيل. إذا تم إيقاف السياسة، ستبدأ التنزيلات فورًا، ولن تتم مطالبة المستخدم بمكان حفظ الملف. @@ -1674,7 +1709,7 @@ في حالة ترك هذه السياسة بدون تعيين، سيتم إيقاف التعليقات المنطوقة عند ظهور شاشة تسجيل الدخول للمرة الأولى. ويُمكن للمستخدمين تفعيل التعليقات المنطوقة أو إيقافها في أي وقت وستستمر الحالة في شاشة تسجيل الدخول بين المستخدمين.</translation> <translation id="5868414965372171132">تهيئة الشبكة على مستوى المستخدم</translation> -<translation id="5879014913445067283">تتحكّم في اكتشاف "خادم مشاركة الملفات على الشبكة" عبر <ph name="NETBIOS_NAME" /></translation> +<translation id="5879014913445067283">تتحكّم في رصد "خادم مشاركة الملفات على الشبكة" عبر <ph name="NETBIOS_NAME" /></translation> <translation id="5883015257301027298">الإعدادات التلقائية لملفات تعريف الارتباط</translation> <translation id="5887414688706570295">لتهيئة بادئة TalkGadget التي سيتم استخدامها بواسطة عمليات استضافة الدخول عن بُعد ومنع المستخدمين من تغييرها. @@ -1689,6 +1724,7 @@ وعند إيقافه أو عدم تهيئته، لن يتم توكيل طلبات مصادقة gnubby.</translation> <translation id="5898486742390981550">عندما يتمّ تسجيل دخول عدة مستخدمين، لا يمكن سوى للمستخدم الأساسي استخدام تطبيقات Android.</translation> +<translation id="5901427587865226597">الطباعة المزدوجة فقط</translation> <translation id="5906199912611534122">تسمح بتمكين تقييد الشبكة أو إيقافه. وينطبق هذا على جميع المستخدمين، وعلى جميع الواجهات على الجهاز. وعند التعيين، يستمر التقييد حتى يتم تغيير السياسة لإيقافه. @@ -1786,6 +1822,7 @@ <translation id="6093156968240188330">السماح للمستخدمين عن بُعد بالتفاعل مع النوافذ المتطورة في جلسات المساعدة عن بُعد</translation> <translation id="6095999036251797924">لتحديد طول مدة توقف نشاط الإدخال لدى المستخدم التي يتم بعدها قفل الشاشة عند التشغيل على تيار متردد أو على البطارية. وعند تعيين المدة على قيمة أكبر من صفر، فذلك يمثل طول المدة التي يجب أن ينتظرها المستخدم في وضع بعيد حتى يتم قفل شاشة جهاز <ph name="PRODUCT_OS_NAME" />. وعند تعيين المدة على صفر، لن يتم قفل شاشة جهاز <ph name="PRODUCT_OS_NAME" /> عندما يتحول المستخدم إلى وضع بعيد. وعند ترك المدة بدون تعيين، يتم استخدام مدة تلقائية. والطريقة التي يوصى باتباعها لقفل الشاشة عند دخول المستخدم في وضع بعيد هي تفعيل قفل الشاشة على التعليق وطلب تعليق <ph name="PRODUCT_OS_NAME" /> بعد تأخر الدخول في وضع بعيد. يجب عدم استخدام هذه السياسة إلا عندما يتعين ظهور قفل الشاشة لمدة أطول من التعليق أو عند عدم الرغبة تمامًا في التعليق عند الدخول في وضع بعيد. يجب تحديد قيمة السياسة باستخدام الميللي ثانية. ويتم تثبيت القيم بحيث تكون أقل من تأخر الدخول في وضع بعيد.</translation> <translation id="6097601282776163274">تفعيل مجموعة البيانات مجهولة المصدر والمستندة إلى عنوان URL</translation> +<translation id="6099853574908182288">وضع الطباعة بالألوان التلقائي</translation> <translation id="6111936128861357925">السماح بلعبة Dinosaur Easter Egg</translation> <translation id="6114416803310251055">تم تجاهله</translation> <translation id="6133088669883929098">السماح لجميع المواقع باستخدام إنشاء مفتاح</translation> @@ -1798,6 +1835,7 @@ في حال عدم اختيار هذه السياسة، سيتم استخدام القيمة الأصلية العامة لجميع المواقع إما من سياسة 'DefaultPluginsSetting' إذا تم اختيارها أو من التهيئة الشخصية للمستخدم.</translation> <translation id="6190022522129724693">الإعدادات التلقائية للنوافذ المنبثقة</translation> +<translation id="6190367314942602985">الإبلاغ عن معلومات "تعريف المستخدم"</translation> <translation id="6197453924249895891">تمنح وصول مفاتيح الشركات إلى الإضافات. يتم تعيين المفاتيح لاستخدام الشركات إذا تم إنشاؤها باستخدام واجهة برمجة التطبيقات chrome.enterprise.platformKeys في حساب مُدار. لا يتم تعيين المفاتيح التي تم استيرادها أو إنشاؤها بطريقة أخرى لاستخدام الشركات. @@ -1806,6 +1844,8 @@ وبشكل تلقائي، لا يمكن للإضافة استخدام مفتاح تم تعيينه لاستخدام الشركات، وهو ما يعادل تعيين allowCorporateKeyUsage على "false" لهذه الإضافة. إلا إذا تم تعيين allowCorporateKeyUsage على "true" لأي إضافة، فأنه يمكن استخدام أي مفتاح نظام أساسي تم تحديده لاستخدام الشركات لتسجيل البيانات العشوائية. لا ينبغي منح هذا الإذن إلا إذا كانت الإضافة موثوقًا بها لتأمين إمكانية الوصول إلى المفتاح ضد المهاجمين.</translation> +<translation id="6208896993204286313">الإبلاغ عن معلومات سياسة <ph name="PRODUCT_NAME" /></translation> +<translation id="6210259502936598222">الإبلاغ عن معلومات الإصدار <ph name="PRODUCT_NAME" /> ونظام التشغيل</translation> <translation id="6211428344788340116">الإبلاغ عن مرات نشاط الجهاز. إذا لم يتم تعيين هذا الإعداد أو تم تعيينه على "صحيح"، فستبلغ الأجهزة المسجلة عن الفترات الزمنية التي ينشط فيها المستخدم على الجهاز. إذا تم تعيين هذا الإعداد إلى "خطأ"، فلن يتم تسجيل مرات نشاط جهاز أو الإبلاغ عنها.</translation> @@ -1819,6 +1859,7 @@ <translation id="6233173491898450179">تعيين دليل التنزيل</translation> <translation id="6244210204546589761">عناوين URL التي يتم فتحها عند بدء التشغيل</translation> <translation id="6258193603492867656">لتحديد ما إذا كان اسم الخدمة الأساسي، الذي تم إنشاؤه لـ Kerberos، سيشتمل على منفذ غير قياسي. إذا تم تفعيل هذا الإعداد وتم إدخال منفذ غير قياسي (أي منفذ بخلاف 80 أو 443)، فسيتم تضمين المنفذ في اسم الخدمة الأساسي لـ Kerberos. إذا تم إيقاف هذا الإعداد أو تركه بدون إعداد، فلن يشتمل اسم الخدمة الأساسي الذي تم إنشاؤه لـ Kerberos على منفذ تحت أي ظرف.</translation> +<translation id="6261643884958898336">الإبلاغ عن معلومات "تعريف الجهاز"</translation> <translation id="6281043242780654992">لتهيئة سياسات الرسائل الأصلية. ولن يتم السماح لمضيفات الرسائل الأصلية ما لم يتم إدراجها ضمن القائمة البيضاء.</translation> <translation id="6282799760374509080">السماح بالتقاط الصوت أو رفضه</translation> <translation id="6284362063448764300">طبقة النقل الآمنة 1.2</translation> @@ -1847,6 +1888,7 @@ إذا اخترت الكشف التلقائي عن الخادم الوكيل، فسيتم تقديم عنوان URL للنص البرمجي "http://wpad/wpad.dat" لتطبيقات Android. ولن يتم استخدام أي جزء آخر من بروتوكول الكشف التلقائي للخادم الوكيل. إذا اخترت استخدام النص البرمجي للخادم الوكيل .pac، فسيتم تقديم عنوان URL للنص البرمجي لتطبيقات Android.</translation> +<translation id="6430366557948788869">إضافة إعداد تقارير Chrome</translation> <translation id="6440051664870270040">السماح للمواقع بالتنقل وفتح النوافذ المنبثقة في آنٍ واحد</translation> <translation id="6447948611083700881">ميزة الاحتفاظ بنسخة احتياطية والاستعادة غير مفعّلة</translation> <translation id="645425387487868471">تفعيل فرض تسجيل الدخول في <ph name="PRODUCT_NAME" /></translation> @@ -1893,6 +1935,7 @@ <translation id="6628646143828354685">للسماح لك بتعيين ما إذا كان يُسمح للمواقع الإلكترونية بالحصول على إمكانية الدخول إلى أجهزة البلوتوث المجاورة. ويمكن حظر إمكانية الدخول تمامًا، أو يمكن سؤال المستخدم في كل مرة يريد فيها أحد مواقع الويب الحصول على إمكانية الدخول إلى أجهزة البلوتوث المجاورة. إذا تم ترك هذه السياسة بدون تعيينها، فسيتم استخدام "3"، وسيتمكن المستخدم من تغييرها.</translation> +<translation id="663685822663765995">تقييد وضع الطباعة بالألوان</translation> <translation id="6641981670621198190">إيقاف دعم واجهات برمجة التطبيقات للرسومات ثلاثية الأبعاد.</translation> <translation id="6647965994887675196">في حالة تعيين السياسة على القيمة true، يمكن إنشاء حسابات للمستخدمين خاضعة للإشراف واستخدامها. @@ -1919,6 +1962,7 @@ يجب ألا تتعارض أنماط عناوين URL في هذه السياسة مع الأنماط التي تمت تهيئتها عبر WebUsbAskForUrls. لم يتم تحديد أي السياستين لها الأولوية في حال تطابُق عنوان URL مع كلتيهما.</translation> <translation id="6689792153960219308">الإبلاغ عن حالة الأجهزة</translation> +<translation id="6698632841807204978">تفعيل الطباعة أحادية اللون</translation> <translation id="6699880231565102694">تفعيل المصادقة الثنائية لعمليات استضافة الدخول عن بُعد</translation> <translation id="6724842112053619797">في حالة تفعيل هذا الإعداد، سيتم أيضًا تسجيل الإعدادات المخزّنة في الملفات الشخصية في <ph name="PRODUCT_NAME" />، مثل الإشارات المرجعية، وبيانات الملء التلقائي، وكلمات المرور وغيرها، في ملف مخزّن في مجلد الملف الشخصي للتجوال التابع للمستخدم أو في موقع تم تحديده من قِبل المشرف من خلال سياسة <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. ويعمل تفعيل هذه السياسة على إيقاف المزامنة عبر السحاب. @@ -1953,6 +1997,12 @@ المحتوى بوضع full-tab أمام المستخدمين لتزويدهم بمعلومات عن المنتج. يتحكّم هذا الإعداد أيضًا في كيفية عرض صفحات الترحيب التي إمّا ستساعد المستخدمين على تسجيل الدخول إلى <ph name="PRODUCT_NAME" /> واختياره كالمتصفّح التلقائي، أو ستعرض لهم معلومات أخرى عن ميزات المنتج.</translation> <translation id="6766216162565713893">السماح للمواقع بأن تطلب من المستخدم منح إمكانية الدخول إلى جهاز بلوتوث مجاور</translation> <translation id="6770454900105963262">إبلاغ المعلومات حول جلسات الكشك النشطة</translation> +<translation id="6773056206551814546">تتحكَّم هذه السياسة في الإبلاغ عن المعلومات التي يمكن استخدامها لتحديد الأجهزة، مثل اسم الجهاز وعناوين الشبكات. + + في حال ترك هذه السياسة بدون تحديد أو تحديدها على "True"، تُجمَع المعلومات التي يمكن استخدامها لتحديد الأجهزة. + في حال تحديد هذه السياسة على "False"، لن تُجمَع المعلومات التي يمكن استخدامها لتحديد الأجهزة. + + لن تسري هذه السياسة إلا عند تفعيل "إضافة إعداد تقارير Chrome" و"إدارة السحابة الإلكترونية".</translation> <translation id="6786747875388722282">الإضافات</translation> <translation id="6786967369487349613">تعيين دليل الملف الشخصي للتجوال</translation> <translation id="6810445994095397827">حظر جافا سكريبت في هذه المواقع</translation> @@ -2052,6 +2102,7 @@ </translation> <translation id="6922884955650325312">حظر المكّون الإضافي <ph name="FLASH_PLUGIN_NAME" /></translation> <translation id="6923366716660828830">لتحديد اسم مزود البحث التلقائي. إذا تم تركه فارغًا، أو لم يتم تعيينه، فسيتم استخدام اسم المضيف الذي يتم تحديده من قِبل عنوان URL للبحث. لا يتم الالتزام بهذه السياسة إلا إذا تم تفعيل السياسة 'DefaultSearchProviderEnabled'.</translation> +<translation id="6926703471186170050">تفعيل الطباعة المزدوجة ذات الحافة الطويلة</translation> <translation id="6931242315485576290">إيقاف مزامنة البيانات مع Google</translation> <translation id="6936894225179401731">لتحديد أقصى عدد للاتصالات المتزامنة للخادم الوكيل. @@ -2100,15 +2151,15 @@ <translation id="7053678646221257043">تفرض هذه السياسة استيراد الإشارات المرجعية من المتصفح التلقائي الحالي إذا تم تمكينها. وإذا تم تمكينها، فإن هذه السياسة تؤثر أيضًا في مربع الحوار "استيراد". إذا تم إيقافها، فلا يتم استيراد الإشارات المرجعية. إذا لم يتم تعيينها، فقد يتم سؤال المستخدم بشأن الاستيراد أو إجراء الاستيراد تلقائيًا.</translation> <translation id="7063895219334505671">السماح بالنوافذ المنبثقة في هذه المواقع</translation> <translation id="706568410943497889"> - إذا تم ضبط هذه السياسة على true، يُسمح لـ <ph name="PRODUCT_NAME" /> بجمع سجلّات أحداث WebRTC من خدمات Google (مثل Google Meet) وتحميل هذه السجلّات إلى Google. + إذا تم ضبط هذه السياسة على true، يُسمح لـ <ph name="PRODUCT_NAME" /> بجمع سجلّات أحداث WebRTC من خدمات Google (مثل Google Meet) وتحميل هذه السجلّات إلى Google. - إذا تم ضبط هذه السياسة على false، أو إذا لم يتم وضعها، قد لا يجمع <ph name="PRODUCT_NAME" /> هذه السجلّات أو يحمّلها. +إذا تم ضبط هذه السياسة على false، أو إذا لم يتم ضبطها، قد لا يجمع <ph name="PRODUCT_NAME" /> هذه السجلّات أو يحمّلها. - تحتوي هذه السجلّات على معلومات تشخيص تكون مفيدة عند تصحيح الأخطاء المتعلقة بمكالمات الصوت والفيديو في Chrome، مثل وقت حزم RTP المُرسلة والمُستلمة وحجمها والتعليقات حول التكدس على الشبكة والبيانات الوصفية حول وقت إطارات الفيديو والصوت وجودتها. ولا تتضمّن هذه السجلّات محتوى الفيديو أو الصوت من المكالمة. +تحتوي هذه السجلّات على معلومات تشخيص تكون مفيدة عند تصحيح الأخطاء المتعلقة بمكالمات الصوت والفيديو في Chrome، مثل وقت حزم RTP المُرسلة والمُستلمة وحجمها والتعليقات حول التكدس على الشبكة والبيانات الوصفية حول وقت إطارات الفيديو والصوت وجودتها. - لا يمكن تشغيل مجموعة بيانات Chrome هذه إلا من خلال خدمات الويب في Google، مثل Google Hangouts أو Google Meet. +ولا تتضمّن هذه السجلّات محتوى الفيديو أو الصوت من المكالمة. لا يمكن تشغيل مجموعة بيانات Chrome هذه إلا من خلال خدمات الويب في Google، مثل Google Hangouts أو Google Meet. - قد تربط Google هذه السجلّات بسجلّات أخرى تم تجميعها عن طريق خدمة Google نفسها من خلال رقم تعريف الجلسة. والهدف من ذلك تسهيل عملية تصحيح الأخطاء. +قد تربط Google هذه السجلّات بسجلّات أخرى تم تجميعها عن طريق خدمة Google نفسها من خلال رقم تعريف الجلسة. والهدف من ذلك تسهيل عملية تصحيح الأخطاء. </translation> <translation id="706669471845501145">السماح للمواقع بعرض اشعارات سطح المكتب</translation> <translation id="7072208053150563108">معدّل تغيير كلمة مرور الجهاز</translation> @@ -2241,14 +2292,15 @@ <translation id="7336878834592315572">الاحتفاظ بملفات تعريف الارتباط طوال مدة الجلسة</translation> <translation id="7340034977315324840">تسجيل أوقات نشاط الجهاز</translation> <translation id="7343497214039883642">ملف تهيئة طابعة المؤسسة للأجهزة</translation> -<translation id="7349338075015720646">تحدّد هذه السياسة قائمة من مواقع الويب التي تم تثبيتها تلقائيًا بدون تفاعل المستخدم، والتي لا يمكن له إلغاء تثبيتها أو إيقافها. +<translation id="7349338075015720646">تحدّد هذه السياسة قائمة من مواقع الويب التي تم تثبيتها تلقائيًا بدون تدخُّل المستخدم، والتي لا يمكنه إلغاء تثبيتها أو إيقافها. - كل عنصر قائمة في السياسة هو كائن مكوّن من عضوين: "url" و"launch_container". يجب أن يكون "url" هوعنوان URL لتطبيق الويب المُراد تثبيته ويجب أن يكون "launch_container" إما "نافذة" أو "علامة تبويب" للإشارة إلى كيف سيفتح "تطبيق الويب" بعد تثبيته. إذا تم حذف "launch_container"، سيتم تشغيل التطبيق في نافذة إذا اعتبره Chrome "تطبيق ويب تقدّمي" وسيتم تشغيله في علامة تبويب بخلاف ذلك.</translation> + كل عنصر قائمة في السياسة هو كائن مكوّن من عضوين: "url" و"launch_container". يجب أن يكون "url" هوعنوان URL لتطبيق الويب المُراد تثبيته ويجب أن يكون "launch_container" إما "نافذة" أو "علامة تبويب" للإشارة إلى طريقة فتح "تطبيق الويب" بعد تثبيته. إذا تم حذف "launch_container"، سيتم تشغيل التطبيق في نافذة إذا اعتبره Chrome "تطبيق ويب تقدّمي" وسيتم تشغيله في علامة تبويب بخلاف ذلك.</translation> <translation id="7367028210010532881">تعرض خدمة "التصفُّح الآمن" صفحة تحذير عند انتقال المستخدم إلى المواقع التي تم الإبلاغ بأنها ضارة. تفعيل هذا الإعداد يمنع المستخدمين من متابعة الانتقال من صفحة التحذير إلى الموقع الضار. عند إيقاف هذا الإعداد أو عدم تهيئته، يمكن للمستخدمين المتابعة إلى الموقع الذي تم الإبلاغ عنه بعد ظهور التحذير. يمكنك الاطِّلاع على https://developers.google.com/safe-browsing لمزيد من المعلومات حول ميزة "التصفُّح الآمن".</translation> +<translation id="737655323154569539">يُقيَّد حجم صفحة الطباعة. ويتم التعامل مع سياسة غير محدَّدة ومجموعة فارغة بدون قيود.</translation> <translation id="7417728346887499628">في حال إيقاف هذه السياسة، يتم منع أداة "إزالة البرامج غير المرغوب فيها من Chrome" من فحص النظام بحثًا عن البرامج غير المُرادة ومن إزالتها. ويتم كذلك إيقاف التشغيل اليدوي للأداة من chrome://settings/cleanup. في حال تفعيل هذه السياسة أو عدم ضبطها، تفحص أداة "إزالة البرامج غير المرغوب فيها من Chrome" النظام دوريًا بحثًا عن البرامج غير المُرادة وفي حال العثور على أحدها، ستسأل المستخدم إذا كان يرغب في إزالته. ويتم تفعيل التشغيل اليدوي لأداة "إزالة البرامج غير المرغوب فيها من Chrome" من chrome://settings. @@ -2317,6 +2369,8 @@ <translation id="7617319494457709698">تحدد هذه السياسة الإضافات المسموح لها استخدام دالة <ph name="ENTERPRISE_PLATFORM_KEYS_API" /> في <ph name="CHALLENGE_USER_KEY_FUNCTION" /> للتأكيد عن بُعد. يجب إدراج هذه الإضافات في هذه القائمة لاستخدام واجهة برمجة التطبيقات. في حال عدم توفر إضافة في القائمة، أو في حالة عدم تعيين القائمة، سيخفق استدعاء واجهة برمجة التطبيقات مع ظهور رمز خطأ.</translation> +<translation id="7618907117929117943">يمكنك العودة إلى الحالة السابقة واستمرار استخدام الإصدار المستهدف في حال كان إصدار نظام التشغيل أحدث من الإصدار المستهدف، ومن الممكن نقل التهيئة على مستوى الجهاز (بما في ذلك بيانات اعتماد الشبكة) من خلال العودة إلى الحالة السابقة، وكذلك تخطي OOBE بعد العودة إلى الحالة السابقة. ويمكنك عدم إجراء ذلك أو إلغاء العودة إلى الحالة السابقة في حال لم يكن ذلك ممكنًا (لأن الإصدار المستهدف لا يدعم استعادة البيانات أو بسبب تغيير غير متوافق مع ما سبق). + مدعوم في الإصدار 70 من <ph name="PRODUCT_OS_NAME" /> والإصدارات الأحدث. وبالنسبة إلى العملاء الأقدم، تعني هذه القيمة أن العودة إلى الحالة السابقة موقوفة.</translation> <translation id="7625444193696794922">لتحديد قناة الإصدار التي يجب أن يتقيد بها هذا الجهاز.</translation> <translation id="7632724434767231364">اسم مكتبة GSSAPI</translation> <translation id="7635471475589566552">لتهيئة لغة التطبيق في <ph name="PRODUCT_NAME" /> ومنع المستخدمين من تغيير اللغة. @@ -2511,6 +2565,7 @@ إذا تم تفعيل هذا الإعداد أو عدم ضبط قيمة، ستظل ميزة "الملء التلقائي" تخضع لتحكم المستخدم. وسيسمح ذلك له بتهيئة "الملء التلقائي" للملفات الشخصية وتفعيل "الملء التلقائي" أو إيقافه بحسب تقديره.</translation> <translation id="8044493735196713914">تسجيل وضع تشغيل الجهاز</translation> <translation id="8050080920415773384">الطباعة الأصلية</translation> +<translation id="8053580360728293758">يُلغَى وضع الطباعة بالألوان التلقائي. وفي حال عدم توفُّر هذا الوضع، سيتم تجاهل هذه السياسة.</translation> <translation id="8059164285174960932">عنوان URL الذي ينبغي أن يحصل العملاء الذين يتمتعون بإمكانية الوصول عن بعد على رمز المصادقة المميز من خلاله</translation> <translation id="8078366200175825572">تسمح لك بإعداد قائمة بأنماط عناوين URL التي تحدّد المواقع الإلكترونية غير المسموح لها بتحديد ملفات تعريف الارتباط. @@ -2693,6 +2748,7 @@ يمكن أن تشير كلمة "إصدار" هنا إلى إصدار محدد مثل، '61.0.3163.120' أو بادئة إصدار، مثل '61.0' </translation> <translation id="8544375438507658205">عارض HTML التلقائي <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">السماح بمزامنة رسائل SMS من الهاتف إلى Chromebook</translation> +<translation id="8548832052135586762">تُحدَّد قيود وضع الطباعة بالألوان فقط أو أحادية اللون فقط أو بدون ألوان. ويتم التعامل مع سياسة غير محدَّدة بدون قيود.</translation> <translation id="8549772397068118889">التحذير عند الانتقال إلى مواقع خارج حزمات المحتوى</translation> <translation id="8566842294717252664">إخفاء السوق الإلكتروني من صفحة علامة التبويب الجديدة ومشّغل التطبيقات.</translation> <translation id="8586528890725660268">تُحدد السياسة الطابعات التي لا يمكن للمستخدم استخدامها. @@ -2730,10 +2786,10 @@ وفي حال عدم ضبط هذه السياسة، لن تحمي خدمة حماية كلمة المرور في هذه الحالة إلا كلمات مرور Google ولكن سيتمكّن المستخدم من تغيير هذا الإعداد.</translation> <translation id="8672321184841719703">إصدار التحديث التلقائي المستهدف</translation> <translation id="867410340948518937">U2F (العامل الثاني العالمي)</translation> -<translation id="8682611302223077049">تسمح لك هذه السياسة بتحديد الفترة الزمنية بالمللي ثانية، التي يتم بعدها إبلاغ المستخدمين بضرورة إعادة تشغيل <ph name="PRODUCT_NAME" /> أو إعادة تشغيل جهاز <ph name="PRODUCT_OS_NAME" /> لتثبيت تحديث مُعلّق. +<translation id="8682611302223077049">تسمح لك هذه السياسة بتحديد الفترة الزمنية بالمللي ثانية والتي يتم بعد انقضائها إبلاغ المستخدمين بضرورة إعادة تشغيل <ph name="PRODUCT_NAME" /> أو إعادة تشغيل جهاز <ph name="PRODUCT_OS_NAME" /> لتثبيت تحديث مُعلّق. خلال تلك الفترة الزمنية، سيتم إبلاغ المستخدم مرارًا بضرورة التحديث. بالنسبة إلى أجهزة <ph name="PRODUCT_OS_NAME" /> يظهر إشعار إعادة التشغيل في لوحة النظام عند رصد ترقية. أما بالنسبة إلى متصفّحات <ph name="PRODUCT_NAME" /> تتغير قائمة التطبيق لتشير إلى ضرورة إعادة التشغيل بعد مرور ثلث مدة الإشعار. ويتغير لون هذا الإشعار بعد مرور ثلثي مدته وكذلك بعد مرور مدته بالكامل. كما تتبّع الإشعارات الإضافية التي تفعّلها سياسة <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> نفس الجدول. - إذا لم يتم وضع السياسة، يتم استخدام الفترة التلقائية التي تبلغ 345600000 مللي ثانية (أربعة أيام) لأجهزة <ph name="PRODUCT_OS_NAME" /> و604800000 مللي ثانية (أسبوع واحد) لـ <ph name="PRODUCT_NAME" />.</translation> + إذا لم يتم ضبط السياسة، يتم استخدام الفترة التلقائية التي تبلغ 345600000 مللي ثانية (أربعة أيام) لأجهزة <ph name="PRODUCT_OS_NAME" /> و604800000 مللي ثانية (أسبوع واحد) لـ <ph name="PRODUCT_NAME" />.</translation> <translation id="8685024486845674965">تم تشغيل تحذير حماية كلمة المرور من خلال إعادة استخدام كلمة المرور.</translation> <translation id="8693243869659262736">استخدام عميل نظام أسماء النطاقات المدمج</translation> <translation id="8704831857353097849">قائمة بالمكونات الإضافية غير المفعّلة</translation> @@ -2770,7 +2826,7 @@ يجب أن يكون عامل تحديد قيمة المهلة 100% أو أكثر من ذلك. القيم التي ستجعل مهلة وضع الخمول في وضع العرض التقديمي أقل من المهلة العادية لوضع الخمول غير مسموح بها.</translation> <translation id="8798099450830957504">التلقائي</translation> -<translation id="8801680448782904838">إبلاغ أحد المستخدمين بأن إعادة تشغيل المتصفح أو الجهاز موصى بها أو مطلوبة</translation> +<translation id="8801680448782904838">إبلاغ المستخدم بضرورة إعادة تشغيل المتصفّح أو الجهاز كخطوة موصى بها أو مطلوبة</translation> <translation id="8818173863808665831">الإبلاغ عن الموقع الجغرافي للجهاز. إذا لم يتم تعيين هذه السياسة، أو تم تعيينها على false، فلن يتم الإبلاغ عن الموقع.</translation> @@ -2796,6 +2852,7 @@ إذا تم ترك هذا الإعداد بدون تعيين، يمكن للمستخدم أن يقرر استخدام هذه الوظيفة من عدمه.</translation> <translation id="8870318296973696995">الصفحة الرئيسية</translation> +<translation id="8876188741456358123">يُلغَى الوضع المزدوج للطباعة. وفي حال عدم توفُّر هذا الوضع، سيتم تجاهل هذه السياسة.</translation> <translation id="8882006618241293596">حظر المكّون الإضافي <ph name="FLASH_PLUGIN_NAME" /> في هذه المواقع</translation> <translation id="890403179930035128">فرض تفعيل التدقيق الإملائي للغات. سيتم تجاهل اللغات غير المعروفة في هذه القائمة. @@ -2890,6 +2947,8 @@ <translation id="9084985621503260744">تحديد ما إذا كان نشاط الفيديو يؤثر في إدارة الطاقة</translation> <translation id="9088433379343318874">تفعيل موفر المحتوى للمستخدمين تحت الإشراف</translation> <translation id="9088444059179765143">تهيئة طريقة اكتشاف المنطقة الزمنية تلقائيًا</translation> +<translation id="9094064873808699479">يمكنك العودة إلى الحالة السابقة واستمرار استخدام الإصدار المستهدف في حال كان إصدار نظام التشغيل أحدث من الإصدار المستهدف. ويمكنك محاولة نقل التهيئة على مستوى الجهاز (بما في ذلك بيانات اعتماد الشبكة) من خلال عملية العودة إلى الحالة السابقة، إذا كان ذلك ممكنًا، ولكن يمكنك العودة إلى الحالة السابقة باستخدام عملية Powerwash بالكامل حتى إذا لم تكن استعادة البيانات ممكنة (لأن الإصدار المستهدف لا يدعم استعادة البيانات أو بسبب تغيير غير متوافق مع ما سبق). + مدعوم في الإصدار 70 من <ph name="PRODUCT_OS_NAME" /> والإصدارات الأحدث. بالنسبة إلى العملاء الأقدم، تعني هذه القيمة أن العودة إلى الحالة السابقة موقوفة.</translation> <translation id="9096086085182305205">قائمة السماح لخادم المصادقة</translation> <translation id="9098553063150791878">سياسات مصادقة HTTP</translation> <translation id="9105265795073104888">لا يتم إتاحة سوى مجموعة فرعية من خيارات تهيئة الخادم الوكيل لتطبيقات Android. وقد تختار تطبيقات Android استخدام الخادم الوكيل طوعًا. ولا يمكنك أن تفرض على هذه التطبيقات استخدام الخادم الوكيل.</translation> @@ -2929,7 +2988,7 @@ <translation id="9158929520101169054">السماح بالدخول المتعدد في المتصفح</translation> <translation id="9159126470527871268">إبلاغ المستخدمين أنه يجب إعادة تشغيل <ph name="PRODUCT_NAME" /> أو <ph name="PRODUCT_OS_NAME" /> لتطبيق تحديث مُعلّق. - يؤدي ضبط هذه السياسة إلى تفعيل الإشعارات لإبلاغ المستخدم أن إعادة تشغيل المتصفّح أو الجهاز موصى بها أومطلوبة. إذا لم يتم ضبط هذه السياسة، يشير <ph name="PRODUCT_NAME" /> إلى المستخدم أنه يجب إعادة التشغيل عبر إجراء تغييرات دقيقة بالقائمة، بينما يشير <ph name="PRODUCT_OS_NAME" /> إلى هذا الأمر عبر إشعار في لوحة النظام. وفي حال الضبط على "موصى بها"، ستظهر رسالة تحذير متكررة للمستخدم تخبره بأن إعادة التشغيل موصى بها. يمكن للمستخدم رفض هذا التحذير لتأجيل عملية إعادة التشغيل. وفي حال الضبط على "مطلوبة" تظهر رسالة تحذير متكررة للمستخدم تشير إلى أنه سيتم فرض إعادة تشغيل المتصفّح فور انتهاء مدة الإشعار. وتكون الفترة التلقائية 7 أيام لـ <ph name="PRODUCT_NAME" /> و أربعة أيام لـ <ph name="PRODUCT_OS_NAME" />، ويمكن تهيئتها عبر ضبط سياسة <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. + يؤدي ضبط هذه السياسة إلى تفعيل الإشعارات لإبلاغ المستخدم بإعادة تشغيل المتصفّح أو الجهاز كونها عملية موصى بها أومطلوبة. إذا لم يتم ضبط هذه السياسة، يشير <ph name="PRODUCT_NAME" /> إلى المستخدم أنه يجب إعادة التشغيل عبر إجراء تغييرات دقيقة بالقائمة، بينما يشير <ph name="PRODUCT_OS_NAME" /> إلى هذا الأمر عبر إشعار في لوحة النظام. وفي حال الضبط على "موصى بها"، ستظهر رسالة تحذير متكررة للمستخدم تخبره بأن إعادة التشغيل موصى بها. يمكن للمستخدم رفض هذا التحذير لتأجيل عملية إعادة التشغيل. وفي حال الضبط على "مطلوبة" تظهر رسالة تحذير متكررة للمستخدم تشير إلى أنه ستتم إعادة تشغيل المتصفّح فور انتهاء مدة الإشعار. وتكون الفترة التلقائية 7 أيام لـ <ph name="PRODUCT_NAME" /> و أربعة أيام لـ <ph name="PRODUCT_OS_NAME" />، ويمكن تهيئتها عبر ضبط سياسة <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. تتم استعادة جلسة المستخدم بعد إعادة التشغيل.</translation> <translation id="9165792353046089850">تتيح لك هذه السياسة تحديد ما إذا كان يُسمح لمواقع الويب بالحصول على إمكانية الوصول إلى أجهزة USB المتصلة أم لا. يمكن حظر إمكانية الوصول تمامًا، أو يمكن سؤال المستخدم في كل مرة يريد فيها موقع ويب الحصول على إمكانية الوصول إلى أجهزة USB المتصلة. @@ -2941,6 +3000,12 @@ <translation id="9187743794267626640">إيقاف تركيب وحدة تخزين خارجية</translation> <translation id="9197740283131855199">النسبة المئوية التي يتمّ من خلالها تحديد مهلة إعتام الشاشة، عند نشاط المستخدم بعد إعتام الشاشة</translation> <translation id="9200828125069750521">معلمات عنوان URL للصورة الذي يستخدم المشاركة</translation> +<translation id="920209539000507585">يمكنك فرض تفعيل "الرؤوس والتذييلات" أو إيقافها في مربع الطباعة. + في حال عدم تحديد السياسة، يمكن للمستخدم تحديد ما إذا كانت ستتم طباعة الرؤوس والتذييلات أم لا. + + في حال تحديد السياسة على "false"، لا تُختَار "الرؤوس والتذييلات" في مربع حوار "معاينة الطباعة"، ولا يمكن للمستخدم تغييرها. + + في حال تحديد السياسة على "true"، تُختَار "الرؤوس والتذييلات" في مربع حوار "معاينة الطباعة"، ولا يمكن للمستخدم تغييرها.</translation> <translation id="9210953373038593554">تتيح هذه السياسة تهيئة نوع المصادقة لعمليات تسجيل الدخول عبر SAML. عندما لا يتم تعيين هذه السياسة أو تُعيّن على الوضع ال (القيمة 0)، يتم تحديد سلوك عمليات تسجيل الدخول عبر SAML من خلال المتصفح بناءً على العوامل الأخرى. وفي أغلب الأوقات، تستند مصادقة المستخدم وحماية بيانات المستخدم التي تم تخزينها في ذاكرة التخزين المؤقت إلى كلمات المرور التي أدخلها المستخدمون يدويًا. @@ -2948,6 +3013,9 @@ عندما يتم تعيين هذه السياسة على ClientCertificate (القيمة 1)، يتم استخدام مصادقة شهادة العميل للمستخدمين الذين تمت إضافتهم حديثًا والذين يسجلون الدخول عبر SAML. ولا يتم استخدام أي كلمات مرور لهؤلاء المستخدمين وتتم حماية البيانات المحلّية التي تم تخزينها في ذاكرة التخزين المؤقت باستخدام مفاتيح التشفير المطابقة. وعلى سبيل المثال، يسمح هذا الإعداد بتهيئة البطاقة الذكية المستندة إلى مصادقة المستخدم. (تجدر الإشارة إلى أنه يجب تثبيت تطبيقات البرامج الوسيطة للبطاقة الذكية عبر سياسة DeviceLoginScreenAppInstallLis). لا تؤثر هذه السياسة إلا على المستخدمين الذين يجرون المصادقة باستخدام SAML.</translation> +<translation id="9211439035693857287">تهيئة السياسات ذات الصلة بميزة "إضافة إعداد تقارير Chrome". + + لا تسري هذه السياسات إلا عند تفعيل "إضافة إعداد تقارير Chrome" و"إدارة السحابة الإلكترونية".</translation> <translation id="9213347477683611358">تعمل على تهيئة صورة الخلفية على مستوى الجهاز، والتي تظهر على شاشة تسجيل الدخول إذا لم يسجل أي مستخدم الدخول إلى الجهاز بعدُ. يتم تعيين السياسة من خلال تحديد عنوان URL الذي يمكن لجهاز نظام التشغيل Chrome من خلاله تنزيل صورة الخلفية، وتجزئة التشفير المستخدمة للتحقق من تكامل التنزيل. ويجب أن تكون الصورة بتنسيق JPEG، وألا يتجاوز حجم ملفها 16 ميغابايت. ويجب أن يكون هناك إمكانية وصول إلى عنوان URL دون مصادقة. كما يتم تنزيل صورة الخلفية ووضعها في ذاكرة التخزين المؤقت. وسيتم إعادة تنزيل هذه الصورة في حالة تغير عنوان URL أو التجزئة. ينبغي تحديد السياسة كسلسة تعبر عن عنوان URL وتجزئة بتنسيق JSON، على سبيل المثال،
diff --git a/components/policy/resources/policy_templates_bn.xtb b/components/policy/resources/policy_templates_bn.xtb index 1eedb5e..975e2fb3 100644 --- a/components/policy/resources/policy_templates_bn.xtb +++ b/components/policy/resources/policy_templates_bn.xtb
@@ -35,23 +35,23 @@ <translation id="1096105751829466145">ডিফল্ট সার্চ সরবরাহকারী</translation> <translation id="1099282607296956954">প্রতিটি সাইটের জন্য সাইট আইসোলেশন সক্ষম করুন</translation> <translation id="1100570158310952027"> - এই নীতি উৎস (ইউআরএল) অথবা হোস্টনেম প্যাটার্ন (যেমন "*.example.com") যার জন্য - অসুরক্ষিত উত্সের নিরাপত্তা সীমাবদ্ধতাগুলি + এই নীতি কতগুলি উৎস (ইউআরএল) অথবা হোস্টনেম প্যাটার্ন নির্দিষ্ট করে (যেমন "*.example.com") যার জন্য + অসুরক্ষিত উৎসের নিরাপত্তা সীমাবদ্ধতাগুলি প্রযোজ্য হবে না। - এর উদ্দেশ্য হল সংস্থাগুলিকে লিগ্যাসি অ্যাপ্লিকেশনের জন্য সাদা উৎস সেট করতে দেওয়া - যা TLS স্থাপন করতে পারবে না, অথবা অভ্যন্তরীণ ওয়েব ডেভেলপমেন্টের জন্য স্টেজিং + এর উদ্দেশ্য হল সংস্থাগুলিকে লিগ্যাসি অ্যাপ্লিকেশনের জন্য সাদাতালিকার উৎস সেট করতে দেওয়া + যা TLS স্থাপন করতে পারবে না অথবা অভ্যন্তরীণ ওয়েব ডেভেলপমেন্টের জন্য স্টেজিং সার্ভার সেট-আপ করতে পারে যাতে ডেভেলপাররা স্টেজিং সার্ভারে TLS ব্যবহার না - করেই এমন বৈশিষ্ট্য পরীক্ষা করে দেখতে পারেন যেগুলিতে সিকিওর প্রসঙ্গের প্রয়োজন - হয়। এই নীতিটি ওমনিবক্সে "সুরক্ষিত নয়" লেবেল হওয়া থেকে উত্সকে আটকাবে। + করেই এমন বৈশিষ্ট্য পরীক্ষা করে দেখতে পারেন যেগুলিতে সুরক্ষিত ব্যবস্থার প্রয়োজন + হয়। এছাড়াও এই নীতিটি ওমনিবক্সে উৎসকে "সুরক্ষিত নয়" হিসেবে লেবেল হওয়া থেকে আটকাবে। - ইউআরএল-এর কমা-বিভাজিত তালিকায় '--unsafely-treat-insecure-origin-as-secure' - কমান্ড-লাইন ফ্ল্যাগ সেট করলে যা হওয়ার কথা, এই নীতিতে ইউআরএল-এর তালিকা সেট করলে + ইউআরএল-এর কমা দিয়ে আলাদা করা তালিকায় '--unsafely-treat-insecure-origin-as-secure' + কমান্ড-লাইন ফ্ল্যাগ সেট করলে যা হওয়ার কথা, এই নীতিতে একই ইউআরএল-এর তালিকা সেট করলে ঠিক তাই হবে। এই নীতিটি সেট করা থাকলে কমান্ড-লাইন ফ্ল্যাগকে ওভাররাইড করবে। - উপস্থাপনা করা হলে এই নীতিটি UnsafelyTreatInsecureOriginAsSecure-কে - ওভাররাইড করবে। + UnsafelyTreatInsecureOriginAsSecure উপস্থিত থাকলে এই নীতিটি + তা ওভাররাইড করবে। - সুরক্ষিত প্রসঙ্গের বিষয়ে আরও তথ্যের জন্য, + সুরক্ষিত ব্যবস্থার বিষয়ে আরও তথ্যের জন্য, https://www.w3.org/TR/secure-contexts/ দেখুন। </translation> <translation id="1117535567637097036">এই নীতির মারফত সেট করা প্রোটোকল হ্যান্ডলারগুলি Android ইন্টেন্ট পরিচালনার সময় ব্যবহার করা হয় না।</translation> @@ -105,7 +105,7 @@ এই নীতিটি সেট না করা হলে, বা মিথ্যাতে সেট করা থাকলে, TLS এ RC4 সাইফার স্যুট সক্ষম করা হবে না। অন্যথায়, এটি একটি পুরোনো সার্ভারের সাথে সামঞ্জস্য বজায় রাখার জন্য সত্যতে সেট করা যেতে পারে। এটি একটি অস্থায়ী সমাধান এবং সার্ভারটি আবার কনফিগার করা উচিত।</translation> <translation id="1297182715641689552">একটি .pac প্রক্সি স্ক্রিপ্ট ব্যবহার করুন</translation> <translation id="1304973015437969093">এক্সটেনশান/অ্যাপ আইডিগুলি এবং আপডেট URLগুলি নীরবে ইনস্টল হবে</translation> -<translation id="1307454923744766368">উৎস অথবা হোস্টনেম প্যাটার্ন যার জন্য অনিরাপদ উত্সের +<translation id="1307454923744766368">উৎস অথবা হোস্টনেম প্যাটার্ন যার জন্য অনিরাপদ উৎসের নিরাপত্তা সীমাবদ্ধতাগুলি প্রযোজ্য হবে না</translation> <translation id="1313457536529613143">স্ক্রিন অনুজ্বল হওয়ার পরে অথবা স্ক্রিন বন্ধ হয়ে যাওয়ার সাথেসাথেই যখন ব্যবহারকারীর অ্যাক্টিভিটি নিরীক্ষণ করা হয় তখন যার দ্বারা স্ক্রিনের অনুজ্বলতার বিলম্বকে পরিমাপ করা হয় তার শতাংশ নির্দিষ্ট করে৷ @@ -125,9 +125,9 @@ আপনি যদি এই সেটিং সক্ষম করেন, তাহলে Google সার্চে নিরাপদ সার্চ এবং YouTube এ সীমাবদ্ধ মোড সর্বদা সক্রিয় থাকে। আপনি যদি এই সেটিং অক্ষম করেন বা কোনও মান সেট না করেন, তাহলে Google সার্চে নিরাপদ সার্চ এবং YouTube এ সীমাবদ্ধ মোড এনফোর্স হয় না।</translation> -<translation id="1352174694615491349">ক্লায়েন্ট সার্টিফিকেট ব্যবহারের সময় এই নীতি HTTP/2 কানেকশন একত্রিত হওয়ার অনুমতি দেয়। একত্রিত করার জন্য, এই নীতি দ্বারা বর্ণিত এক বা একাধিক প্যাটার্নের সাথে সম্ভাব্য নতুন কানেকশনের হোস্টনেম এবং আগের কানেকশনের হোস্টনেম উভয়কে মিলতে হবে। এই নীতিটি হল হোস্টের তালিকা যারা URLBlacklist ফিল্টার ফর্ম্যাট ব্যবহার করে: "example.com" ইউআরএলটি "example.com" এবং সব সাবডোমেন (যেমন "sub.example.com") এর সাথে মেলে, যখন ".example.net" ইউআরএল ".example.net" এর সাথে পুরোপুরি মেলে। +<translation id="1352174694615491349">ক্লায়েন্ট সার্টিফিকেট ব্যবহারের সময় এই নীতি HTTP/2 কানেকশন একত্রিত হওয়ার অনুমতি দেয়। একত্রিত করার জন্য, এই নীতি দ্বারা বর্ণিত এক বা একাধিক প্যাটার্নের সাথে সম্ভাব্য নতুন কানেকশনের হোস্টনেম এবং আগের কানেকশনের হোস্টনেম উভয়কে মিলতে হবে। এই নীতিটি হল হোস্টের তালিকা যেগুলি URLBlacklist ফিল্টার ফর্ম্যাট ব্যবহার করে: "example.com" ইউআরএলটি "example.com" এবং সব সাবডোমেন (যেমন "sub.example.com") এর সাথে মেলে, যখন ".example.net" ইউআরএল ".example.net" এর সাথে পুরোপুরি মেলে। - ক্লায়েন্ট সার্টিফিকেট ব্যবহার করে এমন কানেকশনের উপর বিভিন্ন হোস্টে একত্রিত হওয়ার অনুরোধ নিরাপত্তা এবং গোপনীয়তার সমস্যা তৈরি করতে পারে, পরিবেষ্টিত কর্তৃপক্ষকে সমস্ত অনুরোধ জানানো হবে, এমনকি যদি ব্যবহারকারী স্পষ্টভাবে এইটিকে অনুমোদিত নাও করে। এই নীতি অস্থায়ী এবং ভবিষ্যতে মুছে ফেলা হবে। https://crbug.com/855690 দেখুন। + ক্লায়েন্ট সার্টিফিকেট ব্যবহার করে এমন কানেকশনের উপর বিভিন্ন হোস্টে একত্রিত হওয়ার অনুরোধ নিরাপত্তা এবং গোপনীয়তার সমস্যা তৈরি করতে পারে, পরিবেষ্টিত কর্তৃপক্ষকে সমস্ত অনুরোধ জানানো হবে, এমনকি যদি ব্যবহারকারী স্পষ্টভাবে এটিকে অনুমোদিত নাও করে। এই নীতি অস্থায়ী এবং ভবিষ্যতে মুছে ফেলা হবে। https://crbug.com/855690 দেখুন। যদি এই নীতি সেট না করে ছেড়ে দেওয়া হয়, তাহলে ক্লায়েন্ট সার্টিফিকেট ব্যবহার করে HTTP/2 কানেকশন একত্রিত না হতে দেওয়ার ডিফল্ট আচরণটি ব্যবহার করা হবে।</translation> <translation id="1353966721814789986">প্রারম্ভ পৃষ্ঠা</translation> @@ -255,7 +255,7 @@ <translation id="1583248206450240930">ডিফল্ট ভাবে <ph name="PRODUCT_FRAME_NAME" /> ব্যবহার করুন</translation> <translation id="1599424828227887013">Android ডিভাইসে নির্দিষ্ট উৎসের জন্য সাইট আইসোলেশন চালু করুন</translation> <translation id="1608755754295374538">এই URLগুলিকে বিজ্ঞপ্তি ছাড়াই অডিও ক্যাপচার ডিভাইসগুলিতে অ্যাক্সেসের অধিকার দেওয়া হবে</translation> -<translation id="1615221548356595305">ক্লায়েন্ট সার্টিফিকেট ব্যবহার করার সময়ও এই হোস্টর জন্য HTTP/2 কানেকশন একত্রিত হওয়ার অনুমতি দেয়</translation> +<translation id="1615221548356595305">ক্লায়েন্ট সার্টিফিকেট ব্যবহার করার সময়ও এই হোস্টর জন্য HTTP/2 কানেকশন একত্রিত হওয়ার অনুমতি দিন</translation> <translation id="1617235075406854669">ব্রাউজার এবং ডাউনলোড ইতিহাস মুছে ফেলা সক্ষম করুন</translation> <translation id="163200210584085447">এই তালিকার প্যাটার্নগুলি অনুরোধ পাঠানো URL এর নিরাপত্তার উৎসের সাথে মেলানো হবে। যদি কোনো মিল খুঁজে পাওয়া যায়, তাহলে @@ -1601,7 +1601,7 @@ যদি এই নীতিটি বন্ধ করা থাকে বা সেট না করা হয়, তাহলে সাইটগুলি এর পাশাপাশি নেভিগেট করতে এবং নতুন একটি উইন্ডো/ট্যাব খোলার অনুমতি পাবে না।</translation> <translation id="4680961954980851756">স্বতঃপূরণ সক্ষম করুন</translation> -<translation id="4703402283970867140">স্ক্রিন অনুজ্জ্বল না হওয়া পর্যন্ত ডিম মডেল চালু করুন</translation> +<translation id="4703402283970867140">কতক্ষণে স্ক্রিন অনুজ্জ্বল হবে তা বাড়াতে স্মার্ট ডিম মডেল চালু করুন</translation> <translation id="4722122254122249791">নির্দিষ্ট উৎসের জন্য সাইট আইসোলেশন সক্ষম করুন</translation> <translation id="4722399051042571387">এটি মিথ্যায় সেট করা থাকলে, দুর্বল ও সহজে অনুমান করা যায় এমন পিন সেট করা যাবে না। @@ -2535,7 +2535,7 @@ <translation id="6956272732789158625">কোনো সাইটকে কী তৈরি করা ব্যবহার করতে মঞ্জুরি দিবেন না</translation> <translation id="6965859329738616662">স্মার্ট ডিম মডেল স্ক্রিন অনুজ্জ্বল হওয়ার সময় বাড়ানোর জন্য অনুমোদিত কিনা তা নির্দিষ্ট করে। - যখন স্ক্রিনটি অনুজ্জ্বল হতে যায়, তখন স্মার্ট ডিম মডেল মূল্যায়ন করে যে এই কাজটি পিছিয়ে দেওয়া উচিত কিনা। যদি স্মার্ট ডিম মডেল স্ক্রিন ডিম হওয়া আটকায় তাহলে স্ক্রিন আরও কিছু সময় ধরে উজ্জ্বল থাকে। স্ক্রিন ডিম হতে কত দেরি হচ্ছে, সেই অনুযায়ী স্ক্রিন অফ হয়ে যাওয়া, স্ক্রিন লক এবং 'আইড্ল' মোডে যাওয়ার সময়সীমা অ্যাডজ্যাস্ট করা হয়। + যখন স্ক্রিনটি অনুজ্জ্বল হতে যায়, তখন স্মার্ট ডিম মডেল মূল্যায়ন করে যে এই কাজটি পিছিয়ে দেওয়া উচিত কিনা। যদি স্মার্ট ডিম মডেল স্ক্রিন ডিম হওয়া আটকায় তাহলে স্ক্রিন আরও কিছু সময় ধরে উজ্জ্বল থাকে। স্ক্রিন ডিম হতে কত দেরি হচ্ছে, সেই অনুযায়ী স্ক্রিন অফ হয়ে যাওয়া, স্ক্রিন লক এবং 'নিষ্ক্রিয়' মোডে যাওয়ার সময়সীমা অ্যাডজ্যাস্ট করা হয়। যদি এই নীতিটি ট্রু-তে সেট থাকে বা সেট না করা হয়, তাহলে স্মার্ট ডিম মডেলটি চালু হয়ে যাবে এবং স্ক্রিন ডিম হওয়ার কাজটি পিছিয়ে দেবে। এই নীতিটি ফল্স হিসেবে সেট করা থাকলে স্মার্ট ডিম মডেলটি স্ক্রিন ডিম হওয়াকে প্রভাবিত করবে না।</translation> <translation id="6994082778848658360">দ্বিতীয় পদক্ষেপ প্রমাণীকরণ যদি এই বৈশিষ্ট্যটির সাথে সঙ্গতিপূর্ণ হয়, তাহলে তার জন্য অন-বোর্ড নিরাপদ উপাদান হার্ডওয়্যার কিভাবে ব্যবহার করা হবে, এই নীতি তা নির্দিষ্ট করে। ব্যবহারকারীর শারীরিক উপস্থিতি শনাক্ত করতে মেশিন পাওয়ার বোতাম ব্যবহার করা হয়। @@ -3046,13 +3046,13 @@ আপনি যদি এই সেটিং অক্ষম করেন তাহলে, বুকমার্ক যুক্ত করা, সরানো বা সংশোধন করা যাবে না। তবে আগে থেকে থাকা বুকমার্কগুলি উপলব্ধ থাকবে।</translation> <translation id="802147957407376460">স্ক্রিন ০ ডিগ্রী ঘোরান</translation> -<translation id="8033913082323846868">এই নীতিটি M70 এ শীঘ্রই বন্ধ করা হবে,অনুগ্রহ করে এর পরিবর্তে AutofillAddressEnabled এবং AutofillCreditCardEnabled ব্যবহার করুন। +<translation id="8033913082323846868">এই নীতিটি M70-এ বন্ধ করে দেওয়া হয়েছে, অনুগ্রহ করে এর পরিবর্তে AutofillAddressEnabled এবং AutofillCreditCardEnabled ব্যবহার করুন। - <ph name="PRODUCT_NAME" />-এর অটো-ফিল ফিচারটি চালু করে এবং ব্যবহারকারীদের আগে সেভ করা তথ্য ব্যবহার করে ঠিকানার তথ্য ওয়েব ফর্মে নিজে থেকে পূরণ করতে দেয়। + <ph name="PRODUCT_NAME" />-এর অটো-ফিল ফিচারটি চালু করে এবং ব্যবহারকারীদের আগে থেকে সেভ থাকা ঠিকানা বা ক্রেডিট কার্ডের মতো তথ্য ব্যবহার করে ঠিকানার তথ্য ওয়েব ফর্মে নিজে থেকে পূরণ করতে দেয়। আপনি এই সেটিং বন্ধ করলে, অটো-ফিল বৈশিষ্ট্যটি অন্যদের কাছে অ্যাক্সেসযোগ্য থাকবে না৷ - আপনি এই সেটিংটি চালু বা কোনও মান কনফিগার না করলে, অটো-ফিল তবুও ব্যবহারকারীটির নিয়ন্ত্রণে থাকবে৷ এটি তাদের অটো-ফিল প্রোফাইলগুলি কনফিগার এবং তাদের ইচ্ছামত অটো-ফিল চালু বা বন্ধ করতে দেবে৷</translation> + আপনি এই সেটিং চালু বা কোনও মান সেট না করলে, অটো-ফিল তবুও ব্যবহারকারীটির নিয়ন্ত্রণে থাকবে৷ এটি তাদের অটো-ফিল প্রোফাইলগুলি কনফিগার এবং তাদের ইচ্ছামত অটো-ফিল চালু বা বন্ধ করতে দেবে৷</translation> <translation id="8044493735196713914">ডিভাইসের চালু অবস্থা অভিযোগ করুন</translation> <translation id="8050080920415773384">নেটিভ প্রিন্ট</translation> <translation id="8059164285174960932">দূরবর্তী অ্যাক্সেস ক্লায়েন্টদের যেখানে তাদের প্রমাণীকরণ টোকেন নেওয়া উচিত সেখানকার URL</translation> @@ -3420,25 +3420,25 @@ </translation> <translation id="8938932171964587769">M69-এ বন্ধ করে দেওয়া হয়েছে। এর পরিবর্তে OverrideSecurityRestrictionsOnInsecureOrigin ব্যবহার করুন। - এই নীতি উৎস (ইউআরএল) অথবা হোস্টনেম প্যাটার্ন (যেমন "*.example.com") যার জন্য - অসুরক্ষিত উত্সের নিরাপত্তা সীমাবদ্ধতাগুলি + এই নীতি কতগুলি উৎস (ইউআরএল) অথবা হোস্টনেম প্যাটার্ন নির্দিষ্ট করে (যেমন "*.example.com") যার জন্য + অসুরক্ষিত উৎসের নিরাপত্তা সীমাবদ্ধতাগুলি প্রযোজ্য হবে না। - এর উদ্দেশ্য হল সংস্থাগুলিকে লিগ্যাসি অ্যাপ্লিকেশনের জন্য সাদা উৎস সেট করতে দেওয়া - যা TLS স্থাপন করতে পারবেনা, অথবা অভ্যন্তরীণ ওয়েব ডেভেলপমেন্টের জন্য স্টেজিং + এর উদ্দেশ্য হল সংস্থাগুলিকে লিগ্যাসি অ্যাপ্লিকেশনের জন্য সাদাতালিকার উৎস সেট করতে দেওয়া + যা TLS স্থাপন করতে পারবে না, অথবা অভ্যন্তরীণ ওয়েব ডেভেলপমেন্টের জন্য স্টেজিং সার্ভার সেট-আপ করতে পারে যাতে ডেভেলপাররা স্টেজিং সার্ভারে TLS ব্যবহার না - করেই এমন বৈশিষ্ট্য পরীক্ষা করে দেখতে পারেন যেগুলিতে সিকিওর প্রসঙ্গের প্রয়োজন - হয়। এই নীতিটি ওমনিবক্সে "সুরক্ষিত নয়" লেবেল হওয়া থেকে উত্সকে আটকাবে। + করেই এমন বৈশিষ্ট্য পরীক্ষা করে দেখতে পারেন যেগুলিতে সুরক্ষিত ব্যবস্থার প্রয়োজন + হয়। এছাড়াও এই নীতিটি ওমনিবক্সে উৎসকে "সুরক্ষিত নয়" হিসেবে লেবেল হওয়া থেকে আটকাবে। - ইউআরএল-এর কমা-বিভাজিত তালিকায় '--unsafely-treat-insecure-origin-as-secure' - কমান্ড-লাইন ফ্ল্যাগ সেট করলে যা হওয়ার কথা, এই নীতিতে ইউআরএল-এর তালিকা সেট করলে - ঠিক তাই হবে। এই নীতিটি সেট করা থাকলে কমান্ড-লাইন ফ্ল্যাগকে ওভাররাইড করা হবে। + ইউআরএল-এর কমা দিয়ে আলাদা করা তালিকায় '--unsafely-treat-insecure-origin-as-secure' + কমান্ড-লাইন ফ্ল্যাগ সেট করলে যা হওয়ার কথা, এই নীতিতে একই ইউআরএল-এর তালিকা সেট করলে + ঠিক তাই হবে। এই নীতিটি সেট করা থাকলে কমান্ড-লাইন ফ্ল্যাগকে ওভাররাইড করবে। - এই নীতিটি OverrideSecurityRestrictionsOnInsecureOrigin এর পক্ষ\ থেকে - M69 এ বন্ধ করে দিয়েছে। উভয় নীতি বর্তমান থাকলে, - OverrideSecurityRestrictionsOnInsecureOrigin এই নীতিকে ওভাররাইড + M69-এ এই নীতিটি বন্ধ করে OverrideSecurityRestrictionsOnInsecureOrigin + যোগ করা হয়েছে। উভয় নীতি বর্তমান থাকলে, + OverrideSecurityRestrictionsOnInsecureOrigin অন্য নীতিকে ওভাররাইড করবে। - সুরক্ষিত প্রসঙ্গের বিষয়ে আরও তথ্যের জন্য, + সুরক্ষিত ব্যবস্থার বিষয়ে আরও তথ্যের জন্য, https://www.w3.org/TR/secure-contexts/ দেখুন </translation> <translation id="8942616385591203339">প্রথমবার সাইন-ইন করার সময় ব্যবহারকারীকে সিঙ্কে সম্মতি দেওয়ার ডায়ালগ দেখানো যাবে কিনা তা এই নীতি নিয়ন্ত্রণ করে। ব্যবহারকারীর জন্য সিঙ্কে সম্মতি দেওয়ার ডায়ালগ দেখানোর প্রয়োজন কখনও না হলে এটিকে ফল্স হিসেবে সেট করা উচিত।
diff --git a/components/policy/resources/policy_templates_cs.xtb b/components/policy/resources/policy_templates_cs.xtb index d9db1ef8..0f7a148 100644 --- a/components/policy/resources/policy_templates_cs.xtb +++ b/components/policy/resources/policy_templates_cs.xtb
@@ -2996,7 +2996,7 @@ <translation id="9158929520101169054">Povolit v prohlížeči vícenásobné přihlášení</translation> <translation id="9159126470527871268">Oznamuje uživateli, že je třeba restartovat prohlížeč <ph name="PRODUCT_NAME" /> nebo systém <ph name="PRODUCT_OS_NAME" />, aby bylo možné nainstalovat čekající aktualizaci. - Toto nastavení zásady umožňuje, aby byl uživatel prostřednictvím oznámení informován, že je doporučeno nebo nutno restartovat prohlížeč nebo zařízení. Pokud zásada nebude nastavena, prohlížeč <ph name="PRODUCT_NAME" /> o potřebném restartování informuje uživatele pomocí drobných změn v nabídce, zatímco systém <ph name="PRODUCT_OS_NAME" /> o něm informuje prostřednictvím oznámení v hlavním panel systému. Pokud je nastavena na hodnotu Doporučeno, bude se uživateli opakovaně zobrazovat upozornění, že je doporučen restart. Uživatel upozornění může odmítnout a tím restart odložit. Pokud je nastavena na hodnotu Povinné, bude se uživateli opakovaně zobrazovat upozornění, že po uplynutí lhůty pro oznámení bude vynucen restart prohlížeče. Výchozí lhůta je u prohlížeče <ph name="PRODUCT_NAME" /> sedm dní, u systému <ph name="PRODUCT_OS_NAME" /> čtyři dny a lze ji nakonfigurovat nastavením zásady <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. + Toto nastavení zásady umožňuje, aby byl uživatel prostřednictvím oznámení informován, že je doporučeno nebo nutno restartovat prohlížeč nebo zařízení. Pokud zásada nebude nastavena, prohlížeč <ph name="PRODUCT_NAME" /> o potřebném restartování informuje uživatele pomocí drobných změn v nabídce, zatímco systém <ph name="PRODUCT_OS_NAME" /> o něm informuje prostřednictvím oznámení na hlavním panelu systému. Pokud je nastavena na hodnotu Doporučeno, bude se uživateli opakovaně zobrazovat upozornění, že je doporučen restart. Uživatel upozornění může odmítnout a tím restart odložit. Pokud je nastavena na hodnotu Povinné, bude se uživateli opakovaně zobrazovat upozornění, že po uplynutí lhůty pro oznámení bude vynucen restart prohlížeče. Výchozí lhůta je u prohlížeče <ph name="PRODUCT_NAME" /> sedm dní, u systému <ph name="PRODUCT_OS_NAME" /> čtyři dny a lze ji nakonfigurovat nastavením zásady <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. Relace uživatele bude po restartování obnovena.</translation> <translation id="9165792353046089850">Umožňuje nastavit, zda weby mají povoleno získat přístup k připojeným zařízením USB. Přístup lze zcela zablokovat, nebo je možné uživatele požádat pokaždé, když chce web k připojeným zařízením USB získat přístup.
diff --git a/components/policy/resources/policy_templates_da.xtb b/components/policy/resources/policy_templates_da.xtb index 0f6a13a..8c5befb 100644 --- a/components/policy/resources/policy_templates_da.xtb +++ b/components/policy/resources/policy_templates_da.xtb
@@ -339,7 +339,7 @@ <translation id="199764499252435679">Aktivér komponentopdateringer i <ph name="PRODUCT_NAME" /></translation> <translation id="2006530844219044261">Strømstyring</translation> <translation id="201557587962247231">Hyppighed for upload af rapporter om enhedsstatus</translation> -<translation id="2017301949684549118">Webadresser til webapps skal installeres lydløst.</translation> +<translation id="2017301949684549118">Webadresser til webapps skal installeres uovervåget.</translation> <translation id="2018836497795982119">Angiver den periode i millisekunder, hvor enhedsadministrationstjenesten anmodes om brugerpolitikoplysninger. Angivelse af denne politik tilsidesætter standardværdien på tre timer. Gyldige værdier for denne politik ligger i intervallet fra 1800000 (30 minutter) til 86400000 (ét døgn). Alle værdier, der ikke ligger inden for dette interval, fastgøres til den respektive grænse. Hvis platformen understøtter underretninger vedrørende politik, angives forsinkelsen af opdateringen til 24 timer, da det forventes, at underretninger vedrørende politik automatisk gennemtvinger en opdatering, når politikken ændres. @@ -642,7 +642,7 @@ Googles søgewebadresse kan angives som: <ph name="GOOGLE_SEARCH_URL" />. Denne indstilling skal aktiveres, når politikken "DefaultSearchProviderEnabled" er aktiveret, og den vil kun blive respekteret, hvis dette er tilfældet.</translation> -<translation id="2659019163577049044">Hvis denne indstilling aktiveres, kan brugerne konfigurere deres enheder for at synkronisere sms-beskeder mellem deres telefoner og Chromebooks. Bemærk! Hvis denne politik tillades, skal brugerne udtrykkeligt tilmelde sig denne funktion ved at gennemføre en konfiguration. Når konfigurationen er gennemført, kan brugerne sende og modtage sms-beskeder på deres Chromebooks. +<translation id="2659019163577049044">Hvis denne indstilling aktiveres, kan brugerne konfigurere deres enheder til at synkronisere sms-beskeder mellem deres telefoner og Chromebooks. Bemærk! Hvis denne politik tillades, skal brugerne udtrykkeligt tilmelde sig denne funktion ved at gennemføre en konfiguration. Når konfigurationen er gennemført, kan brugerne sende og modtage sms-beskeder på deres Chromebooks. Hvis denne indstilling deaktiveres, kan brugerne ikke konfigurere synkronisering af sms-beskeder. @@ -2273,7 +2273,7 @@ <translation id="7336878834592315572">Behold cookies under sessionen</translation> <translation id="7340034977315324840">Rapportér tidspunkter for aktiviteter på enheden</translation> <translation id="7343497214039883642">Fil til konfiguration af virksomhedsprintere for enheder</translation> -<translation id="7349338075015720646">Angiver en liste over websites, som installeres lydløst uden brugerinteraktion, og som ikke kan afinstalleres af brugeren. +<translation id="7349338075015720646">Angiver en liste over websites, som installeres uovervåget uden brugerinteraktion, og som ikke kan afinstalleres af brugeren. Hvert listepunkt i politikken er et objekt med to medlemmer: "url" og "launch_container". "url" bør være webadressen til den webapp, der skal installeres, og "launch_container" bør enten være "window" eller "tab" for at indikere, hvordan webappen åbnes, når den er installeret. Hvis "launch_container" udelades, åbnes appen i et vindue, hvis Chrome betragter den som en progressiv webapp, og ellers åbnes den på en fane.</translation> <translation id="7367028210010532881">Tjenesten Beskyttet browsing viser en advarselsside, når brugerne går til websites, der er rapporteret som potentielt skadelige. Denne indstilling forhindrer brugerne i at fortsætte fra advarselssiden til det skadelige website. @@ -2762,7 +2762,7 @@ I dette tidsrum informeres brugeren gentagne gange om nødvendigheden af en opdatering. Når der registreres en opdatering til <ph name="PRODUCT_OS_NAME" />-enheder, vises en underretning om genstart i systembakken. For <ph name="PRODUCT_NAME" />-browsere ændres appmenuen for at vise, at genstart er nødvendig, når en tredjedel af underretningsperioden er gået. Underretningen skifter farve, når to tredjedele af underretningsperioden er gået, og igen når hele underretningsperioden er udløbet. De yderligere underretninger, der aktiveres af politikken <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" />, følger samme tidsplan. - Hvis politikken ikke konfigureres, anvendes standardtidsrummet på 345600000 millisekunder (fire dage) for <ph name="PRODUCT_OS_NAME" /> -enheder og 604800000 millisekunder (én uge) for <ph name="PRODUCT_NAME" />.</translation> + Hvis politikken ikke konfigureres, anvendes standardtidsrummet på 345600000 millisekunder (fire dage) for <ph name="PRODUCT_OS_NAME" />-enheder og 604800000 millisekunder (én uge) for <ph name="PRODUCT_NAME" />.</translation> <translation id="8685024486845674965">Advarsler via adgangskodebeskyttelse udløses ved genbrug af adgangskoder</translation> <translation id="8693243869659262736">Brug den indbyggede DNS-klient</translation> <translation id="8704831857353097849">Liste over deaktiverede plugins</translation> @@ -2943,9 +2943,9 @@ <translation id="9158929520101169054">Tillad samlet login fra flere konti i browseren</translation> <translation id="9159126470527871268">Underretter brugeren om, at <ph name="PRODUCT_NAME" /> eller <ph name="PRODUCT_OS_NAME" /> skal genstartes for at anvende en afventende opdatering. - Denne politikindstilling aktiverer underretninger, som anbefaler eller kræver, at brugeren genstarter browseren eller enheden. Hvis politikken ikke angives, indikerer <ph name="PRODUCT_NAME" /> over for brugeren via diskrete ændringer af menuen, at en genstart er nødvendig, mens <ph name="PRODUCT_OS_NAME" /> indikerer det samme via en underretning i systembakken. Hvis "Anbefales" angives for politikken, får brugeren vist en fast advarsel med en anbefaling om, at browseren genstartes. Brugeren kan afvise advarslen for at udskyde genstarten. Hvis "Påkrævet" angives for politikken, får brugeren vist en fast advarsel, som indikerer, at der gennemtvinges en genstart af browseren, når underretningsperioden er udløbet. Denne periode er som standard syv dage for <ph name="PRODUCT_NAME" /> og fire dage for <ph name="PRODUCT_OS_NAME" />, og den kan konfigureres via politikindstillingen <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. + Denne politikindstilling aktiverer underretninger, som anbefaler eller kræver, at brugeren genstarter browseren eller enheden. Hvis politikken ikke angives, indikerer <ph name="PRODUCT_NAME" /> over for brugeren via diskrete ændringer af menuen, at en genstart er nødvendig, mens <ph name="PRODUCT_OS_NAME" /> indikerer det samme via en underretning i systembakken. Hvis "Anbefales" angives for politikken, får brugeren vist en fast advarsel med en anbefaling om, at browseren genstartes. Brugeren kan afvise advarslen for at udskyde genstarten. Hvis "Påkrævet" angives for politikken, får brugeren vist en fast advarsel, som angiver, at der gennemtvinges en genstart af browseren, når underretningsperioden er udløbet. Denne periode er som standard syv dage for <ph name="PRODUCT_NAME" /> og fire dage for <ph name="PRODUCT_OS_NAME" />, og den kan konfigureres via politikindstillingen <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. - Brugerens session genoprettes efter genstarten.</translation> + Brugerens session gendannes efter genstarten.</translation> <translation id="9165792353046089850">Giver dig mulighed for at angive, om websites må få adgang til tilsluttede USB-enheder. Adgangen kan være fuldstændig blokeret, eller brugeren kan blive spurgt, hver gang et website vil have adgang til tilsluttede USB-enheder. Denne politik kan tilsidesættes for bestemte webadressemønstre ved hjælp af politikkerne "WebUsbAskForUrls" og "WebUsbBlockedForUrls".
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb index fa4ec3f..382c8e6 100644 --- a/components/policy/resources/policy_templates_es-419.xtb +++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -1060,7 +1060,7 @@ Cada entrada de la lista contiene un diccionario que debe incluir el ID de extensión en el campo "extension-id" y su URL de actualización en el campo "update-url".</translation> <translation id="3874773863217952418">Habilitar "Presionar para buscar"</translation> <translation id="3877517141460819966">Modo de autenticación de dos factores integrado</translation> -<translation id="3879208481373875102">Configurar la lista de aplicaciones web instaladas de manera automática</translation> +<translation id="3879208481373875102">Configura la lista de aplicaciones web instaladas de manera automática</translation> <translation id="388237772682176890">Esta política ya no está disponible en M53 y se quitó en M54 porque se quitó la compatibilidad con SPDY/3.1. Inhabilita el uso del protocolo SPDY en <ph name="PRODUCT_NAME" />. @@ -1688,7 +1688,7 @@ Si no se establece esta política, los comentarios por voz se inhabilitarán la primera vez que se muestre la pantalla de acceso. Los usuarios pueden habilitar o inhabilitar los comentarios por voz en cualquier momento, y su estado en la pantalla de acceso permanece entre usuarios.</translation> <translation id="5868414965372171132">Configuración de red de usuario</translation> -<translation id="5879014913445067283">Controlar la detección de archivos compartidos en la red a través de <ph name="NETBIOS_NAME" /></translation> +<translation id="5879014913445067283">Controla la detección de archivos compartidos en la red a través de <ph name="NETBIOS_NAME" /></translation> <translation id="5883015257301027298">Configuración de cookies predeterminada</translation> <translation id="5887414688706570295">Configura el prefijo TalkGadget que será utilizado por los hosts de acceso remoto y que evita que los usuarios lo cambien. @@ -2743,7 +2743,7 @@ Aquí, la "versión" puede ser una exacta, como "61.0.3163.120" o el prefijo de una versión, como "61.0" </translation> <translation id="8544375438507658205">Procesador HTML predeterminado para <ph name="PRODUCT_FRAME_NAME" /></translation> -<translation id="8544465954173828789">Permitir que los mensajes SMS se sincronicen desde el teléfono con la Chromebook</translation> +<translation id="8544465954173828789">Permite que los mensajes SMS se sincronicen desde el teléfono con la Chromebook</translation> <translation id="8549772397068118889">Advierte cuando se visitan sitios fuera de los paquetes de contenido.</translation> <translation id="8566842294717252664">Ocultar ícono de Web Store en la página Nueva pestaña y el Selector de aplicaciones</translation> <translation id="8586528890725660268">Especifica las impresoras que no puede utilizar el usuario.
diff --git a/components/policy/resources/policy_templates_et.xtb b/components/policy/resources/policy_templates_et.xtb index 937ef99a2..dfd06b87 100644 --- a/components/policy/resources/policy_templates_et.xtb +++ b/components/policy/resources/policy_templates_et.xtb
@@ -205,6 +205,7 @@ <translation id="1522425503138261032">Luba saitidel kasutaja füüsilist asukohta jälgida</translation> <translation id="152657506688053119">Asendus-URL-ide loend vaikeotsingupakkujale</translation> <translation id="1530812829012954197">Renderda hostbrauseris alati järgmiste URL-ide mustrid</translation> +<translation id="1541170838458414064">Prinditava lehe suuruse piiramine</translation> <translation id="1553684822621013552">Kui see reegel on tõene, lubatakse ARC kasutaja jaoks (oleneb reegli seadete lisakontrollidest – ARC pole endiselt saadaval, kui efemeerne režiim või mitu sisselogimist on @@ -386,6 +387,12 @@ <translation id="2082205219176343977">Seadmes kõige vanema lubatud Chrome'i versiooni seadistamine.</translation> <translation id="209586405398070749">Stabiilne kanal</translation> <translation id="2098658257603918882">Luba kasutus- ja krahhiandmete aruandlus</translation> +<translation id="2098916259427011890">Reegel määrab, kas edastada versiooniteavet, nagu operatsioonisüsteemi versioon, platvorm ja arhitektuur, rakenduse <ph name="PRODUCT_NAME" /> versioon ja rakenduse <ph name="PRODUCT_NAME" /> kanal. + + Kui reegel on määramata või seatud väärtusele Tõene, kogutakse versiooniteavet. + Kui reegel on seatud väärtusele Väär, ei koguta versiooniteavet. + + Reegel kehtib ainult juhul, kui Chrome'i aruandluse laiendus ja pilvehaldus on lubatud.</translation> <translation id="2111016292707172233">Lubab teenuse <ph name="PRODUCT_NAME" /> sisu vaates funktsiooni Puuduta otsimiseks. Kui selle seade lubate, on funktsioon Puuduta otsimiseks kasutaja jaoks saadaval ja ta saab selle sisse või välja lülitada. @@ -419,6 +426,8 @@ Kui reegel jäetakse määramata, on vaikeväärtus 0 kraadi ja kasutaja saab seda muuta. Sellisel juhul ei rakendata vaikeväärtust taaskäivitamisel uuesti.</translation> +<translation id="214901426630414675">Printimise dupleksrežiimi piiramine</translation> +<translation id="2149330464730004005">Värvilise printimise lubamine</translation> <translation id="2156132677421487971">Seadistab teenuse <ph name="PRODUCT_NAME" /> reeglid. See on funktsioon, mis võimaldab kasutajatel saata vahelehtede, saitide või töölaua sisu brauserist kaugekraanidele või helisüsteemidesse.</translation> <translation id="2166472654199325139">Täiskasvanutele mõeldud sisuga saite ei filtreerita</translation> <translation id="2168397434410358693">Jõudeoleku viiteaeg võrgutoite kasutamisel</translation> @@ -615,6 +624,7 @@ <translation id="2529880111512635313">Sunniviisiliselt installitud rakenduste ja laienduste loendi seadistamine</translation> <translation id="253135976343875019">Tegevusetuse hoiatuse viivitus vahelduvvoolutoite kasutamisel</translation> <translation id="2536525645274582300">Kasutaja otsustab, kas lubada Google'i asukohateenused</translation> +<translation id="2550593661567988768">Ainult simpleksprintimine</translation> <translation id="2552966063069741410">Ajavöönd</translation> <translation id="2562339630163277285">Määrab otsingumootori URL-i, mida kasutatakse vahetute otsingutulemuste esitamiseks. URL peab sisaldama stringi <ph name="SEARCH_TERM_MARKER" />, mis asendatakse päringu tegemisel kasutaja sisestatud tekstiga. @@ -749,9 +759,12 @@ Kui keelate seade või jätate väärtuse määramata, kasutab printimise eelvaade vaikesihtkohana viimati kasutatud printerit. Kui lubate selle seade, kasutab printimise eelvaade vaikesihtkohana operatsioonisüsteemi vaikeprinterit.</translation> +<translation id="2856674246949497058">Võimaldab naasta ja jääda sihtversioonile, kui operatsioonisüsteemi versioon on uuem kui sihtversioon. Tehke protsessi käigus Powerwash.</translation> <translation id="2872961005593481000">Lülita välja</translation> +<translation id="2873651257716068683">Alistab prinditava lehe vaikesuuruse. Reeglit eiratakse, kui lehe suurus ei ole saadaval.</translation> <translation id="2874209944580848064">Märkus Androidi rakendusi toetavate operatsioonisüsteemiga <ph name="PRODUCT_OS_NAME" /> seadmete kohta.</translation> <translation id="2877225735001246144">Keela CNAME-i otsing Kerberose autentimise läbirääkimisel</translation> +<translation id="2892414556511568464">Piirab printimise dupleksrežiimi. Määramata reeglit ja tühja hulka käsitletakse piirangu puudumisena.</translation> <translation id="2893546967669465276">Süsteemilogide saatmine haldusserverisse</translation> <translation id="2899002520262095963">Androidi rakendused saavad kasutada selle reegliga määratud võrguseadistusi ja CA-sertifikaate, kuid ei pääse juurde mõnele seadistusvalikule.</translation> <translation id="290002216614278247">Võimaldab lukustada kasutajaseansi kliendi aja või igapäevase kasutuskvoodi alusel. @@ -841,6 +854,7 @@ Serverid on soovitatav üle viia ECDHE šifreerimiskomplektidele. Kui need ei ole saadaval, lubage kindlasti RSA võtmevahetust kasutav šifreerimiskomplekt.</translation> <translation id="316778957754360075">See seade on alates rakenduse <ph name="PRODUCT_NAME" /> versioonist 29 kasutusest kõrvaldatud. Organisatsiooni majutatud laienduse-/rakendusekogude seadistamiseks on soovitatav kaasata sait, mis hostib üksuses ExtensionInstallSources CRX-pakette ja paneb pakettide allalaadimise otselingid veebilehele. Selle veebilehe käivitaja saab luua reegliga ExtensionInstallForcelist.</translation> +<translation id="3171369832001535378">Seadme võrgu hostinime mall</translation> <translation id="3185009703220253572">alates versioonist <ph name="SINCE_VERSION" /></translation> <translation id="3187220842205194486">Androidi rakendused ei pääse juurde ettevõttevõtmetele. See reegel neid ei mõjuta.</translation> <translation id="3201273385265130876">Võimaldab määrata rakenduse <ph name="PRODUCT_NAME" /> kasutatava puhverserveri ega lase kasutajatel puhverserveri seadeid muuta. @@ -949,6 +963,7 @@ Selle reegli väärtus on registreerimismärk, mille saab Google'i administraatorikonsoolilt.</translation> <translation id="3496296378755072552">Paroolihaldur</translation> +<translation id="3502555714327823858">Kõigi dupleksrežiimide lubamine</translation> <translation id="350443680860256679">ARC reegli seadistamine</translation> <translation id="3504791027627803580">Täpsustab pildiotsinguks kasutatava otsingumootori URL-i. Otsingupäringud saadetakse GET-meetodiga. Kui määratud on reegel DefaultSearchProviderImageURLPostParams, siis kasutab pildiotsingupäring POST-meetodit. @@ -958,6 +973,7 @@ <translation id="350797926066071931">Luba Tõlge</translation> <translation id="3512226956150568738">Kui kliendi seadme mudel toetas ARC-d juba enne seda, kui üleminek ext4-le oli ARC käitamiseks vajalik, ja kui reegli ArcEnabled väärtuseks on määratud Tõene, siis toimib see valik sarnaselt väärtusega AskUser (väärtus 3). Kõigil muudel juhtudel (kui seadme mudel varem ARC-d ei toetanud või kui reegli ArcEnabled väärtuseks on määratud Väär) on see väärtus võrdne väärtusega DisallowArc (väärtus 0).</translation> <translation id="3524204464536655762">Ära luba ühelgi seadmel taotleda WebUSB API kaudu juurdepääsu USB-seadmetele</translation> +<translation id="3526752951628474302">Ainult mustvalge printimine</translation> <translation id="3528000905991875314">Luba alternatiivsed vealehed</translation> <translation id="3545457887306538845">Võimaldab teil juhtida, kus saab kasutada arendaja tööriistu. @@ -981,6 +997,7 @@ <translation id="3577251398714997599">Sekkuvate reklaamidega saitide reklaamiseaded</translation> <translation id="3591584750136265240">Sisselogimise autentimise käitumise seadistamine</translation> <translation id="3627678165642179114">Õigekirjakontrolli veebiteenuse lubamine või keelamine</translation> +<translation id="3628480121685794414">Simpleksprintimise lubamine</translation> <translation id="3646859102161347133">Ekraaniluubi tüübi määramine</translation> <translation id="3653237928288822292">Vaikeotsingupakkuja ikoon</translation> <translation id="3660562134618097814">SAML IdP küpsisefailide ülekandmine sisselogimisel</translation> @@ -1077,6 +1094,7 @@ Kui selle reegli väärtuseks määratakse Väär, siis teavet seansi kohta ei saadeta. Kui väärtuseks määratakse Tõene või seda ei määrata, saadetakse teavet seansi kohta.</translation> +<translation id="3858658082795336534">Vaikimisi kasutatav printimise dupleksrežiim</translation> <translation id="3859780406608282662">Parameteri lisamine variatsioonide lähteväärtuse toomisel rakendusest <ph name="PRODUCT_OS_NAME" />. Kui see on määratud, lisab see päringuparameetri „piira” URL-ile, mida kasutatakse variatsioonide lähteväärtuse toomisel. Parameetri väärtuseks on reeglis määratud väärtus. @@ -1098,7 +1116,7 @@ Iga loendi kirje sisaldab sõnastikku, mis peab väljal „extension-id” sisaldama laienduse ID-d ja väljal „update-url” värskenduse URL-i.</translation> <translation id="3874773863217952418">Funktsiooni Puuduta otsimiseks lubamine</translation> <translation id="3877517141460819966">Integreeritud kahe teguriga autentimise režiim</translation> -<translation id="3879208481373875102">Sunnitult installitud veebirakenduste loendi seadistamine</translation> +<translation id="3879208481373875102">Sundinstallitud veebirakenduste loendi seadistamine</translation> <translation id="388237772682176890">Selle reegli tugi katkestatakse versioonis M53 ja see eemaldatakse versioonis M54, kuna SPDY/3.1 tugi eemaldatakse. Keelab SPDY-protokolli kasutamise rakenduses <ph name="PRODUCT_NAME" />. @@ -1185,6 +1203,12 @@ Muul juhul võidakse määrata üks järgmistest väärtustest: „tls1.2” või „tls1.3”. Kui see on määratud, ei kasuta teenus <ph name="PRODUCT_NAME" /> määratud versioonist uuemaid SSL-i/TLS-i versioone. Tuvastamatut väärtust eiratakse.</translation> <translation id="4121350739760194865">Rakenduste reklaamide ilmumise takistamine uuel vahelehel</translation> <translation id="412697421478384751">Nõrkade lukustuskuva PIN-koodide määramise lubamine</translation> +<translation id="4129183564590133854">Reegel määrab, kas edastada teavet, mille alusel saab kasutajaid identifitseerida, nagu operatsioonisüsteemi sisselogimisteave, rakenduse <ph name="PRODUCT_NAME" /> profiili sisselogimisteave, rakenduse <ph name="PRODUCT_NAME" /> profiili nimi, rakenduse <ph name="PRODUCT_NAME" /> profiili tee ja rakenduse <ph name="PRODUCT_NAME" /> täitmistee. + + Kui reegel on määramata või seatud väärtusele Tõene, kogutakse teavet, mille alusel saab kasutajaid identifitseerida. + Kui reegel on seatud väärtusele Väär, ei koguta teavet, mille alusel saab kasutajaid identifitseerida. + + Reegel kehtib ainult juhul, kui Chrome'i aruandluse laiendus ja pilvehaldus on lubatud.</translation> <translation id="4138655880188755661">Ajapiirang</translation> <translation id="4157003184375321727">OS-ist ja püsivara versioonist teavitamine</translation> <translation id="4157594634940419685">CUPS-i omaprinteritele juurdepääsu lubamine</translation> @@ -1341,7 +1365,7 @@ Vaadake reegli võimalike seadete ja struktuuri täielikku kirjeldust https://www.chromium.org/administrators/policy-list-3/extension-settings-full </translation> <translation id="4554651132977135445">Kasutajareeglite tagastusliidese töötlemisrežiim</translation> -<translation id="4554841826517980623">Reegel määrab, kas teenuse<ph name="PRODUCT_NAME" /> failide võrguhoidlate funktsioon peab võrguhoidlate tuvastamiseks kasutama protokolli <ph name="NETBIOS_PROTOCOL" />. +<translation id="4554841826517980623">Reegel määrab, kas teenuse <ph name="PRODUCT_NAME" /> failide võrguhoidlate funktsioon peab võrguhoidlate tuvastamiseks kasutama protokolli <ph name="NETBIOS_PROTOCOL" />. Kui reegel on seatud väärtusele Tõene, kasutab hoidlate tuvastamise funktsioon võrgus hoidlate tuvastamiseks protokolli <ph name="NETBIOS_PROTOCOL" />. Kui reegel on seatud väärtusele Väär, ei kasuta hoidlate tuvastamise funktsioon hoidlate tuvastamiseks protokolli <ph name="NETBIOS_PROTOCOL" />. Kui reegel jäetakse seadistamata, on seade ettevõtte hallatavate kasutajate puhul vaikimisi keelatud ja haldamata kasutajate puhul lubatud.</translation> @@ -1496,6 +1520,12 @@ Kui jätate reegli määramata, siis võib importimine toimuda automaatselt või kasutajalt võidakse küsida, kas ta soovib importida.</translation> <translation id="5056708224511062314">Ekraaniluup on keelatud</translation> <translation id="5058573563327660283">Automaatse puhastamise ajal kettaruumi vabastamiseks kasutatava strateegia valimine (tugi on katkestatud)</translation> +<translation id="5058771123777243130">Reegel määrab, kas edastada reegli andmed ja reegli toomise aeg. + + Kui reegel on määramata või seatud väärtusele Tõene, kogutakse reegli andmed ja reegli toomise aeg. + Kui reegel on seatud väärtusele väär, ei koguta reegli andmeid ja reegli toomise aega. + + Reegel kehtib ainult juhul, kui Chrome'i aruandluse laiendus ja pilvehaldus on lubatud.</translation> <translation id="5067143124345820993">Kasutajate sisselogimise lubatud loend</translation> <translation id="5068140065960598044">Teenuse <ph name="PRODUCT_NAME" /> pilve-eeskirjad alistavad seadme-eeskirjad.</translation> <translation id="5085647276663819155">Printimise eelvaate keelamine</translation> @@ -1608,6 +1638,7 @@ <translation id="5366977351895725771">Kui väärtuseks on seatud valik Väär, siis keelatakse sellel kasutajal järelevalvega kasutajate loomine. Kõik olemasolevad järelevalvega kasutajad on ikka saadaval. Kui väärtuseks on seatud valik Tõene või Seadistamata, saab see kasutaja luua ja hallata järelevalvega kasutajaid.</translation> +<translation id="5369937289900051171">Ainult värviline printimine</translation> <translation id="5370279767682621504">HTTP/0.9 toe lubamine mittevaikeportide puhul</translation> <translation id="5378985487213287085">Võimaldab määrata, kas veebisaitidel on lubatud kuvada töölauateatisi. Töölauateatiste kuvamine võib olla vaikimisi keelatud või lubatud või kasutaja käest võidakse küsida iga kord, kui veebisait soovib kuvada töölauateatisi. @@ -1634,6 +1665,7 @@ Kui reeglit ei määrata, siis võidakse automaatselt importida või kasutajalt küsida, kas ta soovib importida.</translation> <translation id="5423197884968724595">Android WebView' piirangu nimi:</translation> +<translation id="5424147596523390018">Kõigi värvirežiimide lubamine</translation> <translation id="5442026853063570579">See reegel haldab ka juurdepääsu Androidi arendaja valikutele. Kui määrate reegli väärtuseks „DeveloperToolsDisallowed” (väärtus 2), ei pääse kasutajad arendaja valikutele juurde. Kui määrate reeglile muu väärtuse või jätate selle määramata, pääsevad kasutajad arendaja valikutele juurde, puudutades rakenduses Androidi seaded seitse korda järgunumbrit.</translation> <translation id="5447306928176905178">Mäluteabe (JS kuhja maht) aruandluse lubamine lehele (iganenud)</translation> <translation id="5457065417344056871">Külalisrežiimi lubamine brauseris</translation> @@ -1701,6 +1733,7 @@ <translation id="5586942249556966598">Ära tee midagi</translation> <translation id="5630352020869108293">Viimase seansi taastamine</translation> <translation id="5645779841392247734">Luba küpsised nendel saitidel</translation> +<translation id="5689430183304951538">Prinditava lehe vaikesuurus</translation> <translation id="5693469654327063861">Luba andmete üleviimine</translation> <translation id="5694594914843889579">Kui reegli väärtuseks on määratud Tõene, siis ei ole väline salvestusseade failibrauseris saadaval. @@ -1730,6 +1763,7 @@ Kui jätate selle reegli määramata, kasutatakse vaikeaega. Reegli väärtus tuleb määrata millisekundites.</translation> +<translation id="5783009211970309878">Päiste ja jaluste printimine</translation> <translation id="5809728392451418079">Määra seadmepõhiste kontode kuvatav nimi</translation> <translation id="5814301096961727113">Sisselogimisekraanil suulise tagasiside vaikeoleku määramine</translation> <translation id="5815129011704381141">Automaatne taaskäivitamine pärast värskendamist</translation> @@ -1747,6 +1781,7 @@ Kui valite seade „Keelatud”, siis ei saa lehti inkognito režiimis avada. Kui valite seade „Jõustatud”, siis saab lehti avada AINULT inkognito režiimis.</translation> +<translation id="582857022372205358">Lühema külje dupleksprintimise lubamine</translation> <translation id="583091600226586337"> Kui reegel on lubatud, küsitakse kasutajalt enne allalaadimist, kuhu iga fail salvestada. Kui reegel on keelatud, algavad allalaadimised kohe ja kasutajalt ei küsita, kuhu fail salvestada. @@ -1782,6 +1817,7 @@ Kui see seade on keelatud või seadistamata, siis ei edastata gnubby autentimistaotlusi puhverserveri abil.</translation> <translation id="5898486742390981550">Kui sisse on loginud mitu kasutajat, saab Androidi rakendusi kasutada ainult peamine kasutaja.</translation> +<translation id="5901427587865226597">Ainult dupleksprintimine</translation> <translation id="5906199912611534122">Võimaldab lubada või keelata võrguühenduse piiramise. See kehtib kõigi kasutajate ja seadme kõigi liideste puhul. Pärast määramist on piirang aktiivne, kuni see reeglis keelatakse. @@ -1889,6 +1925,7 @@ Reegli väärtus tuleb määrata millisekundites. Väärtusi piiratakse nii, et need oleks väiksemad kui tegevusetuse aeg.</translation> <translation id="6097601282776163274">URL-i võtmetega anonüümsete andmete kogumise lubamine</translation> +<translation id="6099853574908182288">Vaikimisi kasutatav printimise värvirežiim</translation> <translation id="6111936128861357925">Luba dinosauruse üllatusmäng</translation> <translation id="6114416803310251055">iganenud</translation> <translation id="6133088669883929098">Luba kõikidel saitidel võtmeid luua</translation> @@ -1903,6 +1940,7 @@ Kui jätate selle reegli määramata, kasutatakse kõikide saitide puhul globaalset vaikeväärtust, mis pärineb reeglist „DefaultPluginsSetting” (kui see on määratud) või kasutaja isiklikust seadistusest.</translation> <translation id="6190022522129724693">Hüpikakende vaikeseade</translation> +<translation id="6190367314942602985">Kasutaja identimisteabe edastamine</translation> <translation id="6197453924249895891">Annab juurdepääsu laienduste ettevõttevõtmetele. Võtmed on mõeldud ettevõttes kasutamiseks, kui need luuakse hallatud kontol chrome.enterprise.platformKeys API-ga. Muul viisil imporditud või loodud võtmed pole määratud ettevõttes kasutamiseks. @@ -1912,6 +1950,8 @@ Vaikimisi ei saa laiendus ettevõttes kasutamiseks määratud võtit kasutada. See on sama mis laienduse puhul reegli allowCorporateKeyUsage määramine väärtusele Väär. Ainult siis, kui reegel allowCorporateKeyUsage on laienduse puhul määratud väärtusele Tõene, saab laiendus ettevõttes kasutamiseks määratud mis tahes platvormivõtit kasutada mis tahes andmete allkirjastamiseks. See luba tuleks anda vaid siis, kui laienduse juurdepääs võtmele on usaldusväärne ja ründajate eest kaitstud.</translation> +<translation id="6208896993204286313">Rakenduse <ph name="PRODUCT_NAME" /> reegliteabe edastamine</translation> +<translation id="6210259502936598222">Operatsioonisüsteemi ja rakenduse <ph name="PRODUCT_NAME" /> versiooniteabe edastamine</translation> <translation id="6211428344788340116">Saadab teavet seadme aktiivsuse aja kohta. Kui te seda seadet ei määra või määrate olekule Tõene, saadavad registreeritud seadmed teavet ajaperioodide kohta, mil kasutaja seadet kasutab. Kui määrate seade olekule Väär, siis ei talletata ega saadeta teavet seadme aktiivsuse aja kohta.</translation> @@ -1929,6 +1969,7 @@ Seade lubamisel ja ebastandardse pordi sisestamisel (nt muu port kui 80 või 443) lisatakse see loodud Kerberose SPN-i. Seade keelamisel või määramata jätmisel ei hõlma loodud Kerberose SPN ühtki porti.</translation> +<translation id="6261643884958898336">Masina identimisteabe edastamine</translation> <translation id="6281043242780654992">Omasõnumside reeglite seadistamine. Musta nimekirja lisatud omasõnumside hostid on keelatud seni, kuni need lisatakse lubatud üksuste nimekirja.</translation> <translation id="6282799760374509080">Heli jäädvustamise lubamine või keelamine</translation> <translation id="6284362063448764300">TLS 1.1</translation> @@ -1959,6 +2000,7 @@ Kui otsustate puhverserveri automaatselt tuvastada, esitatakse Androidi rakendustele URL „http://wpad/wpad.dat”. Ühtegi teist puhverserveri automaatse tuvastamise protokolli osa ei kasutata. Kui otsustate kasutada puhverserveri skripti .pac, esitatakse Androidi rakendustele skripti URL.</translation> +<translation id="6430366557948788869">Chrome'i aruandluse laiendus</translation> <translation id="6440051664870270040">Saitidel samaaegse navigeerimise ja hüpikakende avamise lubamine</translation> <translation id="6447948611083700881">Varundamine ja taastamine on keelatud</translation> <translation id="645425387487868471">Teenusesse <ph name="PRODUCT_NAME" /> sundsisselogimise lubamine</translation> @@ -2005,6 +2047,7 @@ <translation id="6628646143828354685">Võimaldab määrata, kas veebisaitidel on lubatud juurde pääseda läheduses asuvatele Bluetoothi seadmetele. Juurdepääsu saab täielikult blokeerida või kasutajalt võidakse iga kord küsida, kui veebisait soovib läheduses asuvatele Bluetoothi seadmetele juurde pääseda. Kui seda reeglit ei määrata, kasutatakse väärtust „3” ja kasutaja saab seda muuta.</translation> +<translation id="663685822663765995">Printimise värvirežiimi piiramine</translation> <translation id="6641981670621198190">Keela 3D-graafika API-liideste tugi</translation> <translation id="6647965994887675196">Kui väärtuseks on seatud valik Tõene, saab luua ja kasutada järelevalvega kasutajaid. @@ -2032,6 +2075,7 @@ 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="6698632841807204978">Mustvalge printimise lubamine</translation> <translation id="6699880231565102694">Kahetasandilise autentimise lubamine kaugjuurdepääsu hostidele</translation> <translation id="6724842112053619797">Kui lubate selle seade, kirjutatakse teenuse <ph name="PRODUCT_NAME" /> profiilide salvestatud seaded, näiteks järjehoidjad, automaatse täitmise andmed, paroolid jms, faili, mis talletatakse rändlust kasutava profiili kausta või asukohta, mille administraator määrab reegliga <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Reegli lubamine keelab pilveteenusega sünkroonimise. @@ -2071,6 +2115,12 @@ Selle seadega hallatakse tervituslehtede esitamist, mis aitavad kasutajatel teenusesse <ph name="PRODUCT_NAME" /> sisse logida, määrata selle vaikebrauseriks või muul viisil neid toote funktsioonidest teavitada.</translation> <translation id="6766216162565713893">Luba saitidel paluda kasutajatelt juurdepääsu läheduses asuvatele Bloetoothi seadmetele</translation> <translation id="6770454900105963262">Aruandeteave aktiivsete kioskiseansside kohta</translation> +<translation id="6773056206551814546">Reegel määrab, kas koguda teavet, mille alusel saab masinaid identifitseerida, nagu masina nimi ja võrguaadressid. + + Kui reegel on määramata või seatud väärtusele Tõene, kogutakse teavet, mille alusel saab masinaid identifitseerida. + Kui reegel on seatud väärtusele Väär, ei koguta teavet, mille alusel saab masinaid identifitseerida. + + Reegel kehtib ainult juhul, kui Chrome'i aruandluse laiendus ja pilvehaldus on lubatud.</translation> <translation id="6786747875388722282">Laiendused</translation> <translation id="6786967369487349613">Rändlusprofiili kataloogi määramine</translation> <translation id="6810445994095397827">Blokeeri JavaScript nendel saitidel</translation> @@ -2175,6 +2225,7 @@ <translation id="6923366716660828830">Määrab vaikeotsingupakkuja nime. Kui see jäetakse tühjaks või määramata, siis kasutatakse otsingu URL-i määratud hosti nime. See reegel kehtib vaid juhul, kui reegel „DefaultSearchProviderEnabled” on lubatud.</translation> +<translation id="6926703471186170050">Pikema külje dupleksprintimise lubamine</translation> <translation id="6931242315485576290">Keela andmete sünkroonimine Google'iga</translation> <translation id="6936894225179401731">Määrab puhverserveri samaaegsete ühenduste maksimumarvu. @@ -2236,9 +2287,9 @@ Kui reegli väärtuseks määratakse Väär või jäetakse see määramata, ei tohi <ph name="PRODUCT_NAME" /> logisid koguda ega üles laadida. - Need logid sisaldavad diagnostikateavet, mis on kasulik Chrome'i hääl- või videokõnedega seotud probleemide silumisel. See hõlmab näiteks näiteks saadetud ja vastuvõetud RTP-pakettide kellaaja ja suuruse teavet, tagasisidet võrgu ummistuste kohta ja metaandmeid heli- ja videokaadrite aja ja kvaliteedi kohta. Logid ei sisalda kõne hääl- ega videosisu. + Need logid sisaldavad diagnostikateavet, mis on kasulik Chrome'i hääl- või videokõnedega seotud probleemide silumisel. See hõlmab näiteks saadetud ja vastuvõetud RTP-pakettide kellaaja ja suuruse teavet, tagasisidet võrgu ummistuste kohta ja metaandmeid heli- ja videokaadrite aja ja kvaliteedi kohta. Logid ei sisalda kõne hääl- ega videosisu. - Chrome'is savad andmete kogumise käivitada ainult Google'i veebiteenused, nt Google Hangouts või Google Meet. + Chrome'is saavad andmete kogumise käivitada ainult Google'i veebiteenused, nt Google Hangouts või Google Meet. Google võib seansi ID alusel seostada logid muude logidega, mida Google'i teenus kogub. Selle eesmärk on hõlbustada silumist. </translation> <translation id="706669471845501145">Luba saitidel töölauateatiste näitamine</translation> @@ -2382,6 +2433,7 @@ Kui seade on keelatud või seadistamata, saavad kasutajad pärast hoiatuse kuvamist teha valiku edasiminekuks märgistatud saidile. Vaadake lisateavet ohutu sirvimise kohta aadressilt https://developers.google.com/safe-browsing.</translation> +<translation id="737655323154569539">Piirab prinditava lehe suurust. Määramata reeglit ja tühja hulka käsitletakse piirangu puudumisena.</translation> <translation id="7417728346887499628">Kui reegel on keelatud, on Chrome Cleanupil keelatud süsteemi soovimatu tarkvara suhtes skannida ja puhastada. Chrome Cleanupi käsitsi käivitamine aadressil chrome://settings/cleanup on keelatud. Kui reegel on lubatud või määramata, skannib Chrome Cleanup regulaarselt süsteemi soovimatu tarkvara suhtes. Soovimatu tarkvara leidmisel küsitakse kasutajalt, kas ta soovib selle eemaldada. Chrome Cleanupi käsitsi käivitamine aadressil chrome://settings on lubatud. @@ -2452,6 +2504,8 @@ <translation id="7617319494457709698">Reegel määrab lubatud laiendused, mis kasutavad kaugatesteerimisel API <ph name="ENTERPRISE_PLATFORM_KEYS_API" /> funktsiooni <ph name="CHALLENGE_USER_KEY_FUNCTION" />. API kasutamiseks tuleb laiendused sellesse loendisse lisada. Kui laiendust loendis pole või loendit pole koostatud, siis kõne API-le ebaõnnestub ja saate vastuseks veakoodi.</translation> +<translation id="7618907117929117943">Võimaldab naasta ja jääda sihtversioonile, kui operatsioonisüsteemi versioon on sihtversioonist uuem ja seadme tasemel seadistuse (sh võrgumandaat) saab tagasimineku kaudu üle viia, jättes pärast tagasiminekut vahele ka OOBE. Vältige tagasiminekut või tühistage tagasiminek juhul, kui see ei ole võimalik (kuna sihtversioon ei toeta andmete taastamist või muudatus ei ole tagasiühilduv). + Seda toetatakse operatsioonisüsteemi <ph name="PRODUCT_OS_NAME" /> 70. ja uuemates versioonides. Vanemate klientide puhul tähendab väärtus, et tagasiminek on keelatud.</translation> <translation id="7625444193696794922">Määrab väljalaskekanali, millele seade tuleks lukustada.</translation> <translation id="7632724434767231364">GSSAPI-teegi nimi</translation> <translation id="7635471475589566552">Seadistab rakenduse lokaadi rakenduses <ph name="PRODUCT_NAME" /> ja takistab kasutajatel lokaadi muutmist. @@ -2655,6 +2709,7 @@ Kui lubate seade või ei määra väärtust, siis saab kasutaja automaatset täitmist juhtida. See võimaldab neil seadistada automaatse täitmise profiile ning automaatse täitmise soovi korral sisse või välja lülitada.</translation> <translation id="8044493735196713914">Teabe saatmine seadme käivitusrežiimi kohta</translation> <translation id="8050080920415773384">Printimise omaprotsess</translation> +<translation id="8053580360728293758">Alistab printimisel vaikimisi kasutatava värvirežiimi. Reeglit eiratakse, kui režiim ei ole saadaval.</translation> <translation id="8059164285174960932">URL, kust kaugjuurdepääsuga kliendid peaksid saama autentimismärgi</translation> <translation id="8078366200175825572">Võimaldab teil määrata URL-i mustrite loendi, mis määrab saidid, millel on keelatud küpsisefaile määrata. @@ -2843,6 +2898,7 @@ Siin võib „versioon” tähendada nii täpset versiooninumbrit „61.0.3163.120” kui ka versiooni eesliidet „61.0” </translation> <translation id="8544375438507658205">Rakenduse <ph name="PRODUCT_FRAME_NAME" /> HTML-i vaikerenderdaja</translation> <translation id="8544465954173828789">SMS-ide sünkroonimise lubamine telefoni ja Chromebooki vahel</translation> +<translation id="8548832052135586762">Lubab ainult värvilise või mustvalge printimise või eemaldab värvirežiimi piirangu. Määramata reeglit käsitletakse piirangu puudumisena.</translation> <translation id="8549772397068118889">Hoiatamine sisupakettidest väljaspool olevate saitide külastamisel</translation> <translation id="8566842294717252664">Veebipoe peitmine uuel vahelehel ja rakenduste käivitajas</translation> <translation id="8586528890725660268">Määrab printerid, mida kasutaja ei saa kasutada. @@ -2881,11 +2937,11 @@ Kui see reegel jäetakse määramata, kaitseb paroolikaitse ainult Google'i paroole, ent kasutaja saab seda seadet muuta.</translation> <translation id="8672321184841719703">Automaatse värskendamise sihtversioon</translation> <translation id="867410340948518937">U2F (universaalne teine tegur)</translation> -<translation id="8682611302223077049">Võimaldab määrata ajaperioodi (millisekundites), mille jooksul antakse kasutajatele teada, et ootel oleva värskenduse rakendamiseks tuleb <ph name="PRODUCT_NAME" /> või operatsioonisüsteemiga <ph name="PRODUCT_OS_NAME" /> seade taaskäivitada. +<translation id="8682611302223077049">Võimaldab määrata ajavahemiku (millisekundites), mille jooksul antakse kasutajatele teada, et ootel oleva värskenduse rakendamiseks tuleb <ph name="PRODUCT_NAME" /> või operatsioonisüsteemiga <ph name="PRODUCT_OS_NAME" /> seade taaskäivitada. - Selle vahemiku jooksul teavitatakse kasutajat värskendusest korduvalt. <ph name="PRODUCT_OS_NAME" />-i seadmete puhul kuvatakse värskenduse tuvastamisel taaskäivituse märguanne süsteemisalves. <ph name="PRODUCT_NAME" />'i brauseri puhul rakenduse menüü muutub, kui kolmandik ajavahemikust on möödunud, ja näitab, et rakendus on vaja taaskäivitada. Märguanne muudab esimest korda värvi siis, kui möödunud on kaks kolmandikku ajavahemikust, ja teist korda ajavahemiku lõpus. Reegliga <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> lubatud lisamärguanded järgivad sama ajakava. + Selle vahemiku jooksul teavitatakse kasutajat värskendusest korduvalt. Operatsioonisüsteemiga <ph name="PRODUCT_OS_NAME" /> seadmete puhul kuvatakse värskenduse tuvastamisel taaskäivituse märguanne süsteemisalves. Brauseri <ph name="PRODUCT_NAME" /> puhul rakenduse menüü muutub, kui kolmandik ajavahemikust on möödunud, ja näitab, et rakendus on vaja taaskäivitada. Märguanne muudab esimest korda värvi siis, kui möödunud on kaks kolmandikku ajavahemikust, ja teist korda ajavahemiku lõpus. Reegliga <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> lubatud lisamärguanded järgivad sama ajakava. - Kui reegel on määramata, kasutatakse vaikeperioodi, mis on <ph name="PRODUCT_OS_NAME" />-iga seadmete puhul 345 600 000 millisekundit (neli päeva) ja <ph name="PRODUCT_NAME" />'i puhul 604 800 000 millisekundit (üks nädal).</translation> + Kui reegel on määramata, kasutatakse vaikeperioodi, mis on operatsioonisüsteemiga <ph name="PRODUCT_OS_NAME" /> seadmete puhul 345 600 000 millisekundit (neli päeva) ja brauseri <ph name="PRODUCT_NAME" /> puhul 604 800 000 millisekundit (üks nädal).</translation> <translation id="8685024486845674965">Paroolikaitse hoiatuse käivitab parooli uuesti kasutamine</translation> <translation id="8693243869659262736">Kasuta sisseehitatud DNS-i klienti</translation> <translation id="8704831857353097849">Keelatud pistikprogrammide loend</translation> @@ -2954,6 +3010,7 @@ Kui see seade jäetakse seadistamata, saab kasutaja otsustada, kas funktsiooni kasutada või mitte.</translation> <translation id="8870318296973696995">Avaleht</translation> +<translation id="8876188741456358123">Alistab printimisel vaikimisi kasutatava dupleksrežiimi. Reeglit eiratakse, kui režiim ei ole saadaval.</translation> <translation id="8882006618241293596">Blokeeri nendel saitidel pistikprogramm <ph name="FLASH_PLUGIN_NAME" /></translation> <translation id="890403179930035128">Sundlubab õigekirjakontrolli keeled. Loendis olevaid tundmatuid keeli eiratakse. @@ -3049,6 +3106,8 @@ <translation id="9084985621503260744">Määrake, kas videotoimingud mõjutavad toitehaldust</translation> <translation id="9088433379343318874">Jälgitava kasutaja sisupakkuja lubamine</translation> <translation id="9088444059179765143">Ajavööndi automaatse tuvastamise viisi seadistamine</translation> +<translation id="9094064873808699479">Võimaldab naasta ja jääda sihtversioonile, kui operatsioonisüsteemi versioon on sihtversioonist uuem. Proovige võimaluse korral seadme tasemel seadistus (sh võrgumandaat) tagasiminekuprotsessi kaudu üle viia, ent tehke seejuures täielik Powerwash, isegi kui andmete taastamine ei ole võimalik (kuna sihtversioon ei toeta andmete taastamist või muudatus ei ole tagasiühilduv). + Seda toetatakse alates operatsioonisüsteemi <ph name="PRODUCT_OS_NAME" /> 70. versioonist. Vanemate klientide puhul tähendab väärtus, et tagasiminek on keelatud.</translation> <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> @@ -3107,6 +3166,13 @@ <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> <translation id="9200828125069750521">Parameetrid POST-meetodit kasutava kujutise URL-i jaoks</translation> +<translation id="920209539000507585">Saate printimisdialoogis päised ja jalused sundlubada või -keelata. + + Kui reegel on määramata, saab kasutaja otsustada, kas printida päised ja jalused. + + Kui reegel on seatud väärtusele Väär, ei ole seade „Päised ja jalused” printimise eelvaate dialoogis valitud ja kasutaja ei saa seda muuta. + + Kui reegel on seatud väärtusele Tõene, on seade „Päised ja jalused” printimise eelvaate dialoogis valitud ja kasutaja ei saa seda muuta.</translation> <translation id="9210953373038593554">Seadistab SAML-i sisselogimiste autentimise tüübi. Kui reegel on määramata või seatud vaikeväärtusele (0), määrab brauser olenevalt muudest teguritest SAML-i sisselogimiste käitumise. Kõige tavapärasema stsenaariumi korral põhineb kasutajate autentimine ja vahemällu talletatud kasutajaandmete kaitse paroolidel, mille kasutajad käsitsi sisestavad. @@ -3114,6 +3180,9 @@ Kui reegel on seatud väärtusele ClientCertificate (1), kasutatakse äsja lisatud ja SAML-i kaudu sisse logivate kasutajate puhul kliendi sertifikaadi autentimist. Selliste kasutajate puhul ei kasutata paroole ja nende vahemällu talletatud kohalikke andmeid kaitstakse vastavate krüptovõtmetega. See seade võimaldab näiteks seadistada kiipkaardipõhise autentimise (pange tähele, et kiipkaardi vaherakendused tuleb installida reegli DeviceLoginScreenAppInstallList kaudu). Reegel mõjutab ainult kasutajaid, kes kasutavad autentimiseks SAML-i.</translation> +<translation id="9211439035693857287">Võimaldab seadistada Chrome'i aruandluse laiendusega seotud reeglid. + + Reeglid kehtivad ainult juhul, kui Chrome'i aruandluse laiendus ja pilvehaldus on lubatud.</translation> <translation id="9213347477683611358">Seadistage seadmetasemel taustapildi kujutis, mis kuvatakse sisselogimisekraanil, kui ükski kasutaja pole veel seadmesse sisse loginud. Selle reegli määramiseks tuleb määrata URL, kust Chrome OS-i seade saab alla laadida taustapildi kujutise ja krüptograafilise räsiväärtuse, mida kasutatakse allalaadimise terviklikkuse kontrollimiseks. Kujutis peab olema JPEG-vormingus ja faili suurus ei tohi ületada 16 MB. URL peab olema autentimiseta juurdepääsetav. Taustapildi kujutis laaditakse alla ja salvestatakse vahemällu. See laaditakse uuesti alla iga kord, kui URL või räsiväärtus muutub. Reegel tuleks määrata stringina, mis näitab URL-i ja räsiväärtust JSON-vormingus, nt
diff --git a/components/policy/resources/policy_templates_fa.xtb b/components/policy/resources/policy_templates_fa.xtb index 0b92868..f9c15f8 100644 --- a/components/policy/resources/policy_templates_fa.xtb +++ b/components/policy/resources/policy_templates_fa.xtb
@@ -202,6 +202,7 @@ <translation id="1522425503138261032">به سایتها برای ردیابی موقعیت مکانی فیزیکی کاربر اجازه داده شود</translation> <translation id="152657506688053119">فهرست آدرسهای اینترنتی دیگر برای ارائهدهنده جستجوی پیشفرض</translation> <translation id="1530812829012954197">همیشه این الگوهای نشانی وب در مرورگر میزبان اجرا و تفسیر شود</translation> +<translation id="1541170838458414064">محدود کردن اندازه چاپ صفحه</translation> <translation id="1553684822621013552">وقتی این خطمشی روی «درست» تنظیم شود، ARC برای کاربر فعال میشود (مشمول بررسیهای اضافی تنظیمات خطمشی میشود - اگر حالت موقتی یا ثبت ورود چندگانه در جلسه کاربر کنونی فعال باشد، ARC همچنان در دسترس نخواهد بود). @@ -374,6 +375,12 @@ <translation id="2082205219176343977">پایینترین نسخه Chrome مجاز دستگاه را پیکربندی کنید.</translation> <translation id="209586405398070749">کانال پایدار</translation> <translation id="2098658257603918882">فعال کردن گزارش استفاده و دادههای مربوط به توقف کار برنامه</translation> +<translation id="2098916259427011890">این خطمشی کنترل میکند اطلاعات نسخه گزارش شود یا نه (مانند نسخه OS، پلتفورم OS، معماری OS، نسخه <ph name="PRODUCT_NAME" /> و کانال <ph name="PRODUCT_NAME" />). + + اگر این خطمشی تنظیم نشود یا روی «درست» تنظیم شود، اطلاعات نسخه جمعآوری میشود. + اگر این خطمشی روی «نادرست» تنظیم شود، اطلاعات نسخه جمعآوری نمیشود. + + این خطمشی تنها درصورتی موثر است که «Chrome Reporting Extension» و «مدیریت ابری» فعال باشد.</translation> <translation id="2111016292707172233">دردسترس بودن «ضربه برای جستجو» را در نمای محتوای <ph name="PRODUCT_NAME" /> فعال میکند. اگر این تنظیم را فعال کنید، «ضربه برای جستجو» برای کاربر دردسترس خواهد بود و کاربر میتواند این ویژگی را روشن یا خاموش کند. @@ -406,6 +413,8 @@ اگر خطمشی تنظیم نشود، مقدار پیشفرض ۰ درجه است و کاربر میتواند آن را تغییر دهد. در این صورت، مقدار پیشفرض با راهاندازی مجدد دوباره اعمال نمیشود.</translation> +<translation id="214901426630414675">محدود کردن حالت چاپ دورویه</translation> +<translation id="2149330464730004005">فعال کردن چاپ رنگی</translation> <translation id="2156132677421487971">پیکربندی خطمشیهای <ph name="PRODUCT_NAME" />، قابلیتی است که به کاربران امکان میدهد محتوای برگهها، سایتها یا میزکار را از مرورگر به نمایشگرها و سیستمهای صوتی راه دور ارسال کنند.</translation> <translation id="2166472654199325139">سایتهای دارای محتوای بزرگسالان فیلتر نشود</translation> <translation id="2168397434410358693">تأخیر بیحرکتی هنگام کار با برق</translation> @@ -594,6 +603,7 @@ <translation id="2529880111512635313">پیکربندی فهرست برنامهها و افزونههای بهاجبار نصبشده</translation> <translation id="253135976343875019">تأخیر هشدار عدم فعالیت هنگامی که دستگاه به برق وصل است</translation> <translation id="2536525645274582300">کاربر تصمیم میگیرد خدمات مکان Google فعال شود یا نه</translation> +<translation id="2550593661567988768">فقط چاپ یکرویه</translation> <translation id="2552966063069741410">منطقه زمانی</translation> <translation id="2562339630163277285">نشانی وب موتور جستجوی مورداستفاده برای ارائه نتایج فوری را مشخص میکند. این نشانی وب باید حاوی رشته <ph name="SEARCH_TERM_MARKER" /> باشد، که در زمان پرسمان با نوشتاری که کاربر تاکنون وارد کرده است جایگزین میشود. @@ -721,9 +731,12 @@ اگر این تنظیم را غیرفعال کنید یا مقداری برای آن تنظیم نکنید، «پیشنمایش چاپ» از آخرین چاپگر استفادهشده، بهعنوان انتخاب مقصد پیشفرض استفاده میکند. اگر این تنظیم را فعال کنید، «پیشنمایش چاپ» از چاپگر پیشفرض سیستمعامل، بهعنوان انتخاب مقصد پیشفرض استفاده میکند.</translation> +<translation id="2856674246949497058">اگر نسخه OS جدیدتر از نسخه هدف است، به عقب برگردید و در نسخه هدف بمانید. درحین پردازش powerwash انجام دهید.</translation> <translation id="2872961005593481000">خاموش کردن</translation> +<translation id="2873651257716068683">اندازه صفحه چاپ پیشفرض را لغو میکند. اگر اندازه صفحه دردسترس نباشد، این خطمشی نادیده گرفته میشود.</translation> <translation id="2874209944580848064">نکته برای دستگاههای <ph name="PRODUCT_OS_NAME" /> که از برنامههای Android پشتیبانی میکنند:</translation> <translation id="2877225735001246144">غیرفعال کردن جستجوی CNAME هنگام راستیآزمایی Kerberos</translation> +<translation id="2892414556511568464">اندازه صفحه چاپ را محدود میکند. درصورت تنظیم نکردن و خالی بودن خطمشی، محدودیتی درنظر گرفته نمیشود.</translation> <translation id="2893546967669465276">ارسال گزارشهای سیستم به سرور مدیریت</translation> <translation id="2899002520262095963">برنامههای Android میتوانند از پیکربندیهای شبکه و گواهینامههای مرکز صدور گواهی که ازطریق این خطمشی تنظیم شدهاند استفاده کنند اما به بعضی گزینههای پیکربندی دسترسی ندارند.</translation> <translation id="290002216614278247">به شما امکان میدهد جلسه کاربر را براساس زمان کارخواه یا سهمیه مصرف روزانه قفل کنید. @@ -809,6 +822,7 @@ از سرورها خواسته میشود به مجموعههای رمز ECDHE منتقل شوند. درصورتی که این مجموعهها در دسترس نباشند، مطمئن شوید که مجموعه رمزی با استفاده از تبادل کلید RSA فعال است.</translation> <translation id="316778957754360075">این تنظیم از نسخه ۲۹ <ph name="PRODUCT_NAME" /> کنار گذاشته شده است. روش پیشنهادی برای تنظیم مجموعهٔ برنامه/افزودنی با میزبانی سازمان این است که سایت میزبان بستههای CRX را در منابع نصب افزودنی گنجانده و لینکهای بارگیری مستقیم در بستهها در صفحه وب قرار داده شود. سپس با استفاده از خطمشی فهرست منبع نصب افزودنی میتوان یک راهانداز نیز برای آن صفحه وب ایجاد نمود.</translation> +<translation id="3171369832001535378">الگوی نام میزبان شبکه دستگاه</translation> <translation id="3185009703220253572">از نسخه <ph name="SINCE_VERSION" /></translation> <translation id="3187220842205194486">برنامههای Android نمیتوانند به کلیدهای شرکت دسترسی پیدا کنند. این خطمشی بر آنها تأثیری ندارد.</translation> <translation id="3201273385265130876">به شما امکان میدهد ازطریق <ph name="PRODUCT_NAME" /> سرور پروکسی مورد استفاده را مشخص کنید و به کاربران اجازه نمیدهد تنظیمات پروکسی را تغییر دهند. @@ -915,6 +929,7 @@ اگر این خطمشی تنظیم شده باشد، <ph name="PRODUCT_NAME" /> خود را ثبت میکند و خطمشی ابری مربوطه را برای همه نمایهها اعمال میکند. مقدار این خطمشی یک کد ثبتنام است که از «کنسول سرپرست Google» قابل بازیابی است.</translation> <translation id="3496296378755072552">مدیر گذرواژه</translation> +<translation id="3502555714327823858">مجاز کردن همه حالتهای دورویه</translation> <translation id="350443680860256679">پیکربندی ARC</translation> <translation id="3504791027627803580">نشانی وب موتور جستجوی مورد استفاده برای انجام جستجوی تصویری را مشخص میکند. درخواستهای جستجو با استفاده از روش GET ارسال خواهند شد. اگر قانون DefaultSearchProviderImageURLPostParams تنظیم شود، درخواستهای جستجوی تصویر در عوض از روش POST استفاده خواهند کرد. @@ -923,6 +938,7 @@ <translation id="350797926066071931">فعال کردن ترجمه</translation> <translation id="3512226956150568738">اگر مدل دستگاه کارخواه از قبل از ARC پشتیبانی کند (قبل از اینکه انتقال به ext4 برای اجرای ARC لازم باشد) و اگر خطمشی ArcEnabled روی «درست» تنظیم شده باشد، این گزینه عملکردی مانند AskUser (مقدار ۳) خواهد داشت. در همه شرایط دیگر (اگر مدل دستگاه از قبل از ARC پشتیبانی نکند یا اگر خطمشی ArcEnabled روی «نادرست» تنظیم شده باشد)، این مقدار معادل DisallowArc (مقدار ۰) خواهد بود.</translation> <translation id="3524204464536655762">به هیچ سایتی برای درخواست دسترسی به دستگاههای USB ازطریق رابط برنامهنویسی نرمافزار WebUSB اجازه ندهید</translation> +<translation id="3526752951628474302">فقط چاپ تکرنگ</translation> <translation id="3528000905991875314">فعال کردن صفحات خطای جایگزین</translation> <translation id="3545457887306538845">اجازه میدهد موارد استفاده «ابزارهای برنامهنویس» را کنترل کنید. @@ -946,6 +962,7 @@ <translation id="3577251398714997599">تنظیم آگهی برای سایتهای حاوی آگهیهای مزاحم</translation> <translation id="3591584750136265240">پیکربندی رفتار احراز هویت ورود به سیستم</translation> <translation id="3627678165642179114">فعال یا غیر فعال کردن غلطگیر املای سرویس وب</translation> +<translation id="3628480121685794414">فعال کردن چاپ یکرویه</translation> <translation id="3646859102161347133">تنظیم نوع ذرهبین صفحه نمایش</translation> <translation id="3653237928288822292">نماد ارائه دهنده جستجوی پیشفرض</translation> <translation id="3660562134618097814">انتقال کوکیهای SAML IdP هنگام ورود به سیستم</translation> @@ -1038,6 +1055,7 @@ اگر خطمشی روی نادرست تنظیم شود، اطلاعات جلسه کیوسک گزارش داده نخواهد شد. اگر روی درست تنظیم شود یا تنظیم نشود، اطلاعات جلسه کیوسک گزارش داده خواهد شد.</translation> +<translation id="3858658082795336534">حالت چاپ دورویه پیشفرض</translation> <translation id="3859780406608282662">پارامتری را به واکشی مقادیر متغیر در <ph name="PRODUCT_OS_NAME" /> اضافه کنید. در صورت تعیین، پارامتر درخواستی با نام «restrict» را به نشانی وب مورد استفاده برای واکشی مقادیر متغیر اضافه میکند. مقدار آن پارامتر همان مقدار تعیین شده در این خطمشی خواهد بود. @@ -1145,6 +1163,12 @@ درغیر اینصورت، ممکن است روی یکی از مقادیر «tls1.2» یا «tls1.3» تنظیم شود. پس از تنظیم شدن، <ph name="PRODUCT_NAME" /> از نسخههای «لایه سوکتهای امن»/«امنیت لایه انتقال» (SSL/TLS) بالاتر از نسخه تعیینشده استفاده نمیکند. مقدار ناشناس، نادیده گرفته میشود.</translation> <translation id="4121350739760194865">مانع از نمایش تبلیغات برنامه در صفحه برگهٔ جدید میشود</translation> <translation id="412697421478384751">امکان دادن به کاربران برای تنظیم پینهای ضعیف برای پین صفحه درحالت قفل</translation> +<translation id="4129183564590133854">این خطمشی کنترل میکند اطلاعاتی که میتواند برای شناسایی کاربران استفاده شود، گزارش شود یا نه، (مانند ورود به سیستم OS، ورود به سیستم نمایه <ph name="PRODUCT_NAME" />، نام نمایه <ph name="PRODUCT_NAME" />، مسیر نمایه <ph name="PRODUCT_NAME" /> و مسیر اجرایی <ph name="PRODUCT_NAME" />). + + اگر این خطمشی تنظیم نشود یا روی «درست» تنظیم شود، اطلاعاتی که میتواند برای شناسایی کاربران استفاده شود، جمعآوری میشود. + اگر این خطمشی روی «نادرست» تنظیم شود، اطلاعاتی که میتواند برای شناسایی کاربران استفاده شود، جمعآوری نمیشود. + + این خطمشی تنها درصورتی موثر است که «Chrome Reporting Extension» و «مدیریت ابری» فعال باشد.</translation> <translation id="4138655880188755661">محدودیت زمانی</translation> <translation id="4157003184375321727">گزارش نسخه سفتافزار و سیستم عامل</translation> <translation id="4157594634940419685">مجاز کردن دسترسی به چاپگرهای CUPS محلی</translation> @@ -1443,6 +1467,12 @@ <translation id="5052081091120171147">این قانون، در صورت فعال بودن، باعث میشود سابقه مرور به اجبار از مرورگر پیشفرض کنونی وارد شود. درصورت فعال بودن این قانون، بر روی پیام وارد کردن نیز تأثیر میگذارد. اگر غیرفعال باشد، هیچ سابقه مروری وارد نمیشود. اگر تنظیم نشده باقی بماند، ممکن است از کاربر در مورد وارد کردن سابقه مرور سؤال شود یا وارد کردن بهطور خودکار انجام شود.</translation> <translation id="5056708224511062314">ذرهبین صفحه نمایش از کار افتاد</translation> <translation id="5058573563327660283">انتخاب استراتژی مورداستفاده برای خالی کردن فضای دیسک درهنگام پاکسازی خودکار (منسوخشده)</translation> +<translation id="5058771123777243130">این خطمشی کنترل میکند دادههای خطمشی و زمان واکشی خطمشی گزارش شود یا نه. + + اگر این خطمشی تنظیم نشود یا روی «درست» تنظیم شود، دادههای خطمشی و زمان واکشی خطمشی جمعآوری میشود. + اگر این خطمشی روی «نادرست» تنظیم شود، دادههای خطمشی و زمان واکشی خطمشی جمعآوری نمیشود. + + این خطمشی تنها درصورتی موثر است که «Chrome Reporting Extension» و «مدیریت ابری» فعال باشد.</translation> <translation id="5067143124345820993">فهرست سفید کاربران مجاز به ورود به سیستم</translation> <translation id="5068140065960598044">خطمشی ابری <ph name="PRODUCT_NAME" />، خطمشی «دستگاه» را لغو میکند.</translation> <translation id="5085647276663819155">غیر فعال کردن پیشنمایش چاپ</translation> @@ -1545,6 +1575,7 @@ <translation id="5366977351895725771">اگر روی غلط تنظیم شده باشد، ایجاد کاربر نظارتشده توسط این کاربر از کار خواهد افتاد. کاربران نظارتشدهٔ موجود همچنان در دسترس خواهند بود. اگر روی صحیح تنظیم شده باشد یا پیکربندی نشده باشد، این کاربر میتواند کاربران نظارتشده ایجاد کند و مدیریت نماید.</translation> +<translation id="5369937289900051171">فقط چاپ رنگی</translation> <translation id="5370279767682621504">فعال کردن پشتیبانی از HTTP/0.9 در درگاههای غیرپیشفرض</translation> <translation id="5378985487213287085">به شما امکان میدهد تعیین کنید آیا وب سایتها مجاز به نمایش اعلانهای دسکتاپ هستند. نمایش اعلانهای دسکتاپ میتواند به صورت پیشفرض مجاز یا غیرمجاز باشد یا هر بار که یک وب سایت میخواهد اعلان دسکتاپی نشان دهد از کاربر سؤال شود. اگر این قانون تنظیم نشود "AskNotifications" استفاده میشود و کاربر میتواند آن را تغییر دهد.</translation> <translation id="538108065117008131">به <ph name="PRODUCT_FRAME_NAME" /> اجازه کنترل این نوع محتواها داده شود.</translation> @@ -1564,6 +1595,7 @@ اگر این خطمشی روی فهرستی از شناسههای روش ورودی تنظیم شود، روشهای ورودی مشخصشده در صفحه ورود به سیستم دردسترس خواهند بود. اولین روش ورودی مشخصشده، از پیش انتخاب میشود. وقتی پاد کاربر در صفحه ورود به سیستم متمرکز شده است، آخرین روش ورودی استفادهشده توسط کاربر به همراه روشهای ورودی مشخصشده توسط این خطمشی دردسترس خواهند بود. اگر این خطمشی تنظیم نشود، روشهای ورودی در صفحه ورود به سیستم از منطقه زبانیای گرفته میشوند که صفحه ورود به سیستم به آن نمایش داده میشود. مقادیری که شناسههای روش ورودی معتبری نیستند نادیده گرفته میشوند.</translation> <translation id="5423001109873148185">این قانون، اگر فعال باشد، موتورهای جستجو را وادار میکند که از مرورگر کنونی پیشفرض وارد شوند. در صورت فعال بودن، این قانون بر روی پیام وارد کردن نیز تأثیر میگذارد. اگر غیرفعال باشد، موتور جستجوی پیشفرض وارد نمیشود. اگر تنظیم نشده باشد، ممکن است از کاربر در مورد وارد کردن پرسیده شود یا بهطور خودکار وارد کردن انجام شود.</translation> <translation id="5423197884968724595">نام محدودیت وبنمای Android:</translation> +<translation id="5424147596523390018">مجاز کردن همه حالتهای رنگی</translation> <translation id="5442026853063570579">این خطمشی دسترسی به «گزینههای تولیدکننده Android» را نیز کنترل میکند. اگر این خطمشی را روی «DeveloperToolsDisallowed» (مقدار ۲) تنظیم کنید، کاربران نمیتوانند به «گزینههای تولیدکننده» دسترسی پیدا کنند. اگر این خطمشی را روی مقدار دیگری تنظیم کنید یا آن را تنظیمنشده رها کنید، کاربران میتوانند با هفتبار ضربه زدن روی شماره ساخت در برنامه تنظیمات Android، به «گزینههای تولیدکننده» دسترسی پیدا کنند.</translation> <translation id="5447306928176905178">فعال کردن گزارشدهی اطلاعات حافظه (اندازه هیپ جاوااسکریپت) به صفحه (منسوخ شده)</translation> <translation id="5457065417344056871">فعال کردن حالت مهمان در مرورگر</translation> @@ -1630,6 +1662,7 @@ <translation id="5586942249556966598">کاری انجام نشود</translation> <translation id="5630352020869108293">بازیابی آخرین جلسه</translation> <translation id="5645779841392247734">مجاز بودن کوکیها برای این سایتها</translation> +<translation id="5689430183304951538">اندازه پیشفرض صفحه چاپ</translation> <translation id="5693469654327063861">اجازه دادن به انتقال داده</translation> <translation id="5694594914843889579">وقتی این خطمشی روی درست تنظیم شود، ذخیرهسازی خارجی در مرورگر فایل در دسترس نخواهد بود. @@ -1659,6 +1692,7 @@ وقتی این خطمشی تنظیم نشده باشد، مدت زمان پیشفرض استفاده میشود. مقدار خطمشی باید برحسب میلیثانیه باشد.</translation> +<translation id="5783009211970309878">سرصفحهها و پانویسهای چاپ</translation> <translation id="5809728392451418079">تنظیم نام نمایشی برای حسابهای داخل دستگاه</translation> <translation id="5814301096961727113">تنظیم حالت پیشفرض بازخورد گفتاری در صفحه ورود به سیستم</translation> <translation id="5815129011704381141">راهاندازی خودکار پس از بهروزرسانی</translation> @@ -1670,6 +1704,7 @@ اگر این تنظیم انجام نشود، فهرست راهنمای نمایه پیشفرض استفاده خواهد شد.</translation> <translation id="5826047473100157858">تعیین میکند که آیا کاربران در <ph name="PRODUCT_NAME" /> اجازه باز کردن صفحات در حالت ناشناس را دارند. اگر "فعال بودن" انتخاب شود یا قانون تنظیم نشده باقی بماند، صفحات میتوانند در حالت ناشناس باز شوند. اگر غیرفعال بودن انتخاب شود، صفحات نمیتوانند در حالت ناشناس باز شوند. اگر "اجباری" انتخاب شود، صفحات فقط در حالت ناشناس باز میشوند.</translation> +<translation id="582857022372205358">فعال کردن چاپ دورویه لبه کوتاه</translation> <translation id="583091600226586337"> اگر این خطمشی فعال شود، محل ذخیرهسازی هر فایل پیش از بارگیری از کاربر سؤال میشود. اگر این خطمشی غیرفعال شود، بارگیریها بلافاصله شروع میشوند و محل ذخیرهسازی فایلها از کاربر سؤال نمیشود. @@ -1703,6 +1738,7 @@ اگر این تنظیم غیرفعال باشد یا پیکربندی نشده باشد، درخواستهای احراز هویت gnubby پروکسی نمیشود.</translation> <translation id="5898486742390981550">وقتی چند کاربر به سیستم وارد میشوند، فقط کاربر اصلی میتواند از برنامههای Android استفاده کند.</translation> +<translation id="5901427587865226597">فقط چاپ دورویه</translation> <translation id="5906199912611534122">فعال کردن یا غیرفعال کردن کنترل سرعت شبکه را مجاز میکند. این خطمشی برای همه کاربران و واسطهای موجود در دستگاه اعمال میشود. با تنظیم شدن این خطمشی، کنترل سرعت تغییر نمیکند مگراینکه خطمشی بهگونهای تغییر کند که کنترل سرعت غیرفعال شود. @@ -1812,6 +1848,7 @@ مقدار خطمشی باید به میلیثانیه تعیین شود. مقادیر کنترل شدهاند که کمتر از زمان درنگ عدم فعالیت باشند.</translation> <translation id="6097601282776163274">فعال کردن جمعآوری داده ناشناسشده حاوی نشانی وب</translation> +<translation id="6099853574908182288">حالت رنگ چاپ پیشفرض</translation> <translation id="6111936128861357925">اجازه به بازی Dinosaur Easter Egg</translation> <translation id="6114416803310251055">منسوخ</translation> <translation id="6133088669883929098">اجازه دادن به همه سایتها برای استفاده از تولید کلید</translation> @@ -1824,6 +1861,7 @@ اگر این خطمشی تنظیم نشود، مقدار پیشفرض کلی برای همه سایتها استفاده میشود، خواه از خطمشی 'DefaultPluginsSetting' (اگر تنظیم شده باشد) یا پیکربندی شخصی کاربر.</translation> <translation id="6190022522129724693">تنظیمات پیشفرض پنجرههای بازشو</translation> +<translation id="6190367314942602985">گزارش اطلاعات شناسایی کاربر</translation> <translation id="6197453924249895891">دسترسی به کلیدهای سازمانی را برای افزونهها مجاز میکند. کلیدها اگر توسط chrome.enterprise.platformKeys API از یک حساب مدیریت شده تولید شوند، برای مصرف سازمانی در نظر گرفته میشوند. کلیدهای وارد شده یا تولید شده به روشهای دیگر، برای مصرف سازمانی در نظر گرفته نمیشوند. @@ -1833,6 +1871,8 @@ به طور پیشفرض، افزونهها نمیتوانند از کلید مخصوص مصرف سازمانی استفاده کنند که یعنی allowCorporateKeyUsage در آن افزونه بر روی نادرست قرار میگیرد. فقط اگر allowCorporateKeyUsage برای افزونهای روی درست قرار گرفته باشد، آن افزونه میتواند از کلیدهای علامتگذاری شده برای استفاده سازمانی برای ثبت داده تصادفی استفاده کند. این مجوز فقط باید در صورتی ارائه شود که افزونه قابل اعتماد بوده و ایمنی دسترسی به کلید را در برابر هکرها حفظ کند.</translation> +<translation id="6208896993204286313">گزارش اطلاعات خطمشی <ph name="PRODUCT_NAME" /></translation> +<translation id="6210259502936598222">گزارش اطلاعات نسخه <ph name="PRODUCT_NAME" /> و OS</translation> <translation id="6211428344788340116">زمانهای فعالیت دستگاه را گزارش میکند. اگر این گزینه تنظیم نشود یا روی True تنظیم شود، زمانی که یک کاربر در دستگاه فعال باشد، دستگاههای ثبت شده دورههای زمانی را گزارش خواهند کرد. اگر این گزینه روی False تنظیم شود، زمانهای فعالیت دستگاه ضبط یا گزارش نخواهند شد.</translation> @@ -1845,6 +1885,7 @@ <translation id="6233173491898450179">تنظیم دایرکتوری بارگیری</translation> <translation id="6244210204546589761">نشانیهای وبی که هنگام راهاندازی باز میشوند</translation> <translation id="6258193603492867656">مشخص میکند که آیا Kerberos SPN تولید شده باید شامل یک درگاه غیر استاندارد باشد. اگر این گزینه را فعال کنید، و یک درگاه غیر استاندارد (مثلا درگاهی به غیر از 443 یا 80) وارد شده باشد، در Kerberos SPN تولید شده قرار میگیرد. اگر این گزینه غیرفعال باشد یا تنظیم نشده باقی بماند، Kerberos SPN تولید شده تحت هیچ شرایطی شامل درگاه نخواهد بود.</translation> +<translation id="6261643884958898336">گزارش اطلاعات شناسایی دستگاه</translation> <translation id="6281043242780654992">خطمشیها را برای پیامرسانی داخلی پیکربندی میکند. میزبانهای پیامرسانی داخلی قرار گرفته در فهرست سیاه مجاز نخواهند بود مگر اینکه در فهرست سفید قرار بگیرند.</translation> <translation id="6282799760374509080">اجازه دادن یا ردکردن ضبط صدا</translation> <translation id="6284362063448764300">TLS 1.1</translation> @@ -1875,6 +1916,7 @@ اگر شناسایی خودکار سرور پروکسی را انتخاب کنید، نشانی وب اسکریپت «http://wpad/wpad.dat» در اختیار برنامههای Android قرار داده میشود. هیچ بخش دیگری از پروتکل شناسایی خودکار پروکسی استفاده نمیشود. اگر استفاده از اسکریپت .pac را انتخاب کنید، نشانی وب اسکریپت در اختیار برنامههای Android قرار داده میشود.</translation> +<translation id="6430366557948788869">افزونه گزارش Chrome</translation> <translation id="6440051664870270040">مجاز کردن سایتها برای پیمایش و باز کردن کادرهای بازشو بهطور همزمان</translation> <translation id="6447948611083700881">پشتیبانگیری و بازیابی غیرفعال باشد</translation> <translation id="645425387487868471">فعال کردن ورود به سیستم اجباری برای <ph name="PRODUCT_NAME" /></translation> @@ -1921,6 +1963,7 @@ <translation id="6628646143828354685">به شما امکان میدهد تعیین کنید وبسایتها برای دسترسی به دستگاههای بلوتوث اطراف مجاز هستند یا نه. میتوان دسترسی را کاملاً مسدود کرد یا تنظیمات را بهگونهای انجام داد که هر بار وبسایتی میخواهد به دستگاههای بلوتوث اطراف دسترسی پیدا کند از کاربر درخواست کند. اگر این خطمشی تنظیمنشده رها شود، از «۳» استفاده میشود و کاربر میتواند آن را تغییر دهد.</translation> +<translation id="663685822663765995">محدود کردن حالت رنگ چاپ</translation> <translation id="6641981670621198190">غیر فعال کردن پشتیبانی برای APIهای گرافیک 3بعدی</translation> <translation id="6647965994887675196">اگر روی صحیح تنظیم شده باشد، امکان ایجاد کاربر نظارتشده و استفاده از آن وجود دارد. @@ -1948,6 +1991,7 @@ الگوهای نشانی وب در این خطمشی نباید با الگوهای پیکربندیشده ازطریق «WebUsbAskForUrls» تضادی داشته باشد. مشخص نشده است که اگر نشانی وبی با هر دو خطمشی مطابقت داشته باشد، کدام خطمشی اولویت دارد.</translation> <translation id="6689792153960219308">گزارش وضعیت سختافزار</translation> +<translation id="6698632841807204978">فعال کردن چاپ تکرنگ</translation> <translation id="6699880231565102694">فعال کردن احراز هویت با دو فاکتور برای میزبانهای دسترسی ازراهدور</translation> <translation id="6724842112053619797">اگر این تنظیم را فعال کنید، تنظیمات ذخیرهشده در نمایههای <ph name="PRODUCT_NAME" /> (ازجمله نشانکها، دادههای تکمیل خودکار، گذرواژهها و غیره) روی فایل ذخیرهشدهای در پوشه نمایه کاربر «رومینگ» یا مکانی که توسط «سرپرست سیستم» ازطریق خطمشی <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> مشخص شده است نیز نوشته خواهد شد. فعال کردن این خطمشی همگامسازی ابری را غیرفعال میکند. @@ -1986,6 +2030,12 @@ این تنظیم، نمایش صفحات خوشآمدگویی را کنترل میکند؛ این صفحات به کاربران کمک میکنند به سیستم <ph name="PRODUCT_NAME" /> وارد شوند، آن را بهعنوان مرورگر پیشفرض انتخاب کنند یا به روش دیگری کاربران را از ویژگیهای محصول مطلع میکنند.</translation> <translation id="6766216162565713893">سایتها مجاز هستند از کاربر بخواهند به دستگاه بلوتوث اطراف اجازه دسترسی بدهد</translation> <translation id="6770454900105963262">گزارش دادن اطلاعات کیوسک فعال</translation> +<translation id="6773056206551814546">این خطمشی کنترل میکند اطلاعاتی که میتواند برای شناسایی دستگاهها استفاده شود، گزارش شود یا نه، (مانند نام دستگاه و نشانیهای شبکه). + + اگر این خطمشی تنظیم نشود یا روی «درست» تنظیم شود، اطلاعاتی که میتواند برای شناسایی دستگاهها استفاده شود، جمعآوری میشود. + اگر این خطمشی روی «نادرست» تنظیم شود، اطلاعاتی که میتواند برای شناسایی کاربران استفاده شود، جمعآوری نمیشود. + + این خطمشی تنها درصورتی موثر است که «Chrome Reporting Extension» و «مدیریت ابری» فعال باشد.</translation> <translation id="6786747875388722282">افزونهها</translation> <translation id="6786967369487349613">تنظیم فهرست راهنمای نمایه رومینگ</translation> <translation id="6810445994095397827">مسدود کردن جاوا اسکریپت برای این سایتها</translation> @@ -2087,6 +2137,7 @@ </translation> <translation id="6922884955650325312">مسدود کردن افزایه <ph name="FLASH_PLUGIN_NAME" /></translation> <translation id="6923366716660828830">نام ارائه دهنده جستجوی پیشفرض را تعیین میکند. اگر خالی بماند یا تنظیم نشود، نام میزبان تعیین شده توسط URL جستجو استفاده میشود. این قانون تنها زمانی استفاده میشود که قانون "DefaultSearchProviderEnabled" فعال باشد.</translation> +<translation id="6926703471186170050">فعال کردن چاپ دورویه لبه بلند</translation> <translation id="6931242315485576290">غیر فعال کردن همگامسازی دادهها با Google</translation> <translation id="6936894225179401731">حداکثر تعداد اتصالات همزمان را به سرور پراکسی مشخص میکند. @@ -2281,6 +2332,7 @@ اگر این تنظیم غیرفعال شود یا پیکربندی نشود، کاربران میتوانند پس از مشاهده هشدار، به سایت پرچمگذاریشده بروند. برای اطلاعات بیشتر درباره «مرور ایمن»، https://developers.google.com/safe-browsing را ببینید.</translation> +<translation id="737655323154569539">اندازه صفحه چاپ را محدود میکند. درصورت تنظیم نکردن و خالی بودن خطمشی، محدودیتی درنظر گرفته نمیشود.</translation> <translation id="7417728346887499628">اگر غیرفعال شود، «پاکسازی Chrome» از اسکن کردن سیستم برای یافتن نرمافزار ناخواسته و پاکسازی جلوگیری میکند. راهاندازی دستی «پاکسازی Chrome» در chrome://settings/cleanup غیرفعال میشود. اگر فعال شود یا تنظیم نشود، «پاکسازی Chrome» سیستم را بهطور دورهای برای یافتن نرمافزار ناخواسته اسکن میکند و هرموردی پیدا کند از کاربر میپرسد که میخواهد برداشته شود یا نه. راهاندازی دستی «پاکسازی Chrome» در chrome://settings فعال میشود. @@ -2349,6 +2401,8 @@ <translation id="7617319494457709698">این خطمشی افزونههایی را که مجازند از عملکرد <ph name="ENTERPRISE_PLATFORM_KEYS_API" /> <ph name="CHALLENGE_USER_KEY_FUNCTION" /> برای تصدیق ازراهدور استفاده کنند، مشخص میکند. افزونهها برای استفاده از API باید به این فهرست اضافه شوند. اگر افزونهای در این فهرست نباشد یا فهرست تنظیم نشده باشد، فراخوانی API با کد خطا همراه خواهد بود.</translation> +<translation id="7618907117929117943">اگر نسخه OS جدیدتر از نسخه هدف است، به عقب برگردید و در نسخه هدف بمانید و امکان انتقال پیکربندی در سطح دستگاه (ازجمله اطلاعات کاربری شبکه) ازطریق عقبگرد و همچنین رد شدن از OOBE بعد از عقبگرد وجود دارد. اگر این امکان وجود نداشته باشد (به دلیل عدم پشتیبانی نسخه هدف از بازیابی داده یا وجود تغییری که با برگشت به عقب سازگار نباشد)، عقبگرد نکنید یا آن را لغو نکنید. + در <ph name="PRODUCT_OS_NAME" /> نسخه ۷۰ و بالاتر پشتیبانی میشود. در کارخواههای قدیمیتر، این مقدار به معنی غیرفعال بودن عقبگرد است.</translation> <translation id="7625444193696794922">کانال نشری را تعیین میکند که این دستگاه باید بر روی آن قفل باشد.</translation> <translation id="7632724434767231364">نام کتابخانه GSSAPI</translation> <translation id="7635471475589566552">زبان محلی برنامه را در <ph name="PRODUCT_NAME" /> تعیین میکند و از تغییر آن توسط کاربران جلوگیری میکند. اگر فعال شود، <ph name="PRODUCT_NAME" /> از زبان محلی تعیین شده استفاده میکند. اگر زبان محلی تعیین شده پشتیبانی نشود، به جای آن از "en-US" استفاده میشود. اگر این گزینه غیرفعال شود یا تنظیمات آن دست نخورده باقی بماند، <ph name="PRODUCT_NAME" /> یا از زبان محلی ترجیحی تعیین شده توسط کاربر (در صورت وجود)، زبان محلی سیستم، یا از زبان محلی پیشفرض "en-US" استفاده میکند.</translation> @@ -2542,6 +2596,7 @@ اگر این گزینه فعال شود یا مقداری به آن داده نشود، «تکمیل خودکار» تحت کنترل کاربر باقی میماند. این حالت به کاربران اجازه میدهد بتوانند نمایههای «تکمیل خودکار» پیکربندی کنند و خودشان این ویژگی را فعال یا غیرفعال کنند.</translation> <translation id="8044493735196713914">گزارش حالت راهاندازی دستگاه</translation> <translation id="8050080920415773384">چاپ محلی</translation> +<translation id="8053580360728293758">حالت پیشفرض رنگ چاپ را لغو میکند. اگر این حالت دردسترس نباشد، این خطمشی نادیده گرفته میشود.</translation> <translation id="8059164285174960932">نشانی اینترنتی که در آن سرویسگیرندههای دسترسی راه دور باید رمز احراز هویت دریافت کنند</translation> <translation id="8078366200175825572">به شما امکان میدهد فهرستی از الگوهای نشانی وب تنظیم کنید که سایتهایی را مشخص میکند که اجازه ندارند کوکی تنظیم کنند. @@ -2726,6 +2781,7 @@ در اینجا، «نسخه» میتواند نسخهای دقیق (مانند «۶۱.۰.۳۱۶۳.۱۲۰» یا پیشوند نسخه (مانند ۶۱.۰) باشد </translation> <translation id="8544375438507658205">مجری و تفسیرگر پیشفرض HTML برای <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">اجازه میدهد پیامکها بین تلفن و Chromebook همگامسازی شود</translation> +<translation id="8548832052135586762">چاپ را روی حالت فقط رنگی، فقط تکرنگ یا بدون محدودیت حالت رنگ تنظیم میکند. درصورت تنظیم نکردن و خالی بودن خطمشی، محدودیتی درنظر گرفته نمیشود.</translation> <translation id="8549772397068118889">هشدار در هنگام بازدید از سایتهای خارج از بستههای محتوا</translation> <translation id="8566842294717252664">مخفی کردن فروشگاه وب از صفحه برگه جدید و راهانداز برنامه</translation> <translation id="8586528890725660268">چاپگرهایی را که کاربر نمیتواند استفاده کند مشخص میکند. @@ -2832,6 +2888,7 @@ اگر این تنظیم بهصورت تنظیمنشده باقی بماند، کاربر میتواند تصمیم بگیرد این عملکرد را داشته باشد یا نه.</translation> <translation id="8870318296973696995">صفحهٔ اصلی</translation> +<translation id="8876188741456358123">حالت پیشفرض چاپ دورویه را لغو میکند. اگر این حالت دردسترس نباشد، این خطمشی نادیده گرفته میشود.</translation> <translation id="8882006618241293596">مسدود کردن افزایه <ph name="FLASH_PLUGIN_NAME" /> در این سایتها</translation> <translation id="890403179930035128">غلطگیر املای زبانها را بهصورت اجباری فعال میکند. زبانهای شناسایینشده موجود در این فهرست نادیده گرفته میشوند. @@ -2928,6 +2985,8 @@ <translation id="9084985621503260744">مشخص کنید آیا فعالیت ویدئو بر مدیریت برق اثر بگذارد</translation> <translation id="9088433379343318874">فعال کردن ارائهدهنده محتوای کاربر تحت نظارت</translation> <translation id="9088444059179765143">پیکربندی روش تشخیص خودکار منطقه زمانی</translation> +<translation id="9094064873808699479">اگر نسخه OS جدیدتر از نسخه هدف است، به عقب برگردید و در نسخه هدف بمانید. درصورت امکان پیکربندی دستگاه (ازجمله اطلاعات کاربری شبکه) را ازطریق فرآیند عقبگرد انجام دهید، اما حتی اگر امکان بازیابی دادهها وجود نداشته باشد (به دلیل عدم پشتیبانی نسخه هدف از بازیابی داده یا وجود تغییری که با برگشت به عقب سازگار نباشد)، عقبگرد را با powerwash کامل انجام دهید. + در <ph name="PRODUCT_OS_NAME" /> نسخه ۷۰ و بالاتر پشتیبانی میشود. در کارخواههای قدیمیتر، این مقدار به معنی غیرفعال بودن عقبگرد است.</translation> <translation id="9096086085182305205">فهرست سفید سرور راستیآزمایی</translation> <translation id="9098553063150791878">خط مشیهای احراز هویت HTTP</translation> <translation id="9105265795073104888">فقط زیرمجموعهای از گزینههای پیکربندی پراکسی برای برنامههای Android دردسترس قرار میگیرند. ممکن است برنامههای Android بهصورت داوطلبانه استفاده از پراکسی را انتخاب کنند. نمیتوانید آنها را مجبور به استفاده از یک پراکسی کنید.</translation> @@ -2979,6 +3038,13 @@ <translation id="9187743794267626640">غیر فعال کردن نصب ذخیره سازی خارجی</translation> <translation id="9197740283131855199">درصدی که با آن تأخیر عدم فعالیت صفحه نمایش هنگامی که کاربر بعد از کم نور شدن صفحه فعال میشود، اندازهگیری میشود</translation> <translation id="9200828125069750521">پارامترهای نشانی وب تصویر که از POST استفاده میکند</translation> +<translation id="920209539000507585">«سرصفحهها و پانویسها» را در کادر گفتگوی چاپ بهاجبار روشن یا خاموش کنید. + + اگر این خطمشی تنظیم نشود، کاربر میتواند تصمیم بگیرد سرصفحهها و پانویسها چاپ شود یا نه. + + اگر این خطمشی روی نادرست تنظیم شود، «سرصفحهها و پانویسها» در کادر گفتگوی پیشنمایش چاپ انتخاب نشده است و کاربر نمیتواند آن را تغییر دهد. + + اگر این خطمشی روی درست تنظیم شود، «سرصفحهها و پانویسها» در کادر گفتگوی پیشنمایش چاپ انتخاب شده است و کاربر نمیتواند آن را تغییر دهد.</translation> <translation id="9210953373038593554">نوع احراز هویت ورود به سیستمهای SAML را پیکربندی میکند. وقتی این خطمشی تنظیم نشود یا روی پیشفرض (مقدار ۰) تنظیم شود، رفتار ورود به سیستمهای SAML توسط مرورگر و بنابر عوامل دیگر تعیین میشود. در اصلیترین سناریو، احراز هویت و محافظت از دادههای کاربر در حافظه پنهان براساس گذرواژههایی است که بهصورت دستی توسط کاربر وارد میشود. @@ -2986,6 +3052,9 @@ وقتی این خطمشی روی ClientCertificate (مقدار ۱) تنظیم شود، احراز هویت گواهینامه کارخواه برای کاربران جدیداً اضافهشده که ازطریق SAML به سیستم وارد میشوند استفاده میشود. برای چنین کاربرانی از گذرواژه استفاده نمیشود و دادههای محلی آنها در حافظه پنهان با استفاده از کلیدهای رمزگذاری مربوطه محافظت میشود. برای نمونه، این تنظیم، پیکربندی احراز هویت کاربر براساس کارت هوشمند را ممکن میسازد (توجه داشته باشید برنامههای میانافزار کارت هوشمند باید ازطریق خطمشی DeviceLoginScreenAppInstallList نصب شوند). این خطمشی فقط کاربرانی را تحت تأثیر قرار میدهد که با استفاده از SAML احراز هویت میشوند.</translation> +<translation id="9211439035693857287">خطمشیهای مربوط به «افزونه گزارش Chrome» را پیکربندی کنید. + + این خطمشیها تنها درصورتی موثر هستند که «Chrome Reporting Extension» و «مدیریت ابری» فعال باشد.</translation> <translation id="9213347477683611358">اگر هنوز کاربری وارد سیستم دستگاه نشده باشد، تصویر کاغذدیواری در سطح دستگاه را که در صفحه ورود به سیستم نمایش داده میشود پیکربندی میکند. این خطمشی با مشخص کردن نشانی وبی تنظیم میشود که دستگاه دارای سیستم عامل Chrome میتواند تصویر کاغذدیواری را از آن بارگیری کند و یک هش رمزگذاری برای تأیید یکپارچگی بارگیری استفاده میشود. این تصویر باید با قالب JPEG باشد و اندازه فایل نباید بیشتر از ۱۶ مگابایت باشد. نشانی وب نباید هیچگونه احراز هویت قابلدسترسی داشته باشد. تصویر کاغذدیواری بارگیریشده و در حافظه پنهان ذخیره میشود. هرگاه که نشانی وب یا هش تغییر کند دوباره بارگیری میشود. این خطمشی باید بهعنوان رشتهای تنظیم شود که نشانی وب و هش را در قالب JSON بیان میکند، برای مثال،
diff --git a/components/policy/resources/policy_templates_fil.xtb b/components/policy/resources/policy_templates_fil.xtb index e157dfd..56c5878f 100644 --- a/components/policy/resources/policy_templates_fil.xtb +++ b/components/policy/resources/policy_templates_fil.xtb
@@ -203,6 +203,7 @@ <translation id="1522425503138261032">Payagan ang mga site na subaybayan ang aktwal na lokasyon ng mga user</translation> <translation id="152657506688053119">Listahan ng mga kahaliling URL para sa default na search provider</translation> <translation id="1530812829012954197">Palaging i-render ang mga sumusunod na pattern ng URL sa browser ng host</translation> +<translation id="1541170838458414064">Paghigpitan ang laki ng page ng pag-print</translation> <translation id="1553684822621013552">Kapag itinakda sa true ang patakarang ito, mae-enable ang ARC para sa user (napapailalim sa mga karagdagang pagsusuri sa mga setting ng patakaran - hindi pa rin magiging available ang ARC kung ie-enable ang ephemeral mode o maraming pag-sign in @@ -382,6 +383,12 @@ <translation id="2082205219176343977">I-configure ang minimum na pinapayagang bersyon ng Chrome para sa device.</translation> <translation id="209586405398070749">Stable na channel</translation> <translation id="2098658257603918882">Paganahin ang pag-uulat ng data ng paggamit at kaugnay ng crash</translation> +<translation id="2098916259427011890">Kinokontrol ng patakarang ito kung mag-uulat ng impormasyon ng bersyon, gaya ng bersyon ng OS, platform ng OS, architecture ng OS, bersyon ng <ph name="PRODUCT_NAME" />, at channel ng <ph name="PRODUCT_NAME" />. + + Kapag hinayaang hindi nakatakda ang patakarang ito o nakatakda sa True, kukunin ang impormasyon ng bersyon. + Kung nakatakda ang patakarang ito sa False, hindi kukunin ang impormasyon ng bersyon. + + May bisa lang ang patakarang ito kapag naka-enable ang Chrome Reporting Extension at Cloud Management.</translation> <translation id="2111016292707172233">Ine-enable ang availability ng I-tap para Maghanap sa view ng content ng <ph name="PRODUCT_NAME" />. Kung ie-enable mo ang setting na ito, magagamit ng user ang I-tap para Maghanap at maaari niyang piliing i-on o i-off ang feature. @@ -415,6 +422,8 @@ Kung hindi itatakda ang patakaran, ang default na value ay 0 degrees at maaari itong baguhin ng user. Sa sitwasyong ito, ang default na value ay hindi muling ilalapat sa pag-restart.</translation> +<translation id="214901426630414675">Paghigpitan ang printing duplex mode</translation> +<translation id="2149330464730004005">I-enable ang may kulay na pag-print</translation> <translation id="2156132677421487971">Nagko-configure ng mga patakaran para sa <ph name="PRODUCT_NAME" />, isang feature na nagbibigay-daan sa mga user na maipadala ang mga content ng mga tab, mga site, o ang desktop mula sa browser papunta sa mga malayuang display at sound system.</translation> <translation id="2166472654199325139">Huwag i-filter ang mga site para sa pang-adult na content</translation> <translation id="2168397434410358693">Idle delay kapag tumatakbo habang nakasaksak sa kuryente</translation> @@ -612,6 +621,7 @@ <translation id="2529880111512635313">I-configure ang listahan ng mga puwersahang na-install na app at extension</translation> <translation id="253135976343875019">Delay ng babala bago mag-idle kapag gumagamit ng AC power</translation> <translation id="2536525645274582300">Ang user ang magpapasya kung ie-enable ang mga serbisyo ng lokasyon ng Google</translation> +<translation id="2550593661567988768">Simplex na pag-print lang</translation> <translation id="2552966063069741410">Timezone</translation> <translation id="2562339630163277285">Tinutukoy ang URL ng search engine na ginagamit upang magbigay ng mga instant na resulta. Ang URL ay dapat na maglaman ng string na <ph name="SEARCH_TERM_MARKER" />, na papalitan sa panahon ng query ng text na inilagay ng user sa panahong iyon. @@ -745,9 +755,12 @@ Kung idi-disable mo ang setting na ito o hindi ka magtatakda ng value, gagamitin ng Preview ng Pag-print ang pinakahuling ginamit na printer bilang default na pagpipilian. Kung ie-enable mo ang setting na ito, gagamitin ng Preview sa Pag-print ang default na printer ng OS system bilang default na pagpipilian.</translation> +<translation id="2856674246949497058">Mag-roll back at manatili sa target na bersyon kung mas bago ang bersyon ng OS kaysa sa target. Magsagawa ng powerwash habang nasa proseso.</translation> <translation id="2872961005593481000">Shut down</translation> +<translation id="2873651257716068683">Ino-override ang default na laki ng page ng pag-print. Kung hindi available ang laki ng page, binabalewala ang patakarang ito.</translation> <translation id="2874209944580848064">Tala para sa mga <ph name="PRODUCT_OS_NAME" /> device na sumusuporta sa mga Android app:</translation> <translation id="2877225735001246144">Huwag paganahin ang paghahanap ng CNAME kapag nakikipagsundo sa pagpapatotoo ng Kerberos</translation> +<translation id="2892414556511568464">Pinaghihigpitan ang printing duplex mode. Itinuturing na walang paghihigpit ang hindi nakatakdang patakaran at empty set.</translation> <translation id="2893546967669465276">Magpadala ng mga log ng system sa server sa pamamahala</translation> <translation id="2899002520262095963">Maaaring gamitin ng mga Android app ang mga configuration ng network at mga CA certificate na itinakda sa pamamagitan ng patakarang ito, ngunit walang access ang mga ito sa ilang opsyon sa configuration.</translation> <translation id="290002216614278247">Nagbibigay-daan sa iyong i-lock ang session ng user batay sa oras ng client o quota sa paggamit sa araw na iyon. @@ -837,6 +850,7 @@ Hinihimok ang mga server na mag-migrate sa mga ECDHE na cipher suite. Kung hindi available ang mga ito, tiyaking naka-enable ang isang cipher suite gamit ang RSA key exchange.</translation> <translation id="316778957754360075">Hindi na ginagamit ang setting na ito simula sa <ph name="PRODUCT_NAME" /> bersyon 29. Ang inirerekumendang paraan upang mag-set up ng mga koleksyon ng extension/app na hino-host ng samahan ay ang pagsama sa pag-host sa site sa mga CRX package sa ExtensionInstallSources at paglagay ng direktang link sa pag-download sa mga package sa isang web page.Maaaring gawin ang isang launcher para sa web page na iyon gamit ang patakaran na ExtensionInstallForcelist.</translation> +<translation id="3171369832001535378">Template ng hostname ng network ng device</translation> <translation id="3185009703220253572">mula pa noong bersyon <ph name="SINCE_VERSION" /></translation> <translation id="3187220842205194486">Hindi maaaring kumuha ng access ang mga Android app sa mga pangkorporasyong key. Walang epekto ang mga ito sa patakarang ito.</translation> <translation id="3201273385265130876">Binibigyang-daan ka na matukoy ang proxy server na ginagamit ng <ph name="PRODUCT_NAME" /> at pinipigilan ang mga user na baguhin ang mga setting ng proxy. @@ -948,6 +962,7 @@ Ang value ng patakarang ito ay isang Token sa pag-enroll na maaaring makuha sa Google Admin console.</translation> <translation id="3496296378755072552">Tagapamahala ng password</translation> +<translation id="3502555714327823858">Payagan ang lahat ng duplex mode</translation> <translation id="350443680860256679">I-configure ang ARC</translation> <translation id="3504791027627803580">Tinutukoy ang URL ng search engine na ginamit upang magbigay ng paghahanap ng larawan. Ipapadala ang mga kahilingan sa paghahanap gamit ang GET na paraan. Kung nakatakda ang patakarang DefaultSearchProviderImageURLPostParams, gagamitin sa halip ng mga kahilingan sa paghahanap ng larawan ang POST na paraan. @@ -957,6 +972,7 @@ <translation id="350797926066071931">Paganahin ang I-translate</translation> <translation id="3512226956150568738">Kung sinusuportahan na ng modelo ng device ng kliyente ang ARC bago kailanganin ang paglipat sa ext4 upang mapatakbo ang ARC at kung nakatakda sa true ang patakarang ArcEnabled, gagana ang opsyong ito bilang AskUser (value 3). Sa lahat ng iba pang sitwasyon (kung hindi sinusuportahan ng modelo ng device ang ARC dati, o kung nakatakda sa false ang patakarang ArcEnabled), ang value na ito ay katumbas ng DisallowArc (value 0).</translation> <translation id="3524204464536655762">Huwag payagan ang anumang site na humiling ng access sa mga USB device sa pamamagitan ng WebUSB API</translation> +<translation id="3526752951628474302">Monochrome na pag-print lang</translation> <translation id="3528000905991875314">Paganahin ang mga kahaliling pahina ng error</translation> <translation id="3545457887306538845">Nagbibigay-daan sa iyong kontrolin kung saan maaaring gamitin ang Mga Tool ng Developer. @@ -980,6 +996,7 @@ <translation id="3577251398714997599">Setting ng mga ad para sa mga site na may mga nakakasagabal na ad</translation> <translation id="3591584750136265240">I-configure ang gawi sa pagpapatotoo sa pag-log in</translation> <translation id="3627678165642179114">Paganahin o huwag paganahin ang spell checking na serbisyo sa web</translation> +<translation id="3628480121685794414">I-enable ang simplex na pag-print</translation> <translation id="3646859102161347133">Itakda ang uri ng magnifier sa screen</translation> <translation id="3653237928288822292">Default na icon ng provider ng paghahanap</translation> <translation id="3660562134618097814">Ilipat ang cookies ng SAML IdP sa pag-log in</translation> @@ -1075,6 +1092,7 @@ Kung itatakda ang patakaran sa false, hindi iuulat ang impormasyon ng session sa kiosk. Kung itatakda sa true o kung sadyang hindi itatakda, iuulat ang impormasyon ng session sa kiosk.</translation> +<translation id="3858658082795336534">Default na printing duplex mode</translation> <translation id="3859780406608282662">Magdagdag ng parameter sa pagkuha ng seed ng Mga Variation sa <ph name="PRODUCT_OS_NAME" />. Kung tinukoy, magdaragdag ito ng parameter ng query na tinatawag na 'restrict' sa URL na ginagamit upang kunin ang seed ng Mga Variation. Ang value ng parameter ay ang value na tinukoy sa patakarang ito. @@ -1183,6 +1201,12 @@ Kung hindi, maaari itong itakda sa isa sa mga sumusunod na value: "tls1.2" o "tls1.3." Kapag naitakda, hindi gagamit ang <ph name="PRODUCT_NAME" /> ng mga bersyon ng SSL/TLS na mas bago kaysa sa tinukoy na bersyon. Babalewalain ang hindi kilalang value.</translation> <translation id="4121350739760194865">Pigilan ang paglitaw ng mga pag-promote ng app sa pahina ng bagong tab</translation> <translation id="412697421478384751">I-enable ang mga user na magtakda ng madadaling hulaang PIN para sa PIN ng lock screen</translation> +<translation id="4129183564590133854">Kinokontrol ng patakarang ito kung mag-uulat ng impormasyong magagamit para makilala ang mga user, gaya ng login ng OS, login ng Profile sa <ph name="PRODUCT_NAME" />, pangalan ng Profile sa <ph name="PRODUCT_NAME" />, path ng Profile sa <ph name="PRODUCT_NAME" />, at nae-execute na path sa <ph name="PRODUCT_NAME" />. + + Kapag hinayaang hindi nakatakda o nakatakda sa True ang patakarang ito, kukunin ang impormasyong magagamit sa pagkilala ng mga user. + Kung nakatakda ang patakarang ito sa False, hindi kukunin ang impormasyong magagamit sa pagkilala ng mga user. + + May bisa lang ang patakarang ito kapag naka-enable ang Chrome Reporting Extension at Cloud Management.</translation> <translation id="4138655880188755661">Limitasyon sa Oras</translation> <translation id="4157003184375321727">I-ulat ang bersyon ng OS at firmware.</translation> <translation id="4157594634940419685">Payagan ang pag-access sa mga native na CUPS printer</translation> @@ -1494,6 +1518,12 @@ Kung hindi ito nakatakda, maaaring tanungin sa user kung mag-i-import o hindi, o maaaring awtomatikong mangyari ang pag-import.</translation> <translation id="5056708224511062314">Naka-disable ang magnifier ng screen</translation> <translation id="5058573563327660283">Piliin ang diskarteng gagamitin para magbakante ng espasyo sa disk sa panahon ng awtomatikong pag-clean-up (hindi na ginagamit)</translation> +<translation id="5058771123777243130">Kinokontrol ng patakarang ito kung mag-uulat ng data ng patakaran at oras ng pagkuha ng patakaran. + + Kapag hinayaang hindi nakatakda o nakatakda sa True ang patakarang ito, kukunin ang data ng patakaran at oras ng pagkuha ng patakaran. + Kung nakatakda ang patakarang ito sa False, hindi kukunin ang data ng patakaran at oras ng pagkuha ng patakaran. + + May bisa lang ang patakarang ito kapag naka-enable ang Chrome Reporting Extension at Cloud Management.</translation> <translation id="5067143124345820993">White list ng user sa pag-login</translation> <translation id="5068140065960598044">Ino-override ng patakaran sa cloud ng <ph name="PRODUCT_NAME" /> ang patakaran sa Machine.</translation> <translation id="5085647276663819155">Huwag paganahin ang Preview ng Pag-print</translation> @@ -1606,6 +1636,7 @@ <translation id="5366977351895725771">Kung nakatakda sa false, idi-disable ang paggawa ng pinapangasiwaang user para sa user na ito. Magiging available pa rin ang sinumang mga umiiral na pinapangasiwaang user. Kung nakatakda sa true o hindi naka-configure, maaaring gumawa at mamahala ng mga pinapangasiwaang user ang user na ito.</translation> +<translation id="5369937289900051171">May kulay na pag-print lang</translation> <translation id="5370279767682621504">I-enable ang suporta sa HTTP/0.9 sa mga hindi default na port</translation> <translation id="5378985487213287085">Binibigyang-daan kang magtakda kung pinapayagan o hindi ang mga website na magpakita ng mga notification sa desktop. Maaaring payagan bilang default, tanggihan bilang default ang pagpapakita ng mga notification sa desktop o maaaring tanungin ang user sa bawat pagkakataong gustong ipakita ng isang website ang mga notification sa desktop. @@ -1631,6 +1662,7 @@ Kung hindi ito nakatakda, maaaring tanungin sa user kung mag-i-import o hindi, o maaaring awtomatikong mangyari ang pag-import.</translation> <translation id="5423197884968724595">Pangalan ng paghihigpit sa WebView ng Android:</translation> +<translation id="5424147596523390018">Payagan ang lahat ng color mode</translation> <translation id="5442026853063570579">Kinokontrol din ng patakarang ito ang access sa Mga Opsyon ng Developer sa Android. Kung itatakda mo ang patakarang ito sa 'DeveloperToolsDisallowed' (value na 2), hindi maa-access ng mga user ang Mga Opsyon ng Developer. Kung itatakda mo ang patakarang ito sa iba pang value o hahayaan mo itong hindi nakatakda, maa-access ng mga user ang Mga Opsyon ng Developer sa pamamagitan ng pag-tap nang pitong beses sa numero ng build na nasa app ng mga setting ng Android.</translation> <translation id="5447306928176905178">I-enable ang pag-uulat ng impormasyon ng memory (laki ng JS heap) sa pahina (hindi na ginagamit)</translation> <translation id="5457065417344056871">I-enable ang guest mode sa browser</translation> @@ -1699,6 +1731,7 @@ <translation id="5586942249556966598">Walang gawin</translation> <translation id="5630352020869108293">Ipanumbalik ang huling session</translation> <translation id="5645779841392247734">Payagan ang cookies sa mga site na ito</translation> +<translation id="5689430183304951538">Default na laki ng page ng pag-print</translation> <translation id="5693469654327063861">Payagan ang paglipat ng data</translation> <translation id="5694594914843889579">Kapag nakatakda sa true ang patakarang ito, hindi magiging available ang external storage sa browser ng file. @@ -1728,6 +1761,7 @@ Kapag hindi nakatakda ang patakarang ito, may default na tagal ng oras na gagamitin. Dapat tukuyin ang halaga ng patakaran ayon sa millisecond.</translation> +<translation id="5783009211970309878">Mga Header at Footer ng Pag-print</translation> <translation id="5809728392451418079">Itakda ang display name para sa mga account na lokal sa device</translation> <translation id="5814301096961727113">Itakda ang default na katayuan ng isinalitang feedback sa screen sa pag-login</translation> <translation id="5815129011704381141">Awtomatikong mag-reboot pagkatapos mag-update</translation> @@ -1745,6 +1779,7 @@ Kung pinili ang 'Hindi Pinagana', hindi maaaring buksan sa mode na Incognito ang mga pahina. Kung pinili ang 'Ipinilit', maaari LAMANG buksan ang mga pahina sa mode na Incognito.</translation> +<translation id="582857022372205358">I-enable ang short edge duplex na pag-print</translation> <translation id="583091600226586337"> Kung naka-enable ang patakaran, itatanong sa user kung saan ise-save ang bawat file bago i-download ang mga ito. Kung naka-disable ang patakaran, magsisimula kaagad ang mga pag-download, at hindi itatanong sa user kung saan ise-save ang file. @@ -1780,6 +1815,7 @@ Kung naka-disable o hindi naka-configure ang setting na ito, hindi ipo-proxy ang mga kahilingan sa pagpapatunay ng gnubby.</translation> <translation id="5898486742390981550">Kapag maraming user ang naka-log in, ang pangunahing user lang ang maaaring gumamit ng mga Android app.</translation> +<translation id="5901427587865226597">Duplex na pag-print lang</translation> <translation id="5906199912611534122">Pinapayagan ang pag-enable o pag-disable ng pag-throttle ng network. Naaangkop ito sa lahat ng user, at sa lahat ng interface sa device. Kapag naitakda na, magpapatuloy ang pag-throttle hanggang sa mabago ang patakaran upang i-disable na ito. @@ -1887,6 +1923,7 @@ Dapat tukuyin ang value ng patakaran sa milliseconds. Itinatakda ang mga value upang maging mas maikli ang mga ito kaysa sa itinakdang oras ng pagiging idle.</translation> <translation id="6097601282776163274">Nag-e-enable sa pangongolekta ng naka-anonymize na data na may key ng URL</translation> +<translation id="6099853574908182288">Default na printing color mode</translation> <translation id="6111936128861357925">Pahintulutan ang Dinosaur Easter Egg Game</translation> <translation id="6114416803310251055">hindi na ginagamit</translation> <translation id="6133088669883929098">Payagan ang lahat ng site na gumamit ng pagbuo ng key</translation> @@ -1901,6 +1938,7 @@ Kung hahayaang hindi nakatakda ang patakarang ito, ang pangkalahatang default na value ang gagamitin para sa lahat ng site na magmumula sa patakarang 'DefaultPluginsSetting' kung nakatakda ito, o kung hindi, sa personal na configuration ng user.</translation> <translation id="6190022522129724693">Default na setting ng mga popup</translation> +<translation id="6190367314942602985">Iulat ang impormasyon ng Pagkakakilanlan ng User</translation> <translation id="6197453924249895891">Nagbibigay-daan sa pag-access ng mga corporate key sa mga extension. Nakatalaga ang mga key par sa corporate na paggamit kung nabuo ang mga ito gamit ang chrome.enterprise.platformKeys API sa isang pinapamahalaang account. Ang mga key na na-import o nabuo sa ibang paraan ay hindi nakatalaga para sa corporate na paggamit. @@ -1910,6 +1948,8 @@ Bilang default, hindi maaaring gamitin ng extension ang isang key na nakatalaga para sa corporate na paggamit, na katumbas sa pagtatakda ng allowCorporateKeyUsage sa false para sa extension na iyon. Kung nakatakda ang allowCorporateKeyUsage lang sa true para sa isang extension, maaari itong gumamit ng anumang key ng platform na nakamarka para sa corporate na paggamit upang mag-sign ng arbitrary na data. Dapat lang ibigay ang pahintulot na ito kung ang extension ay pinagkakatiwalaan na mag-secure ng access sa key laban sa mga attacker.</translation> +<translation id="6208896993204286313">Iulat ang Impormasyon ng Patakaran ng <ph name="PRODUCT_NAME" /></translation> +<translation id="6210259502936598222">Iulat ang Impormasyon ng Bersyon ng OS at <ph name="PRODUCT_NAME" /></translation> <translation id="6211428344788340116">Iulat ang mga oras ng aktibidad ng device. Kung hindi nakatakda ang setting na ito o nakatakda ito sa True, iuulat ng mga naka-enroll na device ang mga yugto ng panahon kung kailan aktibo sa device ang user. Kung nakatakda ito sa False, hindi itatala o iuulat ang mga oras ng aktibidad ng device.</translation> @@ -1927,6 +1967,7 @@ Kung pinagana mo ang setting na ito, at ang port na hindi karaniwan (ibig sabihin, isang port bukod sa 80 o 443) ay inilagay, isasama ito sa nabuong Kerberos SPN. Kung hindi mo pinagana ang setting na ito, ang nabuong Kerberos SPN ay hindi magsasama ng port sa anumang kaso.</translation> +<translation id="6261643884958898336">Iulat ang impormasyon ng Pagkakakilanlan ng Machine</translation> <translation id="6281043242780654992">Kino-configure ang mga patakaran para sa Native na Pagmemensahe. Hindi papayagan ang mga naka-blacklist na host ng native na pagmemensahe maliban kung naka-whitelist ang mga ito.</translation> <translation id="6282799760374509080">Payagan o tanggihan ang pagkuha ng audio</translation> <translation id="6284362063448764300">TLS 1.1</translation> @@ -1957,6 +1998,7 @@ Kung pipiliin mong awtomatikong i-detect ang proxy server, ibibigay sa mga Android app ang script URL na "http://wpad/wpad.dat." Walang gagamiting ibang bahagi ng protocol ng awtomatikong pag-detect ng proxy. Kung pipiliin mong gumamit ng isang .pac proxy script, ibibigay sa mga Android app ang script URL.</translation> +<translation id="6430366557948788869">Chrome Reporting Extension</translation> <translation id="6440051664870270040">Payagan ang mga site na sabay na mag-navigate at magbukas ng mga pop-up</translation> <translation id="6447948611083700881">Na-disable ang pag-backup at pag-restore</translation> <translation id="645425387487868471">I-enable ang pwersahang pag-sign in para sa <ph name="PRODUCT_NAME" /></translation> @@ -2003,6 +2045,7 @@ <translation id="6628646143828354685">Binibigyang-daan kang magtakda kung pinapayagan ang mga website na kumuha ng access sa malalapit na Bluetooth device. Maaaring ganap na i-block ang access, o maaaring tanungin ang user sa tuwing gusto ng website na kumuha ng access sa malalapit na Bluetooth device. Kung hinayaang hindi nakatakda ang patakarang ito, gagamitin ang '3,' at magagawa ng user na baguhin ito.</translation> +<translation id="663685822663765995">Paghigpitan ang printing color mode</translation> <translation id="6641981670621198190">Huwag paganahin ang suporta para sa mga API ng mga 3D na graphic</translation> <translation id="6647965994887675196">Kung nakatakda sa true, maaaring gumawa at gumamit ng mga pinapangasiwaang user. @@ -2030,6 +2073,7 @@ Hindi dapat sumasalungat ang mga pattern ng URL sa patakarang ito sa mga pattern ng URL na na-configure sa pamamagitan ng WebUsbAskForUrls. Hindi tinutukoy kung alin sa dalawang patakaran ang masusunod kung tumutugma ang isang URL sa parehong patakaran.</translation> <translation id="6689792153960219308">Iulat ang status ng hardware</translation> +<translation id="6698632841807204978">I-enable ang monochrome na pag-print</translation> <translation id="6699880231565102694">Paganahin ang pagpapatotoong may dalawang salik para sa mga host ng malayuang pag-access</translation> <translation id="6724842112053619797">Kung ie-enable mo ang setting na ito, ang mga setting na naka-store sa mga profile sa <ph name="PRODUCT_NAME" /> tulad ng mga bookmark, data ng autofill, mga password, atbp. ay ira-write din sa isang file na naka-store sa folder ng profile ng user ng Roaming o sa isang lokasyong tinukoy ng Administrator sa pamamagitan ng patakarang <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Madi-disable ang pag-sync sa cloud kapag na-enable ang patakarang ito. @@ -2069,6 +2113,12 @@ Kinokontrol ng setting na ito ang presentasyon ng mga welcome page na nakakatulong sa mga user na mag-sign in sa <ph name="PRODUCT_NAME" />, piliin ito bilang kanilang default na browser, o abisuhan sila tungkol sa mga feature ng produkto.</translation> <translation id="6766216162565713893">Payagan ang mga site na hilingin sa user na magbigay ng access sa malapit na Bluetooth device</translation> <translation id="6770454900105963262">Mag-ulat ng impormasyon tungkol sa mga aktibong session ng kiosk</translation> +<translation id="6773056206551814546">Kinokontrol ng patakarang ito kung mag-uulat ng impormasyong magagamit para makilala ang mga machine, gaya ng pangalan ng machine at mga address ng network. + + Kapag hinayaang hindi nakatakda o nakatakda sa True ang patakarang ito, kukunin ang impormasyong magagamit sa pagkilala ng mga machine. + Kung nakatakda ang patakarang ito sa False, hindi kukunin ang impormasyong magagamit sa pagkilala ng mga machine. + + May bisa lang ang patakarang ito kapag naka-enable ang Chrome Reporting Extension at Cloud Management.</translation> <translation id="6786747875388722282">Mga Extension</translation> <translation id="6786967369487349613">Itakda ang direktoryo ng roaming na profile</translation> <translation id="6810445994095397827">I-block ang JavaScript sa mga site na ito</translation> @@ -2172,6 +2222,7 @@ <translation id="6923366716660828830">Tinutukoy ang pangalan ng default na provider ng paghahanap. Kung hinayaang walang laman o hindi nakatakda, gagamitin ang pangalan ng host na tinukoy ng URL ng paghahanap. Isinasaalang-alang lamang sa ang patakarang ito kung pinagana ang patakaran ng 'DefaultSearchProviderEnabled.'</translation> +<translation id="6926703471186170050">I-enable ang long edge duplex na pag-print</translation> <translation id="6931242315485576290">Huwag paganahin pag-synchronize ng data sa Google</translation> <translation id="6936894225179401731">Tinutukoy ang pinakamataas na bilang ng mga sabay-sabay na koneksyon sa proxy server. @@ -2379,6 +2430,7 @@ Kung naka-disable o hindi naka-configure ang setting na ito, maaaring piliin ng mga user na tumuloy sa naka-flag na site pagkatapos mabigyan ng babala. Tingnan sa https://developers.google.com/safe-browsing para sa higit pang impormasyon tungkol sa Ligtas na Pag-browse.</translation> +<translation id="737655323154569539">Pinaghihigpitan ang laki ng page ng pag-print. Itinuturing na walang paghihigpit ang hindi nakatakdang patakaran at empty set.</translation> <translation id="7417728346887499628">Kung naka-disable, pipigilan ang Chrome Cleanup na i-scan ang system para sa hindi kanais-nais na software at magsasagawa ng mga pagtatanggal. Madi-disable ang manual na pag-trigger sa Chrome Cleanup mula sa chrome://settings/cleanup. Kung naka-enable o hindi naitakda, pana-panahong isa-scan ng Chrome Cleanup ang system para sa hindi kanais-nais na software at kung may anumang makita, tatanungin nito ang user kung gusto niya itong alisin. Mae-enable ang manual na pag-trigger sa Chrome Cleanup mula sa chrome://settings. @@ -2449,6 +2501,8 @@ <translation id="7617319494457709698">Tinutukoy ng patakarang ito ang mga pinapahintulutang extension upang magamit ang <ph name="ENTERPRISE_PLATFORM_KEYS_API" /> function <ph name="CHALLENGE_USER_KEY_FUNCTION" /> para sa malayuang pagpapatunay. Dapat magdagdag ng mga extension sa listahang ito upang magamit ang API. Kung wala sa listahan ang isang extension, o hindi nakatakda ang listahan, papalya ang call sa API na may code ng error.</translation> +<translation id="7618907117929117943">Mag-roll back at manatili sa target na bersyon kung mas bago ang bersyon ng OS kaysa sa target at posibleng ma-carry over ang pag-configure sa antas ng device (kabilang ang mga kredensyal ng network) sa pamamagitan ng rollback, gayundin sa paglaktaw sa OOBE pagkatapos ng rollback. Huwag mag-roll back o mag-abort ng rollback kung hindi iyon posible (dahil hindi sinusuportahan ng target na bersyon ang pag-restore ng data o dahil sa backward-incompatible na pagbabago). + Sinusuportahan sa bersyon 70 pataas ng <ph name="PRODUCT_OS_NAME" />. Para sa mga dati nang kliyente, nangangahulugan ang value na ito na naka-disable ang pag-roll back.</translation> <translation id="7625444193696794922">Tinutukoy ang channel ng paglabas kung saan dapat naka-lock ang device.</translation> <translation id="7632724434767231364">Pangalan ng GSSAPI library</translation> <translation id="7635471475589566552">Kino-configure ang lokal ng application sa <ph name="PRODUCT_NAME" /> at pinipigilan ang mga user na baguhin ang lokal. @@ -2652,6 +2706,7 @@ Kung ie-enable mo ang setting na ito o hindi ka magtatakda ng value, mananatiling nasa kontrol ng user ang AutoFill. Sa pamamagitan nito, magagawa niyang i-configure ang mga profile ng AutoFill at i-on o i-off ang AutoFill kung gugustuhin niya.</translation> <translation id="8044493735196713914">Iulat ang boot mode ng device</translation> <translation id="8050080920415773384">Native na Pag-print</translation> +<translation id="8053580360728293758">Ino-override ang default na printing color mode. Kung hindi available ang mode, binabalewala ang patakarang ito.</translation> <translation id="8059164285174960932">URL kung saan dapat makuha ng mga client ng malayuang pag-access ang kanilang token sa pagpapatotoo</translation> <translation id="8078366200175825572">Binibigyang-daan kang magtakda ng listahan ng mga pattern ng url na tumutukoy ng mga site na hindi pinapayagang magtakda ng cookies. @@ -2838,6 +2893,7 @@ Dito, ang "Bersyon" ay maaaring maging eksaktong bersyon tulad ng '61.0.3163.120' o prefix ng bersyon, tulad ng '61.0' </translation> <translation id="8544375438507658205">Default na taga-render ng HTML para sa <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">Payagan ang Mga Mensaheng SMS na ma-sync mula sa telepono papunta sa Chromebook.</translation> +<translation id="8548832052135586762">Itinatakda ang pag-print sa may kulay lang, monochrome lang, o walang paghihigpit sa color mode. Itinuturing na walang paghihigpit ang hindi nakatakdang patakaran.</translation> <translation id="8549772397068118889">Magbabala kapag bumibisita ng mga site na nasa labas ng mga pack ng nilalaman</translation> <translation id="8566842294717252664">Itago ang web store sa Page ng Bagong Tab at app launcher</translation> <translation id="8586528890725660268">Tinutukoy ang mga printer na maaaring gamitin ng isang user. @@ -2948,6 +3004,7 @@ Kung hahayaang hindi nakatakda ang setting na ito, maaaring magpasya ang user na gamitin ang function na ito o hindi.</translation> <translation id="8870318296973696995">Home page</translation> +<translation id="8876188741456358123">Ino-override ang default na printing duplex mode. Kung hindi available ang mode, binabalewala ang patakarang ito.</translation> <translation id="8882006618241293596">I-block ang plugin na <ph name="FLASH_PLUGIN_NAME" /> sa mga site na ito</translation> <translation id="890403179930035128">Puwersahang ine-enable ang mga wika ng spellcheck. Babalewalain ang mga hindi kilalang wika sa listahang iyon. @@ -3044,6 +3101,8 @@ <translation id="9084985621503260744">Tukuyin kung nakakaapekto ang aktibidad ng video sa pamamahala ng power</translation> <translation id="9088433379343318874">I-enable ang content provider ng pinangangasiwaang user</translation> <translation id="9088444059179765143">I-configure ang awtomatikong paraan ng pag-detect ng timezone</translation> +<translation id="9094064873808699479">Mag-roll back at manatili sa target na bersyon kung mas bago ang bersyon ng OS kaysa sa target. Subukang i-carry over ang pag-configure sa antas ng device (kabilang ang mga kredensyal ng network) sa pamamagitan ng proseso ng rollback, kung posible, ngunit mag-roll back nang may ganap na powerwash kahit pa hindi posible ang pag-restore ng data (dahil hindi sinusuportahan ng target na bersyon ang pag-restore ng data o dahil sa backward-incompatible na pagbabago). + Sinusuportahan sa bersyon 70 pataas ng <ph name="PRODUCT_OS_NAME" />. Para sa mga dati nang kliyente, nangangahulugan ang value na ito na naka-disable ang pag-roll back.</translation> <translation id="9096086085182305205">Whitelist ng server sa pagpapatotoo</translation> <translation id="9098553063150791878">Mga patakaran para sa pagpapatotoo ng HTTP</translation> <translation id="9105265795073104888">Mayroon lang subset ng opsyon sa configuration ng proxy sa mga Android app. Maaaring boluntaryong piliin ng mga Android app na gamitin ang proxy. Hindi mo maaaring puwersahin ang mga ito na gumamit ng proxy.</translation> @@ -3102,6 +3161,13 @@ <translation id="9187743794267626640">Huwag paganahin ang pag-mount ng panlabas na storage</translation> <translation id="9197740283131855199">Porsyento na nase-scale ang pagkaantala ng pagdilim ng screen kapag naging aktibo ang user pagkatapos ng pagdilim</translation> <translation id="9200828125069750521">Mga parameter para sa URL ng larawan na gumagamit ng POST</translation> +<translation id="920209539000507585">Sapilitang i-on o i-off ang 'mga header at footer' sa dialog ng pag-print. + + Kung hindi nakatakda ang patakaran, makakapagpasya ang user kung ipi-print ang mga header at footer. + + Kung nakatakda sa false ang patakaran, hindi napili ang 'Mga header at footer' sa dialog ng preview ng pag-print, at hindi ito mababago ng user. + + Kung nakatakda sa true ang patakaran, napili ang 'Mga header at footer' sa dialog ng preview ng pag-print, at hindi ito mababago ng user.</translation> <translation id="9210953373038593554">Kino-configure ang uri ng pag-authenticate para sa mga SAML na pag-log in. Kapag hindi nakatakda o nakatakda sa Default (value 0) ang patakarang ito, tutukuyin ng browser ang gawi ng mga SAML na pag-log in depende sa iba pang salik. Sa pinakapangunahing sitwasyon, nakabatay ang pag-authenticate ng user at ang proteksyon ng naka-cache na data ng user sa mga password na manual na inilagay ng mga user. @@ -3109,6 +3175,9 @@ Kung nakatakda ang patakarang ito sa ClientCertificate (value 1), gagamitin ang pag-authenticate ng certificate ng kliyente para sa mga bagong naidagdag na user na nagla-log in sa pamamagitan ng SAML. Walang ginagamit na password para sa mga nasabing user, at pinoprotektahan ang kanilang naka-cache na lokal na data gamit ang mga kaukulang cryptographic key. Halimbawa, nagagamit ang setting na ito para ma-configure ang smart card batay sa pag-authenticate ng user (tandaang kailangang i-install ang mga smart card middleware app sa pamamagitan ng patakarang DeviceLoginScreenAppInstallList). Maaapektuhan lang ng patakarang ito ang mga user na nao-authenticate gamit ang SAML.</translation> +<translation id="9211439035693857287">I-configure ang mga patakarang nauugnay sa Chrome Reporting Extension. + + May bisa lang ang mga patakarang ito kapag naka-enable ang Chrome Reporting Extension at Cloud Management.</translation> <translation id="9213347477683611358">Nagko-configure ng larawan ng wallpaper sa device na ipinapakita sa screen ng pag-login kung wala pang naka-sign in na user sa device. Itinatakda ang patakaran sa pamamagitan ng pagtukoy sa URL kung saan maaaring i-download ng Chrome OS device ang larawan ng wallpaper at isang cryptographic hash na ginagamit upang i-verify ang integridad ng pag-download. Dapat ay nasa format na JPEG ang larawan, at hindi dapat lumampas ang laki ng file sa 16MB. Dapat ay naa-access ang URL nang walang anumang pag-authenticate. Na-download at na-cache ang larawan ng wallpaper. Ida-download itong muli sa tuwing magbabago ang URL o ang hash. Dapat ay tukuyin ang patakaran bilang isang string na nagpapakita ng URL at hash sa format na JSON, hal.,
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb index 03dc921..7c453b63 100644 --- a/components/policy/resources/policy_templates_fr.xtb +++ b/components/policy/resources/policy_templates_fr.xtb
@@ -2950,7 +2950,7 @@ Ce facteur doit être de 100 % ou plus. Les valeurs qui auraient pour conséquence de rendre le délai d'assombrissement de l'écran en mode Présentation plus court que le délai d'assombrissement de l'écran standard ne sont pas autorisées.</translation> <translation id="8798099450830957504">Par défaut</translation> -<translation id="8801680448782904838">Avertir un utilisateur qu'un redémarrage du navigateur ou de l'appareil est recommandé ou requis</translation> +<translation id="8801680448782904838">Avertir un utilisateur qu'un redémarrage du navigateur ou de l'appareil est recommandé ou exigé</translation> <translation id="8818173863808665831">Permet d'indiquer l'emplacement géographique de l'appareil. Si cette règle n'est pas définie, ou si la valeur "false" lui est attribuée, l'emplacement n'est pas indiqué.</translation> @@ -3119,7 +3119,7 @@ <translation id="9158929520101169054">Autoriser la connexion multicompte dans le navigateur</translation> <translation id="9159126470527871268">Avertit les utilisateurs que <ph name="PRODUCT_NAME" /> doit être relancé ou que l'appareil <ph name="PRODUCT_OS_NAME" /> doit être redémarré pour qu'une mise à jour en cours puisse être appliquée. - Cette règle active l'envoi de notifications pour avertir l'utilisateur qu'un redémarrage du navigateur ou de l'appareil est recommandé ou requis. Si cette règle n'est pas configurée, <ph name="PRODUCT_NAME" /> indique à l'utilisateur, par le biais de modifications discrètes du menu, qu'un redémarrage est nécessaire. Pour l'appareil <ph name="PRODUCT_OS_NAME" />, une notification s'affiche dans la barre d'état système. Si la règle est définie sur "Recommandé", un avertissement récurrent s'affiche, indiquant qu'un redémarrage est recommandé. L'utilisateur peut ignorer cet avertissement et redémarrer le navigateur ou l'appareil plus tard. Si elle est définie sur "Requis", un avertissement récurrent s'affiche, indiquant que le redémarrage du navigateur ou de l'appareil sera forcé à l'issue de la période de notification. Par défaut, ce délai est de sept jours pour <ph name="PRODUCT_NAME" /> et de quatre jours pour l'appareil <ph name="PRODUCT_OS_NAME" />, et peut être configuré à l'aide du paramètre <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. + Cette règle active l'envoi de notifications pour avertir l'utilisateur qu'un redémarrage du navigateur ou de l'appareil est recommandé ou exigé. Si cette règle n'est pas configurée, <ph name="PRODUCT_NAME" /> indique à l'utilisateur, par le biais de modifications discrètes du menu, qu'un redémarrage est nécessaire. Pour l'appareil <ph name="PRODUCT_OS_NAME" />, une notification s'affiche dans la barre d'état système. Si la règle est définie sur "Recommandé", un avertissement récurrent s'affiche, indiquant qu'un redémarrage est recommandé. L'utilisateur peut ignorer cet avertissement et redémarrer le navigateur ou l'appareil plus tard. Si elle est définie sur "Requis", un avertissement récurrent s'affiche, indiquant que le redémarrage du navigateur ou de l'appareil sera forcé à l'issue de la période de notification. Par défaut, ce délai est de sept jours pour <ph name="PRODUCT_NAME" /> et de quatre jours pour l'appareil <ph name="PRODUCT_OS_NAME" />, et peut être configuré à l'aide du paramètre <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. La session de l'utilisateur est restaurée après le redémarrage.</translation> <translation id="9165792353046089850">Cette règle permet de définir si les sites Web sont autorisés à accéder aux appareils USB connectés. Soit l'accès est complètement bloqué, soit l'utilisateur reçoit un message chaque fois qu'un site Web souhaite accéder aux appareils USB connectés.
diff --git a/components/policy/resources/policy_templates_gu.xtb b/components/policy/resources/policy_templates_gu.xtb index 5bb0af5f..a652be98 100644 --- a/components/policy/resources/policy_templates_gu.xtb +++ b/components/policy/resources/policy_templates_gu.xtb
@@ -379,7 +379,7 @@ જો આ સેટિંગ સેટ કર્યા વગર છોડી હોય તો વપરાશકર્તા આ ફંકશનનો ઉપયોગ કરવો કે નહીં તે નક્કી કરી શકે છે.</translation> <translation id="2006530844219044261">પાવર સંચાલન</translation> <translation id="201557587962247231">ઉપકરણ સ્થિતિ રિપોર્ટ અપલોડ્સની તીવ્રતા</translation> -<translation id="2017301949684549118">સાઇલન્ટ રીતે ઇન્સ્ટૉલ કરવા વેબ માટે URLs.</translation> +<translation id="2017301949684549118">સાઇલન્ટ રીતે ઇન્સ્ટૉલ કરવામાં આવતા વેબ ઍપના URLs.</translation> <translation id="2018836497795982119">અવધિનો ઉલ્લેખ મિલિસેકંડમાં કરે છે કે જેના પર ઉપકરણ સંચાલન સેવાને ઉપકરણ નીતિ માહિતી માટે ક્વેરી કરવામાં આવે છે. આ નીતિને સેટ કરવું 3 કલાકના ડિફૉલ્ટ મૂલ્યને ઓવરરાઇડ કરે છે. આ નીતિ માટેના માન્ય મૂલ્યો 1800000 (30 મિનિટ) થી 86400000 (1 દિવસ) સુધીની શ્રેણીમાં છે. આ શ્રેણીમાં ન હોય તેવા કોઈપણ મૂલ્ય તેની અનુક્રમે આવતી સીમાથી જોડાઈ જશે. જો પ્લેટફોર્મ નીતિ સૂચનાઓનું સમર્થન કરે છે, તો તાજું કરવા માટેનો વિલંબ 24 કલાક પર સેટ કરવામાં આવશે કારણ કે એ અપેક્ષા કરવામાં આવે છે કે જ્યારે પણ નીતિ બદલાય છે ત્યારે નીતિ સૂચનાઓ આપમેળે તાજું કરવાની ફરજ પાડશે. @@ -1485,8 +1485,8 @@ </translation> <translation id="4554651132977135445">વપરાશકર્તા નીતિ લૂપબૅક પ્રક્રિયા મોડ</translation> <translation id="4554841826517980623">આ નીતિ એ નિયંત્રિત કરે છે કે <ph name="PRODUCT_NAME" /> માટેની નેટવર્ક ફાઇલ શેર સુવિધાએ નેટવર્ક પર શેર શોધવા માટે <ph name="NETBIOS_PROTOCOL" />નો ઉપયોગ કરવો જોઈએ કે નહીં. - જ્યારે આ નીતિ True પર સેટ કરેલી હોય, ત્યારે શેર શોધ સુવિધા નેટવર્ક પર શેર શોધવા માટે <ph name="NETBIOS_PROTOCOL" /> પ્રોટોકોલનો ઉપયોગ કરશે. - જ્યારે આ નીતિને False પર સેટ કરેલ હોય, ત્યારે શેર શોધ સુવિધા શેર શોધવા માટે <ph name="NETBIOS_PROTOCOL" /> પ્રોટોકોલનો ઉપયોગ કરશે નહીં. + જ્યારે આ નીતિ True પર સેટ કરેલી હોય, ત્યારે શેર શોધ સુવિધા નેટવર્ક પર શેર શોધવા માટે <ph name="NETBIOS_PROTOCOL" /> પ્રોટોકૉલનો ઉપયોગ કરશે. + જ્યારે આ નીતિને False પર સેટ કરેલ હોય, ત્યારે શેર શોધ સુવિધા શેર શોધવા માટે <ph name="NETBIOS_PROTOCOL" /> પ્રોટોકૉલનો ઉપયોગ કરશે નહીં. જો નીતિને સેટ કર્યા વિના રાખવામાં આવે, તો ડિફૉલ્ટને એન્ટરપ્રાઇઝ દ્વારા મેનેજ કરાતા વપરાશકર્તાઓ માટે બંધ કરવામાં આવે છે અને મેનેજ કરાતા વપરાશકર્તા ન હોય તેના માટે ચાલુ કરવામાં આવે છે.</translation> <translation id="4555850956567117258">વપરાશકર્તા માટે દૂરસ્થ પ્રમાણન સક્ષમ કરો</translation> <translation id="4557134566541205630">ડિફોલ્ટ શોધ પ્રદાતા નવું ટેબ પૃષ્ઠ URL</translation> @@ -2629,7 +2629,7 @@ <translation id="7343497214039883642">ઉપકરણો માટે એન્ટરપ્રાઇઝ પ્રિન્ટર ગોઠવણી ફાઇલ</translation> <translation id="7349338075015720646">એવી વેબસાઇટની સૂચિનો ઉલ્લેખ કરે છે કે જે વપરાશકર્તાની ક્રિયાપ્રતિક્રિયા વિના, સાઇલન્ટ રીતે ઇન્સ્ટૉલ થાય છે અને જેને વપરાશકર્તા અનઇન્સ્ટૉલ કે બંધ કરી શકતા નથી. - આ નીતિની દરેક આઇટમ બે સભ્યો ધરાવતો એક ઑબ્જેક્ટ છે: "url" અને "launch_container". "url" એ ઇન્સ્ટૉલ કરવા માટેનું વેબ ઍપનું URL હોવું જોઈએ અને વેબ ઍપ એકવાર ઇન્સ્ટૉલ થાય પછી તે કેવી રીતે ખુલે તે જણાવતી "વિંડો" અથવા "ટૅબ" હોવી જોઈએ. જો "launch_container"ને છોડી દેવામાં આવે, તો ઍપ વિંડોમાં લૉન્ચ થશે પણ જો Chrome તેને પ્રગતિશીલ વેબ ઍપ તરીકે ધ્યાનમાં લે અને નહીં તો પછી ટૅબમાં લૉન્ચ થશે.</translation> + આ નીતિની દરેક આઇટમ બે સભ્યો ધરાવતો એક ઑબ્જેક્ટ છે: "url" અને "launch_container". "url" એ ઇન્સ્ટૉલ કરવા માટેનું વેબ ઍપનું URL હોવું જોઈએ અને વેબ ઍપ એકવાર ઇન્સ્ટૉલ થાય પછી તે કેવી રીતે ખૂલે તે જણાવતી "વિંડો" અથવા "ટૅબ" હોવી જોઈએ. જો "launch_container"ને છોડી દેવામાં આવે, તો ઍપ વિંડોમાં લૉન્ચ થશે પણ જો Chrome તેને પ્રગતિશીલ વેબ ઍપ તરીકે ધ્યાનમાં લે અને નહીં તો પછી ટૅબમાં લૉન્ચ થશે.</translation> <translation id="7367028210010532881">જ્યારે વપરાશકર્તાઓ સંભવિત રૂપે દૂષિત તરીકે ચિહ્નિત કરેલી હોય તેવી સાઇટ પર નૅવિગેટ કરે ત્યારે સુરક્ષિત બ્રાઉઝિંગ સેવા એક ચેતવણી પેજ બતાવે છે. આ સેટિંગને ચાલુ કરવું તે વપરાશકર્તાઓને કોઈપણ રીતે ચેતવણી પેજથી દૂષિત સાઇટ પર આગળ વધવાથી અટકાવે છે. જો આ સેટિંગ બંધ હોય અથવા ગોઠવેલ ન હોય, તો વપરાશકર્તાઓ ચેતવણી જોયા પછી ચિહ્નિત કરેલી સાઇટ પર આગળ વધવાનું પસંદ કરી શકશે. @@ -3226,7 +3226,7 @@ માપ પરિબળ 100% અથવા વધુ હોવું આવશ્યક છે. પ્રસ્તુતિ મોડમાં સ્ક્રીન મંદતા વિલંબને નિયમિત સ્ક્રીન મંદતા વિલંબ કરતાં નાનાં બનાવશે તેવા મૂલ્યોને મંજૂરી નથી.</translation> <translation id="8798099450830957504">ડિફૉલ્ટ</translation> -<translation id="8801680448782904838">એક વપરાશકર્તાને સૂચિત કરો કે બ્રાઉઝર રીલૉન્ચ કરવાનો અથવા ઉપકરણને ફરી શરૂ કરવાનો સુઝાવ આપેલ છે અથવા આવશ્યક છે</translation> +<translation id="8801680448782904838">વપરાશકર્તાને સૂચિત કરો કે બ્રાઉઝર રીલૉન્ચ કરવાનો અથવા ઉપકરણને ફરી શરૂ કરવાનો સુઝાવ આપેલ છે અથવા આવશ્યક છે</translation> <translation id="8818173863808665831">ઉપકરણનાં ભૌગોલિક સ્થાનની જાણ કરો. જો આ નીતિ સેટ કરેલી નથી અથવા ફૉલ્સ પર સેટ કરેલી છે, તો સ્થાનની જાણ કરવામાં આવશે નહીં.</translation>
diff --git a/components/policy/resources/policy_templates_hi.xtb b/components/policy/resources/policy_templates_hi.xtb index c41c808..e9ec20e7 100644 --- a/components/policy/resources/policy_templates_hi.xtb +++ b/components/policy/resources/policy_templates_hi.xtb
@@ -261,12 +261,11 @@ <translation id="1827523283178827583">निश्चित प्रॉक्सी सर्वर का उपयोग करें</translation> <translation id="1843117931376765605">'उपयोगकर्ता नीति' के लिए रीफ्रेश दर</translation> <translation id="1844620919405873871">तुरंत अनलॉक करने संबंधी नीतियां कॉन्फ़िगर करती है.</translation> -<translation id="1847960418907100918">POST के साथ त्वरित खोज करते समय उपयोग किए जाने वाले पैरामीटर निर्दिष्ट करती है. इसमें अल्पविराम द्वारा अलग किए गए नाम/मान के युग्म शामिल होते हैं. यदि कोई मान टेम्पलेट पैरामीटर, जैसे उपरोक्त उदाहरण में {searchTerms} है, तो उसे वास्तविक खोज शब्द डेटा से प्रतिस्थापित कर दिया जाएगा. +<translation id="1847960418907100918">POST के साथ कोई इंस्टंट सर्च करते समय उपयोग किए जाने वाले पैरामीटर तय करती है. इसमें कॉमा के ज़रिए अलग किए गए नाम/मान जोड़े शामिल होते हैं. अगर कोई मान टेम्पलेट पैरामीटर, जैसे ऊपर दिए गए उदाहरण में {searchTerms} है तो, उसे वास्तविक खोज शब्द डेटा से बदल दिया जाएगा. + यह नीति वैकल्पिक है. अगर इसे जोड़ा नहीं गया है, तो इंस्टंट सर्च के अनुरोध को गेट (GET) विधि के ज़रिए भेजा जाएगा. - यह नीति वैकल्पिक है. सेट नहीं होने पर त्वरित खोज अनुरोध को GET विधि का उपयोग करके भेज दिया जाएगा. - - इस नीति का पालन केवल तभी किया जाता है यदि 'DefaultSearchProviderEnabled' नीति सक्षम हो.</translation> + 'DefaultSearchProviderEnabled' नीति चालू होने पर ही इस नीति का पालन किया जाएगा.</translation> <translation id="1852294065645015766">मीडिया को अपने आप चलने देती है</translation> <translation id="1859859319036806634">चेतावनी: टीएलएस वर्शन फ़ॉलबैक प्रक्रिया को <ph name="PRODUCT_NAME" /> से, वर्शन 52 (सितंबर 2016 के आस-पास) के बाद निकाल दिया जाएगा और उसके बाद यह नीति काम करना बंद कर देगी. @@ -1234,11 +1233,11 @@ अगर इस नीति का इस्तेमाल किया जाता है तो, सिर्फ़ ऐसे प्रिंटर उपयोगकर्ता को उपलब्ध कराए जाते हैं जिनके आईडी इस नीति में दिए गए मान से मेल खाते हैं. आईडी <ph name="BULK_PRINTERS_POLICY" /> में बताई गई फ़ाइल के "id" या "guid" फ़ील्ड के मुताबिक होने चाहिए. </translation> -<translation id="427632463972968153">POST के साथ चित्र खोज करते समय उपयोग किए जाने वाले पैरामीटर निर्दिष्ट करती है. इसमें अल्पविराम द्वारा अलग किए गए नाम/मान के युग्म शामिल होते हैं. यदि कोई मान टेम्पलेट पैरामीटर, जैसे उपरोक्त उदाहरण में {imageThumbnail} है, तो उसे वास्तविक चित्र थंबनेल डेटा से प्रतिस्थापित कर दिया जाएगा. +<translation id="427632463972968153">POST के साथ कोई इमेज सर्च करते समय उपयोग किए जाने वाले पैरामीटर तय करती है. इसमें कॉमा के ज़रिए अलग किए गए नाम/मान जोड़े शामिल होते हैं. अगर कोई मान टेम्पलेट पैरामीटर, जैसे ऊपर दिए गए उदाहरण में {imageThumbnail} है, तो उसे वास्तविक खोज शब्द डेटा से बदल दिया जाएगा. - यह नीति वैकल्पिक है. यदि सेट नहीं की गई हो तो चित्र खोज अनुरोध को GET विधि का उपयोग करके भेज दिया जाएगा. + यह नीति वैकल्पिक है. अगर इसे जोड़ा नहीं गया है, तो इमेज सर्च के अनुरोध को गेट (GET) विधि के ज़रिए भेजा जाएगा. - इस नीति का पालन केवल तभी किया जाता है यदि 'DefaultSearchProviderEnabled' नीति सक्षम हो.</translation> + 'DefaultSearchProviderEnabled' नीति चालू होने पर ही इस नीति का पालन किया जाएगा.</translation> <translation id="4285674129118156176">असंबद्ध उपयोगकर्ताओं को ARC का इस्तेमाल करने दें</translation> <translation id="4298509794364745131">यह नीति उन ऐप्लिकेशन की सूची तय करती है जिन्हें <ph name="PRODUCT_OS_NAME" /> की लॉक स्क्रीन पर 'नोट लेने वाले ऐप्लिकेशन' के रूप में चालू किया जा सकता है. @@ -1350,7 +1349,7 @@ <translation id="4554841826517980623">यह नीति नियंत्रित करती है कि <ph name="PRODUCT_NAME" /> के लिए नेटवर्क फ़ाइल शेयर सुविधा <ph name="NETBIOS_PROTOCOL" /> को नेटवर्क पर होने वाले शेयरों को खोजने के लिए इस्तेमाल करना चाहिए या नहीं. जब यह नीति सही पर सेट की जाती है, तो शेयर खोज <ph name="NETBIOS_PROTOCOL" /> प्रोटोकॉल का इस्तेमाल करके नेटवर्क पर शेयरों को खोजेगी. जब यह नीति गलत पर सेट की जाती है, तो शेयर खोज <ph name="NETBIOS_PROTOCOL" /> प्रोटोकॉल का इस्तेमाल करके नेटवर्क पर शेयरों को नहीं खोजेगी. - अगर नीति को सेट नहीं किया जाता है, तो एंटरप्राइज़-प्रबंधित उपयोगकर्ताओं के लिए डिफ़ॉल्ट बंद है और गैर-प्रबंधित उपयोगकर्ताओं के लिए चालू है.</translation> + अगर नीति को सेट नहीं किया जाता है, तो एंटरप्राइज़-प्रबंधित उपयोगकर्ताओं के लिए डिफ़ॉल्ट बंद हो जाता है और गैर-प्रबंधित उपयोगकर्ताओं के लिए चालू रहता है.</translation> <translation id="4555850956567117258">उपयोगकर्ता के लिए दूर से प्रमाणित करने की सुविधा चालू करें</translation> <translation id="4557134566541205630">डिफ़ॉल्ट खोज प्रदाता नया टैब पेज यूआरएल</translation> <translation id="4567137030726189378">डेवलपर टूल के इस्तेमाल की मंज़ूरी देती है</translation> @@ -1462,11 +1461,11 @@ <translation id="487460824085252184">डेटा अपने आप दूसरी जगह भेजें, उपयोगकर्ता की सहमति के लिए न पूछें.</translation> <translation id="4874982543810021567">इन साइटों पर WebUSB ब्लॉक करें</translation> <translation id="4876805738539874299">अधिकतम SSL वर्शन सक्षम किया गया</translation> -<translation id="4897928009230106190">POST के साथ सुझाव खोज करते समय उपयोग किए जाने वाले पैरामीटर निर्दिष्ट करती है. इसमें अल्पविराम द्वारा अलग किए गए नाम/मान के युग्म शामिल होते हैं. यदि कोई मान टेम्पलेट पैरामीटर, जैसे उपरोक्त उदाहरण में {searchTerms} है, तो उसे वास्तविक खोज शब्द डेटा से प्रतिस्थापित कर दिया जाएगा. +<translation id="4897928009230106190">POST के साथ कोई सुझाव सर्च करते समय उपयोग किए जाने वाले पैरामीटर तय करती है. इसमें कॉमा के ज़रिए अलग किए गए नाम/मान जोड़े शामिल होते हैं. अगर कोई मान टेम्पलेट पैरामीटर, जैसे ऊपर दिए गए उदाहरण में {searchTerms} है, तो उसे वास्तविक खोज शब्द डेटा से बदल दिया जाएगा. - यह नीति वैकल्पिक है. सेट नहीं होने पर GET विधि का उपयोग करके सुझाव खोज अनुरोध को भेज दिया जाएगा. + यह नीति वैकल्पिक है. अगर इसे जोड़ा नहीं गया है, तो सुझाव सर्च के अनुरोध को गेट (GET) विधि के ज़रिए भेजा जाएगा. - 'DefaultSearchProviderEnabled' के सक्षम होने पर ही इस नीति का पालन किया जाएगा.</translation> + 'DefaultSearchProviderEnabled' नीति चालू होने पर ही इस नीति का पालन किया जाएगा.</translation> <translation id="489803897780524242">डिफ़ॉल्ट खोज प्रदाता के लिए पैरामीटर नियंत्रण खोज शब्द प्रतिस्थापना</translation> <translation id="4899708173828500852">सुरक्षित ब्राउज़िंग सक्षम करें</translation> <translation id="4899802251198446659">यह नीति आपको यह नियंत्रित करने देती है कि <ph name="PRODUCT_NAME" /> में, ऑडियो सामग्री होने पर वीडियो अपने आप (उपयोगकर्ता की सहमति के बिना) चल सकते हैं या नहीं. @@ -1484,11 +1483,12 @@ <translation id="4962262530309732070">अगर यह नीति 'सही' या 'कॉन्फ़िगर' नहीं की गई पर सेट है तो, <ph name="PRODUCT_NAME" /> 'उपयोगकर्ता प्रबंधक' से 'व्यक्ति जोड़ें' की अनुमति देगा. अगर यह नीति 'गलत' पर सेट की जाती है तो, <ph name="PRODUCT_NAME" /> 'उपयोगकर्ता प्रबंधक' से नई प्रोफ़ाइल बनाने की अनुमति नहीं देगा.</translation> -<translation id="4971529314808359013">अगर साइट किसी प्रमाणपत्र का अनुरोध करती है, तो यह आपको यूआरएल पैटर्न की एक सूची निर्दिष्ट करने देती है जो उन साइटों को निर्दिष्ट करती है जिसके लिए <ph name="PRODUCT_NAME" /> से अपने आप किसी क्लाइंट प्रमाणपत्र का चयन किया जाता है. +<translation id="4971529314808359013">अगर साइट किसी प्रमाणपत्र का अनुरोध करती है, तो यह आपको यूआरएल पैटर्न की एक सूची तय करने देती है जो उन साइटों को तय करती है जिसके लिए <ph name="PRODUCT_NAME" /> अपने आप किसी क्लाइंट प्रमाणपत्र को चुनता है. - मान JSON शब्दकोशों की स्ट्रिंग वाली सूची होनी चाहिए. प्रत्येक शब्दकोश का प्रारूप { "pattern": "$URL_PATTERN", "filter" : $FILTER } होना चाहिए, जहां $URL_PATTERN एक सामग्री सेटिंग पैटर्न है. $FILTER प्रतिबंधित करता है कि किन क्लाइंट प्रमाणपत्रों से ब्राउज़र अपने आप चयन करेगा. भले ही फ़िल्टर कोई भी हो, केवल उन्हीं प्रमाणपत्रों का चयन किया जाएगा जिनका मिलान सर्वर के प्रमाणपत्र अनुरोध से होता है. अगर $FILTER का { "ISSUER": { "CN": "$ISSUER_CN" } } प्रारूप है, तो अतिरिक्त रूप से केवल क्लाइंट प्रमाणपत्रों का चयन किया जाता है जिन्हें CommonName $ISSUER_CN वाले प्रमाणपत्र से जारी किया जाता है. अगर $FILTER खाली शब्दकोश {} है, तो क्लाइंट प्रमाणपत्रों का चयन अतिरिक्त रूप से प्रतिबंधित नहीं किया जाता है. + मान JSON शब्दकोशों वाली स्ट्रिंग की सारिणी होना चाहिए. हर शब्दकोश का फ़ॉर्मैट { "pattern": "$URL_PATTERN", "filter" : $FILTER } होना चाहिए, जहां $URL_PATTERN एक सामग्री सेटिंग पैटर्न है. $FILTER यह प्रतिबंधित करता है कि ब्राउज़र किन क्लाइंट प्रमाणपत्रों से अपने आप चुनेगा. भले ही फ़िल्टर कोई भी हो, सिर्फ़ ऐसे प्रमाणपत्र चुने जाएंगे जिनका मिलान सर्वर के प्रमाणपत्र अनुरोध से होता है. अगर $FILTER का फ़ॉर्मैट { "ISSUER": { "CN": "$ISSUER_CN" } } है, तो अतिरिक्त रूप से सिर्फ़ ऐसे क्लाइंट प्रमाणपत्र चुने जाते हैं जिन्हें CommonName $ISSUER_CN वाले प्रमाणपत्र के ज़रिए जारी किया जाता है. अगर $FILTER खाली शब्दकोश {} है, तो क्लाइंट प्रमाणपत्रों का चुनाव अतिरिक्त रूप से प्रतिबंधित नहीं किया जाता है. - अगर इस नीति को सेट नहीं किया जाता है, तो किसी भी साइट के लिए स्वतः चयन नहीं किया जाएगा.</translation> + + अगर यह नीति सेट किए बिना छोड़ दी जाती है, तो किसी भी साइट के लिए अपने आप चुनाव नहीं किया जाएगा.</translation> <translation id="4978405676361550165">अगर "OffHours" नीति सेट की जाती है तो, बताए गए समय अंतरालों के दौरान तय डिवाइस नीतियां (इन नीतियों की डिफ़ॉल्ट सेटिंग का इस्तेमाल करना) अनदेखी कर दी जाती हैं. जब "OffHours" समय सीमा शुरू या खत्म होती है तो, Chrome हर इवेंट पर डिवाइस नीतियां फिर से लागू करता है. "OffHours" समय खत्म होने पर उपयोगकर्ता को बताया जाएगा और उसे अपने आप साइन आउट कर दिया जाएगा और डिवाइस नीति की सेटिंग बदल दी जाएंगी (उदाहरण के लिए, जब उपयोगकर्ता ने किसी ऐसे खाते से लॉग इन किया हो जिसे मंज़ूरी नहीं मिली है).</translation> <translation id="4980635395568992380">डेटा प्रकार:</translation> <translation id="4983201894483989687">पुराने प्लग इन चलाने की अनुमति दें</translation> @@ -1612,9 +1612,9 @@ <translation id="5365946944967967336">टूलबार पर मुख्यपृष्ठ बटन दिखाएं</translation> <translation id="5366745336748853475">अगर साइट कोई प्रमाणपत्र मांगती है, तो यह आपको ऐसे यूआरएल पैटर्न की सूची तय करने देती है जिसमें ऐसी साइटें होती हैं जिनके लिए SAML फ़्लो होस्ट करने वाली फ़्रेम में साइन-इन स्क्रीन पर क्लाइंट प्रमाणपत्र अपने आप चुना जाता है. SAML IdP को प्रस्तुत किया जाने वाला डिवाइस-व्यापी प्रमाणपत्र कॉन्फ़िगर करना इसके इस्तेमाल का एक उदाहरण है. - मान JSON शब्दकोशों वाली स्ट्रिंग की सारणी होना चाहिए. हर शब्दकोश का प्रारूप { "pattern": "$URL_PATTERN", "filter" : $FILTER } होना चाहिए, जहां $URL_PATTERN एक सामग्री सेटिंग पैटर्न है. $FILTER यह प्रतिबंधित करता है कि ब्राउज़र किन क्लाइंट प्रमाणपत्रों से अपने आप चयन करेगा. भले ही फ़िल्टर कोई भी हो, सिर्फ़ ऐसे प्रमाणपत्र चुने जाएंगे जिनका मिलान सर्वर के प्रमाणपत्र अनुरोध से होता है. अगर $FILTER का प्रारूप { "ISSUER": { "CN": "$ISSUER_CN" } } है, तो अतिरिक्त रूप से सिर्फ़ ऐसे क्लाइंट प्रमाणपत्र चुने जाते हैं जिन्हें CommonName $ISSUER_CN वाले प्रमाणपत्र के ज़रिए जारी किया जाता है. अगर $FILTER खाली शब्दकोश {} है, तो क्लाइंट प्रमाणपत्रों का चयन अतिरिक्त रूप से प्रतिबंधित नहीं किया जाता है. + मान JSON शब्दकोशों वाली स्ट्रिंग की सारिणी होना चाहिए. हर शब्दकोश का फ़ॉर्मैट { "pattern": "$URL_PATTERN", "filter" : $FILTER } होना चाहिए, जहां $URL_PATTERN एक सामग्री सेटिंग पैटर्न है. $FILTER यह प्रतिबंधित करता है कि ब्राउज़र किन क्लाइंट प्रमाणपत्रों से अपने आप चुनेगा. भले ही फ़िल्टर कोई भी हो, सिर्फ़ ऐसे प्रमाणपत्र चुने जाएंगे जिनका मिलान सर्वर के प्रमाणपत्र अनुरोध से होता है. अगर $FILTER का फ़ॉर्मैट { "ISSUER": { "CN": "$ISSUER_CN" } } है, तो अतिरिक्त रूप से सिर्फ़ ऐसे क्लाइंट प्रमाणपत्र चुने जाते हैं जिन्हें CommonName $ISSUER_CN वाले प्रमाणपत्र के ज़रिए जारी किया जाता है. अगर $FILTER खाली शब्दकोश {} है, तो क्लाइंट प्रमाणपत्रों का चुनाव अतिरिक्त रूप से प्रतिबंधित नहीं किया जाता है. - अगर यह नीति सेट किए बिना छोड़ दी जाती है, तो किसी भी साइट के लिए अपने आप चयन नहीं किया जाएगा.</translation> + अगर यह नीति सेट किए बिना छोड़ दी जाती है, तो किसी भी साइट के लिए अपने आप चुनाव नहीं किया जाएगा.</translation> <translation id="5366977351895725771">अगर गलत पर सेट है तो, इस उपयोगकर्ता के ज़रिए निगरानी में रखा गया उपयोगकर्ता बनाया जाना बंद हो जाएगा. हालांकि, पहले से मौजूद निगरानी में रखा गया कोई उपयोगकर्ता अभी भी उपलब्ध रहेगा. अगर सही पर सेट है या कॉन्फ़िगर नहीं किया गया है तो, इस उपयोगकर्ता के ज़रिए निगरानी में रखे गए उपयोगकर्ता बनाए और प्रबंधित किए जा सकेंगे.</translation> @@ -1770,9 +1770,9 @@ अगर नीति बंद है तो, डाउनलोड तुरंत शुरू हो जाएंगे और उपयोगकर्ता से फ़ाइल सेव करने की जगह के बारे में नहीं पूछा जाएगा. अगर नीति कॉन्फ़िगर नहीं की गई है तो, उपयोगकर्ता इस सेटिंग को बदल सकेगा. </translation> -<translation id="5835124959204887277">ऐसे यूआरएल और डोमेन के बारे में बताती है जिनके लिए सुरक्षा कुंजियों से प्रमाणन के प्रमाणपत्रों का अनुरोध करते समय कोई भी संकेत नहीं दिखाया जाएगा. इसके अलावा, सुरक्षा कुंजी को यह बताने वाला एक संकेत भेजा जाएगा कि व्यक्तिगत प्रमाणन का इस्तेमाल किया जा सकता है. इसके बिना, उपयोगकर्ताओं को Chrome 65+ में तब संकेत किया जाएगा जब साइटें सुरक्षा कुंजियों के प्रमाणन का अनुरोध करेंगी. +<translation id="5835124959204887277">ऐसे यूआरएल और डोमेन के बारे में बताती है जिनके लिए सुरक्षा कुंजियों से प्रमाणित किए जाने के प्रमाणपत्रों का अनुरोध करते समय कोई भी संकेत नहीं दिखाया जाएगा. इसके अलावा, सुरक्षा कुंजी को यह बताने वाला एक संकेत भेजा जाएगा कि व्यक्तिगत तौर पर प्रमाणित किए जाने की सुविधा का इस्तेमाल किया जा सकता है. इसके बिना, उपयोगकर्ताओं को Chrome 65+ में तब संकेत किया जाएगा जब साइटें सुरक्षा कुंजियों को प्रमाणित करने का अनुरोध करेंगी. - यूआरएल (जैसे कि https://example.com/some/path) का मिलान सिर्फ़ U2F appID की तरह होगा. डोमेन (जैसे कि example.com) का मिलान सिर्फ़ webauthn RP ID की तरह होगा. इसलिए, किसी साइट के लिए U2F और webauthn API, दोनों को कवर करने के लिए, appID यूआरएल और डोमेन को सूचीबद्ध करने की ज़रूरत होगी.</translation> + यूआरएल (जैसे कि https://example.com/some/path) का मिलान सिर्फ़ U2F appID की तरह होगा. डोमेन (जैसे कि example.com) का मिलान सिर्फ़ webauthn RP ID की तरह होगा इसलिए किसी साइट के लिए U2F और webauthn API (एपीआई), दोनों को कवर करने के लिए, appID यूआरएल और डोमेन को रजिस्टर करने की ज़रूरत होगी.</translation> <translation id="5835412847081687053">किसी 'उपयोगकर्ता सत्र' में मंज़ूर की गई यूज़र इंटरफ़ेस (यूआई) स्थान-भाषाएं कॉन्फ़िगर करें</translation> <translation id="5836064773277134605">रिमोट एक्सेस होस्ट द्वारा उपयोग की गई UDP पोर्ट श्रेणी प्रतिबंधित करें</translation> <translation id="5862253018042179045">लॉग इन स्क्रीन पर 'कंप्यूटर के बोलकर दिए जाने वाले जवाब' की सुलभता सुविधा को डिफ़ॉल्ट पर सेट करें. @@ -2247,7 +2247,7 @@ अगर इसे सेट नहीं किया गया हो तो, उपयोगकर्ता से बुकमार्क लाने के लिए पूछा जा सकता है या अपने आप लाया जा सकता है.</translation> <translation id="7063895219334505671">इन साइटों पर पॉपअप की अनुमति दें</translation> <translation id="706568410943497889"> - अगर नीति सही पर सेट की गई है, तो <ph name="PRODUCT_NAME" /> को Google सेवाओं (जैसे Google Meet) से WebRTC इवेंट लॉग इकट्ठा करने की अनुमति है, और उन लॉग को Google पर अपलोड करें. + अगर नीति सही पर सेट की गई है, तो <ph name="PRODUCT_NAME" /> को Google सेवाओं (जैसे Google Meet) से WebRTC इवेंट लॉग इकट्ठा करने की अनुमति मिलेगी, और उन लॉग को Google पर अपलोड करें. अगर नीति गलत पर सेट की गई है, या सेट नहीं है, तो <ph name="PRODUCT_NAME" /> ऐसे लॉग इकट्ठा नहीं कर सकते और न ही अपलोड कर सकते हैं. @@ -2391,7 +2391,7 @@ <translation id="7340034977315324840">डिवाइस गतिविधि समय की रिपोर्ट करें</translation> <translation id="7343497214039883642">डिवाइसों के लिए एंटरप्राइज़ प्रिंटर कॉन्फ़िगरेशन फ़ाइल</translation> <translation id="7349338075015720646">खास तौर पर उन वेबसाइटों की एक सूची बनाती है जो उपयोगकर्ता इंटरैक्शन के बिना चुपचाप इंस्टॉल की गई हैं और जिन्हें उपयोगकर्ता अनइंस्टाल नहीं कर सकता और न ही उन पर रोक लगा सकता है. - पॉलिसी की हर सूची आइटम में दो सदस्य हैं: "यूआरएल" और "launch_container". "यूआरएल" इंस्टॉल किए जाने वाले वेब ऐप्लिकेशन का यूआरएल होना चाहिए और "लॉन्च_कंटेनर" या तो "विंडो" या "टैब" होना चाहिए जो यह दिखाए कि इंस्टॉल होने के बाद वेब ऐप्लिकेशन को किस तरह खोला जाएगा. अगर "launch_container" नहीं है, तो ऐप्लिकेशन विंडो में लॉन्च हो जाएगा अगर Chrome उसे प्रगतिशील वेब ऐप्लिकेशन मानता है, नहीं तो टैब में खुल जाएगा.</translation> + पॉलिसी की हर सूची आइटम में दो सदस्य होते हैं: "यूआरएल" और "launch_container". "यूआरएल" इंस्टॉल किए जाने वाले वेब ऐप्लिकेशन का यूआरएल होना चाहिए और "लॉन्च_कंटेनर" या तो "विंडो" या "टैब" होना चाहिए जो यह दिखाए कि इंस्टॉल होने के बाद वेब ऐप्लिकेशन को किस तरह खोला जाएगा. अगर "launch_container" नहीं है, तो ऐप्लिकेशन विंडो में लॉन्च हो जाएगा अगर Chrome उसे प्रगतिशील वेब ऐप्लिकेशन मानता है, नहीं तो टैब में खुल जाएगा.</translation> <translation id="7367028210010532881">जब उपयोगकर्ता ऐसी साइटों पर नेविगेट करते हैं जिन्हें दुर्भावनापूर्ण हो सकने वाली साइट के रूप में फ़्लैग किया गया है, तो सुरक्षित ब्राउज़िंग सेवा एक चेतावनी पेज दिखाती है. इस सेटिंग को चालू करना उपयोगकर्ताओं को किसी भी तरह से चेतावनी पेज से दुर्भावनापूर्ण साइट पर जाने से रोकता है. अगर यह सेटिंग बंद की जाती है या कॉन्फ़िगर नहीं की जाती है तो उपयोगकर्ता चेतावनी दिखाए जाने के बाद फ़्लैग की गई साइट पर जाना चुन सकते हैं. @@ -2895,10 +2895,10 @@ अगर इस नीति को सेट किए बिना छोड़ दिया जाता है, तो 'पासवर्ड सुरक्षा सेवा' सिर्फ़ Google के पासवर्ड सुरक्षित रखेगी, लेकिन उपयोगकर्ता इस सेटिंग को बदल सकेगा.</translation> <translation id="8672321184841719703">स्वत: अपडेट वर्शन को लक्ष्य बनाएं</translation> <translation id="867410340948518937">U2F (यूनिवर्सल सेकेंड फैक्टर)</translation> -<translation id="8682611302223077049">आपको मिलीसेकंड में समय सीमा तय करने की अनुमति देती है, जिस पर उपयोगकर्ताओं को सूचित किया जाता है कि <ph name="PRODUCT_NAME" /> को फिर से लॉन्च किया जाना चाहिए या <ph name="PRODUCT_OS_NAME" /> को फिर से शुरू करना होगा ताकि उन अपडेट को लागू किया जा सके जिन्हें मंज़ूरी नहीं मिली है. +<translation id="8682611302223077049">आपको मिलीसेकंड में समय सीमा तय करने की अनुमति देती है, जिसमें उपयोगकर्ताओं को सूचित किया जाता है कि <ph name="PRODUCT_NAME" /> को फिर से लॉन्च किया जाना चाहिए या <ph name="PRODUCT_OS_NAME" /> को फिर से शुरू करना होगा ताकि उन अपडेट को लागू किया जा सके जिन्हें मंज़ूरी नहीं मिली है. - इस समय सीमा के दौरान, उपयोगकर्ता को बार-बार अपडेट की ज़रूरत के बारे में सूचित किया जाएगा. <ph name="PRODUCT_OS_NAME" /> डिवाइस के लिए, अपग्रेड की ज़रूरत होने पर सिस्टम ट्रे में फिर से शुरू करने का नोटिफ़िकेशन देगा. <ph name="PRODUCT_NAME" /> ब्राउज़र के लिए, ऐप्लिकेशन्लिकेशन मेन्यू में हुए बदलाव से तब यह पता चलता है कि फिर से लॉन्च की ज़रूरत है, जब एक तिहाई नोटिफ़िकेशन की समय सीमा गुज़र जाती है. नोटिफ़िकेशन का रंग एक बार दो तिहाई समय सीमा गुज़रने पर बदलता है और फिर से तब बदलता है जब पूरी समय सीमा खत्म हो जाती है. <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> नीति के ज़रिए लागू अतिरिक्त नोटिफ़िकेशन इस शेड्यूल का पालन करती हैं. + इस समय सीमा के दौरान, उपयोगकर्ता को बार-बार अपडेट की ज़रूरत के बारे में सूचित किया जाएगा. <ph name="PRODUCT_OS_NAME" /> डिवाइस के लिए, अपग्रेड की ज़रूरत होने पर सिस्टम ट्रे में फिर से शुरू करने का नोटिफ़िकेशन देगा. <ph name="PRODUCT_NAME" /> ब्राउज़र के लिए, ऐप्लिकेशन मेन्यू में हुए बदलाव से तब यह पता चलता है कि फिर से लॉन्च की ज़रूरत है, जब एक तिहाई नोटिफ़िकेशन की समय सीमा गुज़र जाती है. नोटिफ़िकेशन का रंग एक बार दो तिहाई समय सीमा गुज़रने पर बदलता है और फिर से तब बदलता है जब पूरी समय सीमा खत्म हो जाती है. <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> नीति के ज़रिए लागू अतिरिक्त नोटिफ़िकेशन इस शेड्यूल का पालन करती हैं. अगर सेट नहीं किया गया है, तो <ph name="PRODUCT_NAME" /> डिवाइस के लिए 345600000 मिलीसेकंड (चार दिन) की डिफ़ॉल्ट समय सीमा और <ph name="PRODUCT_OS_NAME" /> डिवाइस के लिए 604800000 मिलीसेकंड (एक हफ़्ता) की समय सीमा इस्तेमाल की जाती है.</translation> <translation id="8685024486845674965">पासवर्ड का फिर से इस्तेमाल होने पर पासवर्ड सुरक्षा की ओर से चेतावनी ट्रिगर की गई है</translation>
diff --git a/components/policy/resources/policy_templates_hr.xtb b/components/policy/resources/policy_templates_hr.xtb index 1273f95..aa672626 100644 --- a/components/policy/resources/policy_templates_hr.xtb +++ b/components/policy/resources/policy_templates_hr.xtb
@@ -191,6 +191,7 @@ <translation id="1522425503138261032">Dopusti web-lokacijama praćenje fizičke lokacije korisnika</translation> <translation id="152657506688053119">Popis zamjenskih URL-ova za zadanog davatelja usluge pretraživanja</translation> <translation id="1530812829012954197">Uvijek prikaži sljedeće URL obrasce u pregledniku hosta</translation> +<translation id="1541170838458414064">Ograniči veličinu stranice ispisa</translation> <translation id="1553684822621013552">Kada je to pravilo postavljeno na "True", ARC će biti omogućen za korisnika (ovisno o dodatnim postavkama pravila – ARC i dalje neće biti dostupan ako su jednokratni način rada ili višestruka prijava omogućeni @@ -366,6 +367,12 @@ <translation id="2082205219176343977">Konfiguriraj najmanju dopuštenu verziju Chromea za uređaj.</translation> <translation id="209586405398070749">Stabilan kanal</translation> <translation id="2098658257603918882">Omogući izvješćivanje o upotrebi i podatke o rušenjima programa</translation> +<translation id="2098916259427011890">Pravilo određuje hoće li se prijavljivati informacije o verziji, kao što su verzija OS-a, platforma OS-a, arhitektura OS-a, verzija preglednika <ph name="PRODUCT_NAME" /> i kanal preglednika <ph name="PRODUCT_NAME" />. + + Ako se pravilo ne postavi ili se postavi na True, prikupljaju se informacije o verziji. + Ako se pravilo postavi na False, ne prikupljaju se informacije o verziji. + + To se pravilo primjenjuje samo kada su Chromeovo proširenje za prijavljivanje i Upravljanje u oblaku omogućeni.</translation> <translation id="2111016292707172233">Omogućuje dostupnost značajke Dodirnite za pretraživanje u prikazu sadržaja preglednika <ph name="PRODUCT_NAME" />. Ako omogućite tu postavku, korisniku će biti dostupna značajka Dodirnite za pretraživanje i moći će je samostalno uključiti ili isključiti. @@ -399,6 +406,8 @@ Ako se to pravilo ne postavi, zadana je vrijednost 0 stupnjeva i korisnik je može promijeniti. U tom slučaju zadana vrijednost neće se ponovo primjenjivati nakon ponovnog pokretanja.</translation> +<translation id="214901426630414675">Ograniči način dvostranog ispisa</translation> +<translation id="2149330464730004005">Omogući ispis u boji</translation> <translation id="2156132677421487971">Konfigurirajte pravila za <ph name="PRODUCT_NAME" />, značajku koja korisnicima omogućuje da sadržaj kartica, web-lokacija ili radne površine iz preglednika pošalju na udaljene zaslone i zvučne sustave.</translation> <translation id="2166472654199325139">Nemoj filtrirati web-lokacije na temelju sadržaja za odrasle</translation> <translation id="2168397434410358693">Odgoda neaktivnosti za vrijeme napajanja izmjeničnom strujom</translation> @@ -588,6 +597,7 @@ <translation id="2529880111512635313">Konfiguriranje popisa prisilno instaliranih aplikacija i proširenja</translation> <translation id="253135976343875019">Odgoda upozorenja o neaktivnosti dok je uređaj priključen na struju</translation> <translation id="2536525645274582300">Korisnik odlučuje hoće li omogućiti Googleove usluge lokacije</translation> +<translation id="2550593661567988768">Samo jednostrani ispis</translation> <translation id="2552966063069741410">Vremenska zona</translation> <translation id="2562339630163277285">Određuje URL tražilice koja se upotrebljava za davanje instant rezultata. URL treba sadržavati niz <ph name="SEARCH_TERM_MARKER" /> koji će se u trenutku postavljanja upita zamijeniti tekstom koji je korisnik dotad unio. @@ -715,9 +725,12 @@ Ako onemogućite tu postavku ili ne postavite nikakvu vrijednost, zadani će odredišni pisač u Pregledu ispisa biti pisač koji je upotrijebljen zadnji put. Ako omogućite tu postavku, u Pregledu ispisa upotrebljavat će se zadani pisač OS-a kao zadani odredišni pisač.</translation> +<translation id="2856674246949497058">Vrati se na ciljnu verziju i ostani na njoj ako je verzija OS-a novija od ciljne. Tijekom postupka izvrši powerwash.</translation> <translation id="2872961005593481000">Isključi</translation> +<translation id="2873651257716068683">Nadjačava veličinu stranice zadanog ispisa. Pravilo se zanemaruje ako veličina stranice nije dostupna.</translation> <translation id="2874209944580848064">Napomena za uređaje <ph name="PRODUCT_OS_NAME" /> koji podržavaju Androidove aplikacije:</translation> <translation id="2877225735001246144">Onemogući CNAME pretraživanje prilikom provjere Kerberos autentičnosti</translation> +<translation id="2892414556511568464">Ograničava način dvostranog ispisa. Nepostavljanje pravila i prazan skup smatraju se nepostojanjem ograničenja.</translation> <translation id="2893546967669465276">Šalji zapisinike sustava poslužitelju za upravljanje</translation> <translation id="2899002520262095963">Android aplikacije mogu upotrebljavati mrežne konfiguracije i CA certifikate postavljene putem tog pravila, no nemaju pristup nekim opcijama konfiguracije.</translation> <translation id="290002216614278247">Omogućuje vam da zaključate sesiju korisnika na temelju vremena klijenta ili korisničke kvote za taj dan. @@ -805,6 +818,7 @@ Potiče se premještanje poslužitelja na ECDHE pakete šifri. Ako oni nisu dostupni, pomoću RSA razmjene ključeva provjerite je li omogućen paket šifri.</translation> <translation id="316778957754360075">To se pravilo ne upotrebljava od verzije 29 sustava <ph name="PRODUCT_NAME" />. Preporučuje se da se pri postavljanju zbirki proširenja ili aplikacija koje hostira određena organizacija web-lokacija koja hostira CRX pakete uključi u pravilo ExtensionInstallSources te da se u pakete na web-stanici postave izravne veze za preuzimanje. Pokretač za tu web-stranicu može se izraditi pomoću pravila ExtensionInstallForcelist.</translation> +<translation id="3171369832001535378">Predložak mrežnog naziva hosta uređaja</translation> <translation id="3185009703220253572">od verzije <ph name="SINCE_VERSION" /></translation> <translation id="3187220842205194486">Android aplikacije ne mogu dobiti pristup korporacijskim ključevima. To pravilo nema utjecaja na njih.</translation> <translation id="3201273385265130876">Omogućuje vam da odredite proxy poslužitelj kojim se koristi <ph name="PRODUCT_NAME" /> i onemogućuje korisnicima da mijenjaju postavke proxyja. @@ -910,6 +924,7 @@ Vrijednost tog pravila token je za registraciju koji se može dobiti na konzoli Google Admina.</translation> <translation id="3496296378755072552">Upravitelj zaporki</translation> +<translation id="3502555714327823858">Dopusti sve dvostrane načine</translation> <translation id="350443680860256679">Konfiguriraj ARC</translation> <translation id="3504791027627803580">Određuje URL tražilice koja se upotrebljava za pretraživanje slika. Zahtjevi za pretraživanje slat će se pomoću GET metode. Ako je postavljeno pravilo "DefaultSearchProviderImageURLPostParams", zahtjevi za pretraživanje slika umjesto toga upotrebljavat će POST metodu. @@ -919,6 +934,7 @@ <translation id="350797926066071931">Omogući Prevoditelj</translation> <translation id="3512226956150568738">Ako je klijentov model uređaja već podržavao ARC prije nego što je premještanje na ext4 bilo obavezno za izvođenje ARC-a i ako je pravilo ArcEnabled postavljeno na true, ta će se opcija ponašati kao AskUser (vrijednost 3). U svim ostalim slučajevima (ako model uređaja nije podržavao ARC ili ako je pravilo ArcEnabled postavljeno na false), ta je vrijednost ekvivalentna pravilu DisallowArc (vrijednost 0).</translation> <translation id="3524204464536655762">Ne dopuštaj nijednoj web-lokaciji da traži pristup USB uređajima putem API-ja WebUSB</translation> +<translation id="3526752951628474302">Samo jednobojni ispis</translation> <translation id="3528000905991875314">Omogući alternativne stranice pogrešaka</translation> <translation id="3545457887306538845">Omogućuje vam da kontrolirate gdje se mogu upotrebljavati Alati za razvojne programere. @@ -942,6 +958,7 @@ <translation id="3577251398714997599">Postavke oglasa za web-lokacije s ometajućim oglasima</translation> <translation id="3591584750136265240">Konfiguriraj ponašanje autentifikacije tijekom prijave</translation> <translation id="3627678165642179114">Omogući ili onemogući web-uslugu provjere pravopisa</translation> +<translation id="3628480121685794414">Omogući jednostrani ispis</translation> <translation id="3646859102161347133">Postavljanje vrste povećala</translation> <translation id="3653237928288822292">Ikona zadanog davatelja usluga pretraživanja</translation> <translation id="3660562134618097814">Prenesi kolačiće SAML IdP-a tijekom prijave</translation> @@ -1035,6 +1052,7 @@ Ako se pravilo postavi na "false", informacije sesije kioska neće se prijavljivati. Ako se postavi na "true" ili se ne postavi, prijavljivat će se informacije sesije kioska.</translation> +<translation id="3858658082795336534">Dvostrani način zadanog ispisa</translation> <translation id="3859780406608282662">Dodaje parametar dohvaćanju početne vrijednosti Varijacija u proizvodu <ph name="PRODUCT_OS_NAME" />. Ako je navedeno, dodat će parametar upita zvan "restrict" URL-u koji se upotrebljava za dohvaćanje početne vrijednosti Varijacije. Vrijednost parametra bit će vrijednost navedena u tom pravilu. @@ -1141,6 +1159,12 @@ U suprotnom se može postaviti na jednu od sljedećih vrijednosti: "tls1.2" ili "tls1.3". Kad se pravilo postavi, <ph name="PRODUCT_NAME" /> neće upotrebljavati verzije SSL-a/TLS-a veće od navedene verzije. Vrijednost koja se ne prepozna ignorirat će se.</translation> <translation id="4121350739760194865">Sprječavanje prikaza promocija aplikacija na stranici Nova kartica</translation> <translation id="412697421478384751">Omogući korisnicima da postave slabe PIN-ove za zaključan zaslon</translation> +<translation id="4129183564590133854">Pravilo određuje hoće li se prijavljivati informacije koje se mogu upotrijebiti za identifikaciju korisnika, kao što su prijava OS-a, prijava na <ph name="PRODUCT_NAME" /> profil, naziv <ph name="PRODUCT_NAME" /> profila, put <ph name="PRODUCT_NAME" /> profila i izvršna putanja preglednika <ph name="PRODUCT_NAME" />. + + Ako se pravilo ne postavi ili se postavi na True, prikupljaju se informacije koje se mogu upotrijebiti za identifikaciju korisnika. + Ako se pravilo postavi na False, ne prikupljaju se informacije koje se mogu upotrijebiti za identifikaciju korisnika. + + To se pravilo primjenjuje samo kada su Chromeovo proširenje za prijavljivanje i Upravljanje u oblaku omogućeni.</translation> <translation id="4138655880188755661">Vremensko ograničenje</translation> <translation id="4157003184375321727">Izvješće o verziji OS-a i opreme</translation> <translation id="4157594634940419685">Dopusti pristup nativnim CUPS pisačima</translation> @@ -1442,6 +1466,12 @@ <translation id="5052081091120171147">Ako je omogućeno, ovo pravilo prisilno uvozi povijest pregledavanja iz trenutačno zadanog preglednika. Ako je omogućeno, ovo pravilo također utječe na dijaloški okvir za uvoz. Ako je onemogućeno, povijest pregledavanja se ne uvozi. Ako nije postavljeno, korisniku može biti postavljen upit želi li uvesti povijest pregledavanja ili do uvoza može doći automatski.</translation> <translation id="5056708224511062314">Povećalo je onemogućeno</translation> <translation id="5058573563327660283">Odaberi strategiju kojom se oslobađa prostor na disku tijekom automatskog čišćenja (obustavljeno)</translation> +<translation id="5058771123777243130">Pravilo određuje hoće li se prijavljivati podaci pravila i vrijeme dohvaćanja pravila. + + Ako se pravilo ne postavi ili se postavi na True, prikupljaju se podaci pravila i vrijeme dohvaćanja pravila. + Ako se pravilo postavi na False, ne prikupljaju se podaci pravila ni vrijeme dohvaćanja pravila. + + To se pravilo primjenjuje samo kada su Chromeovo proširenje za prijavljivanje i Upravljanje u oblaku omogućeni.</translation> <translation id="5067143124345820993">Popis korisnika kojima je dopuštena prijava</translation> <translation id="5068140065960598044">Pravila oblaka za <ph name="PRODUCT_NAME" /> nadjačavaju pravila računala.</translation> <translation id="5085647276663819155">Onemogući pregled ispisa</translation> @@ -1548,6 +1578,7 @@ <translation id="5366977351895725771">Ako je postavljeno na netočno, korisnik neće moći izrađivati nadzirane korisnike. Postojeći nadzirani korisnici i dalje će biti dostupni. Ako je postavljeno na točno ili nije konfigurirano, korisnik može izrađivati nadzirane korisnike i upravljati njima.</translation> +<translation id="5369937289900051171">Samo ispis u boji</translation> <translation id="5370279767682621504">Omogući podršku za HTTP/0.9 na priključcima koji nisu zadani</translation> <translation id="5378985487213287085">Omogućuje da postavite smiju li web-lokacije prikazivati obavijesti radne površine. Prikazivanje obavijesti radne površine može biti dopušteno prema zadanim postavkama, odbijeno prema zadanim postavkama ili korisnik može primiti upit svaki put kad web-lokacija želi prikazati obavijest radne površine. Ako to pravilo nije postavljeno, upotrebljavat će se pravilo "AskNotifications", a korisnik će to moći promijeniti.</translation> <translation id="538108065117008131">Dopusti da <ph name="PRODUCT_FRAME_NAME" /> rukuje sljedećim vrstama sadržaja.</translation> @@ -1568,6 +1599,7 @@ Ako se to pravilo postavi na popis identifikatora načina unosa, zadani načini unosa bit će dostupni na zaslonu za prijavu. Prvi zadani način unosa bit će odabran unaprijed. Kad je korisnički modul aktiviran na zaslonu za prijavu, uz načine unosa zadane ovim pravilom bit će dostupan i način unosa koji je korisnik zadnji upotrebljavao. Ako se to pravilo ne postavi, načini unosa na zaslonu za prijavu izvest će se iz jezika na kojem se prikazuje zaslon za prijavu. Zanemarit će se vrijednosti koje nisu važeći identifikatori načina unosa.</translation> <translation id="5423001109873148185">Ako je omogućeno, ovo pravilo prisilno uvozi tražilice iz trenutačno zadanog preglednika. Ako je omogućeno, ovo pravilo također utječe na dijaloški okvir za uvoz. Ako je onemogućeno, zadana se tražilica ne uvozi. Ako nije postavljeno, korisniku može biti postavljen upit želi li uvesti tražilicu ili do uvoza može doći automatski.</translation> <translation id="5423197884968724595">Naziv ograničenja za Android WebView:</translation> +<translation id="5424147596523390018">Dopusti sve načine boje</translation> <translation id="5442026853063570579">To pravilo kontrolira i pristup Opcijama za razvojne programere Androida. Ako to pravilo postavite na "DeveloperToolsDisallowed" (vrijednost 2), korisnici ne mogu pristupiti Opcijama za razvojne programere. Ako to pravilo postavite na neku drugu vrijednost ili ga ne postavite, korisnici mogu pristupiti Opcijama za razvojne programere tako što će sedam puta dodirnuti broj međuverzije u aplikaciji postavki Androida.</translation> <translation id="5447306928176905178">Omogući prijavljivanje informacija o memoriji (ukupna veličina JS-a) na stranici (zastarjelo)</translation> <translation id="5457065417344056871">Omogućivanje načina rada za goste u pregledniku</translation> @@ -1634,6 +1666,7 @@ <translation id="5586942249556966598">Ne radi ništa</translation> <translation id="5630352020869108293">Vrati posljednju sesiju</translation> <translation id="5645779841392247734">Dopusti kolačiće na ovim web-lokacijama</translation> +<translation id="5689430183304951538">Veličina stranice zadanog ispisa</translation> <translation id="5693469654327063861">Dopusti premještanje podataka</translation> <translation id="5694594914843889579">Kada se to pravilo postavi na True, vanjska pohrana neće biti dostupna u pregledniku datoteka. @@ -1663,6 +1696,7 @@ Kada pravilo nije postavljeno, upotrebljava se zadano vrijeme. Vrijednost pravila treba navesti u milisekundama.</translation> +<translation id="5783009211970309878">Ispiši zaglavlja i podnožja</translation> <translation id="5809728392451418079">Postavlja naziv za prikaz za lokalne račune uređaja</translation> <translation id="5814301096961727113">Postavljanje zadanog stanja izgovaranja povratnih informacija na zaslonu za prijavu</translation> <translation id="5815129011704381141">Automatsko ponovno pokretanje nakon ažuriranja</translation> @@ -1674,6 +1708,7 @@ Ako se ta postavka ne postavi, upotrebljavat će se zadani direktorij profila.</translation> <translation id="5826047473100157858">Određuje može li korisnik otvarati stranice u anonimnom načinu u proizvodu <ph name="PRODUCT_NAME" />. Ako je odabrano "Enabled" (omogućeno) ili pravilo nije postavljeno, stranice se mogu otvarati u anonimnom načinu. Ako je odabrano "Disabled" (onemogućeno), stranice se ne mogu otvarati u anonimnom načinu. Ako je odabrano "Forced" (prisilno), stranice se mogu otvarati SAMO u anonimnom načinu.</translation> +<translation id="582857022372205358">Omogući dvostrani ispis po kraćem rubu</translation> <translation id="583091600226586337"> Ako je to pravilo omogućeno, od korisnika će se prije preuzimanja tražiti da odredi gdje će svaka datoteka biti spremljena. Ako je pravilo onemogućeno, preuzimanja će započeti odmah, a korisnik neće dobiti upit gdje treba spremiti datoteku. @@ -1709,6 +1744,7 @@ Ako je ta postavka onemogućena ili nije konfigurirana, zahtjevi autentifikacije "gnubby" neće se prosljeđivati putem proxyja.</translation> <translation id="5898486742390981550">Kada je prijavljeno više korisnika, samo primarni korisnik može upotrebljavati Android aplikacije.</translation> +<translation id="5901427587865226597">Samo dvostrani ispis</translation> <translation id="5906199912611534122">Dopušta omogućivanje ili onemogućivanje usporavanja mreže. Primjenjuje se na sve korisnike i sva sučelja na uređaju. Kada se postavi, usporavanje traje dok se ne isključi tim pravilom. @@ -1816,6 +1852,7 @@ Vrijednost pravila treba navesti u milisekundama. Vrijednosti se ograničavaju kako bi bile kraće od vremena do ulaska u stanje mirovanja.</translation> <translation id="6097601282776163274">Omogući prikupljanje anonimiziranih podataka zaključano URL-om</translation> +<translation id="6099853574908182288">Način boje zadanog ispisa</translation> <translation id="6111936128861357925">Dopuštanje skrivene igre s dinosaurom</translation> <translation id="6114416803310251055">neodobreno</translation> <translation id="6133088669883929098">Dopusti svim web-lokacijama da upotrebljavaju generiranje ključeva</translation> @@ -1828,6 +1865,7 @@ Ako se to pravilo ne postavi, za sve web-lokacije upotrebljavat će se globalna zadana vrijednost iz pravila "DefaultPluginsSetting", ako je to pravilo postavljeno, ili vrijednost iz korisnikove osobne konfiguracije.</translation> <translation id="6190022522129724693">Zadana postavka skočnih prozora</translation> +<translation id="6190367314942602985">Prijavljuj informacije za identifikaciju korisnika</translation> <translation id="6197453924249895891">Dodjeljuje pristup korporacijskim ključevima za proširenja. Ključevi su namijenjeni korporacijskoj upotrebi ako su generirani chrome.enterprise.platformKeys API-jem na upravljanom računu. Ključevi uvezeni ili generirani na neki drugi način nisu namijenjeni korporacijskoj upotrebi. @@ -1837,6 +1875,8 @@ Prema zadanim postavkama proširenje ne može upotrebljavati ključ za korporacijsku upotrebu, što je ekvivalentno postavljanju pravila allowCorporateKeyUsage na neistinito za određeno proširenje. Samo ako se allowCorporateKeyUsage postavi na istinito za određeno proširenje, ono može upotrebljavati ključ bilo koje platforme označen za korporacijsku upotrebu za potpisivanje arbitrarnih podataka. To bi se dopuštenje trebalo odobriti samo ako proširenje pouzdano može zaštititi pristup ključu od napadača.</translation> +<translation id="6208896993204286313">Prijavljuj informacije o pravilima za <ph name="PRODUCT_NAME" /></translation> +<translation id="6210259502936598222">Prijavljuj informacije o OS-u i verziji preglednika <ph name="PRODUCT_NAME" /></translation> <translation id="6211428344788340116">Generira izvješće o vremenima aktivnosti uređaja. Ako se ta postavka ne postavi ili se postavi na istinito, registrirani uređaji izvješćivat će o razdobljima aktivnosti korisnika na uređaju. Ako se postavka postavi na neistinito, vremena aktivnosti uređaja neće se bilježiti niti će se o njima izvješćivati.</translation> @@ -1850,6 +1890,7 @@ <translation id="6233173491898450179">Postavi imenik za preuzimanje</translation> <translation id="6244210204546589761">URL-ovi koji se otvaraju prilikom pokretanja</translation> <translation id="6258193603492867656">Određuje treba li generirani Kerberos SPN uključivati nestandardni priključak. Ako omogućite ovu postavku, a bude unesen nestandardni priključak (tj. priključak koji nije 80 ili 443), on će biti uključen u generirani Kerberos SPN. Ako onemogućite ovu postavku ili ju ne postavite, generirani Kerberos SPN neće uključivati priključak ni u kojem slučaju.</translation> +<translation id="6261643884958898336">Prijavljuj informacije za identifikaciju računala</translation> <translation id="6281043242780654992">Konfigurira pravila za lokalno slanje poruka. Zabranjeni hostovi za lokalno slanje poruka bit će dopušteni samo ako se nalaze na popisu dopuštenih.</translation> <translation id="6282799760374509080">Omogući ili onemogući snimanje zvuka</translation> <translation id="6284362063448764300">TLS 1.1</translation> @@ -1880,6 +1921,7 @@ Ako odaberete automatsko otkrivanje proxy poslužitelja, URL skripte "http://wpad/wpad.dat" pruža se Android aplikacijama. Ne upotrebljava se nijedan drugi dio protokola za automatsko otkrivanje proxyja. Ako odaberete .pac skriptu proxyja, URL skripte pruža se Android aplikacijama.</translation> +<translation id="6430366557948788869">Chromeovo proširenje za prijavljivanje</translation> <translation id="6440051664870270040">Dopusti web-lokacijama istovremenu navigaciju i otvaranje skočnih prozora</translation> <translation id="6447948611083700881">Sigurnosno kopiranje i vraćanje su onemogućeni</translation> <translation id="645425387487868471">Omogući nametanje prijave za preglednik <ph name="PRODUCT_NAME" /></translation> @@ -1926,6 +1968,7 @@ <translation id="6628646143828354685">Omogućuje vam da odredite smiju li web-lokacije dobivati pristup Bluetooth uređajima u blizini. Pristup se može potpuno blokirati ili se može tražiti dopuštenje korisnika svaki put kad neka web-lokacija želi pristupiti Bluetooth uređajima u blizini. Ako se pravilo ne postavi, upotrebljavat će se vrijednost "3" i korisnik će to moći promijeniti.</translation> +<translation id="663685822663765995">Ograniči način boje ispisa</translation> <translation id="6641981670621198190">Onemogući podršku za API-je 3D grafike</translation> <translation id="6647965994887675196">Ako je postavljeno na točno, mogu se izrađivati i upotrebljavati nadzirani korisnici. @@ -1953,6 +1996,7 @@ Uzorci URL-ova u ovom pravilu ne smiju biti u sukobu s uzorcima konfiguriranim u pravilu "WebUsbBlockedForUrls". Ako za URL postoje podudaranja u oba pravila, nije određeno koje će od njih imati prednost.</translation> <translation id="6689792153960219308">Izvješćivanje o statusu hardvera</translation> +<translation id="6698632841807204978">Omogući jednobojni ispis</translation> <translation id="6699880231565102694">Omogući autentifikaciju s dva čimbenika za hostove daljinskog pristupa</translation> <translation id="6724842112053619797">Ako omogućite tu postavku, postavke pohranjene u <ph name="PRODUCT_NAME" /> profilima kao što su oznake, podaci za automatsko popunjavanje, zaporke itd. također će se bilježiti u datoteku pohranjenu u mapu korisničkog profila na Roamingu ili na lokaciju koju je odredio administrator pomoću pravila <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Omogućivanjem tog pravila onemogućuje se sinkronizacija u oblaku. @@ -1992,6 +2036,12 @@ Ta postavka upravlja prikazivanjem stranica dobrodošlice koje korisnicima pomažu da se prijave na <ph name="PRODUCT_NAME" /> i odaberu ga kao zadani preglednik ili ih na neki drugi način informiraju o značajkama proizvoda.</translation> <translation id="6766216162565713893">Dopusti web-lokacijama da traže dopuštenje korisnika za pristup Bluetooth uređajima u blizini</translation> <translation id="6770454900105963262">Izvješćivanje o informacijama o aktivnim sesijama kioska</translation> +<translation id="6773056206551814546">Pravilo određuje hoće li se prijavljivati informacije koje se mogu upotrijebiti za identifikaciju računala, kao što su naziv računala i mrežne adrese. + + Ako se pravilo ne postavi ili se postavi na True, prikupljaju se informacije koje se mogu upotrijebiti za identifikaciju računala. + Ako se pravilo postavi na False, ne prikupljaju se informacije koje se mogu upotrijebiti za identifikaciju računala. + + To se pravilo primjenjuje samo kada su Chromeovo proširenje za prijavljivanje i Upravljanje u oblaku omogućeni.</translation> <translation id="6786747875388722282">Proširenja</translation> <translation id="6786967369487349613">Postavljanje direktorija roaming profila</translation> <translation id="6810445994095397827">Blok JavaScript na ovim web-lokacijama</translation> @@ -2085,6 +2135,7 @@ </translation> <translation id="6922884955650325312">Blokiraj dodatak <ph name="FLASH_PLUGIN_NAME" /></translation> <translation id="6923366716660828830">Određuje naziv zadanog davatelja usluga pretraživanja. Ako naziv ostane prazan ili nije postavljen, upotrebljavat će se naziv hosta određen URL-om pretraživanja. Ovo će pravilo biti uzeto u obzir samo ako je omogućeno pravilo "DefaultSearchProviderEnabled".</translation> +<translation id="6926703471186170050">Omogući dvostrani ispis po dužem rubu</translation> <translation id="6931242315485576290">Onemogući sinkronizaciju podataka s Googleom</translation> <translation id="6936894225179401731">Određuje maksimalni broj simultanih veza proxy poslužitelja. @@ -2278,6 +2329,7 @@ Ako se ta postavka onemogući ili ako se ne konfigurira, korisnici prema želji mogu nastaviti do označene web-lokacije nakon što im se prikazalo upozorenje. Više informacija o Sigurnom pregledavanju potražite na stranici https://developers.google.com/safe-browsing.</translation> +<translation id="737655323154569539">Ograničava veličinu stranice ispisa. Nepostavljanje pravila i prazan skup smatraju se nepostojanjem ograničenja.</translation> <translation id="7417728346887499628">Ako se pravilo onemogući, Chromeov alat za čišćenje neće pretraživati sustav radi pronalaženja i uklanjanja neželjenog softvera. Onemogućeno je i ručno aktiviranje Chromeovog alata za čišćenje putem stranice chrome://settings/cleanup. Ako se pravilo omogući ili se ne postavi, Chromeov alat za čišćenje povremeno će tražiti neželjeni softver u sustavu i ako ga pronađe, korisniku će postaviti upit za uklanjanje. Omogućeno je i ručno aktiviranje Chromeovog alata za čišćenje putem stranice chrome://settings. @@ -2346,6 +2398,8 @@ <translation id="7617319494457709698">To pravilo određuje dopuštena proširenja za upotrebu funkcije <ph name="CHALLENGE_USER_KEY_FUNCTION" /> API-ja <ph name="ENTERPRISE_PLATFORM_KEYS_API" /> za daljinsko atestiranje. Proširenja se moraju dodati na taj popis da bi upotrebljavala taj API. Ako proširenje nije na popisu ili ako popis nije postavljen, poziv API-ju vratit će kôd pogreške.</translation> +<translation id="7618907117929117943">Vraća uređaj na ciljnu verziju i ostaje na njoj ako je verzija OS-a novija od ciljne i vraćanjem je moguće prenijeti konfiguraciju uređaja (uključujući mrežne vjerodajnice), čime se također preskače OOBE nakon vraćanja. Uređaj nemojte vraćati ili prekinite vraćanje ako to nije moguće (zato što ciljna verzija ne podržava oporavak podataka ili zbog promjene koja nije kompatibilna sa starijim verzijama). + Podržano u sustavu <ph name="PRODUCT_OS_NAME" /> verzije 70 i novijima. Za starije klijente ta vrijednost znači da vraćanje nije omogućeno.</translation> <translation id="7625444193696794922">Određuje kanal za izdavanje na koji bi ovaj uređaj trebao biti priključen.</translation> <translation id="7632724434767231364">Naziv GSSAPI biblioteke</translation> <translation id="7635471475589566552">Konfigurira oznaku zemlje/jezika aplikacije u proizvodu <ph name="PRODUCT_NAME" /> i sprječava korisnike da promijene oznaku zemlje/jezika. Ako omogućite ovu postavku, <ph name="PRODUCT_NAME" /> upotrebljavat će navedenu oznaku zemlje/jezika. Ako konfigurirana oznaka zemlje/jezika nije podržana, upotrebljavat će se "en-US". Ako je ova postavka onemogućena ili nije postavljena, <ph name="PRODUCT_NAME" /> upotrebljavat će oznaku zemlje/jezika koju odredi korisnik (ako je konfigurirana), oznaku zemlje/jezika sustava ili standardnu oznaku zemlje/jezika "en-US".</translation> @@ -2538,6 +2592,7 @@ Ako omogućite ovu postavku ili ako ne postavite vrijednost, značajku Automatskog popunjavanja i dalje će kontrolirati korisnik. To im omogućuje konfiguraciju profila Automatskog popunjavanja te uključivanje ili isključivanje značajke Automatskog popunjavanja po vlastitom nahođenju.</translation> <translation id="8044493735196713914">Izvješće načina pokretanja uređaja</translation> <translation id="8050080920415773384">Nativni ispis</translation> +<translation id="8053580360728293758">Nadjačava način boje zadanog ispisa. Pravilo se zanemaruje ako način nije dostupan.</translation> <translation id="8059164285174960932">URL na kojem bi klijenti za daljinski pristup trebali dobiti token za autentifikaciju</translation> <translation id="8078366200175825572">Omogućuje postavljanje popisa uzoraka URL-ova koji određuju web-lokacije koje ne smiju postavljati kolačiće. @@ -2724,6 +2779,7 @@ Pojam "verzija" može se odnositi na točnu verziju, na primjer "61.0.3163.120" ili prefiks verzije, na primjer "61.0". </translation> <translation id="8544375438507658205">Zadani alat za prikazivanje HTML-a za <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">Dopusti sinkronizaciju SMS poruka s telefona na Chromebook.</translation> +<translation id="8548832052135586762">Postavlja ispis na samo u boji, samo jednobojni ili određuje da nema ograničenja načina boje. Ako se pravilo ne postavi, smatra se da nema ograničenja.</translation> <translation id="8549772397068118889">Upozori kada se posjećuju web-lokacije izvan paketa sadržaja</translation> <translation id="8566842294717252664">Skrivanje web-trgovine na web-stranici nove kartice i pokretaču aplikacija</translation> <translation id="8586528890725660268">Određuje pisače koje korisnik ne može upotrebljavati. @@ -2830,6 +2886,7 @@ Ako ta postavka nije postavljena, korisnik može odlučiti hoće li upotrebljavati tu funkciju.</translation> <translation id="8870318296973696995">Početna stranica</translation> +<translation id="8876188741456358123">Nadjačava dvostruki način zadanog ispisa. Pravilo se zanemaruje ako način nije dostupan.</translation> <translation id="8882006618241293596">Blokiraj dodatak <ph name="FLASH_PLUGIN_NAME" /> na ovim web-lokacijama</translation> <translation id="890403179930035128">Nameće provjeru pravopisa za jezike. Neprepoznati jezici na popisu zanemarit će se. @@ -2912,6 +2969,8 @@ <translation id="9084985621503260744">Odredi utječe li aktivnost videozapisa na upravljanje napajanjem</translation> <translation id="9088433379343318874">Omogući davatelja sadržaja nadziranog korisnika</translation> <translation id="9088444059179765143">Konfiguriraj način automatskog otkrivanja vremenske zone</translation> +<translation id="9094064873808699479">Vraća uređaj na ciljnu verziju i ostaje na njoj ako je verzija OS-a novija od ciljne. Pokušajte prenijeti konfiguraciju uređaja (uključujući mrežne vjerodajnice) ako je moguće, ali vraćanje izvršite uz potpuni powerwash čak i ako oporavak podataka nije moguć (zato što ciljna verzija ne podržava oporavak podataka ili zbog promjene koja nije kompatibilna sa starijim verzijama). + Podržano u sustavu <ph name="PRODUCT_OS_NAME" /> verzije 70 i novijima. Za starije klijente ta vrijednost znači da vraćanje nije omogućeno.</translation> <translation id="9096086085182305205">Bijela lista poslužitelja za autentifikaciju</translation> <translation id="9098553063150791878">Pravila za HTTP autentifikaciju</translation> <translation id="9105265795073104888">Android aplikacijama dostupan je samo podskup opcija za konfiguraciju proxyja. Android aplikacije taj proxy mogu upotrebljavati dobrovoljno. Upotrebu proxyja ne možete im nametnuti.</translation> @@ -2963,6 +3022,13 @@ <translation id="9187743794267626640">Onemogući priključivanje vanjske pohrane</translation> <translation id="9197740283131855199">Postotak skaliranja odgode zatamnjivanja zaslona ako korisnik postane aktivan nakon zatamnjivanja</translation> <translation id="9200828125069750521">Parametri za URL slike koji upotrebljava POST</translation> +<translation id="920209539000507585">Prisilno uključuje ili isključuje opciju "zaglavlja i podnožja" u dijaloškom okviru za ispis. + + Ako se pravilo ne postavi, korisnik može odlučiti hoće li ispisati zaglavlja i podnožja. + + Ako se pravilo postavi na False, opcija "Zaglavlja i podnožja" u dijaloškom okviru pregleda ispisa nije odabrana i korisnik to ne može promijeniti. + + Ako se pravilo postavi na True, opcija "Zaglavlja i podnožja" u dijaloškom okviru pregleda ispisa odabrana je i korisnik to ne može promijeniti.</translation> <translation id="9210953373038593554">Konfigurira vrstu autentifikacije za SAML prijave. Kada se to pravilo ne postavi ili se postavi na zadano (vrijednost 0), ponašanje SAML prijava određeno je preglednikom ovisno o drugim čimbenicima. U najjednostavnijem slučaju autentifikacija korisnika i zaštita predmemoriranih podataka korisnika temelje se na zaporkama koje su korisnici unijeli ručno. @@ -2970,6 +3036,9 @@ Kada se to pravilo postavi na ClientCertificate (vrijednost 1), autentifikacija korisničkim certifikatom upotrebljava se za novo dodane korisnike koji se prijavljuju putem SAML-a. Za te se korisnike ne upotrebljavaju nikakve zaporke i njihovi se predmemorirani lokalni podaci štite pomoću odgovarajućih kriptografskih ključeva. Na primjer, ta postavka omogućuje konfiguriranje autentifikacije korisnika na temelju pametne kartice (napominjemo da se posredničke aplikacije za pametne kartice trebaju instalirati pomoću pravila DeviceLoginScreenAppInstallList). To se pravilo primjenjuje samo na korisnike koji se autentificiraju putem SAML-a.</translation> +<translation id="9211439035693857287">Konfigurira pravila povezana s Chromeovim proširenjem za prijavljivanje. + + Ta se pravila primjenjuju samo kada su Chromeovo proširenje za prijavljivanje i Upravljanje u oblaku omogućeni.</translation> <translation id="9213347477683611358">Konfigurira pozadinsku sliku koja se prikazuje na zaslonu za prijavu na razini uređaja ako na uređaju još nema prijavljenih korisnika. Pravilo se postavlja određivanjem URL-a s kojega uređaj s OS-om Chrome može preuzeti pozadinsku sliku i kriptografskog raspršivanja za provjeru integriteta preuzimanja. Slika mora biti u JPEG formatu i ne smije biti veća od 16 MB. URL-u se mora moći pristupiti bez autentifikacije. Pozadinska slika preuzima se i sprema u predmemoriju. Ponovo će se preuzeti svaki put kada se URL ili raspršivanje promijene. Pravilo se navodi kao niz koji izražava URL i sažetak u JSON obliku, na primjer:
diff --git a/components/policy/resources/policy_templates_hu.xtb b/components/policy/resources/policy_templates_hu.xtb index a7011c3..a785eec 100644 --- a/components/policy/resources/policy_templates_hu.xtb +++ b/components/policy/resources/policy_templates_hu.xtb
@@ -201,6 +201,7 @@ <translation id="1522425503138261032">Engedélyezi a webhelyek számára a felhasználók fizikai helyének követését</translation> <translation id="152657506688053119">Az alapértelmezett keresési szolgáltató alternatív URL-jeinek listája.</translation> <translation id="1530812829012954197">Mindig jelenítse meg a következő URL-mintákat a gazdagép böngészőjében</translation> +<translation id="1541170838458414064">Nyomtatás oldalméretének korlátozása</translation> <translation id="1553684822621013552">Ha a házirend értéke igaz, akkor az ARC engedélyezve lesz a felhasználó számára (további házirend-ellenőrzések alapján – az ARC továbbra sem áll rendelkezésre, ha engedélyezve van az átmeneti mód vagy a többfiókos @@ -376,6 +377,12 @@ <translation id="2082205219176343977">Az engedélyezett legrégebbi Chrome-verzió beállítása az eszközön.</translation> <translation id="209586405398070749">Stabil csatorna</translation> <translation id="2098658257603918882">Használati és összeomlással kapcsolatos adatok jelentésének engedélyezése</translation> +<translation id="2098916259427011890">Ez a házirend szabályozza, hogy megtörténjen-e a verzióadatok, például az operációs rendszer verziójának, platformjának, architektúrájának, valamint a <ph name="PRODUCT_NAME" /> verziójának és a <ph name="PRODUCT_NAME" />-csatornának a jelentése. + + Ha a házirend nincs beállítva, illetve értéke igaz, akkor megtörténik a verzióadatok begyűjtése. + Ha a házirend értéke hamis, akkor nem történik meg a verzióadatok begyűjtése. + + Ez a házirend csak akkor érvényesül, ha be van kapcsolva a Chrome Reporting Extension és a Cloud Management.</translation> <translation id="2111016292707172233">Lehetővé teszi a Keresés koppintással funkció használatát a <ph name="PRODUCT_NAME" /> tartalomnézetében. Ha aktiválja ezt a beállítást, akkor a felhasználó használhatja a Keresés koppintással funkciót, és saját maga döntheti el, hogy be- vagy kikapcsolja-e azt. @@ -409,6 +416,8 @@ Ha a házirend nincs beállítva, akkor az alapértelmezett érték 0 fok, amelyet a felhasználó szabadon módosíthat. Ebben az esetben a böngésző nem alkalmazza az alapértelmezett értéket újraindításkor.</translation> +<translation id="214901426630414675">Nyomtatás kétoldalas módjának korlátozása</translation> +<translation id="2149330464730004005">Színes nyomtatás engedélyezése</translation> <translation id="2156132677421487971">Beállítja a(z) <ph name="PRODUCT_NAME" /> termékre vonatkozó házirendeket. Ez a funkció lehetővé teszi a felhasználók számára, hogy a böngészőből továbbítsák a lapok, a webhelyek vagy az asztal tartalmát a távoli kijelzők és hangrendszerek felé.</translation> <translation id="2166472654199325139">Felnőtteknek szóló tartalmakkal rendelkező webhelyek szűrésének kikapcsolása</translation> <translation id="2168397434410358693">Tétlenség késleltetése hálózati áramról való működés során</translation> @@ -598,6 +607,7 @@ <translation id="2529880111512635313">Állítsa be a kényszerített telepítésű alkalmazások és bővítmények listáját</translation> <translation id="253135976343875019">Tétlenségi figyelmeztetés késleltetése hálózati áramról való működés során</translation> <translation id="2536525645274582300">A felhasználó döntése arról, hogy engedélyezi-e a Google-helyszolgáltatásokat</translation> +<translation id="2550593661567988768">Csak egyoldalas nyomtatás</translation> <translation id="2552966063069741410">Időzóna</translation> <translation id="2562339630163277285">Megadja az azonnali eredményekhez használt keresőmotor URL-jét. Az URL-nek tartalmaznia kell a <ph name="SEARCH_TERM_MARKER" /> karakterláncot, amelynek helyébe a lekérdezés időpontjában a felhasználó által addig megadott szöveg lép. @@ -725,9 +735,12 @@ Ha letiltja ezt a beállítást, illetve nem adja meg az értékét, a nyomtatási előnézet a legutóbb használt nyomtatót választja ki alapértelmezettként. Ha engedélyezi ezt a beállítást, a nyomtatási előnézet az operációs rendszer alapértelmezett nyomtatóját használja alapértelmezettként.</translation> +<translation id="2856674246949497058">Visszaállítás és a célverzió megtartása, ha az operációs rendszer verziója újabb a célverziónál. A folyamat során powerwash művelet elvégzése.</translation> <translation id="2872961005593481000">Leállítás</translation> +<translation id="2873651257716068683">Felülbírálja a nyomtatás alapértelmezett oldalméretét. Ha nem áll rendelkezésre az oldalméret, akkor a rendszer figyelmen kívül hagyja ezt a házirendet.</translation> <translation id="2874209944580848064">Megjegyzés az Android-alkalmazásokat támogató <ph name="PRODUCT_OS_NAME" /> rendszerű eszközökhöz:</translation> <translation id="2877225735001246144">CNAME keresés tiltása a Kerberos hitelesítési tárgyalások során</translation> +<translation id="2892414556511568464">Korlátozza a kétoldalas nyomtatási módot. Nem megadott vagy üresen hagyott beállítás esetén nincs korlátozás.</translation> <translation id="2893546967669465276">Rendszernaplók küldése a kezelőszervernek</translation> <translation id="2899002520262095963">Az androidos alkalmazások használhatják a házirenden keresztül beállított hálózati beállításokat és a CA tanúsítványokat, de nem rendelkeznek hozzáféréssel egyes konfigurációs beállításokhoz.</translation> <translation id="290002216614278247">Lehetővé teszi a felhasználói munkamenet zárolását ügyfélidő vagy napi használati kvóta alapján. @@ -815,6 +828,7 @@ Javasoljuk a szerverek áttelepítését ECDHE rejtjelezési csomagokra. Ha ezek nem állnak rendelkezésre, gondoskodjon róla, hogy engedélyezve legyen egy RSA kulcscserélést használó rejtjelezési csomag.</translation> <translation id="316778957754360075">Ez a házirend többé nincs jelen a <ph name="PRODUCT_NAME" /> 29-es verziójától kezdve. A szervezet által tárolt bővítmény- és alkalmazásgyűjtemények beállításához azt javasoljuk, hogy a CRX-csomagokat tartalmazó webhelyet vegye fel az ExtensionInstallSources házirendbe, és helyezzen el a csomagokra mutató közvetlen letöltési linkeket egy weboldalon. A weboldalhoz az ExtensionInstallForcelist házirend használatával lehet indítót létrehozni.</translation> +<translation id="3171369832001535378">Eszköz hálózatának gazdagépnévsablonja</translation> <translation id="3185009703220253572">a(z) <ph name="SINCE_VERSION" /> verzió óta</translation> <translation id="3187220842205194486">Az androidos alkalmazások nem szerezhetnek hozzáférést a vállalati kulcsokhoz. A házirend nem vonatkozik rájuk.</translation> <translation id="3201273385265130876">Lehetővé teszi a(z) <ph name="PRODUCT_NAME" /> által használt proxyszerver meghatározását, és megakadályozza, hogy a felhasználók megváltoztassák a proxybeállításokat. @@ -921,6 +935,7 @@ A házirend értéke egy regisztrációs token, amelyet a Google Felügyeleti konzolból lehet lekérni.</translation> <translation id="3496296378755072552">Jelszókezelő</translation> +<translation id="3502555714327823858">Az összes kétoldalas mód engedélyezése</translation> <translation id="350443680860256679">Az ARC házirend konfigurálása</translation> <translation id="3504791027627803580">Megadja a képkereséshez használt keresőmotor URL-címét. A keresési kérelmet a rendszer a GET metódus segítségével továbbítja. Ha a DefaultSearchProviderImageURLPostParams házirend be van állítva, akkor a képkeresési kérelmek a POST metódust használják. @@ -930,6 +945,7 @@ <translation id="350797926066071931">Fordítás engedélyezése</translation> <translation id="3512226956150568738">Ha a kliens eszközmodellje már azelőtt támogatta az ARC-t, hogy az ARC futtatásához az ext4-re való migráció szükséges lett volna, valamint ha az ArcEnabled házirend igaz értékre van beállítva, akkor ez a beállítás az AskUser (3. érték) módjára viselkedik. Az érték minden egyéb esetben (ha az eszköz nem támogatta előtte az ARC-t, vagy ha az ArcEnabled házirend hamis értékre van beállítva) megegyezik a DisallowArc (0. érték) értékével.</translation> <translation id="3524204464536655762">Nem engedélyezi, hogy a webhelyek hozzáférést kérjenek az USB-eszközökhöz a WebUSB API-n keresztül</translation> +<translation id="3526752951628474302">Csak monokróm nyomtatás</translation> <translation id="3528000905991875314">Alternatív hibaoldalak engedélyezése</translation> <translation id="3545457887306538845">Lehetővé teszi annak szabályozását, hogy hol használhatók a Fejlesztői eszközök. @@ -953,6 +969,7 @@ <translation id="3577251398714997599">Hirdetésbeállítások a tolakodó hirdetéseket tartalmazó webhelyekre vonatkozóan</translation> <translation id="3591584750136265240">Bejelentkezési hitelesítési viselkedés konfigurálása</translation> <translation id="3627678165642179114">Engedélyezi vagy letiltja az internetes helyesírás-ellenőrző szolgáltatást</translation> +<translation id="3628480121685794414">Egyoldalas nyomtatás engedélyezése</translation> <translation id="3646859102161347133">Nagyító típusának beállítása</translation> <translation id="3653237928288822292">Alapértelmezett keresési szolgáltató ikonja</translation> <translation id="3660562134618097814">SAML IdP cookie-k átadása a bejelentkezés során</translation> @@ -1043,6 +1060,7 @@ <translation id="3851039766298741586">Információk (például alkalmazásazonosító és -verzió) jelentése az aktív kioszkmunkamenetről. Ha a házirend értéke hamis, a böngésző nem jelenti a kioszkmunkamenet információit. Ha igaz, illetve ha nincs beállítva, a böngésző jelenti ezeket az információkat.</translation> +<translation id="3858658082795336534">Alapértelmezett kétoldalas nyomtatási mód</translation> <translation id="3859780406608282662">Hozzáad egy paramétert a <ph name="PRODUCT_OS_NAME" /> rendszer változatainak lekéréséhez. Ha meg van határozva, akkor egy „restrict” lekérdezésparamétert ad a változatok seedjének lekéréséhez használt URL-hez. A paraméter értéke a jelen házirendben meghatározott érték lesz. @@ -1149,6 +1167,12 @@ Ellenkező esetben a következő értékek egyike állítható be: „tls1.2” vagy „tls1.3”. Ha beállítja a házirendet, a <ph name="PRODUCT_NAME" /> nem használ majd a megadottnál magasabb verziószámú SSL/TLS-verziót. Az ismeretlen értékeket figyelmen kívül hagyja a böngésző.</translation> <translation id="4121350739760194865">Megakadályozza az alkalmazáspromóciók megjelenését az új lap oldalon</translation> <translation id="412697421478384751">Annak engedélyezése, hogy a felhasználók gyenge PIN-kódot adjanak meg a lezárási képernyő PIN-kódjaként.</translation> +<translation id="4129183564590133854">Ez a házirend szabályozza, hogy készüljön-e jelentés az olyan adatokról, amelyek alkalmasak a felhasználók azonosítására (pl. operációs rendszeren használt bejelentkezési adatok, <ph name="PRODUCT_NAME" />-profil bejelentkezési adatai, <ph name="PRODUCT_NAME" />-profil neve, <ph name="PRODUCT_NAME" />-profil elérési útja és a <ph name="PRODUCT_NAME" /> futtatható fájljának elérési útja. + + Ha a házirend nincs beállítva, illetve értéke igaz, akkor megtörténik a felhasználók azonosítására alkalmas adatok begyűjtése. + Ha a házirend értéke hamis, akkor nem történik meg a felhasználók azonosítására alkalmas adatok begyűjtése. + + Ez a házirend csak akkor érvényesül, ha be van kapcsolva a Chrome Reporting Extension és a Cloud Management.</translation> <translation id="4138655880188755661">Időkorlát</translation> <translation id="4157003184375321727">Az operációs rendszer és a firmware verziójának jelentése</translation> <translation id="4157594634940419685">Hozzáférés engedélyezése a natív CUPS-nyomtatókhoz</translation> @@ -1448,6 +1472,12 @@ <translation id="5052081091120171147">Ez a házirend engedélyezése esetén a böngészési előzmények importálását kényszeríti a jelenlegi alapértelmezett böngészőből. Bekapcsolása esetén a házirend az importálás párbeszédpanelére is hatással van. Ha le van tiltva, nem történik meg a böngészési előzmények importálása. Ha nincs beállítva, akkor előfordulhat, hogy a rendszer a felhasználótól kérdezi meg, hogy megtörténjen-e az importálás, vagy hogy lehet-e automatikus az importálás.</translation> <translation id="5056708224511062314">Nagyító kikapcsolva</translation> <translation id="5058573563327660283">Az automatikus megtisztítás során a lemezterület felszabadításához használt stratégia kiválasztása (elavult)</translation> +<translation id="5058771123777243130">Ez a házirend szabályozza, hogy készüljön-e jelentés a házirendadatokról és a házirend lekérésének idejéről. + + Ha a házirend nincs beállítva, illetve értéke igaz, akkor megtörténik a házirendadatok, illetve a lekérésük idejére vonatkozó dátum- és időadatok begyűjtése. + Ha a házirend értéke hamis, akkor nem történik meg a házirendadatok, illetve a lekérésük idejére vonatkozó dátum- és időadatok begyűjtése. + + Ez a házirend csak akkor érvényesül, ha be van kapcsolva a Chrome Reporting Extension és a Cloud Management.</translation> <translation id="5067143124345820993">A bejelentkezett felhasználó engedélyezőlistája</translation> <translation id="5068140065960598044">A(z) <ph name="PRODUCT_NAME" /> felhővel kapcsolatos házirendje felülírja a számítógép házirendjét.</translation> <translation id="5085647276663819155">Nyomtatási előnézet letiltása</translation> @@ -1550,6 +1580,7 @@ <translation id="5366977351895725771">Ha „hamis” értékre van állítva, a felhasználó nem hozhat létre felügyelt felhasználókat. Az összes meglévő felügyelt felhasználó továbbra is elérhető lesz. Ha „igaz” értékre van állítva, illetve nincs beállítva, a felhasználó létrehozhat és kezelhet felügyelt felhasználókat.</translation> +<translation id="5369937289900051171">Csak színes nyomtatás</translation> <translation id="5370279767682621504">A HTTP/0.9 támogatás engedélyezése a nem alapértelmezett portokon</translation> <translation id="5378985487213287085">Meghatározhatja, hogy a weboldalak megjeleníthessenek-e asztali értesítéseket. Az asztali értesítések megjelenítése lehet alapértelmezés szerint engedélyezett, alapértelmezés szerint tiltott, vagy megkérdezheti a felhasználót minden alkalommal, amikor egy webhely asztali értesítéseket kíván megjeleníteni. Ha a házirend konfigurálatlanul marad, a rendszer az "AskNotifications" értéket használja, amelyet a felhasználó módosíthat.</translation> <translation id="538108065117008131">A következő tartalomtípusok kezelésének engedélyezése a <ph name="PRODUCT_FRAME_NAME" /> számára.</translation> @@ -1570,6 +1601,7 @@ Ha beviteli módszerek azonosítóinak listáját adja meg a házirendben, akkor ezek a beviteli módszerek mind használhatók majd a bejelentkezési képernyőn. A rendszer az elsőként megadott beviteli módszert fogja előzetesen kiválasztani. Ha felhasználócsoport van a bejelentkezési képernyő fókuszában, akkor a jelen házirendben megadottak mellett a felhasználó által utoljára használt beviteli módszer is rendelkezésre áll majd. Ha nincs beállítva a házirend, akkor a bejelentkezési képernyőn használható beviteli módszereket a rendszer a bejelentkezési képernyő megjelenítési nyelvéből következteti ki. A rendszer figyelmen kívül hagyja azokat az értékeket, amelyek érvénytelen bevitelimódszer-azonosítók.</translation> <translation id="5423001109873148185">Bekapcsolása esetén a házirend kikényszeríti a keresőmotorok importálását az alapértelmezett böngészőből. Bekapcsolása esetén a házirend az importálás párbeszédpanelére is hatással van. Ha ki van kapcsolva, akkor a rendszer nem importálja az alapértelmezett keresőt. Ha nincs beállítva, akkor a rendszer a felhasználótól kérdezheti meg, hogy megtörténjen-e az importálás, vagy hogy lehet-e automatikus az importálás.</translation> <translation id="5423197884968724595">Android WebView-korlátozás neve:</translation> +<translation id="5424147596523390018">Az összes színmód engedélyezése</translation> <translation id="5442026853063570579">A házirend meghatározza az Android fejlesztői beállításokhoz való hozzáférést is. Ha a házirend beállítása „DeveloperToolsDisallowed” (az érték 2), a felhasználók nem férhetnek hozzá a fejlesztői beállításokhoz. Ha a házirendet más értékre állítja, vagy ha nem állítja be, akkor a felhasználók hozzáférhetnek a fejlesztői beállításokhoz úgy, hogy hétszer rákoppintanak az Android-beállítások alkalmazásban megtalálható buildszámra.</translation> <translation id="5447306928176905178">A memóriával kapcsolatos információk jelentésének engedélyezése (JS-halomméret) az oldal számára (elavult)</translation> <translation id="5457065417344056871">Vendég mód engedélyezése a böngészőben</translation> @@ -1636,6 +1668,7 @@ <translation id="5586942249556966598">Ne tegyen semmit</translation> <translation id="5630352020869108293">Utolsó munkamenet visszaállítása</translation> <translation id="5645779841392247734">Cookie-k engedélyezése ezeken a webhelyeken</translation> +<translation id="5689430183304951538">Nyomtatás alapértelmezett oldalmérete</translation> <translation id="5693469654327063861">Adatmigráció engedélyezése</translation> <translation id="5694594914843889579">Ha a házirend értéke Igaz, a külső tárhely nem lesz hozzáférhető a fájlböngészőben. @@ -1665,6 +1698,7 @@ Ha a házirend nincs beállítva, a rendszer az alapértelmezett időtartamot használja. A házirend értékét ezredmásodpercben kell megadni.</translation> +<translation id="5783009211970309878">Fejlécek és láblécek nyomtatása</translation> <translation id="5809728392451418079">Az eszközön található helyi fiókok megjelenített nevének beállítása</translation> <translation id="5814301096961727113">A hangos visszajelzés alapértelmezett állapotának beállítása a bejelentkezési képernyőn</translation> <translation id="5815129011704381141">Automatikus újraindítás frissítés után</translation> @@ -1676,6 +1710,7 @@ Ha nincs megadva ez a beállítás, akkor az alkalmazás a profil alapértelmezett mappáját használja.</translation> <translation id="5826047473100157858">Meghatározza, hogy a felhasználó megnyithat-e oldalakat inkognitó módban a(z) <ph name="PRODUCT_NAME" /> böngészőben. Ha az "Engedélyezve" lehetőség van kiválasztva, vagy ha a házirend beállítatlanul marad, az oldalakat meg lehet nyitni inkognitómódban. Ha a "Letiltva" lehetőség van kiválasztva, az oldalakat nem lehet megnyitni inkognitómódban. Ha a "Kényszerített" lehetőség van kiválasztva, az oldalakat CSAK inkognitómódban lehet megnyitni.</translation> +<translation id="582857022372205358">Rövid oldal mentén történő kétoldalas nyomtatás engedélyezése</translation> <translation id="583091600226586337"> Ha engedélyezve van a házirend, a rendszer minden egyes fájl letöltése előtt rákérdez a mentés helyére. Ha le van tiltva a házirend, a letöltések azonnal megkezdődnek, és a rendszer nem kérdezi meg a felhasználótól, hogy hová szeretné menteni a fájlokat. @@ -1711,6 +1746,7 @@ Ha a beállítás tiltva van, vagy nincs konfigurálva, akkor a rendszer nem proxyzza a gnubby hitelesítési kéréseket.</translation> <translation id="5898486742390981550">Ha több felhasználó van bejelentkezve, csak az elsődleges felhasználó használhat Android-alkalmazásokat.</translation> +<translation id="5901427587865226597">Csak kétoldalas nyomtatás</translation> <translation id="5906199912611534122">Lehetővé teszi a hálózatszabályozás engedélyezését és letiltását. Minden felhasználóra és az eszköz minden felületére vonatkozik. A beállítást követően a szabályozás a házirend kikapcsolásáig érvényben marad. @@ -1819,6 +1855,7 @@ A házirend értékét milliszekundumban kell megadni. Az értékeknek alacsonyabbnak kell lenniük a tétlenség késleltetésénél.</translation> <translation id="6097601282776163274">URL-alapú adatgyűjtés engedélyezése</translation> +<translation id="6099853574908182288">Alapértelmezett nyomtatási színmód</translation> <translation id="6111936128861357925">A rejtett dinoszauruszos játék engedélyezése</translation> <translation id="6114416803310251055">elavult</translation> <translation id="6133088669883929098">Kulcsgenerálás használatának engedélyezése minden webhelyen</translation> @@ -1831,6 +1868,7 @@ Ha nem állítja be ezt a házirendet, akkor a böngésző valamennyi webhelyre vonatkozóan a globális alapértelmezett értéket használja a „DefaultPluginsSetting” házirend (ha be van állítva) vagy a felhasználó személyes konfigurációja alapján.</translation> <translation id="6190022522129724693">Előugró ablakok alapértelmezett beállítása</translation> +<translation id="6190367314942602985">Felhasználó azonosító adatainak jelentése</translation> <translation id="6197453924249895891">Hozzáférés biztosítása a vállalati kulcsokhoz a bővítmények számára. A kulcsok vállalati felhasználásra szolgálnak, amennyiben a chrome.enterprise.platformKeys API használatával hozzák létre őket egy felügyelt fiókban. Az importált vagy más módon létrehozott kulcsok rendeltetése nem a vállalati felhasználás. @@ -1840,6 +1878,8 @@ A bővítmények alapértelmezés szerint nem használhatnak vállalati felhasználásra szánt kulcsokat – ez megfelel az allowCorporateKeyUsage házirend hamis értékre állításának az adott bővítménynél. A bővítmények csak akkor használhatnak bármilyen vállalati felhasználásra szánt platformkulcsot tetszőleges adatok aláírására, ha az allowCorporateKeyUsage igaz értékre van állítva az adott bővítménynél. Ezt az engedélyt csak akkor szabad megadni, ha a bővítmény megbízható, és képes a kulcs biztonságos elérésére (hogy a támadók ne használhassák ki).</translation> +<translation id="6208896993204286313">A <ph name="PRODUCT_NAME" /> házirendadatainak jelentése</translation> +<translation id="6210259502936598222">Az operációs rendszer és a <ph name="PRODUCT_NAME" /> verzióadatainak jelentése</translation> <translation id="6211428344788340116">Az eszköz aktív idejének jelentése. Ha a beállítás nincs megadva, vagy az értéke igaz, akkor a regisztrált eszközök jelentik azokat az időszakokat, amikor a felhasználó aktív az eszközön. Ha a beállítás értéke hamis, akkor az eszköz aktív ideje nem lesz rögzítve, illetve jelentésére nem kerül sor.</translation> @@ -1853,6 +1893,7 @@ <translation id="6233173491898450179">Letöltési könyvtár megadása</translation> <translation id="6244210204546589761">Indításkor megnyitandó URL-ek</translation> <translation id="6258193603492867656">Megadja, hogy a generált Kerberos SPN-nek tartalmaznia kell-e egy nem szabványos portot. Ha engedélyezi ezt a beállítást, és megad egy nem szabványos portot (azaz a 80-as vagy 443-as porttól eltérőt), az szerepelni fog a generált Kerberos SPN-ben. Ha letiltja vagy konfigurálatlanul hagyja a beállítást, a generált Kerberos SPN semmilyen esetben sem fogja tartalmazni a portot.</translation> +<translation id="6261643884958898336">Készülékazonosítási adatok jelentése</translation> <translation id="6281043242780654992">A Natív üzenetküldés házirendjeit konfigurálja. A tiltólistán szereplő natív üzenetkezelő gazdagépeket a rendszer nem engedélyezi, hacsak nem szerepelnek az engedélyezőlistán.</translation> <translation id="6282799760374509080">Hangrögzítés engedélyezése vagy tiltása</translation> <translation id="6284362063448764300">TLS 1.1</translation> @@ -1883,6 +1924,7 @@ Ha a proxyszerver automatikus észlelését választja, az Android-alkalmazások a „http://wpad/wpad.dat” szkript-URL-t kapják. A proxy automatikus észlelésével kapcsolatos protokoll más része nem kerül felhasználásra. Ha a .pac proxyszkriptet választja, az Android-alkalmazások a szkript-URL-t kapják meg.</translation> +<translation id="6430366557948788869">Chrome Reporting Extension</translation> <translation id="6440051664870270040">Annak engedélyezése a webhelyek számára, hogy egyszerre navigáljanak és nyissanak meg előugró ablakokat</translation> <translation id="6447948611083700881">Biztonsági mentés és helyreállítás letiltva</translation> <translation id="645425387487868471">A kényszerített bejelentkezés engedélyezése a <ph name="PRODUCT_NAME" /> használatához</translation> @@ -1929,6 +1971,7 @@ <translation id="6628646143828354685">Lehetővé teszi annak beállítását, hogy a webhelyek hozzáférhetnek-e a közeli Bluetooth-eszközökhöz. A hozzáférés teljes mértékben letiltható, vagy a rendszer minden olyan alkalommal rákérdezhet a felhasználónál az engedélyezésre, amikor egy webhely közeli Bluetooth-eszközökhöz szeretne hozzáférni. Ha nincs beállítva a házirend, akkor az érték „3” lesz, amit a felhasználó bármikor módosíthat.</translation> +<translation id="663685822663765995">Nyomtatás színes módjának korlátozása</translation> <translation id="6641981670621198190">3D grafikai API-k támogatásának tiltása</translation> <translation id="6647965994887675196">Ha „igaz” értékre van állítva, megengedett a felügyelt felhasználók létrehozása és használata. @@ -1956,6 +1999,7 @@ Az ebben a házirendben megadott URL-minták nem ütközhetnek a WebUsbAskForUrls házirendben beállítottakkal. Nincs meghatározva, hogy a két házirend közül melyik élvez elsőbbséget, ha egy URL mindkettővel egyezik.</translation> <translation id="6689792153960219308">Hardverállapot jelentése</translation> +<translation id="6698632841807204978">Monokróm nyomtatás engedélyezése</translation> <translation id="6699880231565102694">A kétlépcsős azonosítás engedélyezése távoli hozzáférésű gazdagépekhez</translation> <translation id="6724842112053619797">Ha engedélyezi ezt a beállítást, a rendszer a(z) <ph name="PRODUCT_NAME" />-profilokban tárolt beállításokat (például könyvjelzők, automatikus kitöltési adatok, jelszavak stb.) a Barangoló felhasználói profil mappájában, illetve a rendszergazda által, a(z) <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> házirendnek megfelelően megadott helyen tárolt fájlba is beírja. A házirend engedélyezésével letiltja a felhőalapú szinkronizálást. @@ -1995,6 +2039,12 @@ Ez a beállítás szabályozza azon üdvözlő oldalak megjelenését, amelyek segítik a felhasználókat a <ph name="PRODUCT_NAME" /> böngészőbe való bejelentkezésben, a böngésző alapértelmezettként való kiválasztásában, vagy a felhasználók termékfunkciókról való, más módon történő tájékoztatásában.</translation> <translation id="6766216162565713893">Engedélyezi azt, hogy a felhasználótól hozzáférést kérjenek a webhelyek egy közeli Bluetooth-eszköz használatára</translation> <translation id="6770454900105963262">Az aktív kioszkmunkamenetekkel kapcsolatos információk jelentése</translation> +<translation id="6773056206551814546">Ez a házirend szabályozza, hogy készüljön-e jelentés az olyan adatokról, amelyek alkalmasak az eszközök azonosítására (pl. eszköz neve, hálózati cím). + + Ha a házirend nincs beállítva, illetve értéke igaz, akkor megtörténik az eszközök azonosítására alkalmas adatok begyűjtése. + Ha a házirend értéke hamis, akkor nem történik meg az eszközök azonosítására alkalmas adatok begyűjtése. + + Ez a házirend csak akkor érvényesül, ha be van kapcsolva a Chrome Reporting Extension és a Cloud Management.</translation> <translation id="6786747875388722282">Bővítmények</translation> <translation id="6786967369487349613">Barangolási profilcímtár beállítása</translation> <translation id="6810445994095397827">JavaScript letiltása ezeken a webhelyeken</translation> @@ -2096,6 +2146,7 @@ </translation> <translation id="6922884955650325312">A(z) <ph name="FLASH_PLUGIN_NAME" /> beépülő modul letiltása</translation> <translation id="6923366716660828830">Megadja az alapértelmezett keresési szolgáltató nevét. Ha üresen vagy beállítatlanul marad, a keresési URL által megadott gazdagépnév lesz használatban. A házirend csak akkor érvényesül, ha a "DefaultSearchProviderEnabled" házirend engedélyezve van.</translation> +<translation id="6926703471186170050">Hosszú oldal mentén történő kétoldalas nyomtatás engedélyezése</translation> <translation id="6931242315485576290">A Google-lal való adatszinkronizálás tiltása</translation> <translation id="6936894225179401731">Megadja a proxyszerverhez csatlakozó egyidejű kapcsolatok maximális számát. @@ -2289,6 +2340,7 @@ Ha a beállítás le van tiltva vagy nincs megadva, akkor a felhasználók dönthetik el, hogy a figyelmeztetés megtekintése után továbblépnek-e a megjelölt webhelyre. Ha további információt szeretne kapni a Biztonságos Böngészésről, látogasson el a https://developers.google.com/safe-browsing oldalra.</translation> +<translation id="737655323154569539">Korlátozza a nyomtatás oldalméretét. Nem megadott vagy üresen hagyott beállítás esetén nincs korlátozás.</translation> <translation id="7417728346887499628">Ha le van tiltva, a Chrome-tisztogatás nem tudja ellenőrizni a rendszert kéretlen szoftverek keresése és megtisztítása céljából. A Chrome-tisztogatás kézi indítása a chrome://settings/cleanup oldalon le van tiltva. Ha engedélyezve van, vagy ha nincs beállítva, a Chrome-tisztogatás rendszeresen ellenőrzi a rendszert kéretlen szoftvereket keresve, és ha talál ilyet, megkérdezi a felhasználót, hogy szeretné-e eltávolítani. A Chrome-tisztogatás kézi indítása a chrome://settings oldalon engedélyezve van. @@ -2357,6 +2409,8 @@ <translation id="7617319494457709698">Ez a házirend adja meg, hogy mely bővítmények számára engedélyezett az <ph name="ENTERPRISE_PLATFORM_KEYS_API" /> <ph name="CHALLENGE_USER_KEY_FUNCTION" /> funkciójának használata távoli tanúsításhoz. Az API használatához fel kell vennie a bővítményeket erre a listára. Ha valamelyik bővítmény nincs a listán, vagy a lista nincs beállítva, akkor az API hívása hibakóddal leáll.</translation> +<translation id="7618907117929117943">A korábbi állapot visszaállítása és a célverzió megtartása, ha az operációs rendszer verziója újabb, mint a célverzió, és ha át lehet vinni az eszközszintű konfigurációt (beleértve a hálózati hitelesítő adatokat is) a korábbi állapot visszaállításával, valamint az OOBE átugrásával a korábbi állapot visszaállítása után. Ne végezze el, illetve szakítsa meg a korábbi állapot visszaállítását, ha az átvitel nem lehetséges (mert a célverzió nem támogatja az adatok helyreállítását, illetve egy hátrafelé nem kompatibilis módosítás miatt). + Csak a <ph name="PRODUCT_OS_NAME" /> 70-es és újabb verzióin támogatott. A régebbi ügyfelek esetén ez az érték azt jelenti, hogy a korábbi állapot visszaállítása le van tiltva.</translation> <translation id="7625444193696794922">Azt a kiadási csatornát határozza meg, amelyhez az eszközt hozzá kell kötni.</translation> <translation id="7632724434767231364">GSSAPI könyvtár neve</translation> <translation id="7635471475589566552">Beállítja az alkalmazás nyelv- és országkódját a következőben: <ph name="PRODUCT_NAME" />, és megakadályozza, hogy a felhasználók megváltoztassák a kódot. Ha engedélyezi ezt a beállítást, a(z) <ph name="PRODUCT_NAME" /> a megadott nyelv- és országkódot fogja használni. Ha a megadott nyelv- és országkód nem támogatott, az "en-US" lehetőséget használja helyette. Ha ez a beállítás ki van kapcsolva, vagy nincs beállítva, a(z) <ph name="PRODUCT_NAME" /> vagy a felhasználó által meghatározott nyelv- és országkódot használja (ha konfigurálva van), vagy a tartalék "en-US" lehetőséget.</translation> @@ -2550,6 +2604,7 @@ Ha engedélyezi ezt a beállítást, vagy nem állítja be az értékét, az automatikus kitöltés funkció a felhasználó ellenőrzése alatt marad. Ez lehetővé teszi, hogy a felhasználók automatikus kitöltési profilokat állítsanak be, és saját belátásuk szerint kapcsolják ki vagy be az automatikus kitöltést.</translation> <translation id="8044493735196713914">Az eszköz indítási módjának jelentése</translation> <translation id="8050080920415773384">Natív nyomtatás</translation> +<translation id="8053580360728293758">Felülbírálja az alapértelmezett színes nyomtatási módot. Ha nem áll rendelkezésre a színes nyomtatási mód, akkor a rendszer figyelmen kívül hagyja ezt a házirendet.</translation> <translation id="8059164285174960932">Az URL, ahol a távoli hozzáférésű kliensnek be kell szereznie a hitelesítési tokent</translation> <translation id="8078366200175825572">Lehetővé teszi, hogy megadja azon URL-minták listáját, amelyek nem állíthatnak be cookie-kat. @@ -2736,6 +2791,7 @@ A „Verziószám” itt utalhat pontos verzióra (pl. „61.0.3163.120” vagy verzióelőtagra (pl. „61.0”). </translation> <translation id="8544375438507658205">Alapértelmezett HTML-megjelenítő a <ph name="PRODUCT_FRAME_NAME" /> számára</translation> <translation id="8544465954173828789">Az SMS-ek telefon és Chromebook közti szinkronizálásának engedélyezése.</translation> +<translation id="8548832052135586762">Csak színes nyomtatás, csak monokróm nyomtatás, illetve nincs korlátozás a színes módra vonatkozóan. Ha nincs beállítva a házirend, akkor nincs érvényben korlátozás.</translation> <translation id="8549772397068118889">Figyelmeztetés tartalomcsomagokon kívüli webhelyek felkeresése esetén</translation> <translation id="8566842294717252664">Az Internetes áruház elrejtése az Új lap oldalon és az alkalmazásindítón</translation> <translation id="8586528890725660268">Meghatározza, hogy mely nyomtatókat nem használhatja a felhasználó. @@ -2838,6 +2894,7 @@ Ha nincs megadva ez a beállítás, a felhasználók dönthetik el, hogy szeretnék-e használni a funkciót.</translation> <translation id="8870318296973696995">Kezdőoldal</translation> +<translation id="8876188741456358123">Felülbírálja az alapértelmezett kétoldalas nyomtatási módot. Ha nem áll rendelkezésre a kétoldalas nyomtatási mód, akkor a rendszer figyelmen kívül hagyja ezt a házirendet.</translation> <translation id="8882006618241293596">A(z) <ph name="FLASH_PLUGIN_NAME" /> beépülő modul letiltása ezeken a webhelyeken</translation> <translation id="890403179930035128">Kényszeríti a helyesírás-ellenőrzéshez használt nyelvek engedélyezését. A rendszer figyelmen kívül hagyja a listában található, fel nem ismert nyelveket. @@ -2934,6 +2991,8 @@ <translation id="9084985621503260744">Megadja, hogy a videotevékenység hatással van-e az energiagazdálkodásra</translation> <translation id="9088433379343318874">Felügyelt felhasználó tartalomszolgáltatójának engedélyezése</translation> <translation id="9088444059179765143">Az automatikus időzóna-érzékelés módszerének konfigurálása</translation> +<translation id="9094064873808699479">A korábbi állapot visszaállítása és a célverzió megtartása, ha az operációs rendszer verziója újabb, mint a célverzió. Megpróbálja átvinni az eszközszintű konfigurációt (a hálózati hitelesítő adatokkal együtt) a korábbi állapot visszaállítása során, de még akkor is elvégzi a teljes powerwash folyamatot, ha az adatok helyreállítása nem lehetséges (mert a célverzió nem támogatja az adatok helyreállítását, illetve egy hátrafelé nem kompatibilis módosítás miatt). + Csak a <ph name="PRODUCT_OS_NAME" /> 70-es és újabb verzióin támogatott. A régebbi ügyfelek esetén ez az érték azt jelenti, hogy a korábbi állapot visszaállítása le van tiltva.</translation> <translation id="9096086085182305205">Azonosítási szerverek engedélyezési listája</translation> <translation id="9098553063150791878">HTTP-hitelesítési szabályok</translation> <translation id="9105265795073104888">A proxykonfigurációs beállításoknak csak egy része áll rendelkezésre az Android-alkalmazások számára. Az Android-alkalmazások saját belátásuk szerint használhatják a proxyt. Az Android-alkalmazások nem kényszeríthetők proxy használatára.</translation> @@ -2985,6 +3044,13 @@ <translation id="9187743794267626640">Külső tárhely csatlakoztatásának letiltása</translation> <translation id="9197740283131855199">Az a százalék, amelynek alapján a képernyő-elsötétítési késleltetés skálázódik, ha az elsötétedés után a felhasználó aktív lesz</translation> <translation id="9200828125069750521">Paraméterek POST metódust használó kép-URL-hez</translation> +<translation id="920209539000507585">A „fejlécek és láblécek” nyomtatására vonatkozó beállítás kényszerítése a nyomtatási párbeszédpanelen. + + Ha a házirend nincs beállítva, akkor a felhasználó eldöntheti, hogy ki szeretné-e nyomtatni a fejléceket és lábléceket. + + Ha a házirend beállítása hamis, akkor a „Fejlécek és láblécek” beállítás nincs bejelölve a nyomtatási előnézet párbeszédpanelén, és a felhasználó ezt nem módosíthatja. + + Ha a házirend beállítása igaz, akkor a „Fejlécek és láblécek” beállítás be van jelölve a nyomtatási előnézet párbeszédpanelén, és a felhasználó ezt nem módosíthatja.</translation> <translation id="9210953373038593554">Az SAML-bejelentkezések hitelesítési típusát konfigurálja. Ha a házirend nincs beállítva, vagy ha az alapértelmezett értékkel (0) rendelkezik, akkor az SAML-bejelentkezések viselkedését a böngésző határozza meg egyéb tényezők figyelembevételével. A legáltalánosabb helyzet az, hogy a felhasználói hitelesítés és a gyorsítótárazott felhasználói adatok védelme a felhasználók által manuálisan beírt jelszavakon alapul. @@ -2992,6 +3058,9 @@ Ha a házirend beállítása ClientCertificate (klienstanúsítvány, 1-es érték), akkor a böngésző klienstanúsítványon alapuló hitelesítést használ az újonnan hozzáadott felhasználók esetében, akik SAML használatával jelentkezhetnek be. Az ilyen felhasználóknak nem kell jelszót használniuk, gyorsítótárazott helyi adataikat pedig a megfelelő titkosítási kulcsok védik. Ez a beállítás lehetővé teszi például az intelligens kártyákon alapuló felhasználói hitelesítés beállítását (felhívjuk figyelmét, hogy ehhez telepíteni kell az intelligens kártya köztes alkalmazását a DeviceLoginScreenAppInstallList házirenden keresztül). Ez a házirend csak azokra a felhasználókra érvényes, akik SAML-alapú hitelesítést használnak.</translation> +<translation id="9211439035693857287">A Chrome Reporting Extension házirendjeinek konfigurálása. + + Ezek a házirendek csak akkor érvényesek, ha a Chrome Reporting Extension és a Cloud Management aktiválva van.</translation> <translation id="9213347477683611358">Beállítja az eszközszintű háttérképet, amely akkor jelenik meg a bejelentkezési képernyőn, ha még nem jelentkezett be felhasználó az eszközre. Az irányelv annak az URL-nek a megadásával állítható be, ahonnan a Chrome OS-eszköz letöltheti a háttérképet és a letöltés integritásának ellenőrzésére szolgáló kriptográfiai hash-értéket. A képnek JPEG formátumban kell lennie, mérete pedig nem haladhatja meg a 16 MB-ot. Az URL-nek hitelesítés nélkül is elérhetőnek kell lennie. A letöltés után a háttérkép a gyorsítótárba kerül. A rendszer az URL vagy a hash-érték változása esetén minden esetben újból letölti a képet. Az irányelvet olyan karakterláncként kell megadni, amely JSON formátumban fejezi ki az URL-t és a hash-értéket, például:
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb index 0c7e0a2..1f23b91d 100644 --- a/components/policy/resources/policy_templates_id.xtb +++ b/components/policy/resources/policy_templates_id.xtb
@@ -189,6 +189,7 @@ <translation id="1522425503138261032">Izinkan situs melacak lokasi fisik pengguna</translation> <translation id="152657506688053119">Daftar URL pengganti untuk penyedia penelusuran default</translation> <translation id="1530812829012954197">Selalu urai pola URL berikut di browser host</translation> +<translation id="1541170838458414064">Batasi ukuran halaman pencetakan</translation> <translation id="1553684822621013552">Jika kebijakan ini disetel ke True, ARC akan diaktifkan untuk pengguna (tunduk pada pemeriksaan setelan kebijakan tambahan - ARC akan tetap tidak tersedia jika mode singkat atau fitur masuk banyak akun diaktifkan @@ -364,6 +365,12 @@ <translation id="2082205219176343977">Mengonfigurasi versi minimum Chrome yang diizinkan untuk perangkat.</translation> <translation id="209586405398070749">Saluran stabil</translation> <translation id="2098658257603918882">Aktifkan laporan data penggunaan dan yang terkait error</translation> +<translation id="2098916259427011890">Kebijakan ini mengontrol apakah akan melaporkan informasi versi, seperti versi OS, platform OS, arsitektur OS, versi <ph name="PRODUCT_NAME" />, dan saluran <ph name="PRODUCT_NAME" />. + + Jika kebijakan ini tidak disetel atau disetel ke True, informasi versi akan dikumpulkan. + Jika kebijakan ini disetel ke False, informasi versi tidak akan dikumpulkan. + + Kebijakan ini hanya berlaku jika Ekstensi Pelaporan Chrome dan Pengelolaan Cloud diaktifkan.</translation> <translation id="2111016292707172233">Mengaktifkan ketersediaan Tap untuk Menelusuri di tampilan konten <ph name="PRODUCT_NAME" />. Jika Anda mengaktifkan setelan ini, Tap untuk Menelusuri akan tersedia untuk pengguna dan mereka dapat memilih untuk mengaktifkan atau menonaktifkannya. @@ -397,6 +404,8 @@ Jika kebijakan tidak disetel, nilai defaultnya adalah 0 derajat, dan pengguna dapat mengubahnya. Dalam kasus ini, nilai default tidak akan diterapkan kembali saat memulai ulang.</translation> +<translation id="214901426630414675">Batasi mode dupleks pencetakan</translation> +<translation id="2149330464730004005">Aktifkan pencetakan warna</translation> <translation id="2156132677421487971">Mengonfigurasi kebijakan untuk <ph name="PRODUCT_NAME" />, fitur yang memungkinkan pengguna mengirim konten tab, situs, atau desktop dari browser ke sistem suara dan layar jarak jauh.</translation> <translation id="2166472654199325139">Jangan filter konten khusus dewasa dari situs</translation> <translation id="2168397434410358693">Menunda waktu menganggur saat menggunakan daya AC</translation> @@ -578,6 +587,7 @@ <translation id="2529880111512635313">Mengonfigurasi daftar aplikasi dan ekstensi yang dipasang secara paksa</translation> <translation id="253135976343875019">Menunda peringatan waktu menganggur saat menggunakan daya AC</translation> <translation id="2536525645274582300">Pengguna memutuskan apakah akan mengaktifkan layanan lokasi Google</translation> +<translation id="2550593661567988768">Khusus pencetakan simpleks</translation> <translation id="2552966063069741410">Zona Waktu</translation> <translation id="2562339630163277285">Menentukan URL mesin telusur yang digunakan untuk memberikan hasil instan. URL harus berisi string <ph name="SEARCH_TERM_MARKER" />, yang akan diganti pada waktu kueri dengan teks yang telah dimasukkan oleh pengguna sejauh ini. @@ -636,7 +646,7 @@ URL penelusuran Google dapat ditentukan sebagai: <ph name="GOOGLE_SEARCH_URL" />. Opsi ini harus disetel jika kebijakan 'DefaultSearchProviderEnabled' diaktifkan dan hanya akan diberlakukan jika opsi tersebut digunakan.</translation> -<translation id="2659019163577049044">Jika setelan ini diaktifkan, pengguna akan diizinkan menyiapkan perangkatnya untuk menyinkronkan SMS antara ponsel dan Chromebook-nya. Perhatikan bahwa jika kebijakan ini diizinkan, pengguna harus secara eksplisit ikut serta dalam fitur ini dengan menyelesaikan alur penyiapan. Setelan alur penyiapan selesai, pengguna akan dapat mengirim dan menerima SMS di Chromebook-nya. +<translation id="2659019163577049044">Jika setelan ini diaktifkan, pengguna akan diizinkan menyiapkan perangkatnya untuk menyinkronkan SMS antara ponsel dan Chromebook-nya. Perhatikan bahwa jika kebijakan ini diizinkan, pengguna harus secara eksplisit ikut serta dalam fitur ini dengan menyelesaikan alur penyiapan. Setelah alur penyiapan selesai, pengguna akan dapat mengirim dan menerima SMS di Chromebook-nya. Jika setelan ini dinonaktifkan, pengguna tidak akan diizinkan untuk menyiapkan sinkronisasi SMS. @@ -707,9 +717,12 @@ Jika setelan ini dinonaktifkan atau nilai tidak ditetapkan, Pratinjau Cetak akan menggunakan printer yang terakhir kali digunakan sebagai pilihan tujuan default. Jika setelan ini diaktifkan, Pratinjau Cetak akan menggunakan printer default sistem OS sebagai pilihan tujuan default.</translation> +<translation id="2856674246949497058">Rollback dan tetap menggunakan versi target jika versi OS lebih baru dari target. Lakukan powerwash selama prosesnya.</translation> <translation id="2872961005593481000">Matikan</translation> +<translation id="2873651257716068683">Mengganti ukuran halaman pencetakan default. Jika ukuran halaman tidak tersedia, kebijakan ini akan diabaikan.</translation> <translation id="2874209944580848064">Catatan untuk perangkat <ph name="PRODUCT_OS_NAME" /> yang mendukung aplikasi Android:</translation> <translation id="2877225735001246144">Nonaktifkan pencarian CNAME saat menegosiasikan autentikasi Kerberos</translation> +<translation id="2892414556511568464">Membatasi mode dupleks pencetakan. Kebijakan yang tidak disetel dan setelan kosong diperlakukan sebagai tidak ada batasan.</translation> <translation id="2893546967669465276">Mengirim log sistem ke server pengelolaan</translation> <translation id="2899002520262095963">Aplikasi Android dapat menggunakan konfigurasi jaringan dan sertifikat CA yang disetel melalui kebijakan ini, namun tidak memiliki akses ke beberapa opsi konfigurasi.</translation> <translation id="290002216614278247">Memungkinkan Anda mengunci sesi pengguna berdasarkan waktu klien atau kuota penggunaan hari ini. @@ -797,6 +810,7 @@ Server sebaiknya dimigrasikan ke cipher suite ECDHE. Jika tidak tersedia, pastikan cipher suite yang menggunakan pertukaran kunci RSA diaktifkan.</translation> <translation id="316778957754360075">Setelan ini tidak lagi digunakan sejak <ph name="PRODUCT_NAME" /> versi 29. Cara yang disarankan untuk menyiapkan koleksi aplikasi/ekstensi yang dihosting organisasi adalah dengan menyertakan situs yang menghosting paket CRX di ExtensionInstallSources dan meletakkan link download langsung di paket dalam halaman web. Peluncur untuk halaman web tersebut dapat dibuat menggunakan kebijakan ExtensionInstallForcelist.</translation> +<translation id="3171369832001535378">Template hostname jaringan perangkat</translation> <translation id="3185009703220253572">sejak versi <ph name="SINCE_VERSION" /></translation> <translation id="3187220842205194486">Aplikasi Android tidak bisa mendapat akses ke kunci perusahaan. Kebijakan ini tidak memengaruhinya.</translation> <translation id="3201273385265130876">Memungkinkan Anda menentukan server proxy yang digunakan oleh <ph name="PRODUCT_NAME" /> dan mencegah pengguna mengubah setelan roxy. @@ -905,6 +919,7 @@ Nilai kebijakan ini adalah token Pendaftaran yang dapat diambil dari konsol Google Admin.</translation> <translation id="3496296378755072552">Pengelola sandi</translation> +<translation id="3502555714327823858">Izinkan semua mode dupleks</translation> <translation id="350443680860256679">Mengonfigurasi ARC</translation> <translation id="3504791027627803580">Menentukan URL mesin telusur yang digunakan untuk menyediakan penelusuran gambar. Permintaan penelusuran akan dikirim menggunakan metode GET. Jika kebijakan DefaultSearchProviderImageURLPostParams disetel kemudian permintaan penelusuran gambar akan menggunakan metode POST. @@ -914,6 +929,7 @@ <translation id="350797926066071931">Aktifkan Terjemahan</translation> <translation id="3512226956150568738">Jika model perangkat klien sudah mendukung ARC sebelum migrasi ke ext4 diperlukan untuk menjalankan ARC, dan jika kebijakan ArcEnabled disetel ke true, opsi ini akan berperilaku seperti AskUser (nilai 3). Pada semua kasus lainnya (jika sebelumnya model perangkat tidak mendukung ARC, atau jika kebijakan ArcEnabled disetel ke false), nilai ini setara dengan DisallowArc (nilai 0).</translation> <translation id="3524204464536655762">Jangan izinkan situs apa pun meminta akses ke perangkat USB melalui WebUSB API</translation> +<translation id="3526752951628474302">Khusus pencetakan monokrom</translation> <translation id="3528000905991875314">Mengaktifkan halaman kesalahan alternatif</translation> <translation id="3545457887306538845">Memungkinkan Anda mengontrol lokasi penggunaan Developer Tools. @@ -937,6 +953,7 @@ <translation id="3577251398714997599">Setelan iklan untuk situs yang menayangkan iklan mengganggu</translation> <translation id="3591584750136265240">Mengonfigurasi perilaku autentikasi proses masuk</translation> <translation id="3627678165642179114">Mengaktifkan atau menonaktifkan layanan web memeriksa ejaan</translation> +<translation id="3628480121685794414">Aktifkan pencetakan simpleks</translation> <translation id="3646859102161347133">Menyetel jenis lup</translation> <translation id="3653237928288822292">Ikon penyedia penelusuran default</translation> <translation id="3660562134618097814">Transfer cookie SAML IdP saat proses masuk.</translation> @@ -1031,6 +1048,7 @@ Jika kebijakan disetel ke False, informasi sesi tidak akan dilaporkan. Jika disetel ke True atau tidak disetel, informasi sesi kios akan dilaporkan.</translation> +<translation id="3858658082795336534">Mode dupleks pencetakan default</translation> <translation id="3859780406608282662">Tambahkan parameter untuk mengambil sumber Variasi di <ph name="PRODUCT_OS_NAME" />. Jika ditentukan, akan menambahkan parameter kueri yang disebut 'membatasi' ke URL yang digunakan untuk mengambil sumber Variasi. Nilai parameter akan menjadi nilai yang ditentukan dalam kebijakan ini. @@ -1137,6 +1155,12 @@ Jika dikonfigurasi, kebijakan dapat disetel ke salah satu nilai berikut: "tls1.2" atau "tls1.3". Jika disetel, <ph name="PRODUCT_NAME" /> tidak akan menggunakan versi SSL/TLS yang lebih besar daripada versi yang ditentukan. Nilai yang tidak dikenal akan diabaikan.</translation> <translation id="4121350739760194865">Mencegah promosi apl muncul di halaman tab baru</translation> <translation id="412697421478384751">Izinkan pengguna menyetel PIN lemah untuk PIN layar kunci</translation> +<translation id="4129183564590133854">Kebijakan ini mengontrol apakah akan melaporkan informasi yang dapat digunakan untuk mengidentifikasi pengguna, seperti login OS, login Profil <ph name="PRODUCT_NAME" />, nama Profil <ph name="PRODUCT_NAME" />, jalur Profil <ph name="PRODUCT_NAME" />, dan jalur <ph name="PRODUCT_NAME" /> yang dapat dieksekusi. + + Jika kebijakan ini tidak disetel atau disetel ke True, informasi yang dapat digunakan untuk mengidentifikasi pengguna akan dikumpulkan. + Jika kebijakan ini disetel ke False, informasi yang dapat digunakan untuk mengidentifikasi pengguna tidak akan dikumpulkan. + + Kebijakan ini hanya berlaku jika Ekstensi Pelaporan Chrome dan Pengelolaan Cloud diaktifkan.</translation> <translation id="4138655880188755661">Batas Waktu</translation> <translation id="4157003184375321727">Laporkan versi OS dan firmware</translation> <translation id="4157594634940419685">Izinkan akses ke printer CUPS native</translation> @@ -1436,6 +1460,12 @@ <translation id="5052081091120171147">Kebijakan ini memaksa histori browseran diimpor dari browser default saat ini, jika diaktifkan. Jika diaktifkan, kebijakan ini juga memengaruhi dialog impor. Jika dinonaktifkan, tidak ada histori browseran yang diimpor. Jika tidak disetel, pengguna mungkin ditanya apakah akan mengimpor, atau pengimporan dapat terjadi secara otomatis.</translation> <translation id="5056708224511062314">Lup dinonaktifkan</translation> <translation id="5058573563327660283">Pilih strategi yang digunakan untuk mengosongkan ruang disk selama pembersihan otomatis (tidak digunakan lagi)</translation> +<translation id="5058771123777243130">Kebijakan ini mengontrol apakah akan melaporkan data kebijakan dan waktu pengambilan kebijakan. + + Jika kebijakan ini tidak disetel atau disetel ke True, data kebijakan dan waktu pengambilan kebijakan akan dikumpulkan. + Jika kebijakan ini disetel ke False, data kebijakan dan waktu pengambilan kebijakan tidak akan dikumpulkan. + + Kebijakan ini hanya berlaku jika Ekstensi Pelaporan Chrome dan Pengelolaan Cloud diaktifkan.</translation> <translation id="5067143124345820993">Daftar putih pengguna masuk</translation> <translation id="5068140065960598044">Kebijakan cloud <ph name="PRODUCT_NAME" /> mengganti kebijakan Perangkat.</translation> <translation id="5085647276663819155">Nonaktifkan Pratinjau Cetak</translation> @@ -1538,6 +1568,7 @@ <translation id="5366977351895725771">Jika disetel ke false, pembuatan pengguna yang dilindungi oleh pengguna ini akan dinonaktifkan. Pengguna diawasi mana pun yang sudah ada akan tetap tersedia. Jika disetel ke true atau tidak dikonfigurasi, pengguna yang dilindungi dapat dibuat dan dikelola oleh pengguna ini.</translation> +<translation id="5369937289900051171">Khusus pencetakan warna</translation> <translation id="5370279767682621504">Aktifkan dukungan HTTP/0.9 pada porta non-default</translation> <translation id="5378985487213287085">Memungkinkan Anda menyetel apakah situs web diizinkan untuk menampilkan pemberitahuan desktop. Menampilkan pemberitahuan desktop dapat diizinkan secara default, ditolak secara default, atau pengguna dapat ditanya setiap kali sebuah situs web ingin menampilkan pemberitahuan desktop. Jika kebijakan ini tidak disetel, 'AskNotifications' akan digunakan dan pengguna dapat mengubahnya.</translation> <translation id="538108065117008131">Izinkan <ph name="PRODUCT_FRAME_NAME" /> menangani jenis konten berikut.</translation> @@ -1558,6 +1589,7 @@ Jika kebijakan ini disetel ke daftar pengenal metode masukan, metode masukan yang diberikan akan tersedia di layar login. Metode masukan yang diberikan pertama telah dipilih sebelumnya. Sementara pod pengguna difokuskan pada layar login, metode masukan yang terakhir kali digunakan oleh pengguna akan tersedia, selain dari metode masukan yang diberikan oleh kebijakan ini. Jika kebijakan ini tidak disetel, metode masukan pada layar login akan diambil dari lokal yang menampilkan layar login. Pengenal metode masukan akan mengabaikan nilai yang tidak valid.</translation> <translation id="5423001109873148185">Kebijakan ini memaksa mesin telusur untuk diimpor dari browser default yang digunakan, jika diaktifkan. Jika diaktifkan, kebijakan ini juga memengaruhi dialog impor. Jika dinonaktifkan, mesin telusur default tidak diimpor. Jika tidak disetel, pengguna mungkin akan ditanya apakah ingin mengimpor, atau pengimporan dapat terjadi secara otomatis.</translation> <translation id="5423197884968724595">Nama batasan Android WebView:</translation> +<translation id="5424147596523390018">Izinkan semua mode warna</translation> <translation id="5442026853063570579">Kebijakan ini juga mengontrol akses ke Opsi Developer Android. Jika Anda menetapkan kebijakan ini ke 'DeveloperToolsDisallowed' (nilai 2), pengguna tidak dapat mengakses Opsi Developer. Jika Anda menetapkan kebijakan ini ke nilai lain atau tidak menetapkannya, pengguna dapat mengakses Opsi Developer dengan menge-tap nomor build di aplikasi setelan Android sebanyak 7 kali.</translation> <translation id="5447306928176905178">Aktifkan pelaporan info memori (JS heap size) ke halaman (dipensiunkan)</translation> <translation id="5457065417344056871">Mengaktifkan mode tamu dalam browser</translation> @@ -1624,6 +1656,7 @@ <translation id="5586942249556966598">Tidak melakukan apa-apa</translation> <translation id="5630352020869108293">Mengembalikan sesi terakhir</translation> <translation id="5645779841392247734">Izinkan cookie di situs ini</translation> +<translation id="5689430183304951538">Ukuran halaman pencetakan default</translation> <translation id="5693469654327063861">Izinkan migrasi data</translation> <translation id="5694594914843889579">Jika kebijakan ini disetel ke true, penyimpanan eksternal tidak akan tersedia di browser file. @@ -1653,6 +1686,7 @@ Saat kebijakan ini tidak disetel, panjang waktu default digunakan. Nilai kebijakan harus ditetapkan dalam milidetik.</translation> +<translation id="5783009211970309878">Cetak Header dan Footer</translation> <translation id="5809728392451418079">Setel nama tampilan untuk akun lokal perangkat</translation> <translation id="5814301096961727113">Menyetel status default masukan yang diucapkan di layar masuk</translation> <translation id="5815129011704381141">Booting ulang otomatis setelah pembaruan</translation> @@ -1664,6 +1698,7 @@ Jika setelan ini tidak disetel, direktori profil default akan digunakan.</translation> <translation id="5826047473100157858">Menentukan apakah pengguna dapat membuka halaman dalam mode Penyamaran di <ph name="PRODUCT_NAME" />. Jika 'Aktifkan' dipilih atau kebijakan dibiarkan tidak disetel, halaman dapat dibuka dalam mode Penyamaran. Jika 'Nonaktifkan' dipilih, halaman tidak dapat dibuka dalam mode Penyamaran. Jika 'Paksa' dipilih, halaman dapat dibuka HANYA dalam mode Penyamaran.</translation> +<translation id="582857022372205358">Aktifkan pencetakan dupleks tepi pendek</translation> <translation id="583091600226586337"> Jika kebijakan diaktifkan, pengguna akan ditanyai tempat untuk menyimpan tiap file sebelum mendownload. Jika kebijakan dinonaktifkan, download akan segera dimulai, dan pengguna tidak akan ditanyai tempat untuk menyimpan file. @@ -1699,6 +1734,7 @@ Jika setelan ini dinonaktifkan atau tidak dikonfigurasi, permintaan autentikasi gnubby tidak akan dilakukan melalui proxy.</translation> <translation id="5898486742390981550">Ketika beberapa pengguna masuk, hanya pengguna utama yang dapat menggunakan aplikasi Android.</translation> +<translation id="5901427587865226597">Khusus pencetakan dupleks</translation> <translation id="5906199912611534122">Mengizinkan pengaktifan atau pe-nonaktifan pembatasan jaringan. Kebijakan ini berlaku untuk semua pengguna, dan untuk semua antarmuka di perangkat. Setelah disetel, pembatasan akan terus berlanjut hingga kebijakan ini dinonaktifkan. @@ -1806,6 +1842,7 @@ Nilai kebijakan harus ditetapkan dalam milidetik. Nilai dijepit agar kurang dari penundaan waktu menganggur.</translation> <translation id="6097601282776163274">Mengaktifkan pengumpulan data anonim yang menyertakan URL</translation> +<translation id="6099853574908182288">Mode warna pencetakan default</translation> <translation id="6111936128861357925">Izinkan Game Dinosaur Easter Egg</translation> <translation id="6114416803310251055">tak lagi digunakan</translation> <translation id="6133088669883929098">Izinkan semua situs menggunakan pembuatan kunci</translation> @@ -1818,6 +1855,7 @@ Jika kebijakan ini tidak disetel, nilai default global akan digunakan untuk semua situs, baik dari kebijakan 'DefaultPluginsSetting' jika disetel, atau konfigurasi pribadi pengguna.</translation> <translation id="6190022522129724693">Setelan pop-up default</translation> +<translation id="6190367314942602985">Laporkan informasi Identifikasi Pengguna</translation> <translation id="6197453924249895891">Memberikan akses ke kunci perusahaan ke ekstensi. Kunci hanya ditujukan untuk pemakaian dalam perusahaan jika dibuat menggunakan API chrome.enterprise.platformKeys pada akun yang dikelola. Kunci yang diimpor atau dibuat dengan cara lain tidak boleh digunakan untuk perusahaan. @@ -1827,6 +1865,8 @@ Secara default, ekstensi tidak dapat menggunakan kunci yang ditujukan untuk pemakaian dalam perusahaan, hal ini setara dengan menyetel allowCorporateKeyUsage ke False untuk ekstensi tersebut. Hanya jika allowCorporateKeyUsage disetel ke True untuk suatu ekstensi, ekstensi tersebut dapat menggunakan kunci platform apa pun yang ditujukan untuk pemakaian dalam perusahaan, guna menandai data acak. Izin ini hanya boleh diberikan jika ekstensi dipercaya untuk mengamankan akses ke kunci dari para penyerang.</translation> +<translation id="6208896993204286313">Melaporkan Informasi Kebijakan <ph name="PRODUCT_NAME" /></translation> +<translation id="6210259502936598222">Laporkan OS dan Informasi Versi <ph name="PRODUCT_NAME" /></translation> <translation id="6211428344788340116">Laporkan waktu aktivitas perangkat. Jika pengaturan ini tidak disetel atau disetel ke True, perangkat yang terdaftar akan melaporkan periode waktu saat pengguna aktif di perangkat. Jika setelan disetel ke False, waktu akvititas perangkat tidak akan dicatat atau dilaporkan.</translation> @@ -1840,6 +1880,7 @@ <translation id="6233173491898450179">Setel direktori download</translation> <translation id="6244210204546589761">URL untuk membuka saat permulaan</translation> <translation id="6258193603492867656">Menentukan apakah SPN Kerberos yang dihasilkan harus mencakup port non-standar. Jika Anda mengaktifkan setelan ini, dan port non-standar (selain port 80 atau 443) dimasukkan, port ini akan dimasukkan ke SPN Kerberos yang dihasilkan. Jika Anda menonaktifkan setelan ini atau membiarkannya tidak disetel, SPN Kerberos yang dihasilkan tidak akan pernah mencakup port.</translation> +<translation id="6261643884958898336">Laporkan informasi Identifikasi Mesin</translation> <translation id="6281043242780654992">Mengonfigurasikan kebijakan untuk Perpesanan Asli. Hosting perpesanan asli yang dimasukkan dalam daftar hitam tidak akan diizinkan kecuali telah dimasukkan dalam daftar putih.</translation> <translation id="6282799760374509080">Izinkan atau tolak penangkapan audio</translation> <translation id="6284362063448764300">TLS 1.1</translation> @@ -1870,6 +1911,7 @@ Jika Anda memilih untuk mendeteksi server proxy secara otomatis, URL skrip "http://wpad/wpad.dat" akan diberikan pada aplikasi Android. Tidak ada bagian lain dari protokol deteksi proxy otomatis yang digunakan. Jika Anda memilih untuk menggunakan skrip proxy .pac, URL skrip akan diberikan pada aplikasi Android.</translation> +<translation id="6430366557948788869">Ekstensi Pelaporan Chrome</translation> <translation id="6440051664870270040">Izinkan situs menavigasi dan membuka (jendela) pop-up sekaligus</translation> <translation id="6447948611083700881">Opsi backup dan pemulihan dinonaktifkan</translation> <translation id="645425387487868471">Aktifkan login paksa untuk <ph name="PRODUCT_NAME" /></translation> @@ -1916,6 +1958,7 @@ <translation id="6628646143828354685">Memungkinkan Anda menyetel apakah situs web dapat mengakses perangkat Bluetooth di sekitar. Akses dapat diblokir sepenuhnya, atau pengguna dapat dimintai izin setiap kali situs web ingin mengakses perangkat Bluetooth di sekitar. Jika kebijakan ini belum disetel, '3' akan digunakan, dan pengguna dapat mengubahnya.</translation> +<translation id="663685822663765995">Batasi mode warna pencetakan</translation> <translation id="6641981670621198190">Nonaktifkan dukungan untuk API grafis 3D</translation> <translation id="6647965994887675196">Jika disetel ke true, pengguna yang dilindungi dapat dibuat dan digunakan. @@ -1943,6 +1986,7 @@ Pola URL di kebijakan ini tidak boleh bertentangan dengan pola URL yang dikonfigurasi melalui WebUsbAskForUrls. Tidak ditentukan yang mana di antara kedua kebijakan ini yang diprioritaskan jika URL cocok dengan keduanya.</translation> <translation id="6689792153960219308">Melaporkan status hardware</translation> +<translation id="6698632841807204978">Aktifkan pencetakan monokrom</translation> <translation id="6699880231565102694">Mengaktifkan autentikasi dua faktor untuk hosting akses jarak jauh</translation> <translation id="6724842112053619797">Jika Anda mengaktifkan setelan ini, setelan yang disimpan di profil <ph name="PRODUCT_NAME" /> seperti bookmark, data IsiOtomatis, sandi, dan informasi lainnya juga akan ditulis ke file yang disimpan di folder profil pengguna Roaming atau lokasi yang ditentukan oleh Administrator melalui kebijakan <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Mengaktifkan kebijakan ini akan menonaktifkan sinkronisasi cloud. @@ -1982,6 +2026,11 @@ Setelan ini mengontrol penyajian halaman sambutan yang membantu pengguna login ke <ph name="PRODUCT_NAME" />, memilihnya sebagai browser default, atau memberi tahu pengguna tentang fitur produk.</translation> <translation id="6766216162565713893">Izinkan situs meminta pengguna memberikan akses ke perangkat Bluetooth di sekitar</translation> <translation id="6770454900105963262">Melaporkan informasi tentang sesi kios aktif</translation> +<translation id="6773056206551814546">This policy controls whether to report information that can be used to identify machines, such as machine name and network addresses. + + Jika kebijakan ini tidak disetel atau disetel ke True, informasi yang dapat digunakan untuk mengidentifikasi mesin akan dikumpulkan. + Jika kebijakan ini disetel ke False, informasi yang dapat digunakan untuk mengidentifikasi mesin tidak akan dikumpulkan. + Kebijakan ini hanya berlaku jika Ekstensi Pelaporan Chrome dan Pengelolaan Cloud diaktifkan.</translation> <translation id="6786747875388722282">Ekstensi</translation> <translation id="6786967369487349613">Menyetel direktori profil roaming</translation> <translation id="6810445994095397827">Cekal JavaScript di situs ini</translation> @@ -2083,6 +2132,7 @@ </translation> <translation id="6922884955650325312">Blokir plugin <ph name="FLASH_PLUGIN_NAME" /></translation> <translation id="6923366716660828830">Menentukan nama penyedia penelusuran default. Jika dibiarkan kosong atau tidak disetel, nama host yang ditentukan oleh URL penelusuran akan digunakan. Kebijakan ini hanya dipertimbangkan jika kebijakan 'DefaultSearchProviderEnabled' diaktifkan.</translation> +<translation id="6926703471186170050">Aktifkan pencetakan dupleks tepi panjang</translation> <translation id="6931242315485576290">Nonaktifkan sinkronisasi data dengan Google</translation> <translation id="6936894225179401731">Menentukan jumlah maksimum sambungan bersama ke server proxy. @@ -2270,12 +2320,13 @@ <translation id="7343497214039883642">File konfigurasi printer perusahaan untuk perangkat</translation> <translation id="7349338075015720646">Menentukan daftar situs yang diinstal otomatis, tanpa interaksi pengguna, dan tidak dapat di-uninstal atau dinonaktifkan oleh pengguna. - Setiap item daftar kebijakan adalah objek yang berisi dua anggota: "url" dan "launch_container". "url" harus berupa URL aplikasi web untuk menginstal dan "launch_container" harus berupa "window" atau "tab" untuk menunjukkan cara Aplikasi Web dibuka setelah diinstal. Jika "launch_container" dihilangkan, aplikasi akan diluncurkan di jendela jika Chrome mempertimbangkannya sebagai Progressive Web App dan di tab lain.</translation> + Setiap item daftar kebijakan adalah objek yang berisi dua anggota: "url" dan "launch_container". "url" harus berupa URL aplikasi web untuk menginstal dan "launch_container" harus berupa "window" atau "tab" untuk menunjukkan cara Aplikasi Web dibuka setelah diinstal. Jika "launch_container" dihilangkan, aplikasi akan diluncurkan di jendela jika Chrome mempertimbangkannya sebagai Progressive Web App dan diluncurkan di tab jika tidak.</translation> <translation id="7367028210010532881">Layanan Safe Browsing menampilkan halaman peringatan jika pengguna membuka situs yang ditandai sebagai berpotensi berbahaya. Mengaktifkan setelan ini akan membuat pengguna tidak dapat melanjutkan dari halaman peringatan ke situs berbahaya. Jika setelan ini dinonaktifkan atau tidak dikonfigurasi, pengguna dapat memilih untuk melanjutkan ke situs yang ditandai setelah peringatan ditampilkan. Lihat https://developers.google.com/safe-browsing untuk informasi selengkapnya terkait Safe Browsing.</translation> +<translation id="737655323154569539">Membatasi ukuran halaman pencetakan. Kebijakan yang tidak disetel dan setelan kosong diperlakukan sebagai tidak ada batasan.</translation> <translation id="7417728346887499628">Jika dinonaktifkan, Pembersih Chrome tidak akan memindai sistem untuk menemukan software yang tidak diinginkan dan menjalankan pembersihan. Pembersih Chrome tidak dapat dipicu secara manual dari chrome://settings/cleanup. Jika diaktifkan atau tidak disetel, Pembersih Chrome akan memindai sistem secara berkala untuk menemukan software yang tidak diinginkan, dan jika ditemukan, akan menanyakan kepada pengguna apakah ia ingin menghapusnya atau tidak. Pembersih Chrome dapat dipicu secara manual dari chrome://setting. @@ -2344,6 +2395,8 @@ <translation id="7617319494457709698">Kebijakan ini menentukan ekstensi yang diizinkan untuk menggunakan fungsi <ph name="ENTERPRISE_PLATFORM_KEYS_API" /> <ph name="CHALLENGE_USER_KEY_FUNCTION" /> untuk pengesahan jarak jauh. Ekstensi harus ditambahkan ke daftar ini untuk menggunakan API. Jika ekstensi tidak ada dalam daftar, atau daftar tidak disetel, panggilan ke API akan gagal yang disertai kode error.</translation> +<translation id="7618907117929117943">Rollback dan tetap menggunakan versi target jika versi OS lebih baru dari target dan terdapat kemungkinan untuk menerapkan konfigurasi tingkat perangkat (termasuk kredensial jaringan) melalui rollback, juga melompati OOBE setelah rollback. Jangan lakukan atau batalkan rollback jika tidak memungkinkan (karena versi target tidak mendukung pemulihan data atau karena perubahan tidak kompatibel untuk kembali). + Didukung pada <ph name="PRODUCT_OS_NAME" /> versi 70 dan lebih baru. Untuk klien yang lebih lama, nilai ini berarti bahwa rollback dinonaktifkan.</translation> <translation id="7625444193696794922">Menentukan saluran rilis yang harus dikunci oleh perangkat ini.</translation> <translation id="7632724434767231364">Nama pustaka GSSAPI</translation> <translation id="7635471475589566552">Mengonfigurasi lokal aplikasi di <ph name="PRODUCT_NAME" /> dan mencegah pengguna mengubah lokal tersebut. Jika Anda mengaktifkan setelan ini, <ph name="PRODUCT_NAME" /> akan menggunakan lokal yang ditentukan. Jika lokal terkonfigurasi tidak didukung, 'en-US' akan digunakan. Jika setelan ini dinonaktifkan atau tidak disetel, <ph name="PRODUCT_NAME" /> akan menggunakan lokal terpilih yang ditentukan pengguna (jika dikonfigurasi), lokal sistem, atau lokal pengganti 'en-US'.</translation> @@ -2537,6 +2590,7 @@ Jika setelan ini diaktifkan atau nilainya tidak ditetapkan, IsiOtomatis akan dapat dikontrol oleh pengguna. Penetapan ini akan memungkinkan pengguna untuk mengonfigurasi profil IsiOtomatis dan mengaktifkan atau menonaktifkan IsiOtomatis sesuai keinginan.</translation> <translation id="8044493735196713914">Laporkan mode boot perangkat</translation> <translation id="8050080920415773384">Pencetakan Asli</translation> +<translation id="8053580360728293758">Mengganti mode warna pencetakan default. Jika mode tersebut tidak tersedia, kebijakan ini akan diabaikan.</translation> <translation id="8059164285174960932">URL tempat klien akses jarak jauh seharusnya memperoleh token autentikasi mereka</translation> <translation id="8078366200175825572">Memungkinkan Anda menyetel daftar pola URL yang menentukan situs mana yang tidak diizinkan untuk menyetel cookie. @@ -2723,6 +2777,7 @@ "Versi" di sini dapat berarti versi yang tepat seperti '61.0.3163.120' atau awalan versi, seperti '61.0' </translation> <translation id="8544375438507658205">Pengurai HTML default untuk <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">Izinkan SMS disinkronkan dari ponsel ke Chromebook.</translation> +<translation id="8548832052135586762">Menyetel pencetakan ke hanya warna, hanya monokrom, atau tanpa batasan mode warna. Kebijakan yang tidak disetel diperlakukan sebagai tidak ada batasan.</translation> <translation id="8549772397068118889">Memperingatkan saat mengunjungi situs di luar paket konten</translation> <translation id="8566842294717252664">Menyembunyikan toko web dari Halaman Tab Baru dan peluncur aplikasi</translation> <translation id="8586528890725660268">Menentukan printer yang tidak dapat digunakan pengguna. @@ -2760,7 +2815,7 @@ Jika kebijakan ini dibiarkan tidak disetel, layanan perlindungan sandi hanya akan melindungi sandi Google, namun pengguna dapat mengubah setelan ini.</translation> <translation id="8672321184841719703">Versi Pembaruan Otomatis Target</translation> <translation id="867410340948518937">U2F (Universal Second Factor)</translation> -<translation id="8682611302223077049">Mengizinkan Anda menyetel jangka waktu, dalam milidetik, pengguna diberi tahu bahwa <ph name="PRODUCT_NAME" /> harus diluncurkan ulang atau bahwa perangkat <ph name="PRODUCT_OS_NAME" /> harus dimulai ulang untuk menerapkan update yang tertunda. +<translation id="8682611302223077049">Mengizinkan Anda menyetel jangka waktu, dalam milidetik, untuk memberi tahu pengguna bahwa <ph name="PRODUCT_NAME" /> harus diluncurkan ulang atau bahwa perangkat <ph name="PRODUCT_OS_NAME" /> harus dimulai ulang untuk menerapkan update yang tertunda. Selama jangka waktu ini, pengguna akan berulang kali diberi tahu tentang perlunya update. Untuk perangkat <ph name="PRODUCT_OS_NAME" />, notifikasi mulai ulang muncul di baki sistem ketika upgrade terdeteksi. Untuk browser <ph name="PRODUCT_NAME" />, menu aplikasi berubah untuk menunjukkan bahwa peluncuran ulang diperlukan setelah sepertiga periode notifikasi berlalu. Warna notifikasi akan berubah lagi setelah dua pertiga periode notifikasi berlalu, dan berubah lagi setelah seluruh periode notifikasi berlalu. Notifikasi tambahan yang diaktifkan oleh kebijakan <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> mengikuti jadwal yang sama seperti ini. @@ -2825,6 +2880,7 @@ Jika setelan ini dibiarkan tidak disetel, pengguna dapat memutuskan untuk menggunakan fungsi ini atau tidak.</translation> <translation id="8870318296973696995">Beranda</translation> +<translation id="8876188741456358123">Mengganti mode dupleks pencetakan default. Jika mode tersebut tidak tersedia, kebijakan ini akan diabaikan.</translation> <translation id="8882006618241293596">Blokir plugin <ph name="FLASH_PLUGIN_NAME" /> di situs ini</translation> <translation id="890403179930035128">Mengaktifkan paksa fitur pemeriksa ejaan bahasa. Bahasa yang tidak dikenal dalam daftar akan diabaikan. @@ -2906,6 +2962,8 @@ <translation id="9084985621503260744">Tentukan apakah aktivitas video memengaruhi pengelolaan daya</translation> <translation id="9088433379343318874">Izinkan penyedia konten pengguna yang dilindungi</translation> <translation id="9088444059179765143">Mengonfigurasi metode deteksi zona waktu otomatis</translation> +<translation id="9094064873808699479">Rollback dan tetap menggunakan versi target jika versi OS lebih baru dari target dan terdapat kemungkinan untuk menerapkan konfigurasi tingkat perangkat (termasuk kredensial jaringan) melalui proses rollback, jika memungkinkan, tapi lakukan rollback dengan powerwash penuh meskipun pemulihan data tidak memungkinkan (karena versi target tidak mendukung pemulihan data atau karena perubahan tidak kompatibel untuk kembali). + Didukung pada <ph name="PRODUCT_OS_NAME" /> versi 70 dan lebih baru. Untuk klien yang lebih lama, nilai ini berarti bahwa rollback dinonaktifkan.</translation> <translation id="9096086085182305205">Daftar putih server autentikasi</translation> <translation id="9098553063150791878">Kebijakan untuk autentikasi HTTP</translation> <translation id="9105265795073104888">Hanya bagian dari opsi konfigurasi proxy yang disediakan untuk aplikasi Android. Aplikasi Android dapat memilih untuk menggunakan proxy secara sukarela. Anda tidak dapat memaksakan aplikasi Android agar menggunakan proxy.</translation> @@ -2957,6 +3015,13 @@ <translation id="9187743794267626640">Menonaktifkan pemasangan penyimpanan eksternal</translation> <translation id="9197740283131855199">Persentase yang digunakan untuk menskalakan penundaan layar redup jika pengguna aktif setelah peredupan</translation> <translation id="9200828125069750521">Parameter untuk URL gambar yang menggunakan POST</translation> +<translation id="920209539000507585">Paksa 'header dan footer' diaktifkan atau dinonaktifkan di dialog pencetakan. + + Jika kebijakan ini tidak disetel, pengguna dapat memutuskan apakah akan mencetak header dan footer. + + Jika kebijakan disetel ke false, 'Header dan footer' tidak dipilih dalam dialog pratinjau cetak, dan pengguna tidak dapat mengubahnya. + + Jika kebijakan disetel ke true, 'Header dan footer' dipilih dalam dialog pratinjau cetak, dan pengguna tidak dapat mengubahnya.</translation> <translation id="9210953373038593554">Mengonfigurasi jenis autentikasi untuk login SAML. Jika kebijakan ini tidak disetel atau disetel ke Default (nilai 0), perilaku login SAML ditentukan oleh browser yang bergantung pada faktor lain. Pada skenario yang paling dasar, autentikasi pengguna dan perlindungan data pengguna yang disimpan dalam cache didasarkan pada sandi yang secara manual dimasukkan oleh pengguna. @@ -2964,6 +3029,9 @@ Jika kebijakan ini disetel ke ClientCertificate (nilai 1), autentikasi sertifikat klien digunakan untuk pengguna yang baru ditambahkan yang login melalui SAML. Tidak ada sandi yang digunakan untuk pengguna tersebut, dan data lokalnya yang disimpan dalam cache dilindungi menggunakan kunci kriptografi yang sesuai. Misalnya, setelan ini memungkinkan konfigurasi kartu smart berdasarkan autentikasi pengguna (perlu diketahui bahwa aplikasi middleware kartu smart harus diinstal melalui kebijakan DeviceLoginScreenAppInstallList). Kebijakan ini hanya memengaruhi pengguna yang melakukan autentikasi menggunakan SAML.</translation> +<translation id="9211439035693857287">Konfigurasikan kebijakan terkait Ekstensi Pelaporan Chrome. + + Kebijakan ini hanya berlaku jika Ekstensi Pelaporan Chrome dan Pengelolaan Cloud diaktifkan.</translation> <translation id="9213347477683611358">Mengonfigurasi gambar wallpaper tingkat perangkat yang ditampilkan di layar login jika belum ada pengguna yang login ke perangkat. Kebijakan ini disetel dengan menetapkan URL tempat perangkat Chrome OS dapat mendownload gambar wallpaper dan potongan kriptografi yang digunakan untuk memverifikasi integritas download. Gambar harus dalam format JPEG dan ukuran filenya tidak boleh melebihi 16MB. URL harus dapat diakses tanpa autentikasi apa pun. Gambar wallpaper akan didownload dan disimpan dalam cache. Gambar ini akan didownload jika URL atau potongan berubah. Kebijakan ini harus ditetapkan sebagai string yang mengekspresikan URL dan potongan dalam format JSON, misalnya:
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb index 597703f..5e4ff92 100644 --- a/components/policy/resources/policy_templates_it.xtb +++ b/components/policy/resources/policy_templates_it.xtb
@@ -186,6 +186,7 @@ <translation id="1522425503138261032">Consenti ai siti di monitorare la posizione fisica degli utenti</translation> <translation id="152657506688053119">Elenco di URL alternativi per il fornitore del servizio di ricerca predefinito</translation> <translation id="1530812829012954197">Visualizza sempre i seguenti schemi URL nel browser host</translation> +<translation id="1541170838458414064">Limita le dimensioni delle pagine di stampa</translation> <translation id="1553684822621013552">Quando questo criterio è impostato su true, ARC è attivato (soggetto ad altri controlli delle impostazioni dei criteri - ARC continuerà a essere disattivato se nella sessione utente corrente è attivata la modalità temporanea o l'accesso simultaneo). Se l'impostazione è disattivata o non è stata configurata, gli utenti aziendali non potranno utilizzare ARC.</translation> @@ -353,6 +354,12 @@ <translation id="2082205219176343977">Configura la versione minima di Chrome consentita per il dispositivo.</translation> <translation id="209586405398070749">Canale stabile</translation> <translation id="2098658257603918882">Attiva rapporti sull'utilizzo e sui dati relativi agli arresti anomali</translation> +<translation id="2098916259427011890">Questa norma consente di stabilire se segnalare o meno informazioni sulla versione, ad esempio la versione del sistema operativo, la piattaforma e l'architettura del sistema operativo, la versione di <ph name="PRODUCT_NAME" /> e il canale di <ph name="PRODUCT_NAME" />. + + Se questa norma non viene impostata o viene impostata su True, le informazioni sulla versione vengono raccolte. + Se questa norma viene impostata su False, le informazioni sulla versione non vengono raccolte. + + Questa norma viene applicata soltanto se vengono attivate le norme Estensione per la segnalazione di Chrome e Gestione della cloud.</translation> <translation id="2111016292707172233">Consente di attivare la disponibilità della funzione Tocca per cercare nella visualizzazione contenuti di <ph name="PRODUCT_NAME" />. Se attivi questa impostazione, la funzione Tocca per cercare sarà a disposizione degli utenti, che potranno scegliere se attivarla o disattivarla. @@ -380,6 +387,8 @@ La norma si applica allo schermo principale e a tutti gli schermi secondari. Se la norma non viene impostata, il valore predefinito è 0° e l'utente può modificarlo liberamente. In questo caso, il valore predefinito non viene applicato nuovamente al riavvio.</translation> +<translation id="214901426630414675">Limita la modalità di stampa fronte/retro</translation> +<translation id="2149330464730004005">Attiva la stampa a colori</translation> <translation id="2156132677421487971">Consente di configurare le norme per <ph name="PRODUCT_NAME" />, una funzione che permette agli utenti di inviare i contenuti di schede, siti o del desktop dal browser a schermi remoti e sistemi audio.</translation> <translation id="2166472654199325139">Non filtrare i siti di contenuti per adulti</translation> <translation id="2168397434410358693">Ritardo inattività in caso di utilizzo di CA</translation> @@ -569,6 +578,7 @@ <translation id="2529880111512635313">Configura l'elenco di estensioni e app con installazione imposta</translation> <translation id="253135976343875019">Ritardo avviso inattività in caso di utilizzo di CA</translation> <translation id="2536525645274582300">L'utente decide se abilitare i servizi di geolocalizzazione di Google</translation> +<translation id="2550593661567988768">Solo stampa su un lato</translation> <translation id="2552966063069741410">Fuso orario</translation> <translation id="2562339630163277285">Consente di specificare l'URL del motore di ricerca utilizzato per fornire risultati immediati. L'URL deve contenere la stringa <ph name="SEARCH_TERM_MARKER" />, che verrà sostituita in fase di query dal testo inserito dall'utente fino a quel momento. @@ -696,9 +706,12 @@ Se disattivi o non configuri questa impostazione, in Anteprima di stampa viene indicata la stampante utilizzata più di recente come destinazione predefinita. Se attivi questa impostazione, in Anteprima di stampa viene usata la stampante predefinita del sistema operativo come destinazione predefinita.</translation> +<translation id="2856674246949497058">Esegui il rollback e rimani nella versione target se la versione del sistema operativo è più recente di quella target. Esegui un powerwash durante la procedura.</translation> <translation id="2872961005593481000">Spegni</translation> +<translation id="2873651257716068683">Consente di eseguire l'override delle dimensioni predefinite delle pagine di stampa. Se le dimensioni della pagina non sono disponibili, questa norma viene ignorata.</translation> <translation id="2874209944580848064">Nota per i dispositivi <ph name="PRODUCT_OS_NAME" /> che supportano le app Android:</translation> <translation id="2877225735001246144">Disabilita ricerca CNAME durante la negoziazione con Kerberos</translation> +<translation id="2892414556511568464">Consente di limitare la modalità di stampa fronte/retro. Se la norma non viene impostata o viene lasciata vuota non vengono applicate limitazioni.</translation> <translation id="2893546967669465276">Consente di inviare log di sistema al server di gestione</translation> <translation id="2899002520262095963">Le app Android possono utilizzare le configurazioni di rete e i certificati CA impostati tramite questa norma ma non hanno accesso ad alcune opzioni di configurazione.</translation> <translation id="290002216614278247">Questa norma consente di bloccare la sessione dell'utente in base al tempo del client o alla quota di utilizzo del giorno. @@ -783,6 +796,7 @@ Si consiglia di effettuare la migrazione dei server ai pacchetti di crittografia ECDHE. Se non sono disponibili, assicurati che siano attivati i pacchetti di crittografia con l'utilizzo dello scambio delle chiavi RSA.</translation> <translation id="316778957754360075">Questa impostazione non è più supportata a partire dalla versione 29 di <ph name="PRODUCT_NAME" />. Il metodo consigliato per la configurazione di raccolte di estensioni/app ospitate dall'organizzazione consiste nell'includere il sito che ospita i pacchetti CRX in ExtensionInstallSources e inserire link di download diretti per i pacchetti in una pagina web. È possibile creare una funzione Avvio applicazioni per la pagina web utilizzando la norma ExtensionInstallForcelist.</translation> +<translation id="3171369832001535378">Modello del nome host della rete del dispositivo</translation> <translation id="3185009703220253572">a partire dalla versione <ph name="SINCE_VERSION" /></translation> <translation id="3187220842205194486">Le app Android non possono accedere alle chiavi aziendali. Questa norma non influisce su di esse.</translation> <translation id="3201273385265130876">Consente di specificare il server proxy utilizzato da <ph name="PRODUCT_NAME" /> e impedisce agli utenti di modificare le impostazioni proxy. @@ -889,6 +903,7 @@ Il valore di questa norma è un token di registrazione che è possibile recuperare dalla Console amministrazione Google.</translation> <translation id="3496296378755072552">Gestione password</translation> +<translation id="3502555714327823858">Consenti tutte le modalità fronte/retro</translation> <translation id="350443680860256679">Configura ARC</translation> <translation id="3504791027627803580">Consente di specificare l'URL del motore di ricerca utilizzato per la ricerca di immagini. Le richieste di ricerca verranno inviate con il metodo GET. Se viene impostata la norma DefaultSearchProviderImageURLPostParams, per le richieste di ricerca di immagini viene utilizzato il metodo POST. @@ -898,6 +913,7 @@ <translation id="350797926066071931">Abilita traduzione</translation> <translation id="3512226956150568738">Se il modello del dispositivo client supportava già ARC prima che fosse necessaria la migrazione a ext4 per eseguire ARC e se la norma ArcEnabled è impostata su true, questa opzione si comporterà come AskUser (valore 3). In tutti gli altri casi (se il modello del dispositivo non supportava ARC in precedenza o se la norma ArcEnabled è impostata su false), questo valore equivale a DisallowArc (valore 0).</translation> <translation id="3524204464536655762">Non consentire ai siti di richiedere l'accesso ai dispositivi USB tramite l'API WebUSB</translation> +<translation id="3526752951628474302">Solo stampa monocromatica</translation> <translation id="3528000905991875314">Attiva pagine di errore sostitutive</translation> <translation id="3545457887306538845">Ti consente di stabilire dove è possibile usare gli Strumenti per sviluppatori. @@ -921,6 +937,7 @@ <translation id="3577251398714997599">Impostazione annunci per i siti con annunci invasivi</translation> <translation id="3591584750136265240">Configura il comportamento di autenticazione dell'accesso</translation> <translation id="3627678165642179114">Attiva o disattiva il servizio web di controllo ortografico</translation> +<translation id="3628480121685794414">Attiva stampa su un lato</translation> <translation id="3646859102161347133">Impostazione tipo di ingrandimento dello schermo</translation> <translation id="3653237928288822292">Icona del provider di ricerca predefinito</translation> <translation id="3660562134618097814">Trasferisci i cookie dell'IdP SAML durante l'accesso</translation> @@ -1011,6 +1028,7 @@ <translation id="3851039766298741586">Consente di segnalare informazioni sulla sessione kiosk attiva, ad esempio l'ID e la versione dell'applicazione. Se la norma viene impostata su false, le informazioni relative alla sessione kiosk non verranno segnalate. Se viene impostata su true o non viene impostata, tali informazioni verranno segnalate.</translation> +<translation id="3858658082795336534">Modalità di stampa fronte/retro predefinita</translation> <translation id="3859780406608282662">Consente di aggiungere un parametro al recupero del numero di inizializzazione delle varianti in <ph name="PRODUCT_OS_NAME" />. Se la norma è specificata, verrà aggiunto un parametro query chiamato "restrict" all'URL utilizzato per recuperare il numero di inizializzazione delle varianti. Il valore del parametro sarà il valore specificato in questa norma. @@ -1117,6 +1135,12 @@ . In caso contrario, potrebbe essere impostato uno dei seguenti valori: "tls1.2" o "tls1.3". Se questa norma viene impostata, <ph name="PRODUCT_NAME" /> non utilizzerà versioni SSL/TLS successive a quella specificata. I valori non riconosciuti verranno ignorati.</translation> <translation id="4121350739760194865">Impedisci la visualizzazione delle promozioni di applicazioni nella pagina Nuova scheda</translation> <translation id="412697421478384751">Consenti agli utenti di impostare PIN non sicuri per la schermata di blocco</translation> +<translation id="4129183564590133854">Questa norma consente di stabilire se segnalare o meno informazioni che possono essere usate per identificare gli utenti, ad esempio i dati di accesso al sistema operativo, i dati di accesso del profilo <ph name="PRODUCT_NAME" />, il nome del profilo <ph name="PRODUCT_NAME" />, il percorso del profilo <ph name="PRODUCT_NAME" /> e il percorso eseguibile di <ph name="PRODUCT_NAME" />. + + Se questa norma non viene impostata o viene impostata su True, le informazioni che possono essere usate per identificare gli utenti vengono raccolte. + Se questa norma viene impostata su False, le informazioni che possono essere usate per identificare gli utenti non vengono raccolte. + + Questa norma viene applicata soltanto se vengono attivate le norme Estensione per la segnalazione di Chrome e Gestione della cloud.</translation> <translation id="4138655880188755661">Limite di tempo</translation> <translation id="4157003184375321727">Indica versione sistema operativo e firmware</translation> <translation id="4157594634940419685">Consenti l'accesso a stampanti CUPS native</translation> @@ -1261,8 +1285,8 @@ </translation> <translation id="4554651132977135445">Modalità di elaborazione loopback delle norme relative agli utenti</translation> <translation id="4554841826517980623">Questa norma controlla se per <ph name="PRODUCT_NAME" /> la funzione Condivisioni file di rete debba utilizzare o meno il protocollo <ph name="NETBIOS_PROTOCOL" /> per individuare le condivisioni sulla rete. - Quando questa norma è impostata su Vero, il rilevamento delle condivisioni utilizza il protocollo <ph name="NETBIOS_PROTOCOL" /> per individuare le condivisioni sulla rete. - Quando questa norma è impostata su Falso, il rilevamento delle condivisioni non utilizza il protocollo <ph name="NETBIOS_PROTOCOL" /> per individuare le condivisioni sulla rete. + Quando questa norma è impostata su True, il rilevamento delle condivisioni utilizza il protocollo <ph name="NETBIOS_PROTOCOL" /> per individuare le condivisioni sulla rete. + Quando questa norma è impostata su False, il rilevamento delle condivisioni non utilizza il protocollo <ph name="NETBIOS_PROTOCOL" /> per individuare le condivisioni sulla rete. Se la norma viene lasciata senza impostazione, per impostazione predefinita la norma sarà disattivata per gli utenti gestiti dall'azienda, mentre sarà attiva per gli utenti non gestiti.</translation> <translation id="4555850956567117258">Attivazione dell'attestazione da remoto per l'utente</translation> <translation id="4557134566541205630">URL pagina Nuova scheda provider di ricerca predefinito</translation> @@ -1410,6 +1434,13 @@ <translation id="5052081091120171147">Se è attiva, questa norma impone l'importazione della cronologia di navigazione dal browser predefinito corrente. Se la norma è attiva incide anche sulla finestra di dialogo di importazione. Se non è attiva, la cronologia di navigazione non viene importata. Se non viene impostata, all'utente potrebbe essere chiesto se desidera effettuare l'importazione, oppure l'importazione potrebbe avvenire automaticamente.</translation> <translation id="5056708224511062314">Ingrandimento dello schermo disattivato</translation> <translation id="5058573563327660283">Seleziona la strategia da utilizzare per liberare spazio su disco durante la pulizia automatica (obsoleta)</translation> +<translation id="5058771123777243130">Questa norma consente di stabilire se segnalare o meno i dati delle norme e data/ora del recupero delle norme. + + Se questa norma non viene impostata o viene impostata su True, i dati delle norme e data/ora del recupero delle norme vengono raccolti. + Se questa norma viene impostata su False, i dati delle norme e data/ora del recupero delle norme non vengono raccolti. + + + Questa norma viene applicata soltanto se vengono attivate le norme Estensione per la segnalazione di Chrome e Gestione della cloud.</translation> <translation id="5067143124345820993">Whitelist di utenti con accesso</translation> <translation id="5068140065960598044">La norma cloud di <ph name="PRODUCT_NAME" /> prevale sulla norma della macchina.</translation> <translation id="5085647276663819155">Disattiva anteprima di stampa</translation> @@ -1510,6 +1541,7 @@ <translation id="5366977351895725771">Se questa norma è impostata su false, la creazione di utenti supervisionati da parte di questo utente sarà disabilitata. Gli eventuali utenti supervisionati esistenti saranno comunque disponibili. Se questa norma è impostata su true o non è configurata, questo utente può creare e gestire utenti supervisionati.</translation> +<translation id="5369937289900051171">Solo stampa a colori</translation> <translation id="5370279767682621504">Attiva il supporto HTTP/0.9 sulle porte non predefinite</translation> <translation id="5378985487213287085">Permette di stabilire se consentire o meno la visualizzazione di notifiche desktop nei siti web. La visualizzazione di notifiche desktop può essere consentita o negata per impostazione predefinita oppure l'utente può ricevere una richiesta ogni volta che un sito web desidera visualizzare le notifiche desktop. Se questa norma non viene impostata, verrà utilizzato il valore "AskNotifications", che potrà essere modificato dagli utenti.</translation> <translation id="538108065117008131">Consenti a <ph name="PRODUCT_FRAME_NAME" /> di gestire i seguenti tipi di contenuto.</translation> @@ -1529,6 +1561,7 @@ Se per questa norma viene impostato un elenco di identificatori di metodi di immissione, i metodi specificati saranno disponibili nella schermata di accesso. Verrà preselezionato il primo metodo di immissione specificato. Anche se il pod dell'utente è basato sulla schermata di accesso, oltre ai metodi di immissione specificati in questa norma sarà disponibile anche l'ultimo metodo usato dall'utente. Se questa norma non viene impostata, i metodi di immissione per la schermata di accesso saranno recuperati in base alla lingua in cui è visualizzata la schermata di accesso. I valori che non corrispondono a identificatori di metodi di immissione validi verranno ignorati.</translation> <translation id="5423001109873148185">Se è attiva, questa norma impone l'importazione dei motori di ricerca dal browser predefinito corrente. Se la norma è attiva incide anche sulla finestra di dialogo di importazione. Se non è attiva, il motore di ricerca predefinito non viene importato. Se non viene impostata, all'utente potrebbe essere chiesto se desidera effettuare l'importazione, oppure l'importazione potrebbe avvenire automaticamente.</translation> <translation id="5423197884968724595">Nome della limitazione di Android WebView:</translation> +<translation id="5424147596523390018">Consenti tutte le modalità a colori</translation> <translation id="5442026853063570579">Questa norma consente di controllare anche l'accesso alle Opzioni sviluppatore di Android. Se la norma viene impostata su "DeveloperToolsDisallowed" (valore 2), gli utenti non potranno accedere alle Opzioni sviluppatore. Se la norma viene impostata su un altro valore o non viene impostata, gli utenti potranno accedere alle Opzioni sviluppatore toccando sette volte il numero di build nell'app Impostazioni di Android.</translation> <translation id="5447306928176905178">Attiva le informazioni relative ai rapporti sulla memoria (dimensioni heap JS) per la pagina (obsoleto)</translation> <translation id="5457065417344056871">Attiva modalità ospite nel browser</translation> @@ -1595,6 +1628,7 @@ <translation id="5586942249556966598">Non fare niente</translation> <translation id="5630352020869108293">Ripristina l'ultima sessione</translation> <translation id="5645779841392247734">Consenti i cookie in questi siti</translation> +<translation id="5689430183304951538">Dimensioni predefinite delle pagine di stampa</translation> <translation id="5693469654327063861">Consenti migrazione dei dati</translation> <translation id="5694594914843889579">Quando questa norma è impostata su true, la memoria esterna non sarà disponibile nei file che è possibile sfogliare. @@ -1624,6 +1658,7 @@ Se questa norma non viene impostata, viene utilizzato un periodo di tempo predefinito. Il valore della norma deve essere specificato in millisecondi.</translation> +<translation id="5783009211970309878">Stampa intestazioni e piè di pagina</translation> <translation id="5809728392451418079">Imposta il nome visualizzato per gli account del dispositivo</translation> <translation id="5814301096961727113">Impostazione stato predefinito della lettura vocale nella schermata di accesso</translation> <translation id="5815129011704381141">Riavvia automaticamente dopo l'aggiornamento</translation> @@ -1635,6 +1670,7 @@ Se la norma non viene impostata, viene utilizzata la directory del profilo predefinita.</translation> <translation id="5826047473100157858">Consente di specificare se l'utente può aprire o meno le pagine in modalità di navigazione in incognito in <ph name="PRODUCT_NAME" />. Se viene selezionata l'opzione "Attiva" o la norma non viene impostata, le pagine possono essere aperte in modalità di navigazione in incognito. Se viene selezionata l'opzione "Non attiva", le pagine non possono essere aperte in modalità di navigazione in incognito. Se viene selezionata l'opzione "Forzata", le pagine possono essere aperte SOLTANTO in modalità di navigazione in incognito.</translation> +<translation id="582857022372205358">Attiva la stampa fronte/retro su lato corto</translation> <translation id="583091600226586337"> Se la norma viene attivata, all'utente verrà chiesto dove salvare ogni file prima del download. Se la norma viene disattivata, i download inizieranno subito e all'utente non verrà chiesto dove salvare i file. @@ -1670,6 +1706,7 @@ Se questa impostazione è disattivata o non configurata, le richieste di autenticazione Gnubby non verranno trasferite al proxy.</translation> <translation id="5898486742390981550">Quando più utenti eseguono l'accesso, solo l'utente principale può utilizzare le app Android.</translation> +<translation id="5901427587865226597">Solo stampa fronte/retro</translation> <translation id="5906199912611534122">Consente di attivare o disattivare la limitazione della larghezza di banda. La scelta è valida per tutti gli utenti e per tutte le interfacce sul dispositivo. Una volta impostata, la limitazione rimane valida fino alla modifica della norma per disattivarla. @@ -1776,6 +1813,7 @@ Il valore della norma deve essere specificato in millisecondi. I valori devono essere minori del ritardo di inattività.</translation> <translation id="6097601282776163274">Attiva la raccolta di dati anonimizzati con chiave URL</translation> +<translation id="6099853574908182288">Modalità di stampa a colori predefinita</translation> <translation id="6111936128861357925">Attiva il gioco del dinosauro</translation> <translation id="6114416803310251055">obsoleto</translation> <translation id="6133088669883929098">Consenti a tutti i siti di utilizzare la generazione di chiavi</translation> @@ -1788,6 +1826,7 @@ Se questa norma non viene impostata, per tutti i siti verrà utilizzato il valore predefinito globale della norma "DefaultPluginsSetting", se impostata, oppure la configurazione personale dell'utente.</translation> <translation id="6190022522129724693">Impostazione popup predefiniti</translation> +<translation id="6190367314942602985">Segnala informazioni di identificazione degli utenti</translation> <translation id="6197453924249895891">Consente di concedere alle estensioni l'accesso alle chiavi aziendali. Le chiavi sono destinate all'utilizzo aziendale se generate tramite l'API chrome.enterprise.platformKeys su un account gestito. Le chiavi importate o generate in altro modo non sono destinate all'utilizzo aziendale. @@ -1797,6 +1836,8 @@ Per impostazione predefinita, un'estensione non può utilizzare una chiave destinata all'utilizzo aziendale. Questo equivale a impostare la norma allowCorporateKeyUsage su false per l'estensione in questione. Soltanto se la norma allowCorporateKeyUsage relativa a un'estensione viene impostata su true l'estensione può utilizzare qualsiasi chiave della piattaforma contrassegnata per l'utilizzo aziendale per firmare dati arbitrari. Questa autorizzazione dovrebbe essere concessa soltanto se l'estensione è ritenuta attendibile ai fini della protezione della chiave da potenziali attacchi.</translation> +<translation id="6208896993204286313">Segnala informazioni sulle norme di <ph name="PRODUCT_NAME" /></translation> +<translation id="6210259502936598222">Segnala informazioni sulla versione del sistema operativo e di <ph name="PRODUCT_NAME" /></translation> <translation id="6211428344788340116">Consente di indicare i tempi di attività del dispositivo. Se questa impostazione viene impostata su True, i dispositivi registrati indicheranno i periodi di tempo di attività di un utente sul dispositivo. Se l'impostazione viene impostata su False, i tempi di attività del dispositivo non verranno registrati o indicati.</translation> <translation id="6212868225782276239">Vengono mostrate tutte le stampanti, tranne quelle indicate nella lista nera.</translation> <translation id="6219965209794245435">Se viene attivata, questa norma consente di imporre l'importazione dei dati della Compilazione automatica dei moduli dal browser predefinito precedente. Se la norma è attiva incide anche sulla finestra di dialogo di importazione. @@ -1808,6 +1849,7 @@ <translation id="6233173491898450179">Imposta directory di download</translation> <translation id="6244210204546589761">Pagine da aprire all'avvio</translation> <translation id="6258193603492867656">Consente di specificare se il Kerberos SPN generato deve includere una porta non standard. Se attivi questa impostazione e specifichi una porta non standard (cioè una porta diversa da 80 o 443), la porta verrà inclusa nel Kerberos SPN generato. Se disattivi l'impostazione o non la imposti, il Kerberos SPN generato non includerà in nessun caso una porta.</translation> +<translation id="6261643884958898336">Segnala informazioni di identificazione dei computer</translation> <translation id="6281043242780654992">Consente di configurare le norme per i messaggi nativi. Gli host di messaggi nativi non autorizzati non saranno consentiti se non vengono aggiunti alla whitelist.</translation> <translation id="6282799760374509080">Consenti o nega acquisizione audio</translation> <translation id="6284362063448764300">TLS 1.1</translation> @@ -1836,6 +1878,7 @@ Se si decide di rilevare automaticamente il server proxy, alle app Android viene fornito l'URL script "http://wpad/wpad.dat". Non viene utilizzata nessun'altra parte del protocollo di rilevamento automatico del server proxy. Se si decide di utilizzare uno script proxy .pac, alle app Android viene fornito l'URL script.</translation> +<translation id="6430366557948788869">Estensione per la segnalazione di Chrome</translation> <translation id="6440051664870270040">Consenti ai siti di navigare e aprire popup contemporaneamente</translation> <translation id="6447948611083700881">Backup e ripristino disabilitati</translation> <translation id="645425387487868471">Attiva l'accesso forzato per <ph name="PRODUCT_NAME" /></translation> @@ -1882,6 +1925,7 @@ <translation id="6628646143828354685">Permette di stabilire se consentire o meno l'accesso ai dispositivi Bluetooth nelle vicinanze. L'accesso può essere bloccato completamente oppure l'utente può ricevere una richiesta ogni volta che un sito web desidera accedere ai dispositivi Bluetooth vicini. Se questa norma non viene impostata, verrà utilizzato il valore "3", che potrà essere modificato dall'utente.</translation> +<translation id="663685822663765995">Limita la modalità di stampa a colori</translation> <translation id="6641981670621198190">Disattiva supporto per le API grafiche 3D</translation> <translation id="6647965994887675196">Se questa norma è impostata su true, è possibile creare e utilizzare utenti supervisionati. @@ -1909,6 +1953,7 @@ 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="6698632841807204978">Attiva la stampa monocromatica</translation> <translation id="6699880231565102694">Abilita autenticazione a due fattori per gli host di accesso remoto</translation> <translation id="6724842112053619797">Se attivi questa impostazione, le impostazioni memorizzate nei profili <ph name="PRODUCT_NAME" />, come i preferiti, i dati della compilazione automatica, le password e così via, saranno scritte anche in un file memorizzato nella cartella del profilo utente Roaming o in una posizione specificata dall'amministratore tramite la norma <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Se si attiva questa norma, viene disattivata la sincronizzazione nella cloud. @@ -1948,6 +1993,12 @@ Questa impostazione consente di gestire la presentazione delle pagine di benvenuto che consentono agli utenti di accedere a <ph name="PRODUCT_NAME" /> o sceglierlo come browser predefinito oppure che danno agli utenti informazioni sulle funzionalità del prodotto.</translation> <translation id="6766216162565713893">Consenti ai siti di chiedere all'utente di concedere l'accesso a un dispositivo Bluetooth nelle vicinanze.</translation> <translation id="6770454900105963262">Segnala informazioni sulle sessioni kiosk attive</translation> +<translation id="6773056206551814546">Questa norma consente di stabilire se segnalare o meno informazioni che possono essere usate per identificare i computer, ad esempio il nome del computer e gli indirizzi di rete. + + Se questa norma non viene impostata o viene impostata su True, le informazioni che possono essere usate per identificare i computer vengono raccolte. + Se questa norma viene impostata su False, le informazioni che possono essere usate per identificare i computer non vengono raccolte. + + Questa norma viene applicata soltanto se vengono attivate le norme Estensione per la segnalazione di Chrome e Gestione della cloud.</translation> <translation id="6786747875388722282">Estensioni</translation> <translation id="6786967369487349613">Imposta la directory profilo di roaming</translation> <translation id="6810445994095397827">Blocca Javascript in questi siti</translation> @@ -2042,6 +2093,7 @@ </translation> <translation id="6922884955650325312">Blocca il plug-in <ph name="FLASH_PLUGIN_NAME" /></translation> <translation id="6923366716660828830">Consente di specificare il nome del provider di ricerca predefinito. Se il nome non viene impostato verrà utilizzato il nome host specificato nell'URL di ricerca. Questa norma viene considerata soltanto se è attiva la norma "DefaultSearchProviderEnabled".</translation> +<translation id="6926703471186170050">Attiva la stampa fronte/retro su lato lungo</translation> <translation id="6931242315485576290">Disattiva la sincronizzazione dei dati con Google</translation> <translation id="6936894225179401731">Consente di specificare il numero massimo di connessioni simultanee al server proxy. @@ -2086,10 +2138,10 @@ <translation id="7053678646221257043">Se è attiva, questa norma impone l'importazione dei Preferiti dal browser predefinito corrente. Se la norma è attiva incide anche sulla finestra di dialogo di importazione. Se non è attiva, i Preferiti non vengono importati. Se non viene impostata, all'utente potrebbe essere chiesto se desidera effettuare l'importazione, oppure l'importazione potrebbe avvenire automaticamente.</translation> <translation id="7063895219334505671">Consenti popup su questi siti</translation> <translation id="706568410943497889"> - Se la norma è impostata su vero, <ph name="PRODUCT_NAME" /> può raccogliere log eventi WebRTC dai servizi Google (ad es., Google Meet) e caricare i log su Google. + Se la norma è impostata su True, <ph name="PRODUCT_NAME" /> può raccogliere log eventi WebRTC dai servizi Google (ad es., Google Meet) e caricare i log su Google. - Se la norma è impostata su falso o è priva di impostazione, <ph name="PRODUCT_NAME" /> potrebbe non raccogliere né caricare tali log. - Questi log contengono informazioni di diagnostica utili per il debug dei problemi relativi a chiamate vocali o videochiamate in Chrome, ad esempio data/ora e dimensioni dei pacchetti RTP inviati e ricevuti,feedback sulla congestione della rete, nonché metadati su tempo e qualità dei frame audio e video. Questi log non contengono l'audio o i video delle chiamate. + Se la norma è impostata su False o è priva di impostazione, <ph name="PRODUCT_NAME" /> potrebbe non raccogliere né caricare tali log. + Questi log contengono informazioni di diagnostica utili per il debug dei problemi relativi a chiamate vocali o videochiamate in Chrome, ad esempio data/ora e dimensioni dei pacchetti RTP inviati e ricevuti, feedback sulla congestione della rete, nonché metadati su tempo e qualità dei frame audio e video. Questi log non contengono l'audio o i video delle chiamate. Questa raccolta di dati da parte di Chrome può essere attivata soltanto dai servizi web di Google, ad esempio Google Hangouts o Google Meet. @@ -2225,7 +2277,7 @@ <translation id="7336878834592315572">Conserva cookie per tutta la durata della sessione</translation> <translation id="7340034977315324840">Indicazione tempi di attività del dispositivo</translation> <translation id="7343497214039883642">File di configurazione delle stampanti aziendali per i dispositivi</translation> -<translation id="7349338075015720646">Consente di specificare un elenco di siti web installati automaticamente, senza interazione dell'utente e che non possono essere disinstallati o disattivati dall'utente. +<translation id="7349338075015720646">Consente di specificare un elenco di app web installate automaticamente, senza interazione dell'utente e che non possono essere disinstallate o disattivate dall'utente Ogni elemento dell'elenco della norma è un oggetto con due componenti: "url" e "launch_container". "url" deve essere l'URL dell'app web da installare e "launch_container" deve essere "finestra" o "scheda" per indicare in che modo l'app web verrà aperta una volta installata. Se il valore di "launch_container" non viene specificato, l'app verrà avviata in una finestra se Chrome la considera un'applicazione web progressiva, altrimenti in una scheda.</translation> <translation id="7367028210010532881">Il servizio Navigazione sicura mostra una pagina di avviso quando gli utenti visitano siti che sono segnalati come potenzialmente dannosi. L'attivazione di questa impostazione impedisce agli utenti di proseguire dalla pagina di avviso al sito dannoso. @@ -2233,6 +2285,7 @@ Se questa impostazione viene disattivata o non viene configurata, gli utenti possono scegliere di visitare il sito segnalato dopo che è stato mostrato l'avviso. Visita il sito https://developers.google.com/safe-browsing per avere ulteriori informazioni sulla funzione Navigazione sicura.</translation> +<translation id="737655323154569539">Consente di limitare le dimensioni delle pagine di stampa. Se la norma non viene impostata o viene lasciata vuota non vengono applicate limitazioni.</translation> <translation id="7417728346887499628">Se questa norma viene disattivata, Chrome Software Cleaner non potrà eseguire la scansione del sistema per individuare eventuale software indesiderato e ripulire il sistema. L'attivazione manuale di Chrome Software Cleaner da chrome://settings/cleanup viene disattivata. Se la norma viene attivata o non viene impostata, Chrome Software Cleaner eseguirà periodicamente la scansione del sistema per individuare eventuale software indesiderato e, qualora fosse presente, chiederà all'utente se vuole rimuoverlo. L'attivazione manuale di Chrome Software Cleaner da chrome://settings viene attivata. @@ -2299,6 +2352,8 @@ <translation id="7617319494457709698">Questa norma consente di specificare le estensioni autorizzate a usare la funzione <ph name="CHALLENGE_USER_KEY_FUNCTION" /> dell'<ph name="ENTERPRISE_PLATFORM_KEYS_API" /> per l'attestazione da remoto. Le estensioni devono essere aggiunte a questo elenco per utilizzare l'API. Se un'estensione non è presente nell'elenco o l'elenco non è impostato, la chiamata all'API non va a buon fine e viene generato un codice di errore.</translation> +<translation id="7618907117929117943">Esegui il rollback e rimani nella versione target se la versione del sistema operativo è più recente di quella target ed è possibile trasferire la configurazione a livello di dispositivo (incluse le credenziali di rete) tramite il rollback, saltando anche l'OOBE dopo il rollback. Non eseguire o interrompere il rollback se non è possibile (perché la versione target non supporta il ripristino dei dati o a causa di una modifica non compatibile con le versioni precedenti). + Supportato su <ph name="PRODUCT_OS_NAME" /> 70 e versioni successive. Per i client precedenti, questo valore indica che il rollback è disattivato.</translation> <translation id="7625444193696794922">Consente di specificare il canale di rilascio su cui deve essere bloccato questo dispositivo.</translation> <translation id="7632724434767231364">Nome della libreria GSSAPI</translation> <translation id="7635471475589566552">Consente di configurare in <ph name="PRODUCT_NAME" /> le impostazioni della lingua e di impedirne la modifica agli utenti. Se attivi questa impostazione, <ph name="PRODUCT_NAME" /> utilizzerà le impostazioni della lingua specificate. Se la lingua configurata non è supportata, verrà utilizzata la lingua "en-US". Se questa impostazione viene disattivata o non viene impostata, <ph name="PRODUCT_NAME" /> utilizzerà la lingua preferita specificata dall'utente (se configurata), quella del sistema o la lingua di fallback "en-US".</translation> @@ -2493,6 +2548,7 @@ Se attivi questa impostazione o non imposti un valore, la funzione Compilazione automatica potrà essere gestita dagli utenti, che potranno quindi configurare i profili di Compilazione automatica e attivare o disattivare a propria scelta questa funzione.</translation> <translation id="8044493735196713914">Indicazione modalità di avvio dispositivo</translation> <translation id="8050080920415773384">Stampa nativa</translation> +<translation id="8053580360728293758">Consente di eseguire l'override della modalità di stampa a colori predefinita. Se la modalità non è disponibile, questa norma viene ignorata.</translation> <translation id="8059164285174960932">URL su cui i client di accesso remoto dovrebbero ottenere il token di autenticazione</translation> <translation id="8078366200175825572">Questa norma consente di impostare un elenco di pattern URL che specificano i siti non autorizzati a impostare cookie. @@ -2666,7 +2722,8 @@ Qui per "versione" si intende sia una versione esatta come "61.0.3163.120", sia un prefisso per la versione, come "61.0". </translation> <translation id="8544375438507658205">Renderer HTML predefinito per <ph name="PRODUCT_FRAME_NAME" /></translation> -<translation id="8544465954173828789">Consente la sincronizzazione di messaggi SMS dal telefono al Chromebook.</translation> +<translation id="8544465954173828789">Consente la sincronizzazione di messaggi SMS dal telefono al Chromebook</translation> +<translation id="8548832052135586762">Consente di impostare solo la stampa a colori, solo la stampa monocromatica oppure nessuna limitazione per la modalità a colori. Se la norma non viene impostata non vengono applicate limitazioni.</translation> <translation id="8549772397068118889">Avvisa quando vengono visitati siti non presenti nei pacchetti di contenuti</translation> <translation id="8566842294717252664">Nascondi il Web Store nella pagina Nuova scheda e in Avvio applicazioni</translation> <translation id="8586528890725660268">Consente di specificare le stampanti non utilizzabili dagli utenti. @@ -2704,7 +2761,7 @@ Se questa norma viene lasciata non impostata, il servizio di protezione tramite password proteggerà esclusivamente le password Google, ma l'utente sarà in grado di modificare questa impostazione.</translation> <translation id="8672321184841719703">Scegli versione target dell'aggiornamento automatico</translation> <translation id="867410340948518937">U2F (Universal Second Factor)</translation> -<translation id="8682611302223077049">Consente di stabilire per quanto tempo, in millisecondi, gli utenti riceveranno notifiche relative alla necessità di riavviare <ph name="PRODUCT_NAME" /> o un dispositivo <ph name="PRODUCT_OS_NAME" /> per applicare un aggiornamento in sospeso. +<translation id="8682611302223077049">Consente di stabilire per quanto tempo, in millisecondi, gli utenti riceveranno notifiche relative alla necessità di riavviare <ph name="PRODUCT_NAME" /> o un dispositivo <ph name="PRODUCT_OS_NAME" /> per applicare un aggiornamento in sospeso Durante questo periodo di tempo l'utente verrà informato più volte della necessità di un aggiornamento. Per quanto riguarda i dispositivi <ph name="PRODUCT_OS_NAME" />, nella barra delle applicazioni viene mostrata una notifica relativa al riavvio quando viene rilevato un upgrade. Per quanto riguarda i browser <ph name="PRODUCT_NAME" />, il menu delle app cambia per indicare che è necessario il riavvio una volta trascorso un terzo del periodo di notifica. Questa notifica cambia colore una volta trascorsi due terzi del periodo di notifica e lo cambia di nuovo al termine dell'intero periodo di notifica. Le notifiche aggiuntive attivate in base alla norma <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> seguono questa stessa pianificazione. @@ -2769,6 +2826,7 @@ Se questa impostazione non viene configurata, gli utenti potranno decidere se utilizzare o meno questa funzione.</translation> <translation id="8870318296973696995">Pagina iniziale</translation> +<translation id="8876188741456358123">Consente di eseguire l'override della modalità di stampa fronte/retro predefinita. Se la modalità non è disponibile, questa norma viene ignorata.</translation> <translation id="8882006618241293596">Blocca il plug-in <ph name="FLASH_PLUGIN_NAME" /> su questi siti</translation> <translation id="890403179930035128">Consente di forzare l'attivazione delle lingue per il controllo ortografico. Le lingue non riconosciute dell'elenco verranno ignorate. @@ -2849,6 +2907,8 @@ <translation id="9084985621503260744">Specifica se l'attività video incide sulla gestione dell'alimentazione</translation> <translation id="9088433379343318874">Abilita il provider di contenuti dell'utente supervisionato</translation> <translation id="9088444059179765143">Configura il metodo di rilevamento automatico del fuso orario</translation> +<translation id="9094064873808699479">Esegui il rollback e rimani nella versione target se la versione del sistema operativo è più recente di quella target. Prova a trasferire la configurazione a livello di dispositivo (incluse le credenziali di rete) tramite la procedura di rollback, se possible, ma esegui il rollback con il powerwash completo anche se il ripristino dei dati non è possibile (perché la versione target non supporta il ripristino dei dati o a causa di una modifica non compatibile con le versioni precedenti). + Supportato su <ph name="PRODUCT_OS_NAME" /> 70 e versioni successive. Per i client precedenti, questo valore indica che il rollback è disattivato.</translation> <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> @@ -2886,7 +2946,7 @@ 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="9152473318295429890">Attiva i suggerimenti contestuali delle pagine web correlate</translation> <translation id="9158929520101169054">Consenti accesso simultaneo nel browser</translation> -<translation id="9159126470527871268">Consente di inviare agli utenti una notifica che comunica che <ph name="PRODUCT_NAME" /> o <ph name="PRODUCT_OS_NAME" /> deve essere riavviato per applicare un aggiornamento in sospeso. +<translation id="9159126470527871268">Consente di inviare agli utenti una notifica che comunica che <ph name="PRODUCT_NAME" /> o <ph name="PRODUCT_OS_NAME" /> deve essere riavviato per applicare un aggiornamento in sospeso Questa impostazione della norma attiva le notifiche che informano l'utente che è consigliabile oppure obbligatorio riavviare il browser o il dispositivo. Se non è impostata, <ph name="PRODUCT_NAME" /> indica all'utente che è necessario un riavvio tramite piccole modifiche al menu, mentre <ph name="PRODUCT_OS_NAME" /> indica ciò con una notifica nella barra delle applicazioni. Se l'impostazione è "Recommended", all'utente verrà mostrato un avviso ricorrente con un riavvio consigliato. L'utente può ignorare questo avviso e rimandare il riavvio. Se impostata su "Required", verrà visualizzato un avviso ricorrente all'utente che indica che il riavvio del browser sarà forzato una volta trascorso il periodo di notifica. Per impostazione predefinita, il periodo di notifica è di sette giorni per <ph name="PRODUCT_NAME" /> e di quattro giorni per <ph name="PRODUCT_OS_NAME" /> e può essere configurato tramite l'impostazione della norma <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. @@ -2900,6 +2960,13 @@ <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> <translation id="9200828125069750521">Parametri per l'URL dell'immagine che utilizza POST</translation> +<translation id="920209539000507585">Consente di forzare l'attivazione o la disattivazione dell'opzione "Intestazioni e piè di pagina" nella finestra di dialogo Stampa. + + Se la norma non viene impostata, l'utente può decidere se stampare o meno le intestazioni e i piè di pagina. + + Se la norma viene impostata su false, l'opzione "Intestazioni e piè di pagina" non viene selezionata nella finestra di dialogo dell'anteprima di stampa e l'utente non può modificarla. + + Se la norma viene impostata su true, l'opzione "Intestazioni e piè di pagina" viene selezionata nella finestra di dialogo dell'anteprima di stampa e l'utente non può modificarla.</translation> <translation id="9210953373038593554">Consente di configurare il tipo di autenticazione per gli accessi SAML. Se questa norma non viene impostata o è impostata sul valore predefinito (0), il comportamento degli accessi SAML è determinato dal browser sulla base di altri fattori. Nella situazione di base, l'autenticazione dell'utente e la protezione dei dati degli utenti memorizzati nella cache sono basati sulle password inserite manualmente dagli utenti. @@ -2907,6 +2974,9 @@ Se questa norma è impostata su ClientCertificate (valore 1), l'autenticazione del certificato client viene utilizzata per gli utenti aggiunti di recente che accedono tramite SAML. Per questi utenti non vengono utilizzate password e i loro dati locali memorizzati nella cache vengono protetti mediante le chiavi crittografiche corrispondenti. Ad esempio, questa impostazione consente di configurare un'autenticazione dell'utente basata su smart card (considera che le app middleware per smart card devono essere installate tramite la norma DeviceLoginScreenAppInstallList). Questa norma riguarda solo gli utenti che eseguono l'autenticazione utilizzando SAML.</translation> +<translation id="9211439035693857287">Consente di configurare le norme relative a Estensione per la segnalazione di Chrome. + + Queste norme vengono applicate soltanto se vengono attivate le norme Estensione per la segnalazione di Chrome e Gestione della cloud.</translation> <translation id="9213347477683611358">Configura l'immagine di sfondo a livello del dispositivo che viene mostrata nella schermata di accesso nel caso in cui nessun utente abbia ancora effettuato l'accesso al dispositivo. Questa norma viene impostata specificando l'URL dal quale il dispositivo Chrome OS può scaricare l'immagine di sfondo e un hash crittografico la cui funzione è quella di verificare l'integrità del download. L'immagine deve essere in formato JPEG e non deve superare le dimensioni di 16 MB. L'URL specificato deve essere accessibile senza bisogno di autenticazione. L'immagine di sfondo viene scaricata e memorizzata nella cache. Verrà scaricata nuovamente ogni volta che l'URL e l'hash vengono modificati. La norma deve essere specificata sotto forma di stringa in cui l'URL e l'hash vengono espressi in formato JSON, ad esempio,
diff --git a/components/policy/resources/policy_templates_iw.xtb b/components/policy/resources/policy_templates_iw.xtb index 8ad30f6..e2d3d9f 100644 --- a/components/policy/resources/policy_templates_iw.xtb +++ b/components/policy/resources/policy_templates_iw.xtb
@@ -642,11 +642,11 @@ ניתן לציין את כתובת האתר של החיפוש ב-Google כ: <ph name="GOOGLE_SEARCH_URL" /> יש להגדיר את האפשרות הזו כאשר המדיניות 'DefaultSearchProviderEnabled' מופעלת, והיא תקפה רק במקרה זה.</translation> -<translation id="2659019163577049044">אם ההגדרה הזו מופעלת, משתמשים יוכלו להגדיר את המכשירים שלהם לסנכרון הודעות SMS בין הטלפון ל-Chromebook. לתשומת ליבך, אם המדיניות הזו מורשית, משתמשים חייבים להסכים לתכונה הזו באופן מפורש על-ידי ביצוע תהליך הגדרה. בסיום תהליך ההגדרה, משתמשים יוכלו לשלוח ולקבל הודעות SMS ב-Chromebook. +<translation id="2659019163577049044">אם ההגדרה הזו מופעלת, משתמשים יוכלו להגדיר את המכשירים שלהם לסנכרון הודעות SMS בין הטלפון ל-Chromebook. לתשומת ליבך, אם המדיניות הזו מורשית, משתמשים חייבים להביע הסכמה מפורשת לתכונה הזו על-ידי ביצוע תהליך הגדרה. בסיום תהליך ההגדרה, המשתמשים יוכלו לשלוח ולקבל הודעות SMS ב-Chromebook. אם ההגדרה הזו מושבתת, משתמשים לא יורשו להגדיר סנכרון של הודעות SMS. - אם המדיניות הזו לא תוגדר, ברירת המחדל היא לאסור זאת על משתמשים מנוהלים ולהתיר זאת למשתמשים שאינם מנוהלים.</translation> + אם המדיניות הזו לא תוגדר, ברירת המחדל היא 'אסור' למשתמשים מנוהלים ו'מותר' למשתמשים שאינם מנוהלים.</translation> <translation id="2660846099862559570">לעולם אל תשתמש בשרת Proxy</translation> <translation id="267596348720209223">מציין את קידודי התווים שנתמכים על ידי ספק החיפוש. קידודים הם שמות דפי קידוד כגון UTF-8, GB2312 ו-ISO-8859-1. יש להשתמש בהם לפי הסדר שבו הם סופקו. מדיניות זו היא אופציונלית. אם היא אינה מוגדרת, ברירת המחדל שבה המערכת תשתמש הוא UTF-8. מדיניות זו תקפה רק אם המדיניות 'DefaultSearchProviderEnabled' מופעלת.</translation> <translation id="268577405881275241">הפעל את התכונה של שרת Proxy לדחיסת נתונים</translation> @@ -2762,11 +2762,11 @@ אם המדיניות הזו לא מוגדרת, שירות הגנת הסיסמה יגן רק על סיסמאות Google, אבל המשתמש יוכל לשנות את ההגדרה הזו.</translation> <translation id="8672321184841719703">גירסת עדכון אוטומטי המוגדרת כיעד</translation> <translation id="867410340948518937">U2F (גורם שני אוניברסלי)</translation> -<translation id="8682611302223077049">מאפשרת לך לקבוע את תקופת הזמן באלפיות שנייה להצגת הודעה למשתמש על כך שצריך להפעיל מחדש את <ph name="PRODUCT_NAME" /> או מכשיר <ph name="PRODUCT_OS_NAME" /> כדי להחיל עדכון שנמצא בהמתנה. +<translation id="8682611302223077049">מאפשרת לך לקבוע את פרק הזמן באלפיות שנייה להצגת הודעה למשתמש על כך שצריך להפעיל מחדש את <ph name="PRODUCT_NAME" /> או מכשיר <ph name="PRODUCT_OS_NAME" /> כדי להחיל עדכון שנמצא בהמתנה. - בתקופת הזמן הזו תוצג למשתמש באופן חוזר ההודעה לגבי הצורך בעדכון. במכשירי <ph name="PRODUCT_OS_NAME" />, הודעה על הצורך בהפעלה מחדש מופיעה במגש המערכת כשיש שדרוג זמין. בדפדפני <ph name="PRODUCT_NAME" />, בתום שליש מתקופת ההודעה תפריט האפליקציות משתנה כדי לציין שיש צורך בהפעלה מחדש. צבע ההודעה הזו משתנה אחרי שחולפים שני שליש מתקופת ההודעה, ושוב אחרי שחולפת תקופת הזמן המלאה של ההודעה. ההודעות הנוספות שמופעלות במדיניות <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> לדפדפנים פועלות לפי אותו לוח זמנים. + בפרק הזמן הזה תוצג למשתמש באופן חוזר ההודעה לגבי הצורך בעדכון. במכשירי <ph name="PRODUCT_OS_NAME" />, הודעה על הצורך בהפעלה מחדש מופיעה במגש המערכת כשיש שדרוג זמין. בדפדפני <ph name="PRODUCT_NAME" />, בתום שליש מפרק הזמן של ההודעה תפריט האפליקציות משתנה כדי לציין שיש צורך בהפעלה מחדש. צבע ההודעה הזו משתנה אחרי שחולפים שני שליש מפרק הזמן של ההודעה, ושוב אחרי שחולף פרק הזמן המלא של ההודעה. ההודעות הנוספות שמופעלות במדיניות <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> לדפדפנים פועלות לפי אותו לוח זמנים. - אם היא לא מוגדרת, ייעשה שימוש בתקופת ברירת המחדל: 345600000 אלפיות שנייה (ארבעה ימים) בשביל מכשירי <ph name="PRODUCT_OS_NAME" /> ו-604800000 אלפיות שנייה (שבוע) בשביל <ph name="PRODUCT_NAME" />.</translation> + אם היא לא מוגדרת, ייעשה שימוש בפרק הזמן שנקבע כברירת מחדל: 345600000 אלפיות שנייה (ארבעה ימים) בשביל מכשירי <ph name="PRODUCT_OS_NAME" /> ו-604800000 אלפיות שנייה (שבוע) בשביל <ph name="PRODUCT_NAME" />.</translation> <translation id="8685024486845674965">האזהרה של שירות ההגנה באמצעות סיסמה מופעלת אחרי שימוש חוזר בסיסמה</translation> <translation id="8693243869659262736">השתמש בלקוח ה-DNS המובנה</translation> <translation id="8704831857353097849">רשימה של יישומי פלאגין מושבתים</translation> @@ -2955,9 +2955,9 @@ <translation id="9158929520101169054">התרת כניסה עם מספר חשבונות בתוך הדפדפן</translation> <translation id="9159126470527871268">הצגת הודעה למשתמשים על כך שצריך להפעיל מחדש את <ph name="PRODUCT_NAME" /> או את <ph name="PRODUCT_OS_NAME" /> כדי להחיל עדכון שנמצא בהמתנה. - המדיניות הזו מאפשרת להציג למשתמש הודעות על כך שמומלץ לבצע הפעלה מחדש של הדפדפן, או שהיא נדרשת. אם המדיניות לא מוגדרת, <ph name="PRODUCT_NAME" /> מציין למשתמש שיש צורך בהפעלה מחדש בעזרת שינויים קלים במראה התפריט. ב-<ph name="PRODUCT_OS_NAME" /> ההודעה במצב הזה תופיע במגש המערכת. אם היא מוגדרת כ'מומלצת', תוצג למשתמש אזהרה חוזרת על כך שמומלץ להפעיל מחדש את הדפדפן. המשתמש יכול לסגור את האזהרה כדי לדחות את ההפעלה מחדש. אם המדיניות מוגדרת כ'נדרשת', תוצג למשתמש אזהרה חוזרת על כך שתבוצע הפעלה מחדש כפויה של הדפדפן בסיום תקופת ההודעה. התקופה נקבעת כברירת מחדל לשבעה ימים בשביל <ph name="PRODUCT_NAME" /> וארבעה ימים בשביל <ph name="PRODUCT_OS_NAME" />, ואפשר לשנות אותה דרך הגדרת המדיניות <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. + המדיניות הזו מאפשרת להציג למשתמש הודעות על כך שמומלץ לבצע הפעלה מחדש של הדפדפן, או שהיא נדרשת. אם המדיניות לא מוגדרת, <ph name="PRODUCT_NAME" /> מציין למשתמש שיש צורך בהפעלה מחדש בעזרת שינויים קלים במראה התפריט. ב-<ph name="PRODUCT_OS_NAME" /> ההודעה במצב הזה תופיע במגש המערכת. אם היא מוגדרת כ'מומלצת', תוצג למשתמש אזהרה חוזרת על כך שמומלץ להפעיל מחדש את הדפדפן. המשתמש יכול לסגור את האזהרה כדי לדחות את ההפעלה מחדש. אם המדיניות מוגדרת כ'נדרשת', תוצג למשתמש אזהרה חוזרת על כך שתבוצע הפעלה כפויה מחדש של הדפדפן בתום פרק הזמן של ההודעה. כברירת מחדל, פרק הזמן הוא שבעה ימים בשביל <ph name="PRODUCT_NAME" /> וארבעה ימים בשביל <ph name="PRODUCT_OS_NAME" />, ואפשר לשנות אותו דרך הגדרת המדיניות <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. - בסיום ההפעלה מחדש המשתמש יוחזר לסשן שבו היה.</translation> + בתום ההפעלה מחדש, המשתמש יוחזר לסשן שבו היה.</translation> <translation id="9165792353046089850">מאפשרת לך לקבוע אם אתרים יכולים לקבל גישה אל התקני USB מחוברים. ניתן לחסום את הגישה לחלוטין, או שהמשתמש יתבקש להעניק אישור בכל פעם שאתר רוצה לקבל גישה אל התקני USB מחוברים. אפשר לעקוף את המדיניות הזו בשביל דפוסים ספציפיים של כתובות אתרים בעזרת אפשרויות המדיניות 'WebUsbAskForUrls' ו-'WebUsbBlockedForUrls'.
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb index 486e648..b55bdfdb 100644 --- a/components/policy/resources/policy_templates_ja.xtb +++ b/components/policy/resources/policy_templates_ja.xtb
@@ -202,6 +202,7 @@ <translation id="1522425503138261032">サイトに対してユーザーの物理的な現在地の追跡を許可する</translation> <translation id="152657506688053119">デフォルトの検索プロバイダが使用する代替 URL のリスト</translation> <translation id="1530812829012954197">ホスト ブラウザに次の URL パターンを常に表示する</translation> +<translation id="1541170838458414064">印刷ページサイズを制限</translation> <translation id="1553684822621013552">このポリシーを true に設定すると、ユーザーが ARC を使用できるようになります (ポリシー設定について追加の確認が行われ、現在のユーザー セッションで 一時的ログインモードまたはマルチログインが有効になっている場合、ユーザーは @@ -377,6 +378,12 @@ <translation id="2082205219176343977">端末での使用を許可する Chrome の最小バージョンを設定する。</translation> <translation id="209586405398070749">Stable チャンネル</translation> <translation id="2098658257603918882">使用状況とクラッシュ関連データのレポートを有効にする</translation> +<translation id="2098916259427011890">このポリシーでは、バージョン情報(OS バージョン、OS プラットフォーム、OS アーキテクチャ、<ph name="PRODUCT_NAME" /> のバージョン、<ph name="PRODUCT_NAME" /> のチャンネルなど)について、レポートを作成するかどうかを管理します。 + + このポリシーが未設定または True に設定されている場合、バージョン情報が収集されます。 + このポリシーが False に設定されている場合、バージョン情報は収集されません。 + + このポリシーは、Chrome レポート拡張機能とクラウド管理が有効になっている場合にのみ有効です。</translation> <translation id="2111016292707172233"><ph name="PRODUCT_NAME" /> のコンテンツ ビューで「タップして検索」を使用できるかどうかを制御します。 この設定を有効にした場合、ユーザーは「タップして検索」を使用でき、この機能のオンとオフを切り替えることができます。 @@ -404,6 +411,8 @@ このポリシーは、メインのディスプレイと予備のディスプレイすべてに適用されます。 このポリシーが未設定の場合、既定値として 0 度が使用されます。ユーザーはこの値を自由に変更できます。この場合、再起動時に既定値が再適用されることはありません。</translation> +<translation id="214901426630414675">両面印刷モードを制限</translation> +<translation id="2149330464730004005">カラー印刷を有効にする</translation> <translation id="2156132677421487971"><ph name="PRODUCT_NAME" /> のポリシーを設定します。この機能により、ユーザーはタブ、サイト、またはデスクトップのコンテンツをブラウザからリモートのディスプレイや音声システムに送信できます。</translation> <translation id="2166472654199325139">アダルト コンテンツに基づくサイトの除外を行わない</translation> <translation id="2168397434410358693">アイドル状態になるまでの時間(AC 電源での実行時)</translation> @@ -593,6 +602,7 @@ <translation id="2529880111512635313">強制インストールするアプリと拡張機能のリストを設定します</translation> <translation id="253135976343875019">アイドル警告が表示されるまでの時間(AC 電源での実行時)</translation> <translation id="2536525645274582300">Google 位置情報サービスを有効にするかどうかをユーザーに確認する</translation> +<translation id="2550593661567988768">片面印刷のみ</translation> <translation id="2552966063069741410">タイムゾーン</translation> <translation id="2562339630163277285">インスタント検索の結果表示に使用する検索エンジンの URL を指定します。この URL には <ph name="SEARCH_TERM_MARKER" /> という文字列を含めます。この文字列は、検索時にユーザーが入力したテキストに置き換えられます。 @@ -720,9 +730,12 @@ この設定を無効にするか値を設定しなかった場合、印刷プレビューではデフォルトの出力先として最近使用したプリンタが使用されます。 この設定を有効にした場合、印刷プレビューではデフォルトの出力先としてオペレーティング システムのデフォルト プリンタが使用されます。</translation> +<translation id="2856674246949497058">OS のバージョンが対象バージョンより新しい場合に、対象バージョンに戻してそのバージョンを維持します。このプロセスでは Powerwash が行われます。</translation> <translation id="2872961005593481000">終了</translation> +<translation id="2873651257716068683">デフォルトの印刷ページサイズをオーバーライドします。ページサイズを使用できない場合、このポリシーは無視されます。</translation> <translation id="2874209944580848064">Android アプリをサポートする <ph name="PRODUCT_OS_NAME" /> デバイスに関する注意:</translation> <translation id="2877225735001246144">Kerberos 認証をネゴシエートするときに CNAME 検索を無効にする</translation> +<translation id="2892414556511568464">両面印刷モードを制限します。ポリシーが未設定または空白に設定されている場合は、制限なしとして扱われます。</translation> <translation id="2893546967669465276">管理サーバーにシステムログを送信する</translation> <translation id="2899002520262095963">Android アプリは、このポリシーで設定したネットワーク設定と CA 証明書を使用できますが、一部の設定オプションにはアクセスできません。</translation> <translation id="290002216614278247">クライアントの時間または 1 日の使用時間の割り当てに基づいてユーザーのセッションをロックします。 @@ -810,6 +823,7 @@ サーバーを ECDHE 暗号化スイートに移行することをおすすめします。ECDHE 暗号化スイートを使用できない場合は、RSA 鍵交換を使用した暗号化スイートが有効になっているか確認してください。</translation> <translation id="316778957754360075">この設定は <ph name="PRODUCT_NAME" /> バージョン 29 で廃止されました。組織でホストする拡張機能/アプリのコレクションを設定するには、CRX パッケージをホストするサイトを ExtensionInstallSources の中で指定し、パッケージへの直接ダウンロード リンクをウェブページに置くことをおすすめします。そのウェブページのランチャーは、ExtensionInstallForcelist ポリシーを使用して作成できます。</translation> +<translation id="3171369832001535378">端末のネットワーク ホスト名テンプレート</translation> <translation id="3185009703220253572">バージョン <ph name="SINCE_VERSION" /> 以降</translation> <translation id="3187220842205194486">Android アプリは企業キーにアクセスできません。このポリシーは Android アプリには適用されません。</translation> <translation id="3201273385265130876"><ph name="PRODUCT_NAME" /> が使用するプロキシ サーバーを指定できます。この場合、ユーザーがプロキシ設定を変更することはできません。 @@ -918,6 +932,7 @@ このポリシーの値は、Google 管理コンソールから取得できる登録トークンです。</translation> <translation id="3496296378755072552">パスワード マネージャ</translation> +<translation id="3502555714327823858">すべての両面印刷モードを許可する</translation> <translation id="350443680860256679">ARC を設定する</translation> <translation id="3504791027627803580">画像検索に使用する検索エンジンの URL を指定します。検索リクエストは GET メソッドを使用して送信されます。DefaultSearchProviderImageURLPostParams ポリシーが設定されている場合は、GET メソッドではなく POST メソッドが画像検索リクエストで使用されます。 @@ -927,6 +942,7 @@ <translation id="350797926066071931">翻訳を有効にする</translation> <translation id="3512226956150568738">ARC の実行に ext4 への移行が必要となる前からすでにクライアント端末機種で ARC がサポートされていて、かつ ArcEnabled ポリシーが true に設定されている場合、このオプションの動作は AskUser(値 3)と同じになります。その他すべての場合(端末機種で以前より ARC がサポートされていなかった場合、または ArcEnabled ポリシーが false に設定されている場合)、この値は DisallowArc(値 0)と同じになります。</translation> <translation id="3524204464536655762">すべてのサイトに対して WebUSB API 経由での USB デバイスへのアクセスを許可しない</translation> +<translation id="3526752951628474302">白黒印刷のみ</translation> <translation id="3528000905991875314">別のエラー ページを有効にする</translation> <translation id="3545457887306538845">デベロッパー ツールの使用を許可する状況を管理します。 @@ -950,6 +966,7 @@ <translation id="3577251398714997599">煩わしい広告を含むサイトでの広告表示に関する設定</translation> <translation id="3591584750136265240">ログイン認証の動作を設定する</translation> <translation id="3627678165642179114">スペルチェック ウェブ サービスを有効または無効にする</translation> +<translation id="3628480121685794414">片面印刷を有効にする</translation> <translation id="3646859102161347133">画面拡大鏡のタイプを設定する</translation> <translation id="3653237928288822292">デフォルトの検索プロバイダ アイコン</translation> <translation id="3660562134618097814">ログイン時に SAML IdP Cookie を転送する</translation> @@ -1043,6 +1060,7 @@ このポリシーを false に設定した場合、キオスク セッションに関する情報は 報告されません。true に設定するか未設定のままにした場合は、キオスク セッションに関する情報が報告されます。</translation> +<translation id="3858658082795336534">デフォルトの両面印刷モード</translation> <translation id="3859780406608282662"><ph name="PRODUCT_OS_NAME" /> でのバリエーション シードの取得にパラメータを追加します。 このポリシーが指定されている場合、バリエーション シードの取得に使用される URL に「restrict」というクエリ パラメータが追加されます。このパラメータの値には、このポリシーで指定された値が使用されます。 @@ -1149,6 +1167,12 @@ このポリシーを設定する場合は、値として「tls1.2」または「tls1.3」を指定できます。このポリシーが設定されている場合、<ph name="PRODUCT_NAME" /> では、指定されたバージョンより大きい SSL / TLS バージョンは使用されません。また、認識されない値は無視されます。</translation> <translation id="4121350739760194865">アプリのプロモーションが新しいタブ ページに表示されないようにする</translation> <translation id="412697421478384751">ロック画面の PIN として強度の低い PIN を設定可能にする</translation> +<translation id="4129183564590133854">このポリシーでは、ユーザーを識別できる情報(OS のログイン、<ph name="PRODUCT_NAME" /> プロフィールのログイン、<ph name="PRODUCT_NAME" /> プロフィール名、<ph name="PRODUCT_NAME" /> プロフィールのパス、<ph name="PRODUCT_NAME" /> 実行ファイルのパスなど)について、レポートを作成するかどうかを管理します。 + + このポリシーが未設定または True に設定されている場合、ユーザーを識別できる情報が収集されます。 + このポリシーが False に設定されている場合、ユーザーを識別できる情報は収集されません。 + + このポリシーは、Chrome レポート拡張機能とクラウド管理が有効になっている場合にのみ有効です。</translation> <translation id="4138655880188755661">時間制限</translation> <translation id="4157003184375321727">OS とファームウェアのバージョンを報告する</translation> <translation id="4157594634940419685">ネイティブの CUPS プリンタへのアクセスを許可する</translation> @@ -1448,6 +1472,12 @@ <translation id="5052081091120171147">このポリシーを有効にすると、現在の既定のブラウザからインポートされた閲覧履歴を適用します。その場合、このポリシーはインポート ダイアログにも影響します。無効にすると閲覧履歴はインポートされません。このポリシーが未設定の場合、インポートするかどうかをユーザーに尋ねるか、自動的にインポートされます。</translation> <translation id="5056708224511062314">画面拡大鏡を無効にする</translation> <translation id="5058573563327660283">自動クリーンアップ時にディスクの空き容量を増やす方法を選択する(サポート終了)</translation> +<translation id="5058771123777243130">このポリシーでは、ポリシーデータとポリシーの取得日時について、レポートを作成するかどうかを管理します。 + + このポリシーが未設定または True に設定されている場合、ポリシーデータとポリシーの取得日時が収集されます。 + このポリシーが False に設定されている場合、ポリシーデータとポリシーの取得日時は収集されません。 + + このポリシーは、Chrome レポート拡張機能とクラウド管理が有効になっている場合にのみ有効です。</translation> <translation id="5067143124345820993">ログイン ユーザーのホワイト リスト</translation> <translation id="5068140065960598044"><ph name="PRODUCT_NAME" /> のクラウド ポリシーがマシン(デバイス)ポリシーよりも優先されます。</translation> <translation id="5085647276663819155">印刷プレビューを無効にする</translation> @@ -1550,6 +1580,7 @@ <translation id="5366977351895725771">false に設定されている場合、このユーザーは監視対象ユーザーを作成できません。既存の監視対象ユーザーは引き続き利用可能です。 true に設定されている場合や未設定の場合、このユーザーは監視対象ユーザーを作成し管理できます。</translation> +<translation id="5369937289900051171">カラー印刷のみ</translation> <translation id="5370279767682621504">デフォルト以外のポートで HTTP/0.9 サポートを有効にする</translation> <translation id="5378985487213287085">ウェブサイトに対してデスクトップ通知の表示を許可するかどうかを設定できます。デスクトップ通知の表示は、デフォルトで許可または禁止することができます。また、ウェブサイトでデスクトップ通知が表示される前にユーザーが毎回確認することもできます。このポリシーが未設定の場合、「AskNotifications」が使用され、ユーザーはこの設定を変更できます。</translation> <translation id="538108065117008131"><ph name="PRODUCT_FRAME_NAME" /> に対して次のコンテンツ タイプの処理を許可する</translation> @@ -1570,6 +1601,7 @@ このポリシーが入力方法 ID のリストに設定されている場合は、指定されている入力方法がログイン画面で選択可能になり、最初に指定されている入力方法があらかじめ選択された状態になります。ログイン画面でユーザーのアイコンにフォーカスがあるときは、このポリシーで指定されている入力方法に加えて、ユーザーが最後に使った入力方法が選択可能になります。このポリシーが設定されていない場合は、ログイン画面の表示に使用されている言語 / 地域に応じた入力方法が適用されます。入力方法 ID として無効な値は無視されます。</translation> <translation id="5423001109873148185">このポリシーを有効にすると検索エンジンが現在の既定のブラウザからインポートされます。その場合、このポリシーはインポート ダイアログにも影響します。無効にすると、デフォルトの検索エンジンはインポートされません。このポリシーが未設定の場合、インポートするかどうかをユーザーに尋ねるか、自動的にインポートされます。</translation> <translation id="5423197884968724595">Android WebView の制限名:</translation> +<translation id="5424147596523390018">すべてのカラー印刷モードを許可する</translation> <translation id="5442026853063570579">このポリシーでは、Android 開発者向けオプションへのアクセスも管理できます。このポリシーを「DeveloperToolsDisallowed」(値 2)に設定した場合、ユーザーは開発者向けオプションにアクセスできません。このポリシーを別の値に設定するか未設定のままにした場合、ユーザーは Android 設定アプリのビルド番号を 7 回タップすれば開発者向けオプションにアクセスできます。</translation> <translation id="5447306928176905178">メモリ情報(JavaScript のヒープ サイズ)がページに報告されるようにする(サポート終了)</translation> <translation id="5457065417344056871">ブラウザでゲストモードを有効にする</translation> @@ -1636,6 +1668,7 @@ <translation id="5586942249556966598">何もしない</translation> <translation id="5630352020869108293">最後のセッションを復元する</translation> <translation id="5645779841392247734">これらのサイトの Cookie を許可する</translation> +<translation id="5689430183304951538">デフォルトの印刷ページサイズ</translation> <translation id="5693469654327063861">データ移行を許可する</translation> <translation id="5694594914843889579">このポリシーを true に設定すると、ファイル ブラウザでは外部ストレージを利用できなくなります。 @@ -1665,6 +1698,7 @@ このポリシーを設定しないと、デフォルトの時間が使用されます。 ポリシーの値はミリ秒単位で指定してください。</translation> +<translation id="5783009211970309878">ヘッダーとフッターを印刷</translation> <translation id="5809728392451418079">デバイスのローカル アカウントの表示名を設定する</translation> <translation id="5814301096961727113">ログイン画面での音声フィードバックのデフォルト状態を設定する</translation> <translation id="5815129011704381141">更新後に自動再起動</translation> @@ -1676,6 +1710,7 @@ この設定が未設定の場合は、デフォルトのプロフィール ディレクトリが使用されます。</translation> <translation id="5826047473100157858">ユーザーが <ph name="PRODUCT_NAME" /> でシークレット モードを使用してページを開くことができるかどうかを指定します。[有効] が選択されている、またはポリシーが未設定の場合、シークレット モードでページを開くことができます。[無効] が選択されている場合、シークレット モードでページを開くことはできません。[強制] が選択されている場合、シークレット モードでのみページを開くことができます。</translation> +<translation id="582857022372205358">短辺とじの両面印刷を有効にする</translation> <translation id="583091600226586337"> このポリシーが有効な場合、ユーザーはダウンロードの前に各ファイルの保存先を尋ねられます。 このポリシーが無効な場合は、ダウンロードが直ちに始まり、ユーザーはファイルの保存先を尋ねられません。 @@ -1711,6 +1746,7 @@ この設定が無効になっているか設定されていない場合、gnubby 認証リクエストはプロキシ送信されません。</translation> <translation id="5898486742390981550">複数のユーザーがログインしている場合は、メインユーザーのみが Android アプリを使用できます。</translation> +<translation id="5901427587865226597">両面印刷のみ</translation> <translation id="5906199912611534122">ネットワーク制限を有効または無効にします。 この設定は、すべてのユーザーと、端末のすべてのインターフェースに適用されます。 制限を有効に設定した場合、制限の適用を解除するには、ポリシーを変更して制限を無効にする必要があります。 @@ -1818,6 +1854,7 @@ ポリシーの値はミリ秒単位で指定してください。アイドル時間より長い値は指定できません。</translation> <translation id="6097601282776163274">URL キーによる匿名化データの収集を有効にする</translation> +<translation id="6099853574908182288">デフォルトのカラー印刷モード</translation> <translation id="6111936128861357925">恐竜のイースター エッグゲームを許可する</translation> <translation id="6114416803310251055">廃止予定</translation> <translation id="6133088669883929098">すべてのサイトにキー生成の使用を許可する</translation> @@ -1830,6 +1867,7 @@ このポリシーが未設定の場合は、すべてのサイトでグローバルなデフォルト値(「DefaultPluginsSetting」ポリシーで値が設定されている場合はその値、設定されていない場合はユーザーの個人設定の値)が使用されます。</translation> <translation id="6190022522129724693">デフォルトのポップアップ設定</translation> +<translation id="6190367314942602985">ユーザー識別情報に関するレポートを作成</translation> <translation id="6197453924249895891">拡張機能に対し、企業キーへのアクセスを許可します。 キーが企業用のキーと指定されるのは、管理対象アカウントに対し chrome.enterprise.platformKeys API を使用してキーを生成した場合のみです。別の方法でインポートまたは生成されたキーは、企業用のキーとなりません。 @@ -1839,6 +1877,8 @@ デフォルトでは、拡張機能で企業用のキーを使用することはできません。この動作は、拡張機能に対して allowCorporateKeyUsage を false に設定した場合の結果と同じです。 拡張機能に対して allowCorporateKeyUsage が true に設定されている場合のみ、その拡張機能では企業用のプラットフォーム キーを任意のデータの署名に使用できます。このような許可を与えるのは、拡張機能からキーへのアクセスが攻撃から守られると信頼できる場合のみとしてください。</translation> +<translation id="6208896993204286313"><ph name="PRODUCT_NAME" /> のポリシー情報に関するレポートを作成</translation> +<translation id="6210259502936598222">OS と <ph name="PRODUCT_NAME" /> のバージョン情報に関するレポートを作成</translation> <translation id="6211428344788340116">デバイスの操作時間を報告します。 この設定が未設定か、True に設定されている場合、登録デバイスでは、ユーザーがデバイスで操作を行っていた時間が報告されます。この設定が False に設定されている場合、デバイスの操作時間は記録されず、報告もされません。</translation> @@ -1852,6 +1892,7 @@ <translation id="6233173491898450179">ダウンロード ディレクトリを設定する</translation> <translation id="6244210204546589761">起動時に開く URL</translation> <translation id="6258193603492867656">生成した Kerberos SPN に非標準ポートを含めるべきかどうかを指定します。この設定を有効にすると、非標準ポート(80 と 443 以外のポート)が入力され、生成された Kerberos SPN にそのポートが追加されます。この設定を無効にするか未設定の場合、生成された Kerberos SPN にポートが追加されることはありません。</translation> +<translation id="6261643884958898336">マシン識別情報に関するレポートを作成</translation> <translation id="6281043242780654992">ネイティブ メッセージングのポリシーを設定します。ブラックリストに登録されたネイティブ メッセージング ホストは、ホワイトリストに登録されていない限り読み込みできません。</translation> <translation id="6282799760374509080">音声キャプチャを許可または拒否する</translation> <translation id="6284362063448764300">TLS 1.1</translation> @@ -1882,6 +1923,7 @@ [プロキシ サーバーを自動検出する] を選択した場合は、スクリプト URL 「http://wpad/wpad.dat」が Android アプリに通知されます。プロキシ自動検出プロトコルの他の部分は使用されません。 [.pac プロキシ スクリプトを使用する] を選択した場合は、スクリプト URL が Android アプリに通知されます。</translation> +<translation id="6430366557948788869">Chrome レポート拡張機能</translation> <translation id="6440051664870270040">移動と同時にポップアップを表示することをサイトに許可する</translation> <translation id="6447948611083700881">バックアップと復元が無効</translation> <translation id="645425387487868471"><ph name="PRODUCT_NAME" /> への強制ログインを有効にする</translation> @@ -1928,6 +1970,7 @@ <translation id="6628646143828354685">ウェブサイトによる近くの Bluetooth デバイスへのアクセスを許可するかどうかを設定できます。アクセスを完全に禁止することや、ウェブサイトが近くの Bluetooth デバイスにアクセスしてもよいかユーザーにその都度確認することができます。 このポリシーが未設定の場合は「3」に設定されます。ユーザーはこの設定を変更できます。</translation> +<translation id="663685822663765995">カラー印刷モードを制限</translation> <translation id="6641981670621198190">3D グラフィックス API のサポートを無効にする</translation> <translation id="6647965994887675196">true に設定されている場合は、監視対象ユーザーを作成して使用できます。 @@ -1955,6 +1998,7 @@ このポリシーで指定する URL パターンは、WebUsbAskForUrls ポリシーで指定する URL パターンと競合しないようにする必要があります。URL が両方のポリシーのパターンに一致する場合、どちらのポリシーが優先されるかは決まっていません。</translation> <translation id="6689792153960219308">ハードウェア ステータスを報告する</translation> +<translation id="6698632841807204978">白黒印刷を有効にする</translation> <translation id="6699880231565102694">リモート アクセス ホストの 2 段階認証プロセスを有効にする</translation> <translation id="6724842112053619797">この設定を有効にした場合は、<ph name="PRODUCT_NAME" /> プロフィールに保存されている設定(ブックマーク、自動入力データ、パスワードなど)が、「ローミング」ユーザー プロフィール フォルダまたは管理者が <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> ポリシーで指定した場所に保存されるファイルにも書き込まれます。このポリシーを有効にすると、クラウド同期は無効になります。 @@ -1994,6 +2038,12 @@ この設定を使って、「ようこそ」ページに、<ph name="PRODUCT_NAME" /> へのログインを促すメッセージやデフォルトのブラウザとして選択するリンク、あるいはサービスの機能に関する情報を表示するかどうかを制御できます。</translation> <translation id="6766216162565713893">サイトによる近くの Bluetooth デバイスへのアクセスをユーザーに確認する</translation> <translation id="6770454900105963262">有効なキオスク セッションの情報を報告する</translation> +<translation id="6773056206551814546">このポリシーでは、マシンを識別できる情報(マシン名、ネットワーク アドレスなど)について、レポートを作成するかどうかを管理します。 + + このポリシーが未設定または True に設定されている場合、マシンを識別できる情報が収集されます。 + このポリシーが False に設定されている場合、マシンを識別できる情報は収集されません。 + + このポリシーは、Chrome レポート拡張機能とクラウド管理が有効になっている場合にのみ有効です。</translation> <translation id="6786747875388722282">拡張機能</translation> <translation id="6786967369487349613">ローミング プロフィール ディレクトリの設定</translation> <translation id="6810445994095397827">これらのサイトの Javascript をブロックする</translation> @@ -2095,6 +2145,7 @@ </translation> <translation id="6922884955650325312"><ph name="FLASH_PLUGIN_NAME" /> プラグインをブロックする</translation> <translation id="6923366716660828830">デフォルトの検索プロバイダの名前を指定します。空白のままにしたり未設定の場合は、検索 URL で指定されたホスト名が使用されます。このポリシーは「DefaultSearchProviderEnabled」ポリシーが有効な場合にのみ適用されます。</translation> +<translation id="6926703471186170050">長辺とじの両面印刷を有効にする</translation> <translation id="6931242315485576290">Google とのデータの同期を無効にする</translation> <translation id="6936894225179401731">プロキシ サーバーへの最大同時接続数を指定します。 @@ -2288,6 +2339,7 @@ この設定を無効にするか未設定のままにした場合、ユーザーは警告が表示された後にそのサイトに進むかどうかを選択できます。 セーフ ブラウジングについて詳しくは、https://developers.google.com/safe-browsing をご覧ください。</translation> +<translation id="737655323154569539">印刷ページサイズを制限します。ポリシーが未設定または空白に設定されている場合は、制限なしとして扱われます。</translation> <translation id="7417728346887499628">このポリシーが無効な場合は、Chrome クリーンアップによって、システムで望ましくないソフトウェアのスキャンとクリーンアップが行われることはありません。また、chrome://settings/cleanup で Chrome クリーンアップを手動で開始することもできません。 このポリシーが有効または未設定の場合は、Chrome クリーンアップによって定期的に、システムで望ましくないソフトウェアがスキャンされ、望ましくないソフトウェアが検出された場合は削除するかどうかがユーザーに確認されます。また、chrome://settings/cleanup で Chrome クリーンアップを手動で開始することも可能です。 @@ -2356,6 +2408,9 @@ <translation id="7617319494457709698">このポリシーでは、<ph name="ENTERPRISE_PLATFORM_KEYS_API" /> の関数 <ph name="CHALLENGE_USER_KEY_FUNCTION" /> を使用してリモート認証を行うことを許可する拡張機能を指定します。この API を使用するには、このリストに拡張機能を追加する必要があります。 拡張機能がリストに追加されていないか、リストが設定されていない場合、API 呼び出しは失敗し、エラーコードが返されます。</translation> +<translation id="7618907117929117943">OS のバージョンが対象バージョンより新しく、ロールバックでの端末単位の設定(ネットワーク認証情報など)の引き継ぎと、ロールバック後の OOBE の省略が可能な場合は、対象バージョンに戻してそのバージョンを維持します。 +これらが可能でない(対象バージョンがデータの復元に対応していない、または後方互換性のない変更がある)場合、ロールバックは行われないか中止されます。 + サポート対象は <ph name="PRODUCT_OS_NAME" /> バージョン 70 以降です。これより古いクライアントの場合、この値はロールバックが無効であることを意味します。</translation> <translation id="7625444193696794922">この端末を固定するリリース チャンネルを指定します。</translation> <translation id="7632724434767231364">GSSAPI ライブラリ名</translation> <translation id="7635471475589566552"><ph name="PRODUCT_NAME" /> のアプリケーションの言語/地域を設定し、ユーザーが言語/地域を変更できないようにします。この設定を有効にすると、<ph name="PRODUCT_NAME" /> では指定された言語/地域が使用されます。設定した言語/地域がサポートされない場合、「en-US」が使用されます。この設定を無効にするか設定しないと、<ph name="PRODUCT_NAME" /> ではユーザー指定の適切な言語/地域(設定されている場合)、システムの言語/地域、代替の言語/地域「en-US」のいずれかが使用されます。</translation> @@ -2549,6 +2604,7 @@ この設定を有効にするか値を設定しない場合、ユーザーは自動入力を利用できます。ユーザーは自動入力プロフィールを設定して、自身の判断で自動入力をオンまたはオフにすることができます。</translation> <translation id="8044493735196713914">デバイス起動モードを報告する</translation> <translation id="8050080920415773384">ネイティブ印刷</translation> +<translation id="8053580360728293758">デフォルトのカラー印刷モードをオーバーライドします。このモードを使用できない場合、このポリシーは無視されます。</translation> <translation id="8059164285174960932">リモート アクセス クライアントが認証トークンを取得する URL</translation> <translation id="8078366200175825572">Cookie の設定を許可しないサイトの URL パターンリストを設定します。 @@ -2735,6 +2791,7 @@ この「バージョン」としては、正確なバージョン(61.0.3163.120 など)を指定することも、バージョンの接頭辞(61.0 など)を指定することもできます。 </translation> <translation id="8544375438507658205"><ph name="PRODUCT_FRAME_NAME" /> のデフォルトの HTML レンダラ</translation> <translation id="8544465954173828789">スマートフォンから Chromebook への SMS メッセージの同期を許可する。</translation> +<translation id="8548832052135586762">カラー印刷のみ、白黒印刷のみ、カラー印刷モードの制限なし、のいずれかに設定します。ポリシーが未設定の場合は、制限なしとして扱われます。</translation> <translation id="8549772397068118889">コンテンツ パック外部のサイトを訪問したときに警告する</translation> <translation id="8566842294717252664">新しいタブページとアプリ ランチャーでウェブストアを非表示にする</translation> <translation id="8586528890725660268">ユーザーに使用を許可しないプリンタを指定します。 @@ -2837,6 +2894,7 @@ この設定を指定しない場合、ユーザーはこの機能を使用するかどうかを自分で指定できます。</translation> <translation id="8870318296973696995">ホームページ</translation> +<translation id="8876188741456358123">デフォルトの両面印刷モードをオーバーライドします。このモードを使用できない場合、このポリシーは無視されます。</translation> <translation id="8882006618241293596">これらのサイトで <ph name="FLASH_PLUGIN_NAME" /> プラグインをブロックする</translation> <translation id="890403179930035128">言語のスペルチェックを強制的に有効にします。指定した言語のうち認識されないものは無視されます。 @@ -2932,6 +2990,8 @@ <translation id="9084985621503260744">動画操作を電源管理に関連付けるかどうかを指定する</translation> <translation id="9088433379343318874">監視対象ユーザーのコンテンツ プロバイダを有効にする</translation> <translation id="9088444059179765143">タイムゾーン自動検出の方法を設定する</translation> +<translation id="9094064873808699479">OS のバージョンが対象バージョンより新しい場合は、対象バージョンに戻してそのバージョンを維持します。可能な場合は、ロールバック プロセスで端末単位の設定(ネットワーク認証情報など)の引き継ぎをお試しください。なお、データの復元が可能でない(対象バージョンがデータの復元に対応していない、または後方互換性のない変更がある)場合でも、完全な Powerwash によるロールバックを行ってください。 + サポート対象は <ph name="PRODUCT_OS_NAME" /> バージョン 70 以降です。これより古いクライアントの場合、この値はロールバックが無効であることを意味します。</translation> <translation id="9096086085182305205">認証サーバーのホワイトリスト</translation> <translation id="9098553063150791878">HTTP 認証のポリシー</translation> <translation id="9105265795073104888">Android アプリではプロキシ設定オプションの一部のみを使用できます。プロキシを使用するかどうかは Android アプリ側の選択となります。Android アプリにプロキシの使用を強制することはできません。</translation> @@ -2983,6 +3043,13 @@ <translation id="9187743794267626640">外部ストレージのマウントを無効にする</translation> <translation id="9197740283131855199">画面が暗くなった後でユーザーが操作を行ったときに画面を暗くするまでの時間に掛ける倍率</translation> <translation id="9200828125069750521">POST を使用する画像 URL のパラメータ</translation> +<translation id="920209539000507585">印刷ダイアログで、[ヘッダーとフッター] を強制的にオンまたはオフにします。 + + このポリシーが未設定の場合、ユーザーはヘッダーとフッターを印刷するかどうかを指定することができます。 + + このポリシーが False に設定されている場合、印刷プレビュー ダイアログの [ヘッダーとフッター] はオフになり、ユーザーがこれを変更することはできません。 + + このポリシーが True に設定されている場合、印刷プレビュー ダイアログの [ヘッダーとフッター] はオンになり、ユーザーがこれを変更することはできません。</translation> <translation id="9210953373038593554">SAML ログインの認証のタイプを設定します。 このポリシーが設定されていないかデフォルト(値 0)に設定されている場合、SAML ログインの動作は他の要因を基にブラウザによって決定されます。最も基本的なシナリオでは、ユーザーが手動で入力したパスワードを基に、ユーザー認証が行われ、キャッシュされたユーザーデータが保護されます。 @@ -2990,6 +3057,9 @@ このポリシーが ClientCertificate(値 1)に設定されている場合、SAML を使用してログインし、新しく追加されるユーザーには、クライアント証明書の認証が使用されます。こうしたユーザーにはパスワードは使用されず、キャッシュされたローカルデータは対応する暗号化キーを使って保護されます。たとえば、この設定ではスマートカードを使ったユーザー認証を設定できます(DeviceLoginScreenAppInstallList ポリシーを使ってスマートカードのミドルウェア アプリをインストールしておく必要があります)。 このポリシーは、SAML を使用して認証を行うユーザーのみに影響します。</translation> +<translation id="9211439035693857287">Chrome レポート拡張機能に関するポリシーを設定します。 + + これらのポリシーは、Chrome レポート拡張機能とクラウド管理が有効になっている場合にのみ有効です。</translation> <translation id="9213347477683611358">どのユーザーもログインしていない場合にログイン画面に表示する、デバイスの壁紙画像を設定します。このポリシーを設定するには、Chrome OS デバイスが壁紙の画像と暗号化ハッシュをダウンロードすることのできる URL を指定します(暗号化ハッシュはファイルが完全にダウンロードされたかどうかの確認に使用されます)。画像の形式は JPEG、サイズは 16 MB 以下とし、URL には認証なしでアクセスできる必要があります。壁紙画像はダウンロードされた後、キャッシュされます。URL またはハッシュに変更があった場合は再度ダウンロードされます。 このポリシーには、URL とハッシュを表す JSON 形式の文字列を次のように指定します。
diff --git a/components/policy/resources/policy_templates_kn.xtb b/components/policy/resources/policy_templates_kn.xtb index a03bdae..fbb0928 100644 --- a/components/policy/resources/policy_templates_kn.xtb +++ b/components/policy/resources/policy_templates_kn.xtb
@@ -54,7 +54,7 @@ ಬಳಸಬಹುದಾದ ವೇರಿಯೇಬಲ್ಗಳ ಪಟ್ಟಿಗೆ https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables ನೋಡಿ. - ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೆಯೇ ಹಾಗೆಯೇ ಬಿಟ್ಟರೆ, ಡೀಫಾಲ್ಟ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರಿಗೆ '--disk-cache-dir' ಕಮ್ಯಾಂಡ್ ಲೈನ್ ಫ್ಲಾಗ್ ಬಳಸಿಕೊಂಡು ಅದನ್ನು ಅತಿಕ್ರಮಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.</translation> + ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೆಯೇ ಹಾಗೆಯೇ ಬಿಟ್ಟರೆ, ಡೀಫಾಲ್ಟ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರಿಗೆ '--disk-cache-dir' ಕಮಾಂಡ್ ಲೈನ್ ಫ್ಲಾಗ್ ಬಳಸಿಕೊಂಡು ಅದನ್ನು ಅತಿಕ್ರಮಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.</translation> <translation id="1135264353752122851"><ph name="PRODUCT_OS_NAME" /> ನ ಬಳಕೆದಾರರ ಸೆಶನ್ಗಳಿಗೆ ಯಾವ ಕೀಬೋರ್ಡ್ ವಿನ್ಯಾಸಗಳನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತದೆ. ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸಿದಲ್ಲಿ, ಬಳಕೆದಾರರು ಈ ಕಾರ್ಯನೀತಿಯು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಇನ್ಪುಟ್ ವಿಧಾನಗಳಲ್ಲಿ ಕೇವಲ ಒಂದನ್ನು ಮಾತ್ರ ಆಯ್ಕೆ ಮಾಡಬಹುದು. ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದೇ ಬಿಟ್ಟರೆ ಅಥವಾ ಖಾಲಿ ಪಟ್ಟಿಗೆ ಹೊಂದಿಸಿದರೆ, ಬೆಂಬಲಿತವಾದ ಎಲ್ಲಾ ಇನ್ಪುಟ್ ವಿಧಾನಗಳನ್ನು ಬಳಕೆದಾರರು ಆಯ್ಕೆ ಮಾಡಬಹುದು. ಈ ಕಾರ್ಯನೀತಿಯು ಪ್ರಸ್ತುತ ಇನ್ಪುಟ್ ವಿಧಾನವನ್ನು ಅನುಮತಿಸದೇ ಇದ್ದಲ್ಲಿ, ಇನ್ಪುಟ್ ವಿಧಾನವನ್ನು ಹಾರ್ಡ್ವೇರ್ ಕೀಬೋರ್ಡ್ ವಿನ್ಯಾಸಕ್ಕೆ (ಅನುಮತಿಸಿದರೆ), ಅಥವಾ ಈ ಪಟ್ಟಿಯಲ್ಲಿರುವ ಮೊದಲನೇ ಮಾನ್ಯ ನಮೂದಿಗೆ ಬದಲಾಯಿಸಲಾಗುತ್ತದೆ. ಈ ಪಟ್ಟಿಯಲ್ಲಿರುವ ಎಲ್ಲಾ ಅಮಾನ್ಯ ಅಥವಾ ಬೆಂಬಲವಿಲ್ಲದ ಇನ್ಪುಟ್ ವಿಧಾನಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ.</translation> @@ -89,7 +89,7 @@ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೇ ಇದ್ದರೆ ಅಥವಾ ತಪ್ಪು ಎಂಬುದಕ್ಕೆ ಹೊಂದಿಸಿದರೆ, ಆಗ TLS ನಲ್ಲಿ RC4 ಸೈಫರ್ ಸ್ಯೂಟ್ಸ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ. ಇಲ್ಲದಿದ್ದರೆ, ಅವಧಿ ಮೀರಿದ ಸರ್ವರ್ ಜೊತೆಗೆ ಹೊಂದಾಣಿಕೆಯನ್ನು ಉಳಿಸಿಕೊಳ್ಳಲು ಅದನ್ನು ಸರಿ ಎಂಬುದಕ್ಕೆ ಹೊಂದಿಸಲಾಗಬಹುದು. ಇದು ತಾತ್ಕಾಲಿಕ ಕ್ರಮವಾಗಿರುತ್ತದೆ ಮತ್ತು ಸರ್ವರ್ ಅನ್ನು ಮರುಕಾನ್ಫಿಗರ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ.</translation> <translation id="1297182715641689552">.pac ಪ್ರಾಕ್ಸಿ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸಿ</translation> -<translation id="1304973015437969093">ವಿಸ್ತರಣೆ IDಗಳು ಮತ್ತು ಅಪ್ಡೇಟ್ URLಗಳನ್ನು ನಿಶ್ಯಬ್ದವಾಗಿ ಸ್ಥಾಪಿಸಬೇಕು</translation> +<translation id="1304973015437969093">ವಿಸ್ತರಣೆ IDಗಳು ಮತ್ತು ಅಪ್ಡೇಟ್ URLಗಳನ್ನು ನಿಶ್ಯಬ್ದವಾಗಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಬೇಕು</translation> <translation id="1307454923744766368">ಅಸುರಕ್ಷಿತ ಮೂಲಗಳ ಮೇಲಿನ ನಿರ್ಬಂಧಗಳು, ಈ ಮೂಲಗಳಿಗೆ ಅಥವಾ ಹೋಸ್ಟ್ ಹೆಸರಿನ ವಿನ್ಯಾಸಗಳಿಗೆ ಅನ್ವಯವಾಗಬಾರದು</translation> <translation id="1313457536529613143">ಪರದೆಯು ಮಸುಕಾಗಿರುವ ಸಂದರ್ಭದಲ್ಲಿ ಬಳಕೆದಾರರ ಚಟುವಟಿಕೆಯನ್ನು ಗಮನಿಸುತ್ತಿರುವಾಗ ಅಥವಾ ಪರದೆಯನ್ನು ಆಫ್ ಮಾಡಿದ ತಕ್ಷಣ ಕೆಲವೇ ಸಮಯ ನಂತರ ಯಾವ ಪರದೆ ಮಸುಕು ವಿಳಂಬವನ್ನು ಅಳತೆ ಮಾಡಲಾಗಿದೆ ಎಂಬುದರ ಮೂಲಕ ಪ್ರತಿಶತವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. @@ -137,15 +137,15 @@ <translation id="1426410128494586442">ಹೌದು</translation> <translation id="1427655258943162134">ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ನ ವಿಳಾಸ ಅಥವಾ URL</translation> <translation id="1432194160771348078"> - ಬಳಕೆದಾರರ ಸಂವಹನ ಇಲ್ಲದೆಯೇ ಲಾಗಿನ್ ಪರದೆಯಲ್ಲಿ ನಿಶ್ಯಬ್ಧವಾಗಿ ಸ್ಥಾಪಿಸಲಾಗಿರುವ ಮತ್ತು ಅಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಾಗದಿರುವ ಅಪ್ಲಿಕೇಶನ್ಗಳ ಪಟ್ಟಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. ಅಪ್ಲಿಕೇಶನ್ಗಳು ವಿನಂತಿಸಿರುವ ಎಲ್ಲಾ ಅನುಮತಿಗಳನ್ನು ಬಳಕೆದಾರರ ಸಂವಹನ ಇಲ್ಲದೆಯೇ, ಅಪ್ಲಿಕೇಶನ್ನ ಭವಿಷ್ಯದ ಆವೃತ್ತಿಗಳು ವಿನಂತಿಸಿರುವ ಯಾವುದೇ ಹೆಚ್ಚುವರಿ ಅನುಮತಿಗಳನ್ನು ಒಳಗೊಂಡು ಸುವ್ಯಕ್ತವಾಗಿ ಅನುಮತಿಸಲಾಗುತ್ತದೆ. + ಬಳಕೆದಾರರ ಸಂವಹನ ಇಲ್ಲದೆಯೇ ಲಾಗಿನ್ ಪರದೆಯಲ್ಲಿ ನಿಶ್ಯಬ್ಧವಾಗಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿರುವ ಮತ್ತು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗದಿರುವ ಅಪ್ಲಿಕೇಶನ್ಗಳ ಪಟ್ಟಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. ಅಪ್ಲಿಕೇಶನ್ಗಳು ವಿನಂತಿಸಿರುವ ಎಲ್ಲಾ ಅನುಮತಿಗಳನ್ನು ಬಳಕೆದಾರರ ಸಂವಹನ ಇಲ್ಲದೆಯೇ, ಅಪ್ಲಿಕೇಶನ್ನ ಭವಿಷ್ಯದ ಆವೃತ್ತಿಗಳು ವಿನಂತಿಸಿರುವ ಯಾವುದೇ ಹೆಚ್ಚುವರಿ ಅನುಮತಿಗಳನ್ನು ಒಳಗೊಂಡು ಸುವ್ಯಕ್ತವಾಗಿ ಅನುಮತಿಸಲಾಗುತ್ತದೆ. - ಸುರಕ್ಷತೆ ಮತ್ತು ಗೌಪ್ಯತೆ ಕಾರಣಗಳಿಗಾಗಿ, ಈ ನೀತಿಯನ್ನು ಬಳಸಿಕೊಂಡು ವಿಸ್ತರಣೆಗಳನ್ನು ಸ್ಥಾಪಿಸಲು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ ಎಂಬುದನ್ನು ಗಮನಿಸಿ. ಇದಲ್ಲದೆ, ಸ್ಥಿರ ಚಾನಲ್ನಲ್ಲಿರುವ ಸಾಧನಗಳು <ph name="PRODUCT_NAME" />ಒಟ್ಟುಗೂಡಿಸಲಾದ ಶ್ವೇತಪಟ್ಟಿಯಲ್ಲಿರುವ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಮಾತ್ರ ಸ್ಥಾಪಿಸುತ್ತವೆ. ಈ ಷರತ್ತುಗಳಿಗೆ ಅನುಗುಣವಾಗಿಲ್ಲದ ಯಾವುದೇ ಅಂಶಗಳು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತವೆ. + ಸುರಕ್ಷತೆ ಮತ್ತು ಗೌಪ್ಯತೆ ಕಾರಣಗಳಿಗಾಗಿ, ಈ ನೀತಿಯನ್ನು ಬಳಸಿಕೊಂಡು ವಿಸ್ತರಣೆಗಳನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ ಎಂಬುದನ್ನು ಗಮನಿಸಿ. ಇದಲ್ಲದೆ, ಸ್ಥಿರ ಚಾನಲ್ನಲ್ಲಿರುವ ಸಾಧನಗಳು <ph name="PRODUCT_NAME" />ಒಟ್ಟುಗೂಡಿಸಲಾದ ಶ್ವೇತಪಟ್ಟಿಯಲ್ಲಿರುವ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಮಾತ್ರ ಇನ್ಸ್ಟಾಲ್ ಮಾಡುತ್ತವೆ. ಈ ಷರತ್ತುಗಳಿಗೆ ಅನುಗುಣವಾಗಿಲ್ಲದ ಯಾವುದೇ ಅಂಶಗಳು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತವೆ. - ಈ ಹಿಂದೆ ಬಲವಂತವಾಗಿ ಸ್ಥಾಪಿಸಲಾಗಿರುವ ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಈ ಪಟ್ಟಿಯಿಂದ ತೆಗೆದುಹಾಕಿದರೆ, ಅದನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ <ph name="PRODUCT_NAME" /> ಅಸ್ಥಾಪಿಸಲಾಗುತ್ತದೆ. + ಈ ಹಿಂದೆ ಬಲವಂತವಾಗಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿರುವ ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಈ ಪಟ್ಟಿಯಿಂದ ತೆಗೆದುಹಾಕಿದರೆ, ಅದನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ <ph name="PRODUCT_NAME" /> ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗುತ್ತದೆ. - ನೀತಿಯ ಪ್ರತಿ ಪಟ್ಟಿ ಐಟಂ ವಿಸ್ತರಣೆ ಐಡಿ ಮತ್ತು ಅಲ್ಪವಿರಾಮ (<ph name="SEMICOLON" />) ದಿಂದ ಪ್ರತ್ಯೇಕಿತವಾಗಿರುವ "ಅಪ್ಡೇಟ್" URL ಒಳಗೊಂಡಿರುವ ಸ್ಟ್ರಿಂಗ್ ಆಗಿರುತ್ತದೆ.ವಿಸ್ತರಣೆ ಐಡಿ ಎನ್ನುವುದು ಡೆವಲಪರ್ ಮೋಡ್ನಲ್ಲಿರುವಾಗ, ಉದಾಹರಣೆಗೆ <ph name="CHROME_EXTENSIONS_LINK" /> ನಲ್ಲಿ ಕಂಡುಬರುವ 32-ಅಕ್ಷರದ ಸ್ಟ್ರಿಂಗ್ ಆಗಿರುತ್ತದೆ. <ph name="LINK_TO_EXTENSION_DOC1" /> ನಲ್ಲಿ ವಿವರಿಸಿರುವ ಪ್ರಕಾರವಾಗಿ "ಅಪ್ಡೇಟ್" URL ಎನ್ನುವುದು ಅಪ್ಡೇಟ್ ಮ್ಯಾನಿಫೆಸ್ಟ್ XML ದಾಖಲೆಗೆ ಗುರಿಮಾಡಬೇಕು. ಈ ನೀತಿಯಲ್ಲಿ ಹೊಂದಿಸಿರುವ "ಅಪ್ಡೇಟ್" URL ಅನ್ನು ಪ್ರಾರಂಭಿಕ ಸ್ಥಾಪನೆಗೆ ಮಾತ್ರ ಬಳಸಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ಗಮನದಲ್ಲಿರಿಸಿಕೊಳ್ಳಿ; ವಿಸ್ತರಣೆಯ ನಂತರದ ಅಪ್ಡೇಟ್ಗಳು ವಿಸ್ತರಣೆ ಮ್ಯಾನಿಫೆಸ್ಟ್ನಲ್ಲಿ ಸೂಚಿಸಿದ ಅಪ್ಡೇಟ್ URL ಅನ್ನು ಬಳಸಿಕೊಳ್ಳುತ್ತವೆ. + ನೀತಿಯ ಪ್ರತಿ ಪಟ್ಟಿ ಐಟಂ ವಿಸ್ತರಣೆ ಐಡಿ ಮತ್ತು ಅಲ್ಪವಿರಾಮ (<ph name="SEMICOLON" />) ದಿಂದ ಪ್ರತ್ಯೇಕಿತವಾಗಿರುವ "ಅಪ್ಡೇಟ್" URL ಒಳಗೊಂಡಿರುವ ಸ್ಟ್ರಿಂಗ್ ಆಗಿರುತ್ತದೆ.ವಿಸ್ತರಣೆ ಐಡಿ ಎನ್ನುವುದು ಡೆವಲಪರ್ ಮೋಡ್ನಲ್ಲಿರುವಾಗ, ಉದಾಹರಣೆಗೆ <ph name="CHROME_EXTENSIONS_LINK" /> ನಲ್ಲಿ ಕಂಡುಬರುವ 32-ಅಕ್ಷರದ ಸ್ಟ್ರಿಂಗ್ ಆಗಿರುತ್ತದೆ. <ph name="LINK_TO_EXTENSION_DOC1" /> ನಲ್ಲಿ ವಿವರಿಸಿರುವ ಪ್ರಕಾರವಾಗಿ "ಅಪ್ಡೇಟ್" URL ಎನ್ನುವುದು ಅಪ್ಡೇಟ್ ಮ್ಯಾನಿಫೆಸ್ಟ್ XML ದಾಖಲೆಗೆ ಗುರಿಮಾಡಬೇಕು. ಈ ನೀತಿಯಲ್ಲಿ ಹೊಂದಿಸಿರುವ "ಅಪ್ಡೇಟ್" URL ಅನ್ನು ಪ್ರಾರಂಭಿಕ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ಮಾತ್ರ ಬಳಸಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ಗಮನದಲ್ಲಿರಿಸಿಕೊಳ್ಳಿ; ವಿಸ್ತರಣೆಯ ನಂತರದ ಅಪ್ಡೇಟ್ಗಳು ವಿಸ್ತರಣೆ ಮ್ಯಾನಿಫೆಸ್ಟ್ನಲ್ಲಿ ಸೂಚಿಸಿದ ಅಪ್ಡೇಟ್ URL ಅನ್ನು ಬಳಸಿಕೊಳ್ಳುತ್ತವೆ. - ಉದಾಹರಣೆಗೆ, <ph name="EXTENSION_POLICY_EXAMPLE" /> ಪ್ರಮಾಣಿತ Chrome ವೆಬ್ ಅಂಗಡಿ "ಅಪ್ಡೇಟ್" URL ನಿಂದ <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" /> ಅಪ್ಲಿಕೇಶನ್ ಸ್ಥಾಪಿಸುತ್ತದೆ. ವಿಸ್ತರಣೆಗಳನ್ನು ಹೋಸ್ಟ್ ಮಾಡುವ ಕುರಿತು ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗೆ, ಇದನ್ನು ನೋಡಿ: <ph name="LINK_TO_EXTENSION_DOC2" />.</translation> + ಉದಾಹರಣೆಗೆ, <ph name="EXTENSION_POLICY_EXAMPLE" /> ಪ್ರಮಾಣಿತ Chrome ವೆಬ್ ಅಂಗಡಿ "ಅಪ್ಡೇಟ್" URL ನಿಂದ <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" /> ಅಪ್ಲಿಕೇಶನ್ ಇನ್ಸ್ಟಾಲ್ ಮಾಡುತ್ತದೆ. ವಿಸ್ತರಣೆಗಳನ್ನು ಹೋಸ್ಟ್ ಮಾಡುವ ಕುರಿತು ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗೆ, ಇದನ್ನು ನೋಡಿ: <ph name="LINK_TO_EXTENSION_DOC2" />.</translation> <translation id="1435659902881071157">ಸಾಧನದ ಹಂತದ ನೆಟ್ವರ್ಕ್ ಕಾನ್ಫಿಗರೇನ್</translation> <translation id="1438739959477268107">ಡಿಫಾಲ್ಟ್ ಕೀ ರಚನೆ ಸೆಟ್ಟಿಂಗ್</translation> <translation id="1454846751303307294">JavaScript ಅನ್ನು ಚಾಲನೆ ಮಾಡಲು ಅನುಮತಿಸದೆ ಇರುವ ಸೈಟ್ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವಂತಹ url ನಮೂನೆಗಳ ಪಟ್ಟಿಯನ್ನು ಹೊಂದಿಸುವಂತೆ ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೆ ಬಿಟ್ಟರೆ ಜಾಗತಿಕ ಡಿಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು 'DefaultJavaScriptSetting' ನೀತಿಯಿಂದ ಹೊಂದಿಸಿದ್ದರೆ ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಅಥವಾ ಬಳಕೆದಾರರ ವೈಯಕ್ತಿಕ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.</translation> @@ -248,7 +248,7 @@ ನೀತಿಯನ್ನು ನಿಜ ಎಂಬುದಕ್ಕೆ ಹೊಂದಿಸಿದರೆ, ಶೂನ್ಯ ವಿಳಂಬದ ಜೊತೆಗೆ ಸ್ವಯಂ ಪ್ರಾರಂಭಿಸಿರುವ ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್ನ ಅಗತ್ಯ required_platform_version ಮ್ಯಾನಿಫೆಸ್ಟ್ ಮೌಲ್ಯವನ್ನು ಸ್ವಯಂ ಅಪ್ಡೇಟ್ ಗುರಿಯ ಆವೃತ್ತಿ ಪೂರ್ವಪ್ರತ್ಯಯವಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. - ನೀತಿಯನ್ನು ಕಾನ್ಘಿಗರ್ ಮಾಡದೇ ಇದ್ದರೆ ಅಥವಾ ತಪ್ಪು ಎಂಬುದಕ್ಕೆ ಹೊಂದಿಸಿದ್ದರೆ, required_platform_version ಮ್ಯಾನಿಫೆಸ್ಟ್ ಅನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಸ್ವಯಂ ಅಪ್ಡೇಟ್ ಸಾಮಾನ್ಯದಂತೆ ಮುಂದುವರಿಯುತ್ತದೆ. + ನೀತಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡದೇ ಇದ್ದರೆ ಅಥವಾ ತಪ್ಪು ಎಂಬುದಕ್ಕೆ ಹೊಂದಿಸಿದ್ದರೆ, required_platform_version ಮ್ಯಾನಿಫೆಸ್ಟ್ ಅನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಸ್ವಯಂ ಅಪ್ಡೇಟ್ ಸಾಮಾನ್ಯದಂತೆ ಮುಂದುವರಿಯುತ್ತದೆ. ಎಚ್ಚರಿಕೆ: <ph name="PRODUCT_OS_NAME" /> ಆವೃತ್ತಿಯ ನಿಯಂತ್ರಣವನ್ನು ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್ಗೆ ನಿಯೋಜಿಸಲು ಶಿಫಾರಸು ಮಾಡಲಾಗಿಲ್ಲ ಏಕೆಂದರೆ ಇದು ಸಾಫ್ಟ್ವೇರ್ ಅಪ್ಡೇಟ್ಗಳು ಮತ್ತು ಪ್ರಮುಖವಾದ ಭದ್ರತೆ ಪರಿಹಾರಗಳನ್ನು ಸಾಧನವು ಸ್ವೀಕರಿಸುವುದನ್ನು ತಡೆಗಟ್ಟಬಹುದು. <ph name="PRODUCT_OS_NAME" /> ಆವೃತ್ತಿಯ ನಿಯಂತ್ರಣವನ್ನು ನಿಯೋಜಿಸುವುದು ಬಳಕೆದಾರರು ಅಪಾಯಕ್ಕೆ ಈಡಾಗಬಹುದು.</translation> <translation id="1675002386741412210">ಇದನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ:</translation> @@ -482,7 +482,7 @@ <translation id="2240879329269430151">ಪಾಪ್-ಅಪ್ಗಳನ್ನು ತೋರಿಸಲು ವೆಬ್ಸೈಟ್ಗಳಿಗೆ ಅವಕಾಶವಿದೆಯೇ ಎಂಬುದನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಅನುಮತಿ ನೀಡುತ್ತದೆ. ಪಾಪ್ಅಪ್ಗಳನ್ನು ತೋರಿಸುವುದನ್ನು ಎಲ್ಲ ವೆಬ್ಸೈಟ್ಗಳಿಗೂ ಅನುಮತಿಸಬಹುದು ಅಥವಾ ನಿರಾಕರಿಸಬಹುದಾಗಿದೆ. ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೇ ಬಿಟ್ಟಲ್ಲಿ, 'BlockPopups' ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಬಳಕೆದಾರರು ಬದಲಿಸಬಹುದಾಗಿದೆ.</translation> <translation id="2255326053989409609">ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವುದರಿಂದ ವೆಬ್ ಪುಟಗಳು ಗ್ರಾಫಿಕ್ಸ್ ಪ್ರಕ್ರಿಯೆ ಯೂನಿಟ್ (GPU) ನ ಪ್ರವೇಶವನ್ನು ಪಡೆಯುವುದನ್ನು ತಡೆಯುತ್ತದೆ. ನಿರ್ದಿಷ್ಟವಾಗಿ, ವೆಬ್ ಪುಟಗಳು WebGL API ಅನ್ನು ಪ್ರವೇಶಿಸಲಾಗುವುದಿಲ್ಲ ಮತ್ತು ಪ್ಲಗಿನ್ಗಳಿಗೆ Pepper 3D API ಅನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ. - ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವುದರಿಂದ ಸಂಭವನೀಯವಾಗಿ ವೆಬ್ ಪುಟಗಳನ್ನು WebGL API ಬಳಸಲು ಮತ್ತು ಪ್ಲಗಿನ್ಗಳಿಗೆ Pepper 3D API ಅನ್ನು ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ. ಈ APIಗಳನ್ನು ಬಳಸುವ ಸಲುವಾಗಿ ಬ್ರೌಸರ್ನ ಡಿಫಾಲ್ಟ್ ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ಆದೇಶ ಸಾಲಿನ ವಾದಗಳ ಅಗತ್ಯ ಇನ್ನೂ ಇರಬಹುದು. + ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವುದರಿಂದ ಸಂಭವನೀಯವಾಗಿ ವೆಬ್ ಪುಟಗಳನ್ನು WebGL API ಬಳಸಲು ಮತ್ತು ಪ್ಲಗಿನ್ಗಳಿಗೆ Pepper 3D API ಅನ್ನು ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ. ಈ APIಗಳನ್ನು ಬಳಸುವ ಸಲುವಾಗಿ ಬ್ರೌಸರ್ನ ಡಿಫಾಲ್ಟ್ ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ಕಮಾಂಡ್ ಸಾಲಿನ ವಾದಗಳ ಅಗತ್ಯ ಇನ್ನೂ ಇರಬಹುದು. HardwareAccelerationModeEnabled ಅನ್ನು ತಪ್ಪು ಎಂದು ಹೊಂದಿಸಿದ್ದರೆ, Disable3DAPIಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಇದು Disable3DAPIಗಳನ್ನು ಸರಿ ಎಂದು ಹೊಂದಿಸುವುದಕ್ಕೆ ಸಮವಾಗಿರುತ್ತದೆ.</translation> <translation id="2269319728625047531">ಸೈನ್-ಇನ್ ಸಮಯದಲ್ಲಿ ಸಿಂಕ್ ಸಮ್ಮತಿಯನ್ನು ಪ್ರದರ್ಶಿಸಲು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> @@ -788,7 +788,7 @@ TLS ಡೊಮೇನ್-ಪರಿಧಿ ಪ್ರಮಾಣಪತ್ರಗಳ ವಿಸ್ತರಣೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬೇಕೇ ಎಂಬುದನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. ಪರೀಕ್ಷಿಸುವ ಸಲುವಾಗಿ TLS ಡೊಮೇನ್-ಪರಿಧಿ ಪ್ರಮಾಣಪತ್ರಗಳ ವಿಸ್ತರಣೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಈ ಪ್ರಾಯೋಗಿಕ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಭವಿಷ್ಯದಲ್ಲಿ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ.</translation> -<translation id="2957506574938329824">Web ಬ್ಲೂಟೂತ್ API ಮೂಲಕ ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳಿಗೆ ಪ್ರವೇಶ ವಿನಂತಿಸಲು ಯಾವುದೇ ಸೈಟ್ ಅನ್ನು ಅನುಮತಿಸಬೇಡಿ</translation> +<translation id="2957506574938329824">ವೆಬ್ ಬ್ಲೂಟೂತ್ API ಮೂಲಕ ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳಿಗೆ ಪ್ರವೇಶ ವಿನಂತಿಸಲು ಯಾವುದೇ ಸೈಟ್ ಅನ್ನು ಅನುಮತಿಸಬೇಡಿ</translation> <translation id="2957513448235202597"><ph name="HTTP_NEGOTIATE" /> ಪ್ರಮಾಣೀಕರಣಕ್ಕಾಗಿ ಖಾತೆ ಪ್ರಕಾರ</translation> <translation id="2959469725686993410">ಸಮಯ ವಲಯವನ್ನು ಪರಿಹರಿಸುವಾಗ ಸರ್ವರ್ಗೆ ಯಾವಾಗಲೂ ವೈಫೈ ಪ್ರವೇಶ-ಬಿಂದುಗಳನ್ನು ಕಳುಹಿಸಿ</translation> <translation id="2959898425599642200">ಪ್ರಾಕ್ಸಿ ಬೈಪಾಸ್ ನಿಯಮಗಳು</translation> @@ -808,7 +808,7 @@ ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದಿರುವಾಗ ಹೆಚ್ಚು-ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ನೀತಿಗಳ ವರ್ತನೆಯು ಬಾಧಿತವಾಗದೇ ಉಳಿಯುತ್ತದೆ.</translation> <translation id="2987155890997901449">ARC ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> -<translation id="2987227569419001736">Web ಬ್ಲೂಟೂತ್ API ನ ನಿಯಂತ್ರಣ ಬಳಕೆ</translation> +<translation id="2987227569419001736">ವೆಬ್ ಬ್ಲೂಟೂತ್ API ನ ನಿಯಂತ್ರಣ ಬಳಕೆ</translation> <translation id="3016255526521614822"><ph name="PRODUCT_OS_NAME" /> ಪರದೆ ಲಾಕ್ನಲ್ಲಿ ಶ್ವೇತಪಟ್ಟಿ ಟಿಪ್ಪಣಿ-ತೆಗೆದುಕೊಳ್ಳುವ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ</translation> <translation id="3021562480854470924">ಇಷ್ಟು ಸಂಖ್ಯೆಯಷ್ಟು ಮೈಲಿಗಲ್ಲುಗಳ ಹಿಂತಿರುಗುವಿಕೆಯನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ</translation> <translation id="3030000825273123558">ಮಾಪನಗಳ ವರದಿಗಾರಿಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> @@ -875,7 +875,7 @@ ಹೆಚ್ಚಿನ ವಿವರವಾದ ಉದಾಹರಣೆಗಳಿಗಾಗಿ, ಭೇಟಿ ನೀಡಿ: <ph name="PROXY_HELP_URL" />. - ನೀವು ಈ ಸೆಟ್ಟಿಂಗ್ ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, <ph name="PRODUCT_NAME" /> ಮತ್ತು ARC-ಅಪ್ಲಿಕೇಶನ್ಗಳು ಆದೇಶ ಸಾಲಿನಿಂದ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಎಲ್ಲಾ ಪ್ರಾಕ್ಸಿ-ಸಂಬಂಧಿತ ಆಯ್ಕೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುವುದು. + ನೀವು ಈ ಸೆಟ್ಟಿಂಗ್ ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, <ph name="PRODUCT_NAME" /> ಮತ್ತು ARC-ಅಪ್ಲಿಕೇಶನ್ಗಳು ಕಮಾಂಡ್ ಸಾಲಿನಿಂದ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಎಲ್ಲಾ ಪ್ರಾಕ್ಸಿ-ಸಂಬಂಧಿತ ಆಯ್ಕೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುವುದು. ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೆ ಹಾಗೇ ಬಿಡುವುದರಿಂದ ಬಳಕೆದಾರರಿಗೆ ಸ್ವಂತವಾಗಿ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿಕೊಳ್ಳಲು ಅವಕಾಶ ನೀಡುತ್ತದೆ.</translation> <translation id="3205825995289802549">ಮೊದಲ ರನ್ ಸಮಯದಲ್ಲಿ ಮೊದಲ ಬ್ರೌಸರ್ ವಿಂಡೊ ಗರಿಷ್ಠಗೊಳಿಸು</translation> @@ -885,7 +885,7 @@ ಈ ನೀತಿಯನ್ನು ತಪ್ಪು ಎಂದು ಹೊಂದಿಸಿದ್ದರೆ, ಅಂತರ್-ನಿರ್ಮಿತ DNS ಕ್ಲೈಂಟ್ ಅನ್ನು ಎಂದಿಗೂ ಬಳಸಲಾಗುವುದಿಲ್ಲ. - ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೇ ಬಿಟ್ಟಲ್ಲಿ, ಬಳಕೆದಾರರು ಅಂತರ್-ನಿರ್ಮಿತ DNS ಕ್ಲೈಂಟ್ ಅನ್ನು ಆದೇಶ-ಸಾಲು ಫ್ಲ್ಯಾಗ್ ನಿರ್ದಿಷ್ಟಪಡಿಸುವಿಕೆಯಿಂದ ಅಥವಾ chrome://flags ಸಂಪಾದಿಸುವಿಕೆಯಿಂದ ಬಳಸಲಾಗಿದೆಯೇ ಎಂಬುದನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.</translation> + ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೇ ಬಿಟ್ಟಲ್ಲಿ, ಬಳಕೆದಾರರು ಅಂತರ್-ನಿರ್ಮಿತ DNS ಕ್ಲೈಂಟ್ ಅನ್ನು ಕಮಾಂಡ್-ಸಾಲು ಫ್ಲ್ಯಾಗ್ ನಿರ್ದಿಷ್ಟಪಡಿಸುವಿಕೆಯಿಂದ ಅಥವಾ chrome://flags ಎಡಿಟ್ ಮಾಡುವಿಕೆಯಿಂದ ಬಳಸಲಾಗಿದೆಯೇ ಎಂಬುದನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.</translation> <translation id="3214164532079860003">ಸಕ್ರಿಯಗೊಳಿಸಿದಲ್ಲಿ ಪ್ರಸ್ತುತ ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ನಿಂದ ಮುಖಪುಟವನ್ನು ಆಮದು ಮಾಡುವಂತೆ ಈ ನೀತಿಯು ಆಗ್ರಹಿಸುತ್ತದೆ. ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದಲ್ಲಿ, ಮುಖಪುಟವನ್ನು ಆಮದುಗೊಳಿಸುವುದಿಲ್ಲ. ಇದನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ, ಎಲ್ಲಿಂದ ಆಮದು ಮಾಡಬೇಕೆಂದು ಬಳಕೆದಾರ ಕೇಳಬಹುದು, ಅಥವಾ ಆಮದು ಮಾಡುವುದು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸಂಭವಿಸಬಹುದು.</translation> <translation id="3219421230122020860">ಅದೃಶ್ಯ ಮೋಡ್ ಲಭ್ಯವಿದೆ</translation> <translation id="3220624000494482595">ಒಂದು ವೇಳೆ kiosk ಅಪ್ಲಿಕೇಶನ್ Android ಅಪ್ಲಿಕೇಶನ್ ಆಗಿದ್ದರೆ, ಒಂದು ವೇಳೆ ಈ ನೀತಿಯನ್ನು <ph name="TRUE" /> ಗೆ ಹೊಂದಿಸಿದ್ದರೂ, ಅದು <ph name="PRODUCT_OS_NAME" /> ನ ಮೇಲೆ ಯಾವುದೇ ನಿಯಂತ್ರಣ ಹೊಂದಿರುವುದಿಲ್ಲ.</translation> @@ -944,7 +944,7 @@ ಇನ್ನೂ ಹೊಸ ಇನ್ಲೈನ್ ಸೈನ್ ಇನ್ ಫ್ಲೋ ಜೊತೆಗೆ ಹೊಂದಾಣಿಕೆಯಾಗದ SSO ಗಳನ್ನು ಬಳಸುತ್ತಿರುವ ಎಂಟರ್ಪ್ರೈಸ್ ಗ್ರಾಹಕರಿಗೆ ಈ ಸೆಟ್ಟಿಂಗ್ ಉಪಯುಕ್ತವಾಗಿದೆ. ನೀವು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, ಹಳೆಯ ವೆಬ್-ಆಧಾರಿತ ಸೈನ್ ಇನ್ ಫ್ಲೋ ಬಳಸಲಾಗುತ್ತದೆ. - ನೀವು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ ಅಥವಾ ಅದನ್ನು ಹೊಂದಿಸದೇ ಹಾಗೇ ಬಿಟ್ಟರೆ, ಹೊಸ ಇನ್ಲೈನ್ ಸೈನ್ ಇನ್ ಫ್ಲೋ ಅನ್ನು ಡಿಫಾಲ್ಟ್ ಆಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಕಮ್ಯಾಂಡ್ ಲೈನ್ ಫ್ಲ್ಯಾಗ್ ಆದ --enable-web-based-signin ಮೂಲಕ ಬಳಕೆದಾರರಿಗೆ ಇನ್ನೂ ಸಹ ಹಳೆಯ ವೆಬ್-ಆಧಾರಿತ ಸೈನ್ ಇನ್ ಫ್ಲೋ ಸಕ್ರಿಯಗೊಳಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. + ನೀವು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ ಅಥವಾ ಅದನ್ನು ಹೊಂದಿಸದೇ ಹಾಗೇ ಬಿಟ್ಟರೆ, ಹೊಸ ಇನ್ಲೈನ್ ಸೈನ್ ಇನ್ ಫ್ಲೋ ಅನ್ನು ಡಿಫಾಲ್ಟ್ ಆಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ಕಮಾಂಡ್ ಲೈನ್ ಫ್ಲ್ಯಾಗ್ ಆದ --enable-web-based-signin ಮೂಲಕ ಬಳಕೆದಾರರಿಗೆ ಇನ್ನೂ ಸಹ ಹಳೆಯ ವೆಬ್-ಆಧಾರಿತ ಸೈನ್ ಇನ್ ಫ್ಲೋ ಸಕ್ರಿಯಗೊಳಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಎಲ್ಲಾ SSO ಸೈನ್ಇನ್ ಫ್ಲೋಗಳನ್ನು ಇನ್ಲೈನ್ ಸೈನ್ಇನ್ ಫ್ಲೋ ಸಂಪೂರ್ಣವಾಗಿ ಬೆಂಬಲಿಸಿದಾಗ ಭವಿಷ್ಯದಲ್ಲಿ ಪ್ರಾಯೋಗಿಕ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ.</translation> <translation id="3449886121729668969"><ph name="PRODUCT_NAME" /> ಗಾಗಿ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತದೆ. ಈ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್ಗಳು ARC-ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಕೂಡಾ ಲಭ್ಯವಾಗುತ್ತದೆ. @@ -1035,7 +1035,7 @@ ಹೆಚ್ಚಿನ ವಿವರವಾದ ಉದಾಹರಣೆಗಳಿಗಾಗಿ, ಭೇಟಿ ನೀಡಿ: <ph name="PROXY_HELP_URL" />. - ನೀವು ಈ ಸೆಟ್ಟಿಂಗ್ ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, <ph name="PRODUCT_NAME" /> ಮತ್ತು ARC-ಅಪ್ಲಿಕೇಶನ್ಗಳು ಆದೇಶ ಸಾಲಿನಿಂದ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಎಲ್ಲಾ ಪ್ರಾಕ್ಸಿ-ಸಂಬಂಧಿತ ಆಯ್ಕೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುವುದು. + ನೀವು ಈ ಸೆಟ್ಟಿಂಗ್ ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, <ph name="PRODUCT_NAME" /> ಮತ್ತು ARC-ಅಪ್ಲಿಕೇಶನ್ಗಳು ಕಮಾಂಡ್ ಸಾಲಿನಿಂದ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಎಲ್ಲಾ ಪ್ರಾಕ್ಸಿ-ಸಂಬಂಧಿತ ಆಯ್ಕೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗುವುದು. ಈ ನೀತಿಗಳನ್ನು ಹೊಂದಿಸದೆ ಹಾಗೇ ಬಿಡುವುದರಿಂದ ಬಳಕೆದಾರರಿಗೆ ಸ್ವಂತವಾಗಿ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿಕೊಳ್ಳಲು ಅವಕಾಶ ನೀಡುತ್ತದೆ.</translation> <translation id="3758249152301468420">ಡೆವಲಪರ್ ಪರಿಕರಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸು</translation> @@ -1117,9 +1117,9 @@ <translation id="3866249974567520381">ವಿವರಣೆ</translation> <translation id="3868347814555911633">ಈ ನೀತಿಯು ಕೇವಲ ಚಿಲ್ಲರೆ ಮೋಡ್ನಲ್ಲಿ ಮಾತ್ರ ಸಕ್ರಿಯವಾಗಿರುತ್ತದೆ. - ಚಿಲ್ಲರೆ ಮೋಡ್ನಲ್ಲಿನ ಸಾಧನಗಳಿಗಾಗಿ ಡೆಮೊ ಬಳಕೆದಾರರಿಗಾಗಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸ್ಥಾಪಿಸಿದ ವಿಸ್ತರಣೆಗಳ ಪಟ್ಟಿಗಳು. ಈ ವಿಸ್ತರಣೆಗಳನ್ನು ಸಾಧನದಲ್ಲಿ ಉಳಿಸಲಾಗಿದೆ ಮತ್ತು ಸ್ಥಾಪನೆಯ ನಂತರ ಆಫ್ಲೈನ್ನಲ್ಲಿರುವಾಗ ಸ್ಥಾಪಿಸಬಹುದಾಗಿದೆ. + ಚಿಲ್ಲರೆ ಮೋಡ್ನಲ್ಲಿನ ಸಾಧನಗಳಿಗಾಗಿ ಡೆಮೊ ಬಳಕೆದಾರರಿಗಾಗಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿದ ವಿಸ್ತರಣೆಗಳ ಪಟ್ಟಿಗಳು. ಈ ವಿಸ್ತರಣೆಗಳನ್ನು ಸಾಧನದಲ್ಲಿ ಉಳಿಸಲಾಗಿದೆ ಮತ್ತು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿದ ನಂತರ ಆಫ್ಲೈನ್ನಲ್ಲಿರುವಾಗ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಬಹುದಾಗಿದೆ. - ಪ್ರತಿ ಪಟ್ಟಿಯ ನಮೂದನೆಯು ನಿಘಂಟು ಒಳಗೊಂಡಿದ್ದು 'ವಿಸ್ತರಣೆಯ-id' ಕ್ಷೇತ್ರ ಮತ್ತು 'ಅಪ್ಡೇಟ್ ಆದ-url' ಕ್ಷೇತ್ರದಲ್ಲಿ ಇದರ ಅಪ್ಡೇಟ್ URL ನಲ್ಲಿ ವಿಸ್ತರಣಾ ID ಅನ್ನು ಒಳಗೊಂಡಿರಬೇಕು.</translation> + ಪ್ರತಿ ಪಟ್ಟಿಯ ನಮೂದನೆಯು ನಿಘಂಟು ಒಳಗೊಂಡಿದ್ದು 'ವಿಸ್ತರಣೆಯ-id' ಕ್ಷೇತ್ರ ಮತ್ತು 'ಅಪ್ಡೇಟ್-url' ಕ್ಷೇತ್ರದಲ್ಲಿ ಇದರ ಅಪ್ಡೇಟ್ URL ನಲ್ಲಿ ವಿಸ್ತರಣಾ ID ಅನ್ನು ಒಳಗೊಂಡಿರಬೇಕು.</translation> <translation id="3874773863217952418">ಹುಡುಕಲು ಟ್ಯಾಪ್ ಮಾಡಿ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> <translation id="3877517141460819966">ಸಂಯೋಜಿತ ಎರಡನೆಯ ಅಂಶ ದೃಢೀಕರಣ ಮೋಡ್</translation> <translation id="3879208481373875102">ಒತ್ತಾಯಪೂರ್ವಕವಾಗಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿದ ವೆಬ್ ಆ್ಯಪ್ಗಳ ಪಟ್ಟಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ</translation> @@ -1484,7 +1484,7 @@ ಒಂದು ವೇಳೆ ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೇ ಬಿಟ್ಟರೆ, ದೊಡ್ಡ ಕರ್ಸರ್ ಅನ್ನು ಪ್ರಾರಂಭದಲ್ಲಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುವುದು ಆದರೆ ಬಳಕೆದಾರರಿಂದ ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಸಕ್ರಿಯಗೊಳಿಸಬಹುದಾಗಿದೆ.</translation> <translation id="4802905909524200151"><ph name="TPM_FIRMWARE_UPDATE_TPM" /> ಫರ್ಮ್ವೇರ್ ಅಪ್ಡೇಟ್ ವರ್ತನೆಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ</translation> <translation id="4807950475297505572">ಸಾಕಷ್ಟು ಖಾಲಿ ಸ್ಥಳವಾಗುವವರೆಗೆ ಇತ್ತೀಚೆಗೆ ಕಡಿಮೆ ಬಳಸಲಾದ ಬಳಕೆದಾರರನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ</translation> -<translation id="4815725774537609998">ಈ ನೀತಿಯನ್ನು ಅಸಮ್ಮತಿಸಲಾಗಿದೆ, ಬದಲಾಗಿ ProxyMode ಬಳಸಿ. +<translation id="4815725774537609998">ಈ ನೀತಿಯನ್ನು ತಡೆಹಿಡಿಯಲಾಗಿದೆ, ಬದಲಾಗಿ ProxyMode ಬಳಸಿ. <ph name="PRODUCT_NAME" /> ಮೂಲಕ ಬಳಸಿದ ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬದಲಿಸುವುದರಿಂದ ಬಳಕೆದಾರರನ್ನು ತಡೆಯುತ್ತದೆ. @@ -1497,7 +1497,7 @@ ಹೆಚ್ಚಿನ ವಿವರವಾದ ಉದಾಹರಣೆಗಳಿಗಾಗಿ, ಭೇಟಿ ನೀಡಿ: <ph name="PROXY_HELP_URL" />. - ನೀವು ಈ ಸೆಟ್ಟಿಂಗ್ ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, <ph name="PRODUCT_NAME" /> ಆದೇಶ ಸಾಲಿನಿಂದ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಎಲ್ಲಾ ಪ್ರಾಕ್ಸಿ-ಸಂಬಂಧಿತ ಆಯ್ಕೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸುತ್ತದೆ. + ನೀವು ಈ ಸೆಟ್ಟಿಂಗ್ ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, <ph name="PRODUCT_NAME" /> ಕಮಾಂಡ್ ಸಾಲಿನಿಂದ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಎಲ್ಲಾ ಪ್ರಾಕ್ಸಿ-ಸಂಬಂಧಿತ ಆಯ್ಕೆಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸುತ್ತದೆ. ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೆ ಹಾಗೇ ಬಿಡುವುದರಿಂದ ಬಳಕೆದಾರರಿಗೆ ಸ್ವಂತವಾಗಿ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿಕೊಳ್ಳಲು ಅವಕಾಶ ನೀಡುತ್ತದೆ.</translation> <translation id="4816674326202173458">ಎಂಟರ್ಪ್ರೈಸ್ ಬಳಕೆದಾರರನ್ನು ಪ್ರಾಥಮಿಕ ಮತ್ತು ಎರಡನೆಯ ಬಳಕೆದಾರರಾಗಿರುವಂತೆ ಅನುಮತಿಸಿ (ನಿರ್ವಹಿಸಲ್ಪಡದ ಬಳಕೆದಾರರಿಗಾಗಿ ಡಿಫಾಲ್ಟ್ ನಡವಳಿಕೆ)</translation> @@ -1579,7 +1579,7 @@ <translation id="5147665094011258322">ವಿನಂತಿಗಳಲ್ಲಿ ಬಳಸಲಾದ ಸಾಧನದ ಹೋಸ್ಟ್ ಹೆಸರನ್ನು ನಿರ್ಧರಿಸಿ. ಈ ನೀತಿಯನ್ನು ಖಾಲಿ ಇರುವ ವಾಕ್ಯಕ್ಕೆ ಹೊಂದಿಸಿದರೆ, DHCP ವಿನಂತಿ ಸಂದರ್ಭದಲ್ಲಿ ಅ ವಾಕ್ಯವನ್ನು ಸಾಧನದ ಹೋಸ್ಟ್ ಹೆಸರಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ. ವಾಕ್ಯವು ವೇರಿಯಬಲ್ಗಳಾದ ${ASSET_ID}, ${SERIAL_NUM}, ${MAC_ADDR} ಅನ್ನು ಹೊಂದಿರಬಹುದು ಹೋಸ್ಟ್ ಹೆಸರನ್ನು ಬಳಸುವ ಮೊದಲು ಅವುಗಳನ್ನು ಸಾಧನದಲ್ಲಿ ಮೌಲ್ಯಗಳೊಂದಿಗೆ ಮರುಸ್ಥಾನಗೊಳಿಸಲಾಗುತ್ತದೆ. ಫಲಿತಾಂಶ ಪರ್ಯಾಯವಾಗಿ ಮಾನ್ಯವಾದ ಹೋಸ್ಟ್ ಹೆಸರು ಆಗಿರಬೇಕು (ಪ್ರತಿ RFC ಗೆ 1035, ವಿಭಾಗ 3.1). ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ ಅಥವಾ ಪರ್ಯಾಯ ಮಾಡಿದ ನಂತರ ಮೌಲ್ಯದ ಹೋಸ್ಟ್ ಹೆಸರು ಮಾನ್ಯವಾಗದಿದ್ದರೆ, ಯಾವುದೇ ಹೋಸ್ಟ್ ಹೆಸರು DHCP ವಿನಂತಿಯಲ್ಲಿ ಹೊಂದಿಸಲಾಗುವುದಿಲ್ಲ. </translation> <translation id="5148753489738115745"><ph name="PRODUCT_FRAME_NAME" /> <ph name="PRODUCT_NAME" /> ಅನ್ನು ಪ್ರಾರಂಭಿಸಿದಾಗ ಬಳಸಲಾಗುವ ಹೆಚ್ಚುವರಿ ಪ್ಯಾರಾಮೀಟರ್ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಲು ನಿಮ್ಮನ್ನು ಅನುಮತಿಸುತ್ತದೆ. - ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೇ ಇದ್ದರೆ ಡಿಫಾಲ್ಟ್ ಆದೇಶ ಸಾಲನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.</translation> + ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೇ ಇದ್ದರೆ ಡಿಫಾಲ್ಟ್ ಕಮಾಂಡ್ ಸಾಲನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.</translation> <translation id="5159469559091666409">ಮಿಲಿಸೆಕೆಂಡುಗಳಲ್ಲಿ, ನೆಟ್ವರ್ಕ್ ಪ್ಯಾಕೇಟ್ಗಳ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವುದನ್ನು ಎಷ್ಟು ಬಾರಿ ಕಳುಹಿಸಲಾಗುತ್ತದೆ. ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೇ ಇದ್ದರೆ, ಡಿಫಾಲ್ಟ್ ವಿರಾಮವು 3 ನಿಮಿಷಗಳಾಗಿರುತ್ತದೆ. ಕನಿಷ್ಠ ವಿರಾಮ 30 ಸೆಕೆಂಡುಗಳಾಗಿರುತ್ತದೆ ಮತ್ತು ಗರಿಷ್ಠ ವಿರಾಮ 24 ಗಂಟೆಗಳಾಗಿರುತ್ತದೆ - ಈ ವ್ಯಾಪ್ತಿಯ ಹೊರಗಿನ ಮೌಲ್ಯಗಳನ್ನು ಈ ವ್ಯಾಪ್ತಿಗೆ ಸೇರಿಸಲಾಗುತ್ತದೆ.</translation> @@ -1827,7 +1827,7 @@ ನೀತಿ ಮೌಲ್ಯವನ್ನು ಮಿಲಿಸೆಕುಂಡುಗಳಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು.</translation> <translation id="5809728392451418079">ಸಾಧನ-ಸ್ಥಳೀಯ ಖಾತೆಗಳಿಗಾಗಿ ಪ್ರದರ್ಶನ ಹೆಸರನ್ನು ಹೊಂದಿಸಿ</translation> <translation id="5814301096961727113">ಲಾಗಿನ್ ಪರದೆಯಲ್ಲಿ ಮಾತಿನ ಪ್ರತಿಕ್ರಿಯೆಯ ಡಿಫಾಲ್ಟ್ ಸ್ಥಿತಿಯನ್ನು ಹೊಂದಿಸಿ</translation> -<translation id="5815129011704381141">ನವೀಕರಣದ ನಂತರ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರೀಬೂಟ್ ಮಾಡು</translation> +<translation id="5815129011704381141">ಅಪ್ಡೇಟ್ ನಂತರ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ರೀಬೂಟ್ ಮಾಡು</translation> <translation id="5815353477778354428">ಬಳಕೆದಾರ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು <ph name="PRODUCT_FRAME_NAME" /> ಬಳಸುವ ಡೈರೆಕ್ಟರಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತದೆ. ನೀವು ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸಿದಲ್ಲಿ, <ph name="PRODUCT_FRAME_NAME" /> ಒದಗಿಸಲಾದ ಡೈರೆಕ್ಟರಿಯನ್ನು ಬಳಸುತ್ತದೆ. @@ -1910,7 +1910,7 @@ <translation id="6022948604095165524">ಪ್ರಾರಂಭದಲ್ಲಿನ ಕ್ರಿಯೆ</translation> <translation id="6023030044732320798">ARC ರನ್ಟೈಮ್ಗೆ ನೀಡಲಾಗುವ ನೀತಿಗಳ ಸಮೂಹವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. ಮೌಲ್ಯವು ಮಾನ್ಯವಾದ JSON ಆಗಿರಬೇಕು. - ಈ ಸಾಧನದಲ್ಲಿ ಯಾವ Android ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸ್ಥಾಪಿಸಲಾಗುತ್ತದೆ ಎನ್ನುವುದನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಬಳಸಬಹುದು: + ಈ ಸಾಧನದಲ್ಲಿ ಯಾವ Android ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗುತ್ತದೆ ಎನ್ನುವುದನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಬಳಸಬಹುದು: { "type": "object", @@ -1925,7 +1925,7 @@ "type": "string" }, "installType": { - "description": "ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಹೇಗೆ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗುತ್ತದೆ ಎನ್ನುವುದನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. OPTIONAL: ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ, ಆದರೆ ಬಳಕೆದಾರರು ಅದನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಬಹುದು. ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿರದಿದ್ದರೆ, ಇದು ಡಿಫಾಲ್ಟ್ ಆಗಿರುತ್ತದೆ. PRELOAD: ಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗುತ್ತದೆ, ಆದರೆ ಬಳಕೆದಾರರು ಅದನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಬಹುದು. FORCE_INSTALLED: ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗುತ್ತದೆ, ಆದರೆ ಬಳಕೆದಾರರು ಅದನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. BLOCKED: ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ ಮತ್ತು ಅದನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಹಿಂದಿನ ಕಾರ್ಯನೀತಿಯ ಅಡಿಯಲ್ಲಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿದ್ದರೆ, ಅದನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗುವುದು." + "description": "ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಹೇಗೆ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗುತ್ತದೆ ಎನ್ನುವುದನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. OPTIONAL: ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ, ಆದರೆ ಬಳಕೆದಾರರು ಅದನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಬಹುದು. ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿರದಿದ್ದರೆ, ಇದು ಡಿಫಾಲ್ಟ್ ಆಗಿರುತ್ತದೆ. PRELOAD: ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗುತ್ತದೆ, ಆದರೆ ಬಳಕೆದಾರರು ಅದನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಬಹುದು. FORCE_INSTALLED: ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗುತ್ತದೆ, ಆದರೆ ಬಳಕೆದಾರರು ಅದನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. BLOCKED: ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ ಮತ್ತು ಅದನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಹಿಂದಿನ ಕಾರ್ಯನೀತಿಯ ಅಡಿಯಲ್ಲಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿದ್ದರೆ, ಅದನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗುವುದು." "type": "string", "enum": [ "OPTIONAL", @@ -2051,7 +2051,7 @@ <translation id="6467613372414922590">ಬಳಕೆದಾರರ ಮಟ್ಟದ ಸ್ಥಳೀಯ ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆ ಹೋಸ್ಟ್ಗಳನ್ನು ಅನುಮತಿಸಿ (ನಿರ್ವಾಹಕರ ಅನುಮತಿ ಇಲ್ಲದೆ ಸ್ಥಾಪಿಸಲಾಗಿರುವುದು)</translation> <translation id="6468980648680553776">ಈ ನೀತಿಯನ್ನು ಅಸಮ್ಮತಿಸಲಾಗಿದೆ. ಬದಲಿಗೆ RemoteAccessHostClientDomainList ಅನ್ನು ಬಳಸಿ.</translation> <translation id="6473623140202114570">ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಎಚ್ಚರಿಕೆಗಳನ್ನು ಟ್ರಿಗರ್ ಮಾಡದಿರುವ ಡೋಮೇನ್ಗಳ ಪಟ್ಟಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ.</translation> -<translation id="6491139795995924304">ಸಾಧನದಲ್ಲಿ ಬ್ಲೂಟೂತ್ ಅನುಮತಿಸಿ</translation> +<translation id="6491139795995924304">ಸಾಧನದಲ್ಲಿ ಬ್ಲೂಟೂತ್ ಅನ್ನು ಅನುಮತಿಸಿ</translation> <translation id="6491872498385040936">ಈ ನೀತಿಯನ್ನು ತಡೆಹಿಡಿಯಲಾಗಿದೆ. <ph name="FORCE_YOUTUBE_RESTRICT_POLICY_NAME" /> ಬಳಸಲು ಪರಿಗಣಿಸಿ, ಇದು ಈ ನೀತಿಯನ್ನು ಅತಿಕ್ರಮಿಸುತ್ತದೆ ಮತ್ತು ಹೆಚ್ಚು ಉತ್ತಮ ಟ್ಯೂನಿಂಗ್ಗೆ ಅನುಮತಿಸುತ್ತದೆ. YouTube ಮಧ್ಯಮ ನಿರ್ಬಂಧಿತ ಮೋಡ್ ಅನ್ನು ಒತ್ತಾಯಿಸುತ್ತದೆ ಮತ್ತು ಈ ಸೆಟ್ಟಿಂಗ್ ಬದಲಾಯಿಸದಂತೆ ಬಳಕೆದಾರರನ್ನು ತಡೆಗಟ್ಟುತ್ತದೆ. @@ -2063,14 +2063,14 @@ <translation id="6525955212636890608">ನೀವು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದಲ್ಲಿ, ವಿಷಯ ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಫ್ಲ್ಯಾಶ್ಗೆ ಅನುಮತಿಸಲು ವೆಬ್ಸೈಟ್ಗಳಲ್ಲಿ ಎಲ್ಲಾ ಫ್ಲ್ಯಾಶ್ ವಿಷಯವನ್ನು ಎಂಬೆಡ್ಲಾಗುತ್ತದೆ -- ಬಳಕೆದಾರರ ಮೂಲಕ ಅಥವಾ ಎಂಟರ್ಪ್ರೈಸ್ ನೀತಿಯ ಮೂಲಕ -- ಇತರ ಮೂಲಗಳಿಂದ ವಿಷಯವನ್ನು ಒಳಗೊಂಡಂತೆ ಅಥವಾ ಸಣ್ಣ ವಿಷಯ ರನ್ ಆಗುತ್ತವೆ. ಫ್ಲ್ಯಾಶ್ ಅನ್ನು ರನ್ ಮಾಡಲು ಯಾವ ವೆಬ್ಸೈಟ್ಗಳಿಗೆ ಅನುಮತಿಸಬೇಕು ಎನ್ನುವುದನ್ನು ನಿಯಂತ್ರಿಸಲು, "DefaultPluginsSetting", "PluginsAllowedForUrls", ಮತ್ತು "PluginsBlockedForUrls" ನೀತಿಗಳನ್ನು ನೋಡಿ. ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ ಅಥವಾ ಹೊಂದಿಸದಿದ್ದರೆ, ಇತರ ಮೂಲಗಳಿಂದ ಪ್ಲ್ಯಾಶ್ ಕಂಟೆಂಟ್ ಅಥವಾ ಸಣ್ಣ ವಿಷಯವನ್ನು ನಿರ್ಬಂಧಿಸಬಹುದು.</translation> <translation id="653608967792832033">ಬ್ಯಾಟರಿ ಪವರ್ನಲ್ಲಿರನ್ ಆಗುತ್ತಿರುವಾಗ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಆಗುವ ನಂತರ ಬಳಕೆದಾರ ಇನ್ಪುಟ್ ಇಲ್ಲದೆಯೇ ಸಮಯದ ಉದ್ದವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. - ಸೊನ್ನೆಗಿಂತ ಹೆಚ್ಚಿನದಕ್ಕೆ ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸಿದರೆ, ಪರದೆಯನ್ನು <ph name="PRODUCT_OS_NAME" /> ಲಾಕ್ ಆಗಿಸುವ ಮುನ್ನ ಬಳಕೆದಾರ ನಿಷ್ಪಲನಾಗಿ ಉಳಿಯುವ ಸಮಯದ ಉದ್ದವನ್ನು ಇದು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. - ಈ ನೀತಿಯನ್ನು ಸೊನ್ನೆಗೆ ಹೋಲಿಸಿದರೆ, ಬಳಕೆದಾರ ನಿಷ್ಪಲನಾಗುವ ಮುನ್ನ <ph name="PRODUCT_OS_NAME" /> ಪರದೆಯನ್ನು ಲಾಕ್ ಮಾಡುವುದಿಲ್ಲ. + ಸೊನ್ನೆಗಿಂತ ಹೆಚ್ಚಿನದಕ್ಕೆ ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸಿದರೆ, ಪರದೆಯನ್ನು <ph name="PRODUCT_OS_NAME" /> ಲಾಕ್ ಆಗಿಸುವ ಮುನ್ನ ಬಳಕೆದಾರ ನಿಷ್ಫಲನಾಗಿ ಉಳಿಯುವ ಸಮಯದ ಉದ್ದವನ್ನು ಇದು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. + ಈ ನೀತಿಯನ್ನು ಸೊನ್ನೆಗೆ ಹೋಲಿಸಿದರೆ, ಬಳಕೆದಾರ ನಿಷ್ಫಲನಾಗುವ ಮುನ್ನ <ph name="PRODUCT_OS_NAME" /> ಪರದೆಯನ್ನು ಲಾಕ್ ಮಾಡುವುದಿಲ್ಲ. ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದಲ್ಲಿ, ಸಮಯದ ಡಿಫಾಲ್ಟ್ ಉದ್ದವನ್ನು ಲಾಕ್ ಮಾಡುವುದಿಲ್ಲ. -ನಿಷ್ಪಲದಲ್ಲಿನ ಪರದೆಯನ್ನು ಲಾಕ್ ಮಾಡಲು ಶಿಫಾರಸು ಮಾಡಲಾದ ವಿಧಾನವು ಅಮಾನತಿನಲ್ಲಿನ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಆಗುವಿಕೆ ಸಕ್ರಿಯಗೊಳಿಸಲು ಮತ್ತು ನಿಷ್ಪಲ ವಿಳಂಬದ ನಂತರ <ph name="PRODUCT_OS_NAME" /> ಅನ್ನು ಹೊಂದಿರುವುದಾಗಿದೆ. ಅಮಾನತಿಗಿಂತ ಮುಂಚೆ ಅಥವಾ ನಿಷ್ಪಲದಲ್ಲಿನ ಅಮಾನತು ಎಲ್ಲಾ ಅವಶ್ಯಕವೆನಿಸದಿದ್ದಾಗ ನಿರ್ದಿಷ್ಟ ಸಮಯದಲ್ಲಿ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಮಾಡುವಿಕೆ ಸಂಭವಿಸಿದಾಗ ಮಾತ್ರ ಈ ನೀತಿಯನ್ನು ಬಳಸಲಾಗುವುದು. +ನಿಷ್ಫಲದಲ್ಲಿನ ಪರದೆಯನ್ನು ಲಾಕ್ ಮಾಡಲು ಶಿಫಾರಸು ಮಾಡಲಾದ ವಿಧಾನವು ಅಮಾನತಿನಲ್ಲಿನ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಆಗುವಿಕೆ ಸಕ್ರಿಯಗೊಳಿಸಲು ಮತ್ತು ನಿಷ್ಫಲ ವಿಳಂಬದ ನಂತರ <ph name="PRODUCT_OS_NAME" /> ಅನ್ನು ಹೊಂದಿರುವುದಾಗಿದೆ. ಅಮಾನತಿಗಿಂತ ಮುಂಚೆ ಅಥವಾ ನಿಷ್ಫಲದಲ್ಲಿನ ಅಮಾನತು ಎಲ್ಲಾ ಅವಶ್ಯಕವೆನಿಸದಿದ್ದಾಗ ನಿರ್ದಿಷ್ಟ ಸಮಯದಲ್ಲಿ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಮಾಡುವಿಕೆ ಸಂಭವಿಸಿದಾಗ ಮಾತ್ರ ಈ ನೀತಿಯನ್ನು ಬಳಸಲಾಗುವುದು. - ನೀತಿ ಮೌಲ್ಯವನ್ನು ಮಿಲಿಸೆಕುಂಡುಗಳಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು. ನಿಷ್ಪಲ ವಿಳಂಬಕ್ಕಿಂತ ಕಡಿಮೆಗೆ ಮೌಲ್ಯಗಳನ್ನು ಬಂಧಿಸಲಾಗಿದೆ.</translation> + ನೀತಿ ಮೌಲ್ಯವನ್ನು ಮಿಲಿಸೆಕೆಂಡ್ಗಳಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು. ನಿಷ್ಫಲ ವಿಳಂಬಕ್ಕಿಂತ ಕಡಿಮೆಗೆ ಮೌಲ್ಯಗಳನ್ನು ಬಂಧಿಸಲಾಗಿದೆ.</translation> <translation id="6536600139108165863">ಸಾಧನ ಸ್ಥಗಿತಗೊಂಡಾಗ ಸ್ವಯಂಚಾಲಿತ ರೀಬೂಟ್</translation> <translation id="6539246272469751178">ಈ ನೀತಿಯು Android ಅಪ್ಲಿಕೇಶನ್ಗಳ ಮೇಲೆ ಯಾವುದೇ ಪರಿಣಾಮವನ್ನು ಹೊಂದಿಲ್ಲ. Android ಅಪ್ಲಿಕೇಶನ್ಗಳು ಯಾವಾಗಲೂ ಡಿಫಾಲ್ಟ್ ಡೌನ್ಲೋಡ್ಗಳ ಡೈರೆಕ್ಟರಿಯನ್ನು ಬಳಸುತ್ತವೆ ಮತ್ತು ಅವುಗಳಿಗೆ ಡಿಫಾಲ್ಟ್ ಅಲ್ಲದ ಡೌನ್ಲೋಡ್ಗಳ ಡೈರೆಕ್ಟರಿಯೊಳಗೆ <ph name="PRODUCT_OS_NAME" /> ಡೌನ್ಲೋಡ್ ಮಾಡಿದ ಯಾವುದೇ ಫೈಲ್ಗಳನ್ನು ಪ್ರವೇಶಿಸಲಾಗುವುದಿಲ್ಲ.</translation> <translation id="654303922206238013">ecryptfs ಗಾಗಿ ರವಾನೆ ಅಂಕಿಅಂಶ</translation> @@ -2108,7 +2108,7 @@ ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೆಯೇ ಬಿಟ್ಟರೆ ಅಥವಾ ಪಟ್ಟಿಯು ಖಾಲಿಯಾಗಿದ್ದರೆ ಎಲ್ಲಾ ಸ್ಕೀಮ್ಗಳನ್ನು <ph name="PRODUCT_NAME" /> ನಲ್ಲಿ ಪ್ರವೇಶಿಸಬಹುದಾಗಿದೆ.</translation> <translation id="6652197835259177259">ಸ್ಥಳೀಯವಾಗಿ ನಿರ್ವಹಿಸಲಾದ ಬಳಕೆದಾರರ ಸೆಟ್ಟಿಂಗ್ಗಳು</translation> -<translation id="6658245400435704251">ಸರ್ವರ್ಗೆ ಮೊದಲು ಅಪ್ಡೇಟ್ವನ್ನು ದೂಡಿದಲ್ಲಿಂದ ಸಾಧನವು ಅಪ್ಡೇಟ್ದ ಡೌನ್ಲೋಡ್ ಅನ್ನು ಯಾದೃಚ್ಛಿಕವಾಗಿ ವಿಳಂಬ ಮಾಡಬಹುದಾದವರೆಗಿನ ಸೆಕೆಂಡುಗಳ ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. ಗೋಡೆ-ಗಡಿಯಾರದ ಸಮಯದಲ್ಲಿ ಹಾಗೂ ಅಪ್ಡೇಟ್ ಪರಿಶೀಲನೆಗಳ ಸಂಖ್ಯೆಯಲ್ಲಿ ಸಾಧನವು ನಿರೀಕ್ಷಿಸುತ್ತದೆ. ಯಾವುದೇ ಸಂದರ್ಭದಲ್ಲಿ, ಆಗಾಗ್ಗೆ ಬದಲಾಗುವ ಸಮಯದ ಹದ್ದುಬಸ್ತಿನಲ್ಲಿ ಚದುರಿರುತ್ತದೆ ಆದ್ದರಿಂದ ಡೌನ್ಲೋಡ್ಗೆ ನಿರೀಕ್ಷಿಸುತ್ತಿರುವಾಗ ಸಾಧನವು ಮಧ್ಯೆ ಸಿಲುಕಿಹಾಕಿಕೊಳ್ಳುವುದಿಲ್ಲ ಯಾವಾಗಲೂ ನವೀಕರಿಸುತ್ತದೆ.</translation> +<translation id="6658245400435704251">ಸರ್ವರ್ಗೆ ಮೊದಲು ಅಪ್ಡೇಟ್ ಅನ್ನು ಜಾರಿ ಮಾಡಿದಾಗಿನಿಂದ ಸಾಧನವು ಅಪ್ಡೇಟ್ನ ಡೌನ್ಲೋಡ್ ಅನ್ನು ಯಾದೃಚ್ಛಿಕವಾಗಿ ವಿಳಂಬ ಮಾಡಬಹುದಾದ ಸಮಯದರೆಗಿನ ಸೆಕೆಂಡುಗಳ ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. ಗೋಡೆ-ಗಡಿಯಾರದ ಸಮಯದಲ್ಲಿ ಹಾಗೂ ಅಪ್ಡೇಟ್ ಪರಿಶೀಲನೆಗಳ ಸಂಖ್ಯೆಯಲ್ಲಿ ಸಾಧನವು ನಿರೀಕ್ಷಿಸುತ್ತದೆ. ಯಾವುದೇ ಸಂದರ್ಭದಲ್ಲಿ, ಆಗಾಗ್ಗೆ ಬದಲಾಗುವ ಸಮಯದ ಹದ್ದುಬಸ್ತಿನಲ್ಲಿ ಚದುರಿರುತ್ತದೆ ಆದ್ದರಿಂದ ಡೌನ್ಲೋಡ್ಗೆ ನಿರೀಕ್ಷಿಸುತ್ತಿರುವಾಗ ಸಾಧನವು ಮಧ್ಯೆ ಸಿಲುಕಿಹಾಕಿಕೊಳ್ಳುವುದಿಲ್ಲ ಯಾವಾಗಲೂ ಅಪ್ಡೇಟ್ ಆಗುತ್ತದೆ.</translation> <translation id="6665599130599311250">ಈ ನೀತಿಯನ್ನು ತಪ್ಪು ಎಂದು ಹೊಂದಿಸಿದ್ದರೆ ಅಥವಾ ಹೊಂದಿಸದೇ ಇದ್ದಲ್ಲಿ, ನಿರ್ವಹಿಸಲಾದ ಅತಿಥಿ ಸೆಶನ್ https://support.google.com/chrome/a/answer/3017014 - ಪ್ರಮಾಣಿತ "ಸಾರ್ವಜನಿಕ ಸೆಶನ್" ನಲ್ಲಿ ದಾಖಲಿಸಿರುವಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ. ಈ ನೀತಿಯನ್ನು ಸರಿ ಎಂದು ಹೊಂದಿಸಿದರೆ, ನಿರ್ವಹಿಸಲಾದ ಅತಿಥಿ ಸೆಶನ್ "ನಿರ್ವಹಿಸಲಾದ ಸೆಶನ್ಗೆ" ಮುಖಾಮುಖಿಯಾಗುತ್ತದೆ, ಇದು ಸಾಮಾನ್ಯ "ಸಾರ್ವಜನಿಕ ಸೆಶನ್ಗಳು" ಹೊಂದಿರುವ ಹಲವು ಮಿತಿಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. @@ -2285,7 +2285,7 @@ ಬಳಸಬಹುದಾದ ವೇರಿಯೇಬಲ್ಗಳ ಪಟ್ಟಿಗೆ https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables ನೋಡಿ. - ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೆಯೇ ಹಾಗೆಯೇ ಬಿಟ್ಟರೆ, ಡೀಫಾಲ್ಟ್ ಪ್ರೊಫೈಲ್ ಪಥವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರಿಗೆ '--user-data-dir' ಕಮ್ಯಾಂಡ್ ಲೈನ್ ಫ್ಲಾಗ್ ಬಳಸಿಕೊಂಡು ಅದನ್ನು ಅತಿಕ್ರಮಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.</translation> + ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೆಯೇ ಹಾಗೆಯೇ ಬಿಟ್ಟರೆ, ಡೀಫಾಲ್ಟ್ ಪ್ರೊಫೈಲ್ ಪಥವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರಿಗೆ '--user-data-dir' ಕಮಾಂಡ್ ಲೈನ್ ಫ್ಲಾಗ್ ಬಳಸಿಕೊಂಡು ಅದನ್ನು ಅತಿಕ್ರಮಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.</translation> <translation id="7027785306666625591"><ph name="PRODUCT_OS_NAME" /> ನಲ್ಲಿ ವಿದ್ಯುತ್ ನಿರ್ವಹಣೆಯನ್ನು ಕಾನ್ಪಿಗರ್ ಮಾಡಿ. ಈ ನೀತಿಗಳು ಬಳಕೆದಾರ ಸ್ವಲ್ಪ ಸಮಯದವರೆಗೆ ಐಡಲ್ನಲ್ಲಿ ಉಳಿದಾಗ, <ph name="PRODUCT_OS_NAME" /> ಹೇಗೆ ನಡೆದುಕೊಳ್ಳಬೇಕೆಂಬುದನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತವೆ.</translation> @@ -2422,7 +2422,7 @@ <translation id="7311458740754205918">ಇದನ್ನು ಸರಿ ಎಂಬುದಕ್ಕೆ ಹೊಂದಿಸಿದರೆ ಅಥವಾ ಹೊಂದಿಸದೆ ಹಾಗೆಯೇ ಬಿಟ್ಟರೆ, ಹೊಸ ಟ್ಯಾಬ್ ಪುಟವು ಬಳಕೆದಾರರ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸ, ಆಸಕ್ತಿಗಳು ಅಥವಾ ಸ್ಥಳವನ್ನು ಆಧರಿಸಿದ ವಿಷಯ ಸಲಹೆಗಳನ್ನು ತೋರಿಸಬಹುದು. ಇದನ್ನು ತಪ್ಪು ಎಂಬುದಕ್ಕೆ ಹೊಂದಿಸಿದರೆ, ಹೊಸ ಟ್ಯಾಬ್ ಪುಟದಲ್ಲಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ-ರಚಿಸಲ್ಪಟ್ಟ ವಿಷಯ ಸಲಹೆಗಳನ್ನು ತೋರಿಸಲಾಗುವುದಿಲ್ಲ.</translation> -<translation id="7323896582714668701"><ph name="PRODUCT_NAME" /> ಗಾಗಿ ಹೆಚ್ಚುವರಿ ಆದೇಶ ಸಾಲು ಪ್ಯಾರಾಮೀಟರ್ಗಳು</translation> +<translation id="7323896582714668701"><ph name="PRODUCT_NAME" /> ಗಾಗಿ ಹೆಚ್ಚುವರಿ ಕಮಾಂಡ್ ಸಾಲು ಪ್ಯಾರಾಮೀಟರ್ಗಳು</translation> <translation id="7326394567531622570">ವೈಪ್ (ಮೌಲ್ಯ 2) ಗೆ ಸಮನಾಗಿದೆ, ಆದರೆ ಲಾಗಿನ್ ಟೋಕನ್ಗಳನ್ನು ಸಂರಕ್ಷಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ ಆದ್ದರಿಂದ ಬಳಕೆದಾರರು ಪುನಃ ಸೈನ್ ಇನ್ ಮಾಡಬೇಕಾಗಿಲ್ಲ.</translation> <translation id="7329842439428490522">ಬ್ಯಾಟರಿ ಪವರ್ನಲ್ಲಿರನ್ ಆಗುತ್ತಿರುವಾಗ ಬಳಕೆದಾರರ ಇನ್ಪುಟ್ ಇಲ್ಲದೆಯೇ ಪರದೆಯನ್ನು ಆಫ್ ಮಾಡಿದ ನಂತರ ಸಮಯದ ಅಳತೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. @@ -2501,7 +2501,7 @@ ಈ ನೀತಿಯನ್ನು ತಪ್ಪು ಎಂಬುದಾಗಿ ಹೊಂದಿಸಿದ್ದರೆ, QUIC ಪ್ರೊಟೋಕಾಲ್ ಬಳಕೆಯನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ.</translation> <translation id="7519251620064708155">ಈ ಸೈಟ್ಗಳಲ್ಲಿ ಕೀ ರಚನೆ ಅನುಮತಿಸಿ</translation> <translation id="7529100000224450960">ಪಾಪ್ಅಪ್ಗಳನ್ನು ತೆರೆಯಲು ಅನುಮತಿಸಲಾಗಿರುವ ಸೈಟ್ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವಂತಹ url ನಮೂನೆಗಳ ಪಟ್ಟಿಯನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೆ ಬಿಟ್ಟರೆ ಜಾಗತಿಕ ಡಿಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು 'DefaultPopupsSetting' ನೀತಿಯನ್ನು ಹೊಂದಿಸಿದ್ದಲ್ಲಿ ಅಥವಾ ಬಳಕೆದಾರರ ವೈಯಕ್ತಿಕ ಕಾನ್ಫಿಗರೇಶನ್ನಿಂದ ಎಲ್ಲ ಸೈಟ್ಗಳಿಗಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ.</translation> -<translation id="7529144158022474049">ಚದುರಿರುವ ಅಂಶವನ್ನು ಸ್ವಯಂ ನವೀಕರಿಸಿ</translation> +<translation id="7529144158022474049">ಚದುರಿರುವ ಅಂಶವನ್ನು ಸ್ವಯಂ ಅಪ್ಡೇಟ್ ಮಾಡಿ</translation> <translation id="7534199150025803530">ಈ ನೀತಿಯು Android Google ಡ್ರೈವ್ ಅಪ್ಲಿಕೇಶನ್ ಮೇಲೆ ಯಾವುದೇ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ. ಸೆಲ್ಯುಲಾರ್ ಸಂಪರ್ಕಗಳ ಮೂಲಕ Google ಡ್ರೈವ್ ಬಳಕೆಯನ್ನು ತಡೆಗಟ್ಟಲು ನೀವು ಬಯಸಿದರೆ, ನೀವು Android Google ಡ್ರೈವ್ ಅಪ್ಲಿಕೇಶನ್ ಸ್ಥಾಪನೆಗೆ ಅನುಮತಿಯನ್ನು ನೀಡಬಾರದು.</translation> <translation id="7547549430720182663">ವಿಲೀನಗೊಳಿಸಿ</translation> <translation id="7553535237300701827">ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸಿದಾಗ, ಸೆಟ್ಟಿಂಗ್ನ ಮೌಲ್ಯವನ್ನು ಅವಲಂಬಿಸಿ ಲಾಗಿನ್ ಪ್ರಮಾಣೀಕರಣದ ಹರಿವು ಇವುಗಳಲ್ಲಿ ಒಂದನ್ನು ಅನುಸರಿಸುತ್ತದೆ: @@ -2515,9 +2515,9 @@ ಇಂತಹ ಘಟಕಗಳ ಉದಾಹರಣೆಗಳೆಂದರೆ, ಪ್ರಮಾಣಪತ್ರ ಹಿಂತೆಗೆದುಕೊಳ್ಳುವಿಕೆ ಪಟ್ಟಿಗಳು ಮತ್ತು ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಡೇಟಾ. ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಕುರಿತು ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ https://developers.google.com/safe-browsing ನೋಡಿ.</translation> <translation id="7566878661979235378">SAML ಲಾಗಿನ್ ಪ್ರಮಾಣೀಕರಣ ಪ್ರಕಾರ</translation> -<translation id="757395965347379751">ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದಾಗ, SHA-1 ಸಹಿ ಮಾಡಿದ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಮೌಲ್ಯೀಕರಿಸುವ ತನಕ ಮತ್ತು ಸ್ಥಳೀಯವಾಗಿ ಸ್ಥಾಪನೆಗೊಳಿಸಿದ CA ಪ್ರಮಾಣಪತ್ರಗಳಿಗೆ ಜೋಡಿಸುವ ತನಕ ಅವುಗಳನ್ನು <ph name="PRODUCT_NAME" /> ಅನುಮತಿಸುತ್ತದೆ. +<translation id="757395965347379751">ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದಾಗ, SHA-1 ಸಹಿ ಮಾಡಿದ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಮೌಲ್ಯೀಕರಿಸುವ ತನಕ ಮತ್ತು ಸ್ಥಳೀಯವಾಗಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿದ CA ಪ್ರಮಾಣಪತ್ರಗಳಿಗೆ ಜೋಡಿಸುವ ತನಕ ಅವುಗಳನ್ನು <ph name="PRODUCT_NAME" /> ಅನುಮತಿಸುತ್ತದೆ. - ಈ ನೀತಿಯು SHA-1 ಸಹಿಗಳನ್ನು ಅನುಮತಿಸುವ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂ ಪ್ರಮಾಣಪತ್ರ ಪರಿಶೀಲನೆ ಸ್ಟ್ಯಾಕ್ ಮೇಲೆ ಅವಲಂಬಿಸಿರುತ್ತದೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ. ಒಂದು ವೇಳೆ SHA-1 ಪ್ರಮಾಣಪತ್ರಗಳ OS ನಿರ್ವಹಣೆಯನ್ನು OS ಅಪ್ಡೇಟ್ ಬದಲಾಯಿಸಿದರೆ, ಈ ನೀತಿ ಇನ್ನು ಮುಂದೆ ಪರಿಣಾಮವನ್ನು ಹೊಂದಿರದೇ ಇರಬಹುದು. ಜೊತೆಗೆ, ಈ ನೀತಿಯು SHA-1 ನಿಂದ ದೂರಕ್ಕೆ ಸರಿಯಲು ಎಂಟರ್ಪ್ರೈಸ್ಗಳಿಗೆ ಹೆಚ್ಚು ಸಮಯ ನೀಡುವುದಕ್ಕಾಗಿನ ತಾತ್ಕಾಲಿಕ ಸಮಸ್ಯೆಯ ಪರಿಹಾರ ಎಂಬುದಾಗಿ ಉದ್ದೇಶಿತವಾಗಿದೆ. ಈ ನೀತಿಯನ್ನು 1 ನೇ ಜನವರಿ 2019 ಸುಮಾರಿಗೆ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ. + ಈ ನೀತಿಯು SHA-1 ಸಹಿಗಳನ್ನು ಅನುಮತಿಸುವ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂ ಪ್ರಮಾಣಪತ್ರ ಪರಿಶೀಲನೆ ಸ್ಟ್ಯಾಕ್ ಮೇಲೆ ಅವಲಂಬಿಸಿರುತ್ತದೆ ಎಂಬುದನ್ನು ಗಮನಿಸಿ. ಒಂದು ವೇಳೆ SHA-1 ಪ್ರಮಾಣಪತ್ರಗಳ OS ನಿರ್ವಹಣೆಯನ್ನು OS ಅಪ್ಡೇಟ್ ಬದಲಾಯಿಸಿದರೆ, ಈ ನೀತಿ ಇನ್ನು ಮುಂದೆ ಪರಿಣಾಮವನ್ನು ಹೊಂದಿರದೇ ಇರಬಹುದು. ಜೊತೆಗೆ, ಈ ನೀತಿಯು SHA-1 ನಿಂದ ದೂರಕ್ಕೆ ಸರಿಯಲು ಎಂಟರ್ಪ್ರೈಸ್ಗಳಿಗೆ ಹೆಚ್ಚು ಸಮಯ ನೀಡುವುದಕ್ಕಾಗಿನ ತಾತ್ಕಾಲಿಕ ಸಮಸ್ಯೆಯ ಪರಿಹಾರ ಎಂಬುದಾಗಿ ಉದ್ದೇಶಿತವಾಗಿದೆ. ಈ ನೀತಿಯನ್ನು 1 ನೇ ಜನವರಿ 2019 ರ ಸುಮಾರಿಗೆ ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ. ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೇ ಇದ್ದರೆ ಅಥವಾ ಇದನ್ನು ತಪ್ಪು ಎಂಬುದಕ್ಕೆ ಹೊಂದಿಸಲಾಗಿದ್ದರೆ, ಆಗ ಸಾರ್ವಜನಿಕವಾಗಿ ಘೋಷಣೆ ಮಾಡಿದ SHA-1 ತಡೆಹಿಡಿಯುವಿಕೆ ವೇಳಾಪಟ್ಟಿಯನ್ನು <ph name="PRODUCT_NAME" /> ಅನುಸರಿಸುತ್ತದೆ.</translation> <translation id="7593523670408385997">ಡಿಸ್ಕ್ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾದ ಫೈಲ್ಗಳಿಗಾಗಿ <ph name="PRODUCT_NAME" /> ಬಳಸುವ ಸಂಗ್ರಹ ಗಾತ್ರವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತದೆ. @@ -2568,15 +2568,15 @@ <translation id="7687943045976362719">ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸಿದ್ದರೆ, ನಿರ್ದಿಷ್ಟ ವಿಷಯ ಪ್ರಕಾರಗಳನ್ನು <ph name="PRODUCT_FRAME_NAME" /> ಅವರಿಂದ ನಿರ್ವಹಿಸಲ್ಪಡುತ್ತದೆ. ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸಿದಿದ್ದಲ್ಲಿ, ಡಿಫಾಲ್ಟ್ ರೆಂಡರರ್ ಅನ್ನು ಎಲ್ಲಾ ಸೈಟ್ಗಳಿಗೆ ಬಳಸಲಾಗುತ್ತದೆ. (The <ph name="CHROME_FRAME_RENDERER_SETTINGS_POLICY_NAME" /> ನೀತಿಯನ್ನು ಡಿಫಾಲ್ಟ್ ರೆಂಡರರ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಬಳಸಬಹುದಾಗಿದೆ.)</translation> -<translation id="7694807474048279351"><ph name="PRODUCT_OS_NAME" /> ಅಪ್ಡೇಟ್ವನ್ನು ಅನ್ವಯಿಸಿದ ನಂತರ ಒಂದು ಸ್ವಯಂಚಾಲಿತ ರೀಬೂಟ್ ಅನ್ನು ನಿಗದಿಪಡಿಸಿ. +<translation id="7694807474048279351"><ph name="PRODUCT_OS_NAME" /> ಅಪ್ಡೇಟ್ ಅನ್ನು ಅನ್ವಯಿಸಿದ ನಂತರ ಒಂದು ಸ್ವಯಂಚಾಲಿತ ರೀಬೂಟ್ ಅನ್ನು ನಿಗದಿಪಡಿಸಿ. - ಈ ನೀತಿಯನ್ನು ಸರಿ ಎಂದು ಹೊಂದಿಸಿದಾಗ, <ph name="PRODUCT_OS_NAME" /> ಅಪ್ಡೇಟ್ವನ್ನು ಅನ್ವಯಿಸಿದಾಗ ಒಂದು ಸ್ವಯಚಾಲಿತ ರೀಬೂಟ್ ನಿಗದಿಪಡಿಸಲಾಗುವುದು ಮತ್ತು ಅಪ್ಡೇಟ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ರೀಬೂಟ್ ಅಗತ್ಯವಿರುತ್ತದೆ. ರೀಬೂಟ್ ಅನ್ನು ಕೂಡಲೇ ನಿಗದಿಗೊಳಿಸಲಾಗುತ್ತದೆ ಆದರೆ ಒಂದು ವೇಳೆ ಬಳಕೆದಾರರು ಪ್ರಸ್ತುತ ಸಾಧನವನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ ಸಾಧನದಲ್ಲಿ ಸುಮಾರು 24 ಗಂಟೆಗಳ ಕಾಲ ವಿಳಂಬವಾಗಬಹುದು. + ಈ ನೀತಿಯನ್ನು ಸರಿ ಎಂದು ಹೊಂದಿಸಿದಾಗ, <ph name="PRODUCT_OS_NAME" /> ಅಪ್ಡೇಟ್ ಅನ್ನು ಅನ್ವಯಿಸಿದಾಗ ಒಂದು ಸ್ವಯಚಾಲಿತ ರೀಬೂಟ್ ನಿಗದಿಪಡಿಸಲಾಗುವುದು ಮತ್ತು ಅಪ್ಡೇಟ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ರೀಬೂಟ್ ಅಗತ್ಯವಿರುತ್ತದೆ. ರೀಬೂಟ್ ಅನ್ನು ಕೂಡಲೇ ನಿಗದಿಗೊಳಿಸಲಾಗುತ್ತದೆ ಆದರೆ ಒಂದು ವೇಳೆ ಬಳಕೆದಾರರು ಪ್ರಸ್ತುತ ಸಾಧನವನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ ಸಾಧನದಲ್ಲಿ ಸುಮಾರು 24 ಗಂಟೆಗಳ ಕಾಲ ವಿಳಂಬವಾಗಬಹುದು. - ಈ ನೀತಿಯನ್ನು ತಪ್ಪು ಎಂದು ಹೊಂದಿಸಿದಾಗ, <ph name="PRODUCT_OS_NAME" /> ಅಪ್ಡೇಟ್ವನ್ನು ಅನ್ವಯಿಸಿದ ಬಳಿಕ ಯಾವುದೇ ಸ್ವಯಂಚಾಲಿತ ರೀಬೂಟ್ ಅನ್ನು ನಿಗದಿಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ. ಬಳಕೆದಾರರು ಮುಂದೆ ಸಾಧನವನ್ನು ರೀಬೂಟ್ ಮಾಡುವಾಗ ಅಪ್ಡೇಟ್ ಪ್ರಕ್ರಿಯೆ ಪೂರ್ಣಗೊಳ್ಳುತ್ತದೆ. + ಈ ನೀತಿಯನ್ನು ತಪ್ಪು ಎಂದು ಹೊಂದಿಸಿದಾಗ, <ph name="PRODUCT_OS_NAME" /> ಅಪ್ಡೇಟ್ ಅನ್ನು ಅನ್ವಯಿಸಿದ ಬಳಿಕ ಯಾವುದೇ ಸ್ವಯಂಚಾಲಿತ ರೀಬೂಟ್ ಅನ್ನು ನಿಗದಿಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ. ಬಳಕೆದಾರರು ಮುಂದೆ ಸಾಧನವನ್ನು ರೀಬೂಟ್ ಮಾಡುವಾಗ ಅಪ್ಡೇಟ್ ಪ್ರಕ್ರಿಯೆ ಪೂರ್ಣಗೊಳ್ಳುತ್ತದೆ. ನೀವು ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸಿದರೆ, ಬಳಕೆದಾರರಿಗೆ ಅದನ್ನು ಬದಲಾಯಿಸಲು ಅಥವಾ ಅತಿಕ್ರಮಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. - ಗಮನಿಸಿ: ಪ್ರಸ್ತುತ, ಲಾಗಿನ್ ಪರದೆಯನ್ನು ತೋರಿಸುತ್ತಿರುವಾಗ ಅಥವಾ ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್ ಸೆಷನ್ ಪ್ರಗತಿಯಲ್ಲಿರುವಾಗ ಮಾತ್ರ ಸ್ವಯಂಚಾಲಿತ ರೀಬೂಟ್ಗಳು ಸಕ್ರಿಯವಾಗಿರುತ್ತವೆ. ಇದು ಭವಿಷ್ಯದಲ್ಲಿ ಬದಲಾಗುತ್ತದೆ ಮತ್ತು ಯಾವುದೇ ನಿರ್ದಿಷ್ಟ ಪ್ರಕಾರದ ಸೆಷನ್ ಪ್ರಗತಿಯಲ್ಲಿದ್ದರೂ ಅಥವಾ ಇಲ್ಲದಿದದ್ದರೂ ಪರಿಗಣಿಸದೆಯೇ, ಈ ನೀತಿಯು ಯಾವಾಗಲೂ ಅನ್ವಯವಾಗುತ್ತದೆ.</translation> + ಗಮನಿಸಿ: ಪ್ರಸ್ತುತ, ಲಾಗಿನ್ ಪರದೆಯನ್ನು ತೋರಿಸುತ್ತಿರುವಾಗ ಅಥವಾ ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್ ಸೆಷನ್ ಪ್ರಗತಿಯಲ್ಲಿರುವಾಗ ಮಾತ್ರ ಸ್ವಯಂಚಾಲಿತ ರೀಬೂಟ್ಗಳು ಸಕ್ರಿಯವಾಗಿರುತ್ತವೆ. ಇದು ಭವಿಷ್ಯದಲ್ಲಿ ಬದಲಾಗುತ್ತದೆ ಮತ್ತು ಯಾವುದೇ ನಿರ್ದಿಷ್ಟ ಪ್ರಕಾರದ ಸೆಷನ್ ಪ್ರಗತಿಯಲ್ಲಿದ್ದರೂ ಅಥವಾ ಇಲ್ಲದಿದ್ದರೂ ಪರಿಗಣಿಸದೆಯೇ, ಈ ನೀತಿಯು ಯಾವಾಗಲೂ ಅನ್ವಯವಾಗುತ್ತದೆ.</translation> <translation id="7701341006446125684">ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮತ್ತು ವಿಸ್ತರಣೆಗಳ ಕ್ಯಾಶ್ ಗಾತ್ರ ಹೊಂದಿಸಿ (ಬೈಟ್ಗಳಲ್ಲಿ)</translation> <translation id="7709537117200051035">ಬೂಲಿಯನ್ ಫ್ಲ್ಯಾಗ್ಗಾಗಿನ ನಿಘಂಟು ಮ್ಯಾಪಿಂಗ್ ಹೋಸ್ಟ್ಹೆಸರುಗಳು ಹೋಸ್ಟ್ಗೆ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಬೇಕೇ (ಸರಿ) ಅಥವಾ ನಿರ್ಬಂಧಿಸಬೇಕೇ (ತಪ್ಪು) ಎಂಬುದನ್ನು ಸೂಚಿಸುತ್ತವೆ. @@ -2616,9 +2616,9 @@ ನೀತಿಯನ್ನು ಶಿಫಾರಸು ಮಾಡಿರುವುದಾಗಿ ಮಾತ್ರ ಹೊಂದಿಸಬಹುದು. ಈ ನೀತಿಯನ್ನು ನೀವು ಶಿಫಾರಸು ಮಾಡಿದ ಸ್ಥಳಗಳ ಗುಂಪನ್ನು ಮೇಲ್ಭಾಗಕ್ಕೆ ಸರಿಸಲು ಬಳಸಬಹುದು, ಆದರೆ ಬಳಕೆದಾರರಿಗೆ ಯಾವಾಗಲೂ ಅವರ ಸೆಶನ್ಗೆ <ph name="PRODUCT_OS_NAME" /> ಬೆಂಬಲಿಸುವ ಯಾವುದೇ ಸ್ಥಳವನ್ನು ಆರಿಸಿಕೊಳ್ಳಲು ಅನುಮತಿಸಲಾಗುತ್ತದೆ. </translation> -<translation id="7763479091692861127"> OS ಅಪ್ಡೇಟ್ಗಳನ್ನು ಬಳಸಲು ಅನುಮತಿಸುವಂತಹ ಸಂಪರ್ಕಗಳ ಪ್ರಕಾರಗಳು. OS ಅಪ್ಡೇಟ್ಗಳು ಅದರ ಗಾತ್ರ ಮತ್ತು ಹೆಚ್ಚುವರಿ ವೆಚ್ಚವನ್ನುಂಟು ಮಾಡಬಹುದಾದ ಕಾರಣದಿಂದಾಗಿ ಸಂಪರ್ಕಿಸಲು ಸಂಭವನೀಯವಾಗಿ ಹೆಚ್ಚಿನ ಒತ್ತಡವನ್ನು ಹೇರುತ್ತದೆ. ಆದ್ದರಿಂದ, WiMax, ಬ್ಲೂಟೂತ್ ಮತ್ತು ಆ ಕ್ಷಣದಲ್ಲಿ ಸೆಲ್ಯುಲಾರ್ ಸೇರಿದಂತೆ ದುಬಾರಿ ಎಂದು ಪರಿಗಣಿಸಲಾದ ಸಂಪರ್ಕ ಪ್ರಕಾರಕ್ಕಾಗಿ ಡಿಫಾಲ್ಟ್ ಆಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಲಿಲ್ಲ. +<translation id="7763479091692861127"> OS ಅಪ್ಡೇಟ್ಗಳನ್ನು ಬಳಸಲು ಅನುಮತಿಸುವಂತಹ ಸಂಪರ್ಕಗಳ ಪ್ರಕಾರಗಳು. OS ಅಪ್ಡೇಟ್ಗಳು ಅದರ ಗಾತ್ರ ಮತ್ತು ಹೆಚ್ಚುವರಿ ವೆಚ್ಚವನ್ನುಂಟು ಮಾಡಬಹುದಾದ ಕಾರಣದಿಂದಾಗಿ ಸಂಪರ್ಕಿಸಲು ಸಂಭವನೀಯವಾಗಿ ಹೆಚ್ಚಿನ ಒತ್ತಡವನ್ನು ಹೇರುತ್ತದೆ. ಆದ್ದರಿಂದ, WiMax, ಬ್ಲೂಟೂತ್ ಮತ್ತು ಆ ಕ್ಷಣದಲ್ಲಿ ಸೆಲ್ಯುಲಾರ್ ಸೇರಿದಂತೆ ದುಬಾರಿ ಎಂದು ಪರಿಗಣಿಸಲಾದ ಸಂಪರ್ಕ ಪ್ರಕಾರಕ್ಕಾಗಿ ಡೀಫಾಲ್ಟ್ ಆಗಿ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಲಿಲ್ಲ. - ಅಂಗೀಕರಿಸಲಾದ ಸಂಪರ್ಕ ಪ್ರಕಾರ ಗುರುತಿಸುವಿಕೆಗಳು ಎಂದರೆ "ethernet", "wifi", "wimax", "ಬ್ಲೂಟೂತ್" ಮತ್ತು "cellular".</translation> + ಅಂಗೀಕರಿಸಲಾದ ಸಂಪರ್ಕ ಪ್ರಕಾರ ಗುರುತಿಸುವಿಕೆಗಳು ಎಂದರೆ "ಈಥರ್ನೆಟ್", "wifi", "wimax", "ಬ್ಲೂಟೂತ್" ಮತ್ತು "ಸೆಲ್ಯುಲಾರ್".</translation> <translation id="7763614521440615342">ಹೊಸ ಟ್ಯಾಬ್ ಪುಟದಲ್ಲಿ ವಿಷಯ ಸಲಹೆಗಳನ್ನು ತೋರಿಸಿ</translation> <translation id="7774768074957326919">ಸಿಸ್ಟಂ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಬಳಸಿ</translation> <translation id="7775831859772431793">ನೀವು ಇಲ್ಲಿ ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ನ URL ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು. @@ -2701,7 +2701,7 @@ ವಿವರವಾದ ಉದಾಹರಣೆಗಳಿಗಾಗಿ, ಇಲ್ಲಿ ಭೇಟಿ ನೀಡಿ: <ph name="PROXY_HELP_URL" />.</translation> -<translation id="793134539373873765">p2p ಅನ್ನು OS ಅಪ್ಡೇಟ್ ಪ್ಲೇಲೋಡ್ಗಳಿಗಾಗಿ ಬಳಸಬೇಕೇ ಎಂಬುದನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. ಸರಿ ಎಂದು ಹೊಂದಿಸಿದರೆ, ಸಾಧನಗಳಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಇಂಟರ್ನೆಟ್ ಬ್ಯಾಂಡ್ವಿಡ್ತ್ ಬಳಕೆ ಹಾಗೂ ದಟ್ಟಣೆಯನ್ನು ಸಂಭಾವ್ಯವಾಗಿ ಕಡಿಮೆ ಮಾಡುವ, LAN ನಲ್ಲಿರುವ ಅಪ್ಡೇಟ್ ಪ್ಲೇಲೋಡ್ಗಳನ್ನು ಬಳಸಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ಒಂದು ವೇಳೆ ಅಪ್ಡೇಟ್ ಪ್ಲೇಲೋಡ್ LAN ನಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲದಿದ್ದರೆ, ಸಾಧನವು ಅಪ್ಡೇಟ್ ಸರ್ವರ್ನಿಂದ ಡೌನ್ಲೋಡ್ ಮಾಡುವುದರಿಂದ ಪೂರ್ವ ಸ್ಥಿತಿಗೆ ಮರಳುತ್ತದೆ. ಸರಿ ಎಂದು ಹೊಂದಿಸಿದ ಅಥವಾ ಕಾನ್ಫಿಗರ್ ಮಾಡಿರದಿದ್ದರೆ, p2p ಅನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ.</translation> +<translation id="793134539373873765">p2p ಅನ್ನು OS ಅಪ್ಡೇಟ್ ಪ್ಲೇಲೋಡ್ಗಳಿಗಾಗಿ ಬಳಸಬೇಕೇ ಎಂಬುದನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. ಸರಿ ಎಂದು ಹೊಂದಿಸಿದರೆ, ಸಾಧನಗಳಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಇಂಟರ್ನೆಟ್ ಬ್ಯಾಂಡ್ವಿಡ್ತ್ ಬಳಕೆ ಹಾಗೂ ದಟ್ಟಣೆಯನ್ನು ಸಂಭಾವ್ಯವಾಗಿ ಕಡಿಮೆ ಮಾಡುವ, LAN ನಲ್ಲಿರುವ ಅಪ್ಡೇಟ್ ಪ್ಲೇಲೋಡ್ಗಳನ್ನು ಬಳಸಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ಒಂದು ವೇಳೆ ಅಪ್ಡೇಟ್ ಪ್ಲೇಲೋಡ್ LAN ನಲ್ಲಿ ಲಭ್ಯವಿಲ್ಲದಿದ್ದರೆ, ಸಾಧನವು ಅಪ್ಡೇಟ್ ಸರ್ವರ್ನಿಂದ ಡೌನ್ಲೋಡ್ ಮಾಡುವುದರಿಂದ ಪೂರ್ವ ಸ್ಥಿತಿಗೆ ಮರಳುತ್ತದೆ. ಸರಿ ಎಂದು ಹೊಂದಿಸದ ಅಥವಾ ಕಾನ್ಫಿಗರ್ ಮಾಡಿರದಿದ್ದರೆ, p2p ಅನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ.</translation> <translation id="7933141401888114454">ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರ ರಚನೆ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> <translation id="793473937901685727">ARC-ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಲಭ್ಯವಿರುವ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಹೊಂದಿಸಿ</translation> <translation id="7937766917976512374">ವೀಡಿಯೊ ಸೆರೆಹಿಡಿಯುವಿಕೆ ಅನುಮತಿಸಿ ಅಥವಾ ನಿರಾಕರಿಸಿ</translation> @@ -2940,7 +2940,7 @@ "1412.2.": 1412.2 ನ ಯಾವುದೇ ಕಿರು ಆವೃತ್ತಿಗೆ ಅಪ್ಡೇಟ್ ಮಾಡಿ (ಉದಾ: 1412.2.34 ಅಥವಾ 1412.2.2) "1412.24.34": ಈ ನಿರ್ದಿಷ್ಟ ಆವೃತ್ತಿಗೆ ಮಾತ್ರ ಅಪ್ಡೇಟ್ ಮಾಡಿ - ಎಚ್ಚರಿಕೆ: ಆವೃತ್ತಿ ನಿಯಂತ್ರಣಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗಿಲ್ಲ ಏಕೆಂದರೆ ಅವುಗಳು ಸಾಫ್ಟ್ವೇರ್ ಅಪ್ಡೇಟ್ಗಳು ಮತ್ತು ಪ್ರಮುಖ ಭದ್ರತೆ ಪರಿಹಾರಗಳನ್ನು ಬಳಕೆದಾರರು ಸ್ವೀಕರಿಸುವುದನ್ನು ತಡೆಗಟ್ಟಬಹುದು. ನಿರ್ದಿಷ್ಟ ಆವೃತ್ತಿ ಪೂರ್ವಪ್ರತ್ಯಕ್ಕೆ ಅಪ್ಡೇಟ್ಗಳನ್ನು ನಿಯಂತ್ರಿಸುವುದರಿಂದ ಬಳಕೆದಾರರು ಅಪಾಯಕ್ಕೆ ಈಡಾಗಬಹುದು.</translation> + ಎಚ್ಚರಿಕೆ: ಆವೃತ್ತಿ ನಿಯಂತ್ರಣಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗಿಲ್ಲ ಏಕೆಂದರೆ ಅವುಗಳು ಸಾಫ್ಟ್ವೇರ್ ಅಪ್ಡೇಟ್ಗಳು ಮತ್ತು ಪ್ರಮುಖ ಭದ್ರತೆ ಪರಿಹಾರಗಳನ್ನು ಬಳಕೆದಾರರು ಸ್ವೀಕರಿಸುವುದನ್ನು ತಡೆಗಟ್ಟಬಹುದು. ನಿರ್ದಿಷ್ಟ ಆವೃತ್ತಿ ಪೂರ್ವಪ್ರತ್ಯಯಕ್ಕೆ ಅಪ್ಡೇಟ್ಗಳನ್ನು ನಿಯಂತ್ರಿಸುವುದರಿಂದ ಬಳಕೆದಾರರು ಅಪಾಯಕ್ಕೆ ಈಡಾಗಬಹುದು.</translation> <translation id="8519264904050090490">ನಿರ್ವಹಿಸಲಾದ ಬಳಕೆದಾರ ಮ್ಯಾನುಯಲ್ ವಿನಾಯಿತಿ URLಗಳು</translation> <translation id="8538235451413605457">ಅನುಮತಿ ಇರುವ <ph name="PRODUCT_NAME" /> ನ ಕನಿಷ್ಠ ಆವೃತ್ತಿಯ ಆವಶ್ಯಕತೆಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತದೆ. ಇದಕ್ಕಿಂತ ಹಿಂದಿನ ಆವೃತ್ತಿಗಳನ್ನು ತೀರಾ ಹಳೆಯದು ಎಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ ಮತ್ತ OS ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡದ ಹೊರತು, ಬಳಕೆದಾರರು ಸೈನ್ ಇನ್ ಮಾಡಲು, ಸಾಧನವು ಬಿಡುವುದಿಲ್ಲ. ಬಳಕೆದಾರರ ಸೆಶನ್ನ ಸಮಯದಲ್ಲಿ ಪ್ರಸ್ತುತ ಆವೃತ್ತಿಯು ತೀರಾ ಹಳೆಯದಾದರೆ, ಬಳಕೆದಾರರನ್ನು ಒತ್ತಾಯಪೂರ್ವಕವಾಗಿ ಸೈನ್ ಔಟ್ ಮಾಡಲಾಗುತ್ತದೆ. @@ -3073,17 +3073,17 @@ <translation id="8908294717014659003">ಮಾಧ್ಯಮ ಸೆರೆಹಿಡಿಯುವ ಸಾಧನಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಪಡೆಯಲು ವೆಬ್ಸೈಟ್ಗಳನ್ನು ಅನುಮತಿಸಲಾಗಿದೆಯೇ ಎಂಬುದನ್ನು ಹೊಂದಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಮಾಧ್ಯಮ ಸೆರೆಹಿಡಿಯುವ ಸಾಧನಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ಡಿಫಾಲ್ಟ್ ಆಗಿ ಅನುಮತಿಸಬಹುದಾಗಿದೆ ಅಥವಾ ಬಳೆಕದಾರರು ಮಾಧ್ಯಮ ಸೆರೆಹಿಡಿಯುವ ಸಾಧನಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಪಡೆಯಲು ಪ್ರತಿ ಬಾರಿಯೂ ಕೇಳಬೇಕಾಗುತ್ತದೆ. ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೆ ಬಿಟ್ಟರೆ, 'PromptOnAccess' ಅನ್ನು ಬಳಸಲಾಗುವುದು ಮತ್ತು ಅದನ್ನು ಬದಲಾಯಿಸಲು ಬಳಕೆದಾರರಿಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ.</translation> -<translation id="8909280293285028130">ಬ್ಯಾಟರಿ ಪವರ್ನಲ್ಲಿರನ್ ಆಗುತ್ತಿರುವಾಗ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಆಗುವ ನಂತರ ಬಳಕೆದಾರ ಇನ್ಪುಟ್ ಇಲ್ಲದೆಯೇ ಸಮಯದ ಉದ್ದವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. +<translation id="8909280293285028130">ಬ್ಯಾಟರಿ ಪವರ್ನಲ್ಲಿ ರನ್ ಆಗುತ್ತಿರುವಾಗ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಆಗುವ ನಂತರ ಬಳಕೆದಾರ ಇನ್ಪುಟ್ ಇಲ್ಲದೆಯೇ ಸಮಯದ ಕಾಲಾವಧಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. - ಸೊನ್ನೆಗಿಂತ ಹೆಚ್ಚಿನದಕ್ಕೆ ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸಿದ್ದರೆ, ಪರದೆಯನ್ನು <ph name="PRODUCT_OS_NAME" /> ಲಾಕ್ ಆಗಿಸುವ ಮುನ್ನ ಬಳಕೆದಾರ ನಿಷ್ಪಲನಾಗಿ ಉಳಿಯುವ ಸಮಯದ ಉದ್ದವನ್ನು ಇದು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. + ಸೊನ್ನೆಗಿಂತ ಹೆಚ್ಚಿನದಕ್ಕೆ ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸಿದ್ದರೆ, ಪರದೆಯನ್ನು <ph name="PRODUCT_OS_NAME" /> ಲಾಕ್ ಆಗಿಸುವ ಮುನ್ನ ಬಳಕೆದಾರ ನಿಷ್ಫಲನಾಗಿ ಉಳಿಯುವ ಸಮಯದ ಕಾಲಾವಧಿಯನ್ನು ಇದು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. - ಈ ನೀತಿಯನ್ನು ಸೊನ್ನೆಗೆ ಹೋಲಿಸಿದರೆ, ಬಳಕೆದಾರ ನಿಷ್ಪಲನಾಗುವ ಮುನ್ನ <ph name="PRODUCT_OS_NAME" /> ಪರದೆಯನ್ನು ಲಾಕ್ ಮಾಡುವುದಿಲ್ಲ. + ಈ ನೀತಿಯನ್ನು ಸೊನ್ನೆಗೆ ಹೋಲಿಸಿದರೆ, ಬಳಕೆದಾರ ನಿಷ್ಫಲನಾಗುವ ಮುನ್ನ <ph name="PRODUCT_OS_NAME" /> ಪರದೆಯನ್ನು ಲಾಕ್ ಮಾಡುವುದಿಲ್ಲ. ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದಲ್ಲಿ, ಸಮಯದ ಡಿಫಾಲ್ಟ್ ಉದ್ದವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. - ಶಿಫಾರಸು ಮಾಡಲಾದ ವಿಧಾನವು ನಿಷ್ಪಲದಲ್ಲಿನ ಪರದೆಯನ್ನು ಲಾಕ್ ಮಾಡುವಿಕೆಯು ಅಮಾನತಿನಲ್ಲಿನ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಮಾಡುವಿಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ನಿಷ್ಪಲ ವಿಳಂಬದ ನಂತರ <ph name="PRODUCT_OS_NAME" /> ಅಮಾನತನ್ನು ಹೊಂದಿರುವಂತೆ ಮಾಡುತ್ತದೆ. + ಶಿಫಾರಸು ಮಾಡಲಾದ ವಿಧಾನವು ನಿಷ್ಫಲದಲ್ಲಿನ ಪರದೆಯನ್ನು ಲಾಕ್ ಮಾಡುವಿಕೆಯು ಅಮಾನತಿನಲ್ಲಿನ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಮಾಡುವಿಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ನಿಷ್ಫಲ ವಿಳಂಬದ ನಂತರ <ph name="PRODUCT_OS_NAME" /> ಅಮಾನತನ್ನು ಹೊಂದಿರುವಂತೆ ಮಾಡುತ್ತದೆ. -ಅಮಾನತಿಗಿಂತ ಮುಂಚೆ ಅಥವಾ ನಿಷ್ಪಲದಲ್ಲಿನ ಅಮಾನತು ಅವಶ್ಯಕವೆನಿಸದಿದ್ದಾಗ ನಿರ್ದಿಷ್ಟ ಸಮಯದಲ್ಲಿ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಮಾಡುವಿಕೆ ಸಂಭವಿಸಿದಾಗ ಮಾತ್ರ ಈ ನೀತಿಯನ್ನು ಬಳಸಲಾಗುವುದು. +ಅಮಾನತಿಗಿಂತ ಮುಂಚೆ ಅಥವಾ ನಿಷ್ಫಲದಲ್ಲಿನ ಅಮಾನತು ಅವಶ್ಯಕವೆನಿಸದಿದ್ದಾಗ ನಿರ್ದಿಷ್ಟ ಸಮಯದಲ್ಲಿ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಮಾಡುವಿಕೆ ಸಂಭವಿಸಿದಾಗ ಮಾತ್ರ ಈ ನೀತಿಯನ್ನು ಬಳಸಲಾಗುವುದು. -ನೀತಿ ಮೌಲ್ಯವನ್ನು ಮಿಲಿಸೆಕುಂಡುಗಳಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು. ನಿಷ್ಪಲ ವಿಳಂಬಕ್ಕಿಂತ ಕಡಿಮೆಗೆ ಅಥವಾ ಸಮನಾಗಿ ನೀತಿ ಮೌಲ್ಯಗಳನ್ನು ಬಂಧಿಸಲಾಗಿದೆ.</translation> +ನೀತಿ ಮೌಲ್ಯವನ್ನು ಮಿಲಿಸೆಕುಂಡುಗಳಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು. ನಿಷ್ಫಲ ವಿಳಂಬಕ್ಕಿಂತ ಕಡಿಮೆಗೆ ಅಥವಾ ಸಮನಾಗಿ ನೀತಿ ಮೌಲ್ಯಗಳನ್ನು ಬಂಧಿಸಲಾಗಿದೆ.</translation> <translation id="891435090623616439">JSON ಸ್ಟ್ರಿಂಗ್ ಎಂಬುದಾಗಿ ಎನ್ಕೋಡ್ ಮಾಡಲಾಗಿದೆ, ವಿವರಗಳಿಗೆ <ph name="COMPLEX_POLICIES_URL" /> ನೋಡಿ</translation> <translation id="8934944553121392674"><ph name="DEVICE_PRINTERS_POLICY" /> ಯಿಂದ ಯಾವ ಪ್ರಿಂಟರ್ಗಳು ಬಳಕೆದಾರರಿಗೆ ಲಭ್ಯವಿವೆ ಎನ್ನುವುದನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ. ದೊಡ್ಡ ಪ್ರಮಾಣದಲ್ಲಿ ಪ್ರಿಂಟರ್ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಯಾವ ಪ್ರವೇಶ ಕಾರ್ಯನೀತಿಯನ್ನು ಬಳಸಬೇಕು ಎನ್ನುವುದನ್ನು ನಿಗದಿಪಡಿಸುತ್ತದೆ. <ph name="PRINTERS_ALLOW_ALL" /> ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿದರೆ, ಎಲ್ಲ ಪ್ರಿಂಟರ್ಗಳನ್ನು ತೋರಿಸಲಾಗುತ್ತದೆ. <ph name="PRINTERS_BLACKLIST" /> ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿದರೆ, ನಿರ್ದಿಷ್ಟ ಪ್ರಿಂಟರ್ಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ನಿರ್ಬಂಧಿಸಲು <ph name="DEVICE_PRINTERS_BLACKLIST" /> ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. <ph name="PRINTERS_WHITELIST" /> ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿದರೆ, ಆಯ್ಕೆ ಮಾಡಬಹುದಾದ ಪ್ರಿಂಟರ್ಗಳನ್ನು ಮಾತ್ರ <ph name="DEVICE_PRINTERS_WHITELIST" /> ನಿಗದಿಪಡಿಸುತ್ತದೆ. ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದಿದ್ದರೆ, <ph name="PRINTERS_ALLOW_ALL" /> ಎಂದು ಭಾವಿಸಿಕೊಳ್ಳಲಾಗುತ್ತದೆ. </translation> @@ -3190,9 +3190,9 @@ * |IdleWarning| ಮೂಲಕ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಸಮಯದ ತನಕ ಬಳಕೆದಾರರು ತಟಸ್ಥವಾಗಿ ಉಳಿದರೆ ಎಚ್ಚರಿಕೆ ಸಂವಾದವನ್ನು ತೋರಿಸಲಾಗುತ್ತದೆ, ತಟಸ್ಥ ಗೊಳಿಸುವ ಕ್ರಮವನ್ನು ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ ಎಂದು ಈ ಮೂಲಕ ಬಳಕೆದಾರರಿಗೆ ಹೇಳಲಾಗುತ್ತದೆ. * |Idle| ಮೂಲಕ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಸಮಯದ ತನಕ ಬಳಕೆದಾರರ ತಟಸ್ಥವಾಗಿ ಉಳಿದರೆ |IdleAction| ಮೂಲಕ ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಕ್ರಮವನ್ನು ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ. - ಮೇಲಿನ ಪ್ರತಿಯೊಂದು ಕ್ರಮಗಳಿಗೆ, ವಿಳಂಬವನ್ನು ಮಿಲಿಸೆಕೆಂಡುಗಳಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ಪಡಿಸಬೇಕು ಮತ್ತು ಕ್ರಮಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಟ್ರಿಗ್ಗರ್ ಮಾಡಲು ಶೂನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿಸುವ ಅಗತ್ಯವಿರುತ್ತದೆ. ಒಂದು ವೇಳೆ ವಿಳಂಬವನ್ನು ಶೂನ್ಯಕ್ಕೆ ಹೊಂದಿಸಿದರೆ, <ph name="PRODUCT_OS_NAME" /> ಅನುಗುಣವಾದ ಕ್ರಮವನ್ನು ತೆಗೆದುಕೊಳ್ಳುವುದಿಲ್ಲ. ಮೇಲಿನ ಪ್ರತಿಯೊಂದು ವಿಳಂಬಗಳಿಗಾಗಿ, ಸಮಯಾವಧಿಯನ್ನು ಹೊಂದಿಸದೆ ಇರುವಾಗ, ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. + ಮೇಲಿನ ಪ್ರತಿಯೊಂದು ಕ್ರಮಗಳಿಗೆ, ವಿಳಂಬವನ್ನು ಮಿಲಿಸೆಕೆಂಡುಗಳಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ಪಡಿಸಬೇಕು ಮತ್ತು ಕ್ರಮಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಟ್ರಿಗರ್ ಮಾಡಲು ಶೂನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಮೌಲ್ಯವನ್ನು ಹೊಂದಿಸುವ ಅಗತ್ಯವಿರುತ್ತದೆ. ಒಂದು ವೇಳೆ ವಿಳಂಬವನ್ನು ಶೂನ್ಯಕ್ಕೆ ಹೊಂದಿಸಿದರೆ, <ph name="PRODUCT_OS_NAME" /> ಅನುಗುಣವಾದ ಕ್ರಮವನ್ನು ತೆಗೆದುಕೊಳ್ಳುವುದಿಲ್ಲ. ಮೇಲಿನ ಪ್ರತಿಯೊಂದು ವಿಳಂಬಗಳಿಗಾಗಿ, ಸಮಯಾವಧಿಯನ್ನು ಹೊಂದಿಸದೆ ಇರುವಾಗ, ಡಿಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. - |ScreenDim| ಮೌಲ್ಯಗಳನ್ನು |ScreenOff| ಗಿಂತ ಕಡಿಮೆ ಅಥವಾ ಸಮಾನ, |ScreenOff| ಮತ್ತು |IdleWarning| ಅನ್ನು |Idle| ಗಿಂತ ಕಡಿಮೆ ಅಥವಾ ಸಮಾನ ಎಂದು ನಿಗಧಿಪಡಿಸಲಾಗುತ್ತದೆ ಎಂಬುದು ಗಮನದಲ್ಲಿರಲಿ. + |ScreenDim| ಮೌಲ್ಯಗಳನ್ನು |ScreenOff| ಗಿಂತ ಕಡಿಮೆ ಅಥವಾ ಸಮಾನ, |ScreenOff| ಮತ್ತು |IdleWarning| ಅನ್ನು |Idle| ಗಿಂತ ಕಡಿಮೆ ಅಥವಾ ಸಮಾನ ಎಂದು ನಿಗದಿಪಡಿಸಲಾಗುತ್ತದೆ ಎಂಬುದು ಗಮನದಲ್ಲಿರಲಿ. |IdleAction| ನಾಲ್ಕು ಸಂಭವನೀಯ ಕಾರ್ಯಗಳಲ್ಲಿ ಒಂದಾಗಿರಬಹುದು: * |Suspend| @@ -3200,7 +3200,7 @@ * |Shutdown| * |DoNothing| - |IdleAction| ಅನ್ನು ಹೊಂದಿಸದೆ ಇರುವಾಗ, ಅಮಾನತುಗೊಳಿಸುವ, ಡೀಫಾಲ್ಟ್ ಕ್ರಮವನ್ನು ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ. + |IdleAction| ಅನ್ನು ಹೊಂದಿಸದೆ ಇರುವಾಗ, ಅಮಾನತುಗೊಳಿಸುವ, ಡಿಫಾಲ್ಟ್ ಕ್ರಮವನ್ನು ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ. AC ಪವರ್ ಮತ್ತು ಬ್ಯಾಟರಿಗಾಗಿ ಪ್ರತ್ಯೇಕ ಸೆಟ್ಟಿಂಗ್ಗಳು ಸಹ ಇವೆ. </translation>
diff --git a/components/policy/resources/policy_templates_lt.xtb b/components/policy/resources/policy_templates_lt.xtb index cefbd12..a403c131 100644 --- a/components/policy/resources/policy_templates_lt.xtb +++ b/components/policy/resources/policy_templates_lt.xtb
@@ -203,6 +203,7 @@ <translation id="1522425503138261032">Leisti svetainėse stebėti naudotojo buvimo vietą</translation> <translation id="152657506688053119">Alternatyvių numatytojo paieškos teikėjo URL sąrašas</translation> <translation id="1530812829012954197">Visada pateikti šiuos URL šablonus prieglobos naršyklėje</translation> +<translation id="1541170838458414064">Spausdinamo puslapio dydžio apribojimas</translation> <translation id="1553684822621013552">Kai ši politika yra galiojanti, ARC įgalinama naudotojui (taikomos papildomos politikos nustatymų patikros – ARC vis tiek bus nepasiekiama, jei trumpalaikis režimas arba kelios paskyros įgalintos @@ -384,6 +385,12 @@ <translation id="2082205219176343977">Konfigūruoti mažiausią leistiną įrenginio „Chrome“ versiją.</translation> <translation id="209586405398070749">Stabilus kanalas</translation> <translation id="2098658257603918882">Įgalinti naudojimo ir su strigtimis susijusių duomenų ataskaitų kūrimą</translation> +<translation id="2098916259427011890">Ši politika valdo, ar pranešti versijos informaciją, pvz., OS versiją, OS platformą, OS architektūrą, „<ph name="PRODUCT_NAME" />“ versiją ir „<ph name="PRODUCT_NAME" />“ kanalą. + + Kai ši politika nenustatyta arba nustatyta kaip „Tiesa“, versijos informacija renkama. + Kai ši politika nustatyta kaip „Netiesa“, versijos informacija nerenkama. + + Ši politika galioja, tik kai įgalinti „Chrome“ ataskaitų teikimo plėtinys ir „Cloud Management“.</translation> <translation id="2111016292707172233">Įgalinamas Paieškos palietus pasiekiamumas „<ph name="PRODUCT_NAME" />“ turinio rodinyje. Jei įgalinsite šį nustatymą, naudotojams bus pasiekiama Paieška palietus ir jie galės įjungti arba išjungti funkciją. @@ -417,6 +424,8 @@ Jei politika nenustatyta, numatytoji vertė yra 0 laipsnių ir naudotojas gali ją keisti. Tokiu atveju numatytoji vertė nėra pritaikoma iš naujo paleidus įrenginį iš naujo.</translation> +<translation id="214901426630414675">Spausdinimo dvipusiu režimu ribojimas</translation> +<translation id="2149330464730004005">Įgalinti spalvotą spausdinimą</translation> <translation id="2156132677421487971">Konfigūruojama „<ph name="PRODUCT_NAME" />“ – funkcijos, kurią naudodami naudotojai gali siųsti skirtukų, svetainių ar darbalaukio turinį iš naršyklės į nuotolinius ekranus ir garso sistemas – politika.</translation> <translation id="2166472654199325139">Nefiltruoti turinio suaugusiesiems svetainėse</translation> <translation id="2168397434410358693">Neveikos delsa, kai naudojama kintamosios srovės energija</translation> @@ -616,6 +625,7 @@ <translation id="2529880111512635313">Konfigūruoti programų ir plėtinių, kuriuos įdiegti privaloma, sąrašą</translation> <translation id="253135976343875019">Neveikos įspėjimo delsa, kai naudojama kintamosios srovės energija</translation> <translation id="2536525645274582300">Ar įgalinti „Google“ vietovės paslaugas, nusprendžia naudotojas</translation> +<translation id="2550593661567988768">Tik vienpusis spausdinimas</translation> <translation id="2552966063069741410">Laiko juosta</translation> <translation id="2562339630163277285">Nurodomas paieškos variklio, naudoto tiesioginiams rezultatams teikti, URL. URL turi būti eilutė <ph name="SEARCH_TERM_MARKER" />, kuri pateikiant užklausą bus pakeista naudotojo jau įvestu tekstu. @@ -749,9 +759,12 @@ Išjungus šį nustatymą arba nenustačius vertės, funkcija „Spaudinio peržiūra“ naudos pastarąjį naudotą spausdintuvą kaip numatytąją paskirties vietos parinktį. Įjungus šį nustatymą funkcija „Spaudinio peržiūra“ naudos OS sistemos numatytąjį spausdintuvą kaip numatytąją paskirties vietos parinktį.</translation> +<translation id="2856674246949497058">Grąžinti ir palikti tikslinę versiją, jei OS versija naujesnė nei tikslinė. Atlikti „Powerwash“ vykdant procesą.</translation> <translation id="2872961005593481000">Stabdyti</translation> +<translation id="2873651257716068683">Nepaisoma numatytojo spausdinamo puslapio dydžio. Jei puslapio dydis nepasiekiamas, šios politikos nepaisoma.</translation> <translation id="2874209944580848064">„<ph name="PRODUCT_OS_NAME" />“ įrenginiams, kuriuose palaikomos „Android“ programos, skirta pastaba:</translation> <translation id="2877225735001246144">Neleisti CNAME paieškos vykdant „Kerberos“ tapatumo nustatymą</translation> +<translation id="2892414556511568464">Apribojamas spausdinimas dvipusiu režimu. Jei politika nenustatyta ar nenurodyta vertė, netaikomas joks apribojimas.</translation> <translation id="2893546967669465276">Sistemos žurnalų siuntimas valdymo serveriui</translation> <translation id="2899002520262095963">„Android“ programos gali naudoti šioje politikoje nustatytas tinklo konfigūracijas ir CA sertifikatus, bet negali pasiekti kai kurių konfigūravimo parinkčių.</translation> <translation id="290002216614278247">Galima užrakinti naudotojo sesiją atsižvelgiant į kliento laiką arba išnaudotą dienos kvotą. @@ -839,6 +852,7 @@ Serverius raginama perkelti į ECDHE šifruotuosius programų komplektus. Jei jie nepasiekiami, įsitikinkite, kad įgalintas šifruotasis programų komplektas, kuriam naudojami RSA rakto mainai.</translation> <translation id="316778957754360075">Šis nustatymas nebenaudojamas 29 ir naujesnėse „<ph name="PRODUCT_NAME" />“ versijose. Rekomenduojamas būdas nustatyti organizacijos valdomą plėtinių / programų rinkinius yra įtraukti svetaines priglobiančius CRX paketus į politiką „ExtensionInstallSources“ ir nuorodas įdėti tiesiogiai į tinklalapio paketus. Tam tinklalapiui skirtą paleidimo priemonę galima sukurti naudojant politiką „ExtensionInstallForcelist“.</translation> +<translation id="3171369832001535378">Įrenginio tinklo prieglobos serverio pavadinimo šablonas</translation> <translation id="3185009703220253572">nuo <ph name="SINCE_VERSION" /> versijos</translation> <translation id="3187220842205194486">„Android“ negali pasiekti įmonės raktų. Ši politika jiems neturi įtakos.</translation> <translation id="3201273385265130876">Leidžiama nurodyti „<ph name="PRODUCT_NAME" />“ naudojamą tarpinį serverį ir naudotojams neleidžiama pakeisti tarpinio serverio nustatymų. @@ -951,6 +965,7 @@ Šios politikos vertė yra registracijos prieigos raktas, kurį galima gauti iš „Google“ administratoriaus pulto.</translation> <translation id="3496296378755072552">Slaptažodžių tvarkytuvė</translation> +<translation id="3502555714327823858">Leisti visus dvipusius režimus</translation> <translation id="350443680860256679">ARC konfigūravimas</translation> <translation id="3504791027627803580">Nurodomas paieškos variklio URL, naudojamas vaizdų paieškai teikti. Paieškos užklausos bus siunčiamos naudojant GET metodą. Jei nustatyta politika „DefaultSearchProviderImageURLPostParams“, vaizdų paieškos užklausoms naudojamas POST metodas. @@ -960,6 +975,7 @@ <translation id="350797926066071931">Įgalinti vertimą</translation> <translation id="3512226956150568738">Jei kliento turimo modelio įrenginyje jau buvo palaikomas failų formatas ARC, kol dar perėjimas prie „ext4“ šifruotės nebuvo būtinas, kad būtų galima vykdyti ARC failus, ir jei politika „ArcEnabled“ nustatyta į „true“, ši parinktis veiks kaip „AskUser“ (3 vertė). Visais kitais atvejais (jei įrenginio modelyje nebuvo nepalaikomas failų formatas ARC arba jei politika „ArcEnabled“ nustatyta į „false“) ši vertė bus lygi „DisallowArc“ (0 vertė).</translation> <translation id="3524204464536655762">Neleisti jokiai svetainei pateikti užklausos pasiekti USB įrenginių naudojant „WebUSB“ API</translation> +<translation id="3526752951628474302">Tik vienspalvis spausdinimas</translation> <translation id="3528000905991875314">Įgalinti kitus klaidų puslapius</translation> <translation id="3545457887306538845">Leidžiama valdyti, kur galima naudoti kūrėjo įrankius. @@ -983,6 +999,7 @@ <translation id="3577251398714997599">Skelbimų nustatymai svetainėms su nepageidaujamais skelbimais</translation> <translation id="3591584750136265240">Konfigūruoti prisijungimo autentifikavimo elgseną</translation> <translation id="3627678165642179114">Įgalinti rašybos tikrinimo žiniatinklio paslaugą arba jos neleisti</translation> +<translation id="3628480121685794414">Įgalinti vienpusį spausdinimą</translation> <translation id="3646859102161347133">Nustatyti ekrano didinimo tipą</translation> <translation id="3653237928288822292">Numatytojo paieškos teikėjo piktograma</translation> <translation id="3660562134618097814">„SAML IdP“ slapukų perkėlimas prisijungiant</translation> @@ -1084,6 +1101,7 @@ Nustačius politiką kaip „False“, viešojo terminalo sesijos informacija nepranešama. Nustačius kaip „True“ arba nenustačius, viešojo terminalo sesijos informacija pranešama.</translation> +<translation id="3858658082795336534">Numatytasis spausdinimas dvipusiu režimu</translation> <translation id="3859780406608282662">Pridėti parametrą prie atsitiktinio varianto gavimo „<ph name="PRODUCT_OS_NAME" />“. Jei nurodyta, prie URL, naudojamo gaunant atsitiktinį variantą, pridedamas užklausos parametras, vadinamas „apriboti“. Parametro vertė bus vertė, nurodyta šioje politikoje. @@ -1192,6 +1210,12 @@ Priešingu atveju gali būti nustatyta viena iš nurodytų verčių: „tls1.2“ arba „tls1.3“. Nustačius „<ph name="PRODUCT_NAME" />“ nenaudos naujesnių SSL / TLS versijų, nei nurodyta versija. Neatpažįstamos vertės nebus paisoma.</translation> <translation id="4121350739760194865">Neleisti rodyti programų reklamų naujo skirtuko puslapyje</translation> <translation id="412697421478384751">Leisti naudotojams nustatyti nesudėtingus užrakinimo ekrano PIN kodus</translation> +<translation id="4129183564590133854">Ši politika valdo, ar pranešti informaciją, kurią galima naudoti naudotojams identifikuoti, pvz., OS prisijungimo duomenis, „<ph name="PRODUCT_NAME" />“ profilio prisijungimo duomenis, „<ph name="PRODUCT_NAME" />“ profilio pavadinimą, „<ph name="PRODUCT_NAME" />“ profilio kelią ir „<ph name="PRODUCT_NAME" />“ vykdomąjį kelią. + + Kai ši politika nenustatyta arba nustatyta kaip „Tiesa“, informacija, kurią galima naudoti naudotojams identifikuoti, renkama. + Kai ši politika nustatyta kaip „Netiesa“, informacija, kurią galima naudoti naudotojams identifikuoti, nerenkama. + + Ši politika galioja, tik kai įgalinti „Chrome“ ataskaitų teikimo plėtinys ir „Cloud Management“.</translation> <translation id="4138655880188755661">Laiko apribojimas</translation> <translation id="4157003184375321727">Pranešti OS ir programinės aparatinės įrangos versiją</translation> <translation id="4157594634940419685">Leisti pasiekti savuosius CUPS spausdintuvus</translation> @@ -1502,6 +1526,12 @@ Jei nenustatyta, naudotojo gali būti klausiama, ar importuoti, arba gali būti automatiškai importuojama.</translation> <translation id="5056708224511062314">Ekrano didinimas išjungtas</translation> <translation id="5058573563327660283">Pasirinkti strategiją, naudojamą vietai diske atlaisvinti, kai atliekamas automatinis valymas (nebenaudojama)</translation> +<translation id="5058771123777243130">Ši politika valdo, ar pranešti politikos duomenis ir politikos gavimo laiką. + + Kai ši politika nenustatyta arba nustatyta kaip „Tiesa“, politikos duomenys ir politikos gavimo laikas renkami. + Kai ši politika nustatyta kaip „Netiesa“, politikos duomenys ir politikos gavimo laikas nerenkami. + + Ši politika galioja, tik kai įgalinti „Chrome“ ataskaitų teikimo plėtinys ir „Cloud Management“.</translation> <translation id="5067143124345820993">Prisijungusių naudotojų baltasis sąrašas</translation> <translation id="5068140065960598044">Taikant „<ph name="PRODUCT_NAME" />“ debesies politiką įrenginio politikos nebepaisoma.</translation> <translation id="5085647276663819155">Neleisti spaudinio peržiūros</translation> @@ -1618,6 +1648,7 @@ <translation id="5366977351895725771">Jei ši politika negalioja, šis naudotojas negalės kurti prižiūrimų naudotojų. Visi esami naudotojai bus vis tiek pasiekiami. Jei ši politika galioja arba yra nesukonfigūruota, šis naudotojas gali kurti ir valdyti prižiūrimus naudotojus.</translation> +<translation id="5369937289900051171">Tik spalvotas spausdinimas</translation> <translation id="5370279767682621504">Įgalinti HTTP/0.9 protokolo palaikymą nenumatytuose prievaduose</translation> <translation id="5378985487213287085">Leidžiama nustatyti, ar svetainėse leidžiama pateikti darbalaukio pranešimus. Pagal numatytuosius nustatymus gali būti leidžiama, draudžiama pateikti darbalaukio pranešimus arba naudotojo (-os) gali būti klausiama kaskart svetainėje norint rodyti darbalaukio pranešimus. @@ -1644,6 +1675,7 @@ Jei nenustatyta, naudotojo gali būti paklausta, ar importuoti, arba gali būti automatiškai importuojama.</translation> <translation id="5423197884968724595">„Android WebView“ apribojimo pavadinimas:</translation> +<translation id="5424147596523390018">Leisti visus spalvų režimus</translation> <translation id="5442026853063570579">Ši politika taip pat valdo galimybę pasiekti „Android“ kūrėjo parinktis. Jei šią politiką nustatysite kaip „DeveloperToolsDisallowed“ (2 vertė), naudotojai negalės pasiekti kūrėjo parinkčių. Jei nustatysite kitą šios politikos vertę arba jos nenustatysite, naudotojai galės pasiekti kūrėjo parinktis palietę versijos numerį septynis kartus „Android“ nustatymų programoje.</translation> <translation id="5447306928176905178">Įgalinti ataskaitų teikimo atminties informaciją (JS masyvo dydžio) puslapyje (nepatvirtinta)</translation> <translation id="5457065417344056871">Svečio režimo įgalinimas naršyklėje</translation> @@ -1711,6 +1743,7 @@ <translation id="5586942249556966598">Nieko nedaryti</translation> <translation id="5630352020869108293">Atkurti paskutinę sesiją</translation> <translation id="5645779841392247734">Leisti slapukus šiose svetainėse</translation> +<translation id="5689430183304951538">Numatytasis spausdinamo puslapio dydis</translation> <translation id="5693469654327063861">Leisti perkelti duomenis</translation> <translation id="5694594914843889579">Kai ši politika nustatyta į „true“, išorinė saugykla nepasiekiama failų naršyklėje. @@ -1740,6 +1773,7 @@ Kai ši politika nenustatyta, naudojama numatytoji laiko trukmė. Politikos vertė turėtų būti nurodyta milisekundėmis.</translation> +<translation id="5783009211970309878">Antraščių ir poraščių spausdinimas</translation> <translation id="5809728392451418079">Nustatyti įrenginio vietinių paskyrų pateikiamą pavadinimą</translation> <translation id="5814301096961727113">Nustatyti numatytąją ekrano skaitymo balsu prisijungimo ekrane būklę</translation> <translation id="5815129011704381141">Po atnaujinimo automatiškai įkelti operacinę sistemą iš naujo</translation> @@ -1757,6 +1791,7 @@ Jei pasirinkta „Neleidžiama“, puslapių negalima atidaryti inkognito režimu. Jei pasirinkta „Priverstinai“, puslapius galima atidaryti TIK inkognito režimu.</translation> +<translation id="582857022372205358">Įgalinti trumpojo krašto dvipusį spausdinimą</translation> <translation id="583091600226586337"> Įgalinus politiką naudotojo bus klausiama, kur išsaugoti kiekvieną failą prieš juos atsisiunčiant. Išjungus politiką atsisiuntimas bus pradėtas iš karto ir naudotojo nebus klausiama, kur išsaugoti failą. @@ -1792,6 +1827,7 @@ Jei šis nustatymas išjungtas arba nesukonfigūruotas, „Gnubby“ autentifikavimo užklausos nebus perduotos įgaliotajam serveriui.</translation> <translation id="5898486742390981550">Kai keli naudotojai yra prisijungę, tik pagrindinis naudotojas gali naudoti „Android“ programas.</translation> +<translation id="5901427587865226597">Tik dvipusis spausdinimas</translation> <translation id="5906199912611534122">Leidžiama įgalinti arba išjungti tinklo reguliavimą. Tai taikoma visiems naudotojams ir visoms sąsajoms įrenginyje. Nustačius reguliavimas taikomas, kol politika pakeičiama, kad jis būtų išjungtas. @@ -1898,6 +1934,7 @@ Politikos vertė turėtų būti nurodyta milisekundėmis. Vertės apribojamos, kad būtų mažesnės nei neaktyvumo laikotarpis.</translation> <translation id="6097601282776163274">Įgalinti URL pagrįstą anonimizuotų duomenų rinkimą</translation> +<translation id="6099853574908182288">Numatytasis spausdinimas spalvotu režimu</translation> <translation id="6111936128861357925">Leisti dinozaurų Velykų kiaušinių žaidimą</translation> <translation id="6114416803310251055">nepatvirtinta</translation> <translation id="6133088669883929098">Leisti visoms svetainėms naudoti rakto generavimą</translation> @@ -1912,6 +1949,7 @@ Jei ši politika nenustatyta, visose svetainėse bus naudojama visuotinė numatytoji vertė iš politikos „DefaultPluginsSetting“ (jei ji nustatyta) arba naudotojo asmeninės konfigūracijos (kitu atveju).</translation> <translation id="6190022522129724693">Numatytasis iššokančiųjų langų nustatymas</translation> +<translation id="6190367314942602985">Naudotojo identifikavimo informacijos pranešimas</translation> <translation id="6197453924249895891">Suteikiama galimybė įmonės raktais pasiekti plėtinius. Raktus galima naudoti tik įmonėje, jei jie sugeneruoti naudojant „chrome.enterprise.platformKeys“ API valdomoje paskyroje. Importuoti arba kitu būdu sugeneruoti raktai nėra skirti naudoti įmonėje. @@ -1921,6 +1959,8 @@ Pagal numatytuosius nustatymus plėtinyje negalima naudoti rakto, kuris skirtas naudoti įmonėje. Tai atitinka konkretaus plėtinio parinkties „allowCorporateKeyUsage“ nustatymą į „false“. Tik jei plėtinio parinktis „allowCorporateKeyUsage“ nustatyta į „true“, jame galima pasirašyti pasirenkamus duomenis naudojant bet kurios platformos raktą, skirtą naudoti įmonėje. Šis leidimas turėtų būti suteiktas, tik jei plėtinys patikimas, kad būtų galima apsaugoti raktą nuo užgrobėjų.</translation> +<translation id="6208896993204286313">„<ph name="PRODUCT_NAME" />“ politikos informacijos pranešimas</translation> +<translation id="6210259502936598222">OS ir „<ph name="PRODUCT_NAME" />“ versijos informacijos pranešimas</translation> <translation id="6211428344788340116">Pateikti įrenginio veiklos laiką. Jei šis nustatymas nenustatytas arba nustatytas kaip „True“, užregistruoti įrenginiai pateiks įrenginio naudotojo veiklos laikotarpio informaciją. Jei nustatymas nustatytas kaip „False“, įrenginio veiklos laikas nebus įrašomas ar pateikiamas.</translation> @@ -1938,6 +1978,7 @@ Jei įgalinsite šį nustatymą ir įvesite nestandartinį prievadą (t. y. ne 80 arba 443, o kitokį prievadą), jis bus įtrauktas į sugeneruotą „Kerberos“ SPN. Jei šio nustatymo neleisite, į sugeneruotą „Kerberos“ SPN niekada nebus įtrauktas prievadas.</translation> +<translation id="6261643884958898336">Įrenginio identifikavimo informacijos pranešimas</translation> <translation id="6281043242780654992">Konfigūruoja savosios susirašinėjimo pranešimais programos politiką. Į juodąjį sąrašą įtrauktos savųjų susirašinėjimo pranešimais programų prieglobos nebus leidžiamos, kol nebus įtrauktos į baltąjį sąrašą.</translation> <translation id="6282799760374509080">Leisti arba atmesti garso įrašo fiksavimą</translation> <translation id="6284362063448764300">1.1 versijos TLS</translation> @@ -1968,6 +2009,7 @@ Jei pasirinksite automatiškai aptikti tarpinį serverį, „Android“ programoms pateikiamas scenarijaus URL „http://wpad/wpad.dat“. Nenaudojama jokia kita tarpinio serverio automatinio aptikimo protokolo dalis. Jei pasirinksite naudoti .pac tarpinio serverio scenarijų, „Android“ programoms pateikiamas scenarijaus URL.</translation> +<translation id="6430366557948788869">„Chrome“ ataskaitų teikimo plėtinys</translation> <translation id="6440051664870270040">Leisti svetainėms vienu metu naršyti ir atidaryti iššokančiuosius langus</translation> <translation id="6447948611083700881">Atsarginis kopijavimas ir atkūrimas išjungtas</translation> <translation id="645425387487868471">Įgalinti „<ph name="PRODUCT_NAME" />“ priverstinį prisijungimą</translation> @@ -2014,6 +2056,7 @@ <translation id="6628646143828354685">Galite nustatyti, ar svetainės gali pasiekti netoliese esančius „Bluetooth“ įrenginius. Galimybę pasiekti įrenginius galima visiškai užblokuoti arba naudotojo gali būti paklausta kiekvieną kartą, kai svetainė nori pasiekti netoliese esančius „Bluetooth“ įrenginius. Jei ši politika nenustatyta, bus naudojama vertė „3“ ir naudotojas galės ją pakeisti.</translation> +<translation id="663685822663765995">Spausdinimo spalvotu režimu ribojimas</translation> <translation id="6641981670621198190">Neleisti palaikyti trimatės grafikos API</translation> <translation id="6647965994887675196">Jei ši politika galioja, galima sukurti ir naudoti prižiūrimus naudotojus. @@ -2041,6 +2084,7 @@ Šios politikos URL šablonai negali būti nesuderinami su tais, kurie sukonfigūruoti naudojant „WebUsbAskForUrls“. Nenurodyta, kuri iš dviejų politikų turi pirmenybę, jei URL atitinka jas abi.</translation> <translation id="6689792153960219308">Aparatinės įrangos būsenos ataskaitos pateikimas</translation> +<translation id="6698632841807204978">Įgalinti vienspalvį spausdinimą</translation> <translation id="6699880231565102694">Įgalinti nuotolinės prieigos prieglobų autentifikavimą dviem veiksniais</translation> <translation id="6724842112053619797">Jei įgalinsite šį nustatymą, saugomą „<ph name="PRODUCT_NAME" />“ profiliuose, pvz., žymėse, automatinio pildymo duomenyse, slaptažodžiuose ir kt., išsaugoti nustatymai taip pat bus įrašyti į failą, saugomą tarptinklinio ryšio naudotojo profilio aplanke arba administratoriaus nurodytoje vietoje pagal „<ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />“ politiką. Sinchronizavimas debesyje automatiškai išjungiamas, kai įgalinama ši politika. @@ -2080,6 +2124,12 @@ Šis nustatymas valdo pasisveikinimo puslapių, kuriuose padedama naudotojams prisijungti prie naršyklės „<ph name="PRODUCT_NAME" />“, pasirinkti ją kaip numatytąją naršyklę ar kitais būdais informuoti apie produkto funkcijas, rodymą.</translation> <translation id="6766216162565713893">Leisti svetainėms prašyti naudotojo suteikti leidimą pasiekti netoliese esantį „Bluetooth“ įrenginį</translation> <translation id="6770454900105963262">Informacijos apie aktyvias viešojo terminalo sesijas ataskaitos pateikimas</translation> +<translation id="6773056206551814546">Ši politika valdo, ar pranešti informaciją, kurią galima naudoti įrenginiams identifikuoti, pvz., įrenginio pavadinimą ir tinklo adresus. + + Kai ši politika nenustatyta arba nustatyta kaip „Tiesa“, informacija, kurią galima naudoti įrenginiams identifikuoti, renkama. + Kai ši politika nustatyta kaip „Netiesa“, informacija, kurią galima naudoti įrenginiams identifikuoti, nerenkama. + + Ši politika galioja, tik kai įgalinti „Chrome“ ataskaitų teikimo plėtinys ir „Cloud Management“.</translation> <translation id="6786747875388722282">Plėtiniai</translation> <translation id="6786967369487349613">Nustatyti tarptinklinio ryšio profilio katalogą</translation> <translation id="6810445994095397827">Blokuoti „JavaScript“ šiose svetainėse</translation> @@ -2182,6 +2232,7 @@ <translation id="6923366716660828830">Nurodomas numatytojo paieškos teikėjo pavadinimas. Jei laukas paliekamas tuščias arba nenustatomas, naudojamas paieškos URL nurodytas prieglobos pavadinimas. Į šią politiką atsižvelgiama, tik jei įgalinta politika „Numatytasis paieškos teikėjas įgalintas“.</translation> +<translation id="6926703471186170050">Įgalinti ilgojo krašto dvipusį spausdinimą</translation> <translation id="6931242315485576290">Neleisti sinchronizuoti duomenų su „Google“</translation> <translation id="6936894225179401731">Nurodomas didžiausias galimas prisijungimų prie įgaliotojo serverio vienu metu skaičius. @@ -2389,6 +2440,7 @@ Jei šis nustatymas išjungtas arba nesukonfigūruotas, naudotojai gali pasirinkti tęsti veiksmus pažymėtoje svetainėje, kai parodomas įspėjimas. Daugiau informacijos apie Saugų naršymą pateikiama adresu https://developers.google.com/safe-browsing.</translation> +<translation id="737655323154569539">Apribojamas spausdinamo puslapio dydis. Jei politika nenustatyta ar nenurodyta vertė, netaikomas joks apribojimas.</translation> <translation id="7417728346887499628">Jei šis nustatymas išjungtas, „Chrome“ valymo įrankiui neleidžiama nuskaityti sistemos ieškant nepageidaujamos programinės įrangos ir atlikti valymo veiksmų. Neautomatinis „Chrome“ valymo įrankio suaktyvinimas apsilankius adresu chrome://settings/cleanup išjungtas. Jei šis nustatymas įgalintas arba nenustatytas, „Chrome“ valymo įrankis periodiškai nuskaitys sistemą ieškodamas nepageidaujamos programinės įrangos, o radus tokios įrangos naudotojo bus klausiama, ar jis nori ją pašalinti. Neautomatinis „Chrome“ valymo įrankio suaktyvinimas apsilankius adresu chrome://settings įgalintas. @@ -2459,6 +2511,8 @@ <translation id="7617319494457709698">Pagal šią politiką nustatomi plėtiniai, kuriems leidžiama naudoti „<ph name="ENTERPRISE_PLATFORM_KEYS_API" />“ funkciją „<ph name="CHALLENGE_USER_KEY_FUNCTION" />“ patvirtinant nuotoliniu būdu. Plėtiniai turi būti pridėti prie šio sąrašo, kad būtų galima naudoti API. Jei plėtinio nėra sąraše arba sąrašas nenustatytas, iškviečiant API įvyks klaida ir bus pateiktas jos kodas.</translation> +<translation id="7618907117929117943">Grąžinti ir palikti tikslinę versiją, jei OS versija naujesnė nei tikslinė ir galima perduoti įrenginio lygio konfigūraciją (įskaitant tinklo prisijungimo duomenis) grąžinant, taip pat praleidžiant OOBE po grąžinimo. Nevykdykite ar nenutraukite grąžinimo, jei tai neįmanoma (nes tikslinė versija nepalaiko duomenų atkūrimo arba dėl nesuderinamo atgalinio pakeitimo). + Palaikoma naudojant 70 ir naujesnių versijų „<ph name="PRODUCT_OS_NAME" />“. Jei kliento programa senesnė, ši vertė reiškia, kad grąžinimas išjungtas.</translation> <translation id="7625444193696794922">Nurodomas leidimo kanalas, su kuriuo šis įrenginys turėtų būti sujungtas.</translation> <translation id="7632724434767231364">GSSAPI bibliotekos pavadinimas</translation> <translation id="7635471475589566552">„<ph name="PRODUCT_NAME" />“ konfigūruojama programos lokalė ir naudotojams neleidžiama jos keisti. @@ -2661,6 +2715,7 @@ Jei šį nustatymą įgalinsite arba vertės nenustatysite, naudotojai ir toliau galės valdyti Automatinį pildymą. Taip jie galės konfigūruoti automatinio pildymo profilius ir savo nuožiūra įjungti arba išjungti Automatinio pildymo funkciją.</translation> <translation id="8044493735196713914">Pranešti įrenginio operacinės sistemos paleidimo būseną</translation> <translation id="8050080920415773384">Vietinis spausdinimas</translation> +<translation id="8053580360728293758">Nepaisoma numatytojo spausdinimo spalvotu režimu. Jei režimas nepasiekiamas, šios politikos nepaisoma.</translation> <translation id="8059164285174960932">URL, kur nuotolinės prieigos klientai turėtų gauti autentifikavimo prieigos raktą</translation> <translation id="8078366200175825572">Leidžiama nustatyti URL šablonų, nurodančių svetaines, kuriose neleidžiama nustatyti slapukų, sąrašą. @@ -2847,6 +2902,7 @@ Čia „Versija“ gali būti tiksli versija, pvz., „61.0.3163.120“ arba versijos priešdėlis, pvz., „61.0“ </translation> <translation id="8544375438507658205">Numatytasis „<ph name="PRODUCT_FRAME_NAME" />“ HTML teikėjas</translation> <translation id="8544465954173828789">Leisti SMS pranešimus sinchronizuoti iš telefono į „Chromebook“.</translation> +<translation id="8548832052135586762">Nustatomas tik spalvoto, tik vienspalvio arba nespalvoto režimo apribojimas. Jei politika nenustatyta, netaikomi jokie apribojimai.</translation> <translation id="8549772397068118889">Įspėti, kai apsilankoma svetainėse, nesančiose turinio paketuose</translation> <translation id="8566842294717252664">Internetinės parduotuvės slėpimas Naujo skirtuko puslapyje ir programų paleidimo priemonėje</translation> <translation id="8586528890725660268">Nurodomi spausdintuvai, kurių naudotojas negali naudoti. @@ -2959,6 +3015,7 @@ Nenustačius šio nustatymo, naudotojas galės nuspręsti, ar naudoti šią funkciją.</translation> <translation id="8870318296973696995">Pagrindinis puslapis</translation> +<translation id="8876188741456358123">Nepaisoma numatytojo spausdinimo dvipusiu režimu. Jei režimas nepasiekiamas, šios politikos nepaisoma.</translation> <translation id="8882006618241293596">Užblokuoti papildinį „<ph name="FLASH_PLUGIN_NAME" />“ šiose svetainėse</translation> <translation id="890403179930035128">Priverstinai įgalinamos rašybos tikrinimo kalbos. Bus nepaisoma tame sąraše nurodytų neatpažintų kalbų. @@ -3054,6 +3111,8 @@ <translation id="9084985621503260744">Nurodykite, ar vaizdo įrašo veikla paveikia energijos valdymą</translation> <translation id="9088433379343318874">Įgalinti prižiūrimo naudotojo turinio teikėją</translation> <translation id="9088444059179765143">Automatinio laiko juostos aptikimo metodo konfigūravimas</translation> +<translation id="9094064873808699479">Grąžinti ir palikti tikslinę versiją, jei OS versija naujesnė nei tikslinė. Pabandykite perduoti įrenginio lygio konfigūraciją (įskaitant tinklo prisijungimo duomenis) vykdydami grąžinimo procesą, jei įmanoma, bet grąžinimą atlikite naudodami išsamų „Powerwash“, net jei negalima atkurti duomenų (nes tikslinė versija nepalaiko duomenų atkūrimo arba dėl nesuderinamo atgalinio pakeitimo). + Palaikoma naudojant 70 ir naujesnių versijų „<ph name="PRODUCT_OS_NAME" />“. Jei kliento programa senesnė, ši vertė reiškia, kad grąžinimas išjungtas.</translation> <translation id="9096086085182305205">Tapatumo nustatymo serverio baltasis sąrašas</translation> <translation id="9098553063150791878">HTTP autentifikavimo politika</translation> <translation id="9105265795073104888">„Android“ programos gali pasiekti tik dalį tarpinio serverio konfigūravimo parinkčių. „Android“ programos gali pasirinkti naudoti tarpinį serverį. Negalite jų priversti naudoti tarpinio serverio.</translation> @@ -3112,6 +3171,13 @@ <translation id="9187743794267626640">Neleisti montuoti išorinės atminties</translation> <translation id="9197740283131855199">Ekrano užtemdymo delsos mastelio keitimo procentas, naudojamas, jei naudotojas atlieka veiksmų po užtemdymo</translation> <translation id="9200828125069750521">Vaizdo URL parametrai, kuriuose naudojama POST</translation> +<translation id="920209539000507585">Antraštės ir poraštės priverstinai įjungiamos arba išjungiamos spausdinimo dialogo lange. + + Jei politika nenustatyta, naudotojas gali nuspręsti, ar spausdinti antraštes ir poraštes. + + Jei politika nustatyta kaip „Netiesa“, parinktis „Antraštės ir poraštės“ nepasirenkama spaudinio peržiūros dialogo lange ir naudotojas negali to pakeisti. + + Jei politika nustatyta kaip „Tiesa“, parinktis „Antraštės ir poraštės“ pasirenkama spaudinio peržiūros dialogo lange ir naudotojas negali to pakeisti.</translation> <translation id="9210953373038593554">Konfigūruojamas SAML prisijungimo autentifikavimo tipas. Kai ši politika nenustatyta arba nustatyta į numatytąją parinktį (vertę „0“), SAML prisijungimo elgseną nustato naršyklė, atsižvelgdama į kitus veiksnius. Paprasčiausiu atveju naudotojų autentifikavimas ir talpykloje saugomų naudotojo duomenų apsauga vykdoma pasitelkiant naudotojų neautomatiškai įvedamus slaptažodžius. @@ -3119,6 +3185,9 @@ Kai ši politika nustatyta į „ClientCertificate“ (vertė „1“), naujai pridėtų naudotojų, kurie prisijungia per SAML, tapatybei nustatyti naudojamas kliento sertifikato autentifikavimas. Tokiems naudotojas autentifikuoti nenaudojami slaptažodžiai, o talpykloje saugomi vietiniai duomenys apsaugomi naudojant atitinkamus kriptografinius raktus. Pvz., naudojant šį nustatymą galima konfigūruoti išmaniąją kortelę pasitelkiant naudotojo autentifikavimą (atminkite, kad išmaniosios kortelės tarpinės programos turi būti įdiegtos naudojant politiką „DeviceLoginScreenAppInstallList“). Ši politika daro įtaką tik naudotojams, kurie autentifikuojami naudojant SAML.</translation> +<translation id="9211439035693857287">Konfigūruojama su „Chrome“ ataskaitų teikimo plėtiniu susijusi politika. + + Ši politika galioja, tik kai įgalinti „Chrome“ ataskaitų teikimo plėtinys ir „Cloud Management“.</translation> <translation id="9213347477683611358">Konfigūruokite įrenginio lygio ekrano fono vaizdą, kuris rodomas prisijungimo ekrane, jei prie įrenginio neprisijungė joks naudotojas. Politika nustatoma nurodant URL, kuriuo „Chrome“ OS įrenginys gali atsisiųsti ekrano fono vaizdą ir kriptografinę maišos vertę, kuri naudojama atsisiuntimo vientisumui patvirtinti. Vaizdas turi būti JPEG formato, o dydis neturi viršyti 16 MB. URL turi būti pasiekiamas be autentifikavimo. Ekrano fono vaizdas atsisiunčiamas ir įkeliamas į talpyklą. Jis bus iš naujo atsisiųstas pasikeitus URL arba maišos vertei. Politika turėtų būti nurodyta kaip eilutė, kurioje pateikiamas URL ir maišos vertė JSON formatu, pvz.,
diff --git a/components/policy/resources/policy_templates_ml.xtb b/components/policy/resources/policy_templates_ml.xtb index 61ff0182..a95a4429 100644 --- a/components/policy/resources/policy_templates_ml.xtb +++ b/components/policy/resources/policy_templates_ml.xtb
@@ -321,13 +321,13 @@ "യുഎസ്/പസഫിക്" ആയി സജ്ജമാക്കിയിരിക്കുന്ന സമയമേഖലയിലായിരിക്കും പുതിയ ഉപകരണങ്ങൾ ആരംഭിക്കുന്നത്. - മൂല്യത്തിന്റെ ഫോർമാറ്റ് "IANA സമയ മേഖല ഡാറ്റാബേസ്" ("https://en.wikipedia.org/wiki/Tz_database" കാണുക) എന്നതിലെ സമയമേഖലകളുടെ പേരുകൾ പിന്തുടരുന്നു. പ്രത്യേകിച്ച്, മിക്ക സമയ മേഖലകളെയും "continent/large_city" അല്ലെങ്കിൽ "ocean/large_city" എന്നതിൽ പരിശോധിക്കാവുന്നതാണ്. + മൂല്യത്തിന്റെ ഫോർമാറ്റ് "IANA സമയ മേഖല ഡാറ്റാബേസ്" ("https://en.wikipedia.org/wiki/Tz_database" കാണുക) എന്നതിലെ സമയമേഖലകളുടെ പേരുകൾ പിന്തുടരുന്നു. പ്രത്യേകിച്ച്, മിക്ക സമയ മേഖലകളെയും "continent/large_city" അല്ലെങ്കിൽ "ocean/large_city" എന്നതിൽ പരിഗണിക്കാവുന്നതാണ്. - ഈ നയം സജ്ജമാക്കുന്നത്, ഉപകരണ ലൊക്കേഷൻ പ്രകാരം സ്വയമേയുള്ള സമയമേഖല സജ്ജമാക്കുന്നതിനെ പൂർണ്ണമായും പ്രവർത്തനരഹിതമാക്കുന്നു. ഒപ്പം ഇത് SystemTimezoneAutomaticDetection എന്ന നയത്തെയും അസാധുവാക്കുന്നു.</translation> + ഈ നയം സജ്ജമാക്കുന്നത്, ഉപകരണ ലൊക്കേഷൻ പ്രകാരം സ്വമേധയാലുള്ള സമയമേഖല സജ്ജമാക്കുന്നതിനെ പൂർണ്ണമായും പ്രവർത്തനരഹിതമാക്കുന്നു. ഒപ്പം ഇത് SystemTimezoneAutomaticDetection എന്ന നയത്തെയും അസാധുവാക്കുന്നു.</translation> <translation id="1885782360784839335">പൂർണ്ണ-ടാബ് പ്രമോഷണൽ ഉള്ളടക്കം കാണിക്കുന്നത് പ്രവർത്തനക്ഷമമാക്കുക</translation> <translation id="1888871729456797026">ഡെസ്ക്ടോപ്പിലെ ക്ലൗഡ് നയത്തിന്റെ എൻറോൾമെന്റ് ടോക്കൺ</translation> <translation id="1897365952389968758">JavaScript പ്രവര്ത്തിപ്പിക്കുന്നതിന് എല്ലാ സൈറ്റുകളെയും അനുവദിക്കുക</translation> -<translation id="1906888171268104594">ക്രാഷ് റിപ്പോർട്ടുകൾ ഉൾപ്പെടെ, ഉപയോഗ മെട്രിക്സും ഡയഗ്നോസ്റ്റിക് ഡാറ്റയും Google-ലേക്ക് തിരികെ റിപ്പോർട്ട് ചെയ്യുന്നുണ്ടോ എന്നതിനെ നിയന്ത്രിക്കുന്നു. +<translation id="1906888171268104594">ക്രാഷ് റിപ്പോർട്ടുകൾ ഉൾപ്പെടെ, ഉപയോഗ മെട്രിക്സും ഡയഗ്നോസ്റ്റിക് ഡാറ്റയും Google-ലേക്ക് തിരികെ റിപ്പോർട്ട് ചെയ്യുന്നുണ്ടോ എന്നത് നിയന്ത്രിക്കുന്നു. ശരിയെന്ന് സജ്ജീകരിക്കുകയാണെങ്കിൽ, <ph name="PRODUCT_OS_NAME" />-ന്റെ ഉപയോഗ മെട്രിക്സും ഡയഗ്നോസ്റ്റിക് ഡാറ്റയും റിപ്പോർട്ട് ചെയ്യും. @@ -725,7 +725,7 @@ <translation id="2647069081229792812">ബുക്ക്മാർക്ക് എഡിറ്റിംഗ് പ്രവർത്തനക്ഷമമോ പ്രവർത്തനരഹിതമോ ആക്കുക</translation> <translation id="2649896281375932517">തീരുമാനമെടുക്കാൻ ഉപയോക്താക്കളെ അനുവദിക്കുക.</translation> <translation id="2650049181907741121">ഉപയോക്താവ് ലിഡ് അടയ്ക്കുമ്പോൾ നടത്തേണ്ട പ്രവർത്തനം</translation> -<translation id="2655233147335439767">ഒരു ഡിഫോൾട്ട് തിരയൽ നടത്തുമ്പോൾ ഉപയോഗിക്കുന്ന തിരയൽ എഞ്ചിനിന്റെ URL വ്യക്തമാക്കുന്നു. URL-ൽ '<ph name="SEARCH_TERM_MARKER" />' സ്ട്രിംഗ് അടങ്ങിയിരിക്കണം, ഇത് അന്വേഷണ സമയത്ത് ഉപയോക്താവ് തിരയുന്ന പദങ്ങളെ മാറ്റി പകരം വയ്ക്കും. +<translation id="2655233147335439767">ഒരു ഡിഫോൾട്ട് തിരയൽ നടത്തുമ്പോൾ ഉപയോഗിക്കുന്ന തിരയൽ എഞ്ചിനിന്റെ URL വ്യക്തമാക്കുന്നു. URL-ൽ '<ph name="SEARCH_TERM_MARKER" />' സ്ട്രിംഗ് അടങ്ങിയിരിക്കണം, ഇത് അന്വേഷണ സമയത്ത് ഉപയോക്താവ് തിരയുന്ന പദങ്ങളാൽ മാറ്റപ്പെടും. Google-ന്റെ തിരയൽ URL ഇനിപ്പറയുന്നതായി വ്യക്തമാക്കാം: <ph name="GOOGLE_SEARCH_URL" />. @@ -967,14 +967,14 @@ ഈ ക്രമീകരണം അപ്രാപ്തമാക്കിയിട്ടുണ്ടെങ്കിൽ, ഉപയോക്താക്കൾക്ക് പ്രോക്സി പ്രാപ്തമാക്കാൻ കഴിയില്ല, മെഷീനുകൾ അവയുടെ പ്രിന്ററുകളെ <ph name="CLOUD_PRINT_NAME" /> എന്നതിനോടൊപ്പം പങ്കിടുന്നതിന് അനുവദിക്കില്ല.</translation> <translation id="3307746730474515290">ഇൻസ്റ്റാൾ ചെയ്യാൻ അനുവദിച്ച ആപ്പുകൾ/വിപുലീകരണ തരങ്ങൾ നിയന്ത്രിക്കുന്നു, റൺടൈം ആക്സസ് പരിമിതപ്പെടുത്തുകയും ചെയ്യുന്നു. - ഈ ക്രമീകരണം <ph name="PRODUCT_NAME" /> എന്നതിൽ ഇൻസ്റ്റാൾ ചെയ്യാൻ അനുവദിച്ച വിപുലീകരണ/ആപ്പുകളുടെ തരങ്ങളും അവയ്ക്ക് സംവദിക്കാനാവുന്ന ഹോസ്റ്റുകളും വൈറ്റ്-ലിസ്റ്റുചെയ്യുന്നു. മൂല്യം സ്ട്രിങ്ങുകളുടെ ഒരു ലിസ്റ്റ് ആണ്, അവയിലോരോന്നും ഇനിപ്പറയുന്നവയിലൊന്നായിരിക്കണം: "extension", "theme", "user_script", "hosted_app", "legacy_packaged_app", "platform_app". ഈ തരങ്ങളിലെ കൂടുതൽ വിവരങ്ങൾക്കായി <ph name="PRODUCT_NAME" /> വിപുലീകരണങ്ങളുടെ ഡോക്യുമെന്റേഷൻ കാണുക. + ഈ ക്രമീകരണം <ph name="PRODUCT_NAME" /> എന്നതിൽ ഇൻസ്റ്റാൾ ചെയ്യാൻ അനുവദിച്ച വിപുലീകരണ/ആപ്പുകളുടെ തരങ്ങളും അവയ്ക്ക് സംവദിക്കാനാവുന്ന ഹോസ്റ്റുകളും വൈറ്റ്-ലിസ്റ്റുചെയ്യുന്നു. മൂല്യം സ്ട്രിംഗുകളുടെ ഒരു ലിസ്റ്റ് ആണ്, അവയിലോരോന്നും ഇനിപ്പറയുന്നവയിലൊന്നായിരിക്കണം: "extension", "theme", "user_script", "hosted_app", "legacy_packaged_app", "platform_app". ഈ തരങ്ങളിലെ കൂടുതൽ വിവരങ്ങൾക്കായി <ph name="PRODUCT_NAME" /> വിപുലീകരണങ്ങളുടെ ഡോക്യുമെന്റേഷൻ കാണുക. ExtensionInstallForcelist മുഖേന നിർബന്ധിതമായി ഇൻസ്റ്റാൾ ചെയ്ത വിപുലീകരണങ്ങൾക്കും ആപ്പുകൾക്കും ഈ നയം ബാധകമായിരിക്കും എന്ന് മനസ്സിലാക്കുക. - ഈ ക്രമീകരണം കോൺഫിഗർ ചെയ്തെങ്കിൽ, ലിസ്റ്റിലില്ലാത്ത തരത്തിലുള്ള വിപുലീകരണങ്ങൾ/ആപ്പുകൾ ഇൻസ്റ്റാൾ ചെയ്യില്ല. + ഈ ക്രമീകരണം കോൺഫിഗർ ചെയ്തെങ്കിൽ, ലിസ്റ്റിലില്ലാത്ത തരത്തിലുള്ള വിപുലീകരണങ്ങൾ/ആപ്പുകൾ ഇൻസ്റ്റാൾ ചെയ്യില്ല. - ഈ ക്രമീകരണം കോൺഫിഗർ ചെയ്യാതെ വിടുകയാണെങ്കിൽ, അംഗീകരിക്കാവുന്ന വിപുലീകരണ/ആപ്പ് തരങ്ങളിൽ നിയന്ത്രണങ്ങളൊന്നും നടപ്പിലാക്കില്ല.</translation> + ഈ ക്രമീകരണം കോൺഫിഗർ ചെയ്യാതെ വിടുകയാണെങ്കിൽ, അംഗീകരിക്കാവുന്ന വിപുലീകരണ/ആപ്പ് തരങ്ങളിൽ നിയന്ത്രണങ്ങളൊന്നും നടപ്പിലാക്കില്ല.</translation> <translation id="3322771899429619102">കീ സൃഷ്ടിക്കലിന് ഉപയോഗിക്കാൻ അനുവദിക്കുന്ന സൈറ്റുകൾ വ്യക്തമാക്കുന്ന url പാറ്റേണുകളുടെ ഒരു ലിസ്റ്റ് സജ്ജമാക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. url പാറ്റേൺ 'KeygenBlockedForUrls'-ൽ ആണെങ്കിൽ, അത് ഈ ഒഴിവാക്കലുകളെ അസാധുവാക്കുന്നു. ഈ നയം സജ്ജമാക്കാത്ത നിലയിലാണെങ്കിൽ എല്ലാ സൈറ്റുകൾക്കുമുള്ള ഗ്ലോബൽ ഡിഫോൾട്ട് മൂല്യം, 'DefaultKeygenSetting' നയം സജ്ജമാക്കിയിട്ടുണ്ടെങ്കിൽ അതിൽ നിന്നോ അല്ലെങ്കിൽ ഉപയോക്താവിന്റെ വ്യക്തിപരമായ കോൺഫിഗറേഷനിൽ നിന്നോ, ഉപയോഗിക്കുന്നതാണ്.</translation> @@ -1510,11 +1510,11 @@ <translation id="4625915093043961294">വിപുലീകരണ ഇന്സ്റ്റാളേഷന്റെ അനുമതിയിയുള്ള ലിസ്റ്റ് കോണ്ഫിഗര് ചെയ്യുക</translation> <translation id="4632343302005518762">ലിസ്റ്റുചെയ്ത ഉള്ളടക്ക തരങ്ങള് കൈകാര്യം ചെയ്യാന് <ph name="PRODUCT_FRAME_NAME" />എന്നതിനെ അനുവദിക്കുക</translation> <translation id="4632566332417930481">എന്റർപ്രൈസ് നയം മുഖേന ഇൻസ്റ്റാൾ ചെയ്തിട്ടുള്ള വിപുലീകരണങ്ങളിൽ ഡെവലപ്പർ ടൂളുകളുടെ ഉപയോഗം അനുവദിക്കാതിരിക്കുക, മറ്റ് സന്ദർഭങ്ങളിൽ ഡെവലപ്പർ ടൂളുകളുടെ ഉപയോഗം അനുവദിക്കുക</translation> -<translation id="4633786464238689684">മുകളിലെ നിരയിലെ കീകളുടെ സ്ഥിര പ്രവർത്തനരീതിയെ ഫംഗ്ഷൻ കീകളിലേയ്ക്ക് മാറ്റുന്നു. +<translation id="4633786464238689684">മുകളിലെ നിരയിലെ കീകളുടെ ഡിഫോൾട്ട് പ്രവർത്തനരീതിയെ ഫംഗ്ഷൻ കീകളിലേയ്ക്ക് മാറ്റുന്നു. - ഈ നയം true ആയി സജ്ജമാക്കുകയാണെങ്കിൽ, കീബോർഡിന്റെ മുകളിലെ നിരയിലെ കീകൾ സ്ഥിരമായി പ്രവർത്തന കീ കമാൻഡുകളായി നൽകും. മീഡിയ കീകളിലേയ്ക്ക് അവരുടെ പ്രവർത്തന രീതി പഴയപടിയാക്കുന്നതിന് തിരയൽ കീ അമർത്തണം. + ഈ നയം 'ശരി' എന്ന് സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ, കീബോർഡിന്റെ മുകളിലെ നിരയിലെ കീകൾ ഡിഫോൾട്ട് പ്രവർത്തന കീ കമാൻഡുകളായി നൽകും. മീഡിയ കീകളിലേക്ക് അവരുടെ പ്രവർത്തന രീതി പഴയപടിയാക്കുന്നതിന് തിരയൽ കീ അമർത്തണം. - ഈ നയം false ആയി സജ്ജീകരിയ്ക്കുകയോ സജ്ജീകരിയ്ക്കാതെ വിടുകയോ ആണെങ്കിൽ, തിരയൽ കീ അമർത്തുമ്പോൾ, കീബോർഡ് സ്ഥിരമായി മീഡിയ കീ കമാൻഡുകളും പ്രവർത്തന കീ കമാൻഡുകളും നൽകും.</translation> + ഈ നയം 'തെറ്റ്' ആയി സജ്ജീകരിക്കുകയോ സജ്ജീകരിക്കാതെ വിടുകയോ ആണെങ്കിൽ, തിരയൽ കീ അമർത്തുമ്പോൾ, കീബോർഡ് സ്ഥിരമായി മീഡിയ കീ കമാൻഡുകളും പ്രവർത്തന കീ കമാൻഡുകളും നൽകും.</translation> <translation id="4634322756082542180">ഈ നയം, ബ്ലാക്ക്ലിസ്റ്റുചെയ്ത URL-കളിൽ നിന്നുള്ള വെബ് പേജുകൾ ലോഡുചെയ്യുന്നതിൽ നിന്ന് ഉപയോക്താവിനെ തടയുന്നു. ഏത് URL-കളാണ് ബ്ലാക്ക്ലിസ്റ്റുചെയ്യേണ്ടതെന്ന് വ്യക്തമാക്കുന്ന URL പാറ്റേണുകളുടെ ഒരു ലിസ്റ്റ് 'ബ്ലാക്ക്ലിസ്റ്റ്' നൽകുന്നു. URL പാറ്റേൺ https://www.chromium.org/administrators/url-blacklist-filter-format പ്രകാരം ഫോർമാറ്റ് ചെയ്തതായിരിക്കണം. @@ -1759,9 +1759,9 @@ ഇത് തെറ്റ് എന്ന് സജ്ജമാക്കുകയോ സജ്ജമാക്കാതിരിക്കുകയോ ആണെങ്കിൽ, ഒരു പിശക് കോഡ് നൽകി API-യിലേക്കുള്ള കോളുകൾ പരാജയപ്പെടും.</translation> <translation id="5283457834853986457">പ്ലഗിൻ ഫൈൻഡർ പ്രവർത്തനരഹിതമാക്കുക (ഒഴിവാക്കി)</translation> -<translation id="5288772341821359899">ഈ നയം സജ്ജമാക്കിയെങ്കിൽ, WebRTC ഉപയോഗിക്കുന്ന UDP പോർട്ട് ശ്രേണിയെ നിർദ്ദിഷ്ട പോർട്ട് ഇടവേളയിലേക്ക് (എൻഡ്പോയിന്റുകൾ ഉൾപ്പെടെ) പരിമിതപ്പെടുത്തും. +<translation id="5288772341821359899">ഈ നയം സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ, WebRTC ഉപയോഗിക്കുന്ന UDP പോർട്ട് ശ്രേണിയെ നിർദ്ദിഷ്ട പോർട്ട് ഇടവേളയിലേക്ക് (എൻഡ്പോയിന്റുകൾ ഉൾപ്പെടെ) പരിമിതപ്പെടുത്തും. - ഈ നയം സജ്ജമാക്കാതിരിക്കുകയോ അല്ലെങ്കിൽ ശൂന്യമായ സ്ട്രിംഗിലേക്കോ അസാധുവായ പോർട്ട് ശ്രേണിയിലേക്കോ സജ്ജമാക്കുകയോ ആണെങ്കിൽ, ലഭ്യമായ ഏതൊരു ലോക്കൽ UDP പോർട്ടും ഉപയോഗിക്കാൻ WebRTC-നെ അനുവദിക്കും.</translation> + ഈ നയം സജ്ജീകരിക്കാതെ വിടുകയോ ശൂന്യമായ സ്ട്രിംഗിലേക്കോ അസാധുവായ പോർട്ട് ശ്രേണിയിലേക്കോ സജ്ജീകരിക്കുകയോ ആണെങ്കിൽ, ലഭ്യമായ ഏതൊരു ലോക്കൽ UDP പോർട്ടും ഉപയോഗിക്കാൻ WebRTC-നെ അനുവദിക്കും.</translation> <translation id="5290940294294002042">ഉപയോക്താവിന് പ്രാപ്തമാക്കാനോ അപ്രാപ്തമാക്കാനോ കഴിയുന്ന പ്ലഗിനുകളുടെ ഒരു ലിസ്റ്റ് നിര്ദേശിക്കുക</translation> <translation id="5302612588919538756">ഈ നയം ഒഴിവാക്കിയെങ്കിൽ, പകരം SyncDisabled ഉപയോഗിക്കുന്ന കാര്യം പരിഗണിക്കുക. @@ -1797,8 +1797,8 @@ <translation id="538108065117008131">ഇനി പറയുന്ന ഉള്ളടക്ക തരങ്ങള് കൈകാര്യം ചെയ്യാന് <ph name="PRODUCT_FRAME_NAME" />-നെ അനുവദിക്കുന്നു.</translation> <translation id="5392172595902933844">Android-ന്റെ സ്റ്റാറ്റസിനെ കുറിച്ചുള്ള വിവരങ്ങൾ സെർവറിലേക്ക് തിരികെ അയയ്ക്കുന്നു. - നയം 'തെറ്റ്' എന്ന് സജ്ജമാക്കുകയോ സജ്ജമാക്കാതെ വിടുകയോ ആണെങ്കിൽ, സ്റ്റാറ്റസ് വിവരങ്ങളൊന്നും റിപ്പോർട്ടുചെയ്യില്ല. - 'ശരി' എന്ന് സജ്ജമാക്കുകയാണെങ്കിൽ, സ്റ്റാറ്റസ് വിവരങ്ങൾ റിപ്പോർട്ടുചെയ്യും. + നയം 'തെറ്റ്' എന്ന് സജ്ജമാക്കുകയോ സജ്ജമാക്കാതെ വിടുകയോ ആണെങ്കിൽ, സ്റ്റാറ്റസ് വിവരങ്ങളൊന്നും റിപ്പോർട്ട് ചെയ്യില്ല. + 'ശരി' എന്ന് സജ്ജമാക്കുകയാണെങ്കിൽ, സ്റ്റാറ്റസ് വിവരങ്ങൾ റിപ്പോർട്ട് ചെയ്യും. Android ആപ്പുകൾ പ്രവർത്തനക്ഷമമാണെങ്കിൽ മാത്രമേ ഈ നയം ബാധകമാകൂ.</translation> <translation id="5395271912574071439">ഒരു കണക്ഷൻ പുരോഗമിക്കുമ്പോൾ തന്നെ വിദൂര ആക്സസ്സ് ഹോസ്റ്റുകളുടെ കർട്ടനിംഗ് പ്രാപ്തമാക്കുന്നു. @@ -1814,11 +1814,11 @@ ഈ നയം പ്രവർത്തനരഹിതമായിരിക്കുമ്പോൾ, ഉപയോക്താവിനോട് ഒരിക്കലും ആവശ്യപ്പെടില്ല ഒപ്പം AudioCaptureAllowedUrls-കളിൽ കോൺഫിഗർ ചെയ്ത URL-കൾക്ക് മാത്രമേ വീഡിയോ ലഭ്യമാകൂ. എല്ലാ തരത്തിലുമുള്ള ഓഡിയോ ഇൻപുട്ടുകൾക്കും ഈ നയം ബാധകമാണ്, അന്തർനിർമ്മിത മൈക്രോഫോണിന് മാത്രം നയം ബാധകമല്ല.</translation> -<translation id="5423001109873148185">പ്രവർത്തനക്ഷമമാണെങ്കിൽ, നിലവിലെ ഡിഫോൾട്ട് ബ്രൗസറിൽ നിന്നും തിരയൽ എഞ്ചിനുകൾ ഇംപോർട്ട് ചെയ്യുവാൻ ഈ നയം നിർബന്ധിക്കുന്നു. +<translation id="5423001109873148185">നിലവിലെ ഡിഫോൾട്ട് ബ്രൗസർ പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിൽ, അതിൽ നിന്നും തിരയൽ എഞ്ചിനുകൾ ഇംപോർട്ട് ചെയ്യുവാൻ ഈ നയം നിർബന്ധിക്കുന്നു. - പ്രവർത്തനരഹിതമാണെങ്കിൽ, തിരയൽ എഞ്ചിൻ ഇംപോർട്ട് ചെയ്യില്ല. + പ്രവർത്തനരഹിതമാക്കിയിട്ടുണ്ടെങ്കിൽ, ഡിഫോൾട്ട് തിരയൽ എഞ്ചിൻ ഇംപോർട്ട് ചെയ്യില്ല. - ഇത് സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ, അത് ഇംപോർട്ട് ചെയ്യണോ എന്ന് ഉപയോക്താവിനോട് ചോദിച്ചേക്കാം. അല്ലെങ്കിൽ സ്വമേധയാലുളള ഇംപോർട്ട് ചെയ്യലോ സംഭവിച്ചേക്കാം.</translation> + സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ, അത് ഇംപോർട്ട് ചെയ്യണോ എന്ന് ഉപയോക്താവിനോട് ചോദിച്ചേക്കാം. അല്ലെങ്കിൽ ഇംപോർട്ട് ചെയ്യൽ സ്വമേധയാ സംഭവിച്ചേക്കാം.</translation> <translation id="5423197884968724595">Android WebView നിയന്ത്രണത്തിന്റെ പേര്:</translation> <translation id="5437733496511628148">ഈ ക്രമീകരണം പ്രവർത്തനക്ഷമമാക്കുന്നത് ഡൊമെയ്നുകളിൽ നിന്നുമുള്ളതല്ലാത്ത, ബ്രൗസറിന്റെ വിലാസ ബാറിൽ നിന്നുമുള്ള വെബ് പേജ് ഘടകങ്ങൾ ഉപയോഗിച്ച് കുക്കികളെ തടയുന്നു. @@ -1946,7 +1946,7 @@ <translation id="5776485039795852974">ഡെസ്ക്ടോപ്പ് നോട്ടിഫിക്കേഷനുകള് ഒരു സൈറ്റ് കാണിക്കണോ എന്ന് എല്ലാ സമയത്തും ചോദിക്കുക.</translation> <translation id="5781412041848781654">HTTP പ്രാമാണീകരണത്തിനായി ഏത് GSSAPI ലൈബ്രറി ഉപയോഗിക്കണമെന്ന് വ്യക്തമാക്കുന്നു. നിങ്ങള്ക്ക് ഒരു ലൈബ്രറി പേരു മാത്രമോ അല്ലെങ്കിൽ മുഴുവന് പാത്തോ സജ്ജമാക്കാം. - ഒരു ക്രമീകരണവും നല്കുന്നില്ലെങ്കില്, <ph name="PRODUCT_NAME" /> ഒരു ഡിഫോൾട്ട് ലൈബ്രറി പേര് ഉപയോഗിക്കാൻ തീരുമാനിക്കും.</translation> + ഒരു ക്രമീകരണവും നല്കുന്നില്ലെങ്കില്, ഒരു ഡിഫോൾട്ട് ലൈബ്രറി പേര് ഉപയോഗിക്കാൻ <ph name="PRODUCT_NAME" /> തീരുമാനിക്കും.</translation> <translation id="5781806558783210276">ബാറ്ററി പവറിൽ പ്രവർത്തിക്കുമ്പോൽ നിഷ്ക്രിയ പ്രവർത്തനം നടപ്പിലാക്കുന്ന ഉപയോക്തൃ ഇൻപുട്ടില്ലാതെ സമയദൈർഘ്യം വ്യക്തമാക്കുന്നു. ഈ നയം സജ്ജമാക്കുമ്പോൾ, അത് വേർതിരിച്ച് കോൺഫിഗർ ചെയ്യാനാകുന്ന നിഷ്ക്രിയ പ്രവർത്തനം <ph name="PRODUCT_OS_NAME" /> തുടങ്ങുന്നതിന് മുമ്പ് ഉപയോക്താവ് നിഷ്ക്രിയമായി തുടരേണ്ട സമയദൈർഘ്യം വ്യക്തമാക്കുന്നു. @@ -2586,11 +2586,11 @@ ഈ നയം സജ്ജമാക്കാതെ വിടുകയാണെങ്കിൽ, എന്റർപ്രൈസ്-നിയന്ത്രിത ഉപയോക്താക്കളെ സ്ഥിരമായവ ഉപയോഗിക്കാൻ അനുവദിക്കാതിരിക്കുകയും മാനേജുചെയ്യപ്പെടാത്ത ഉപയോക്താക്കളെ അനുവദിക്കുകയും ചെയ്യും.</translation> <translation id="7295019613773647480">സൂപ്പർവൈസുചെയ്ത ഉപയോക്താക്കളെ പ്രവർത്തനക്ഷമമാക്കുക</translation> -<translation id="7301543427086558500">തിരയൽ എഞ്ചിനിൽ നിന്നുമുള്ള തിരയൽ പദങ്ങൾ എക്സ്ട്രാക്റ്റുചെയ്യുന്നതിന് ഉപയോഗിക്കുന്ന ഇതര URL-കളുടെ ലിസ്റ്റ് നിർദ്ദേശിക്കുന്നു. തിരയൽ പദങ്ങൾ എക്സ്ട്രാക്റ്റുചെയ്യുന്നതിന് ഉപയോഗിക്കുന്ന സ്ട്രിംഗ് <ph name="SEARCH_TERM_MARKER" /> URL-കളിൽ അടങ്ങിയിരിക്കണം. +<translation id="7301543427086558500">തിരയൽ എഞ്ചിനിൽ നിന്നുമുള്ള തിരയൽ പദങ്ങൾ എക്സ്ട്രാക്റ്റ് ചെയ്യുന്നതിന് ഉപയോഗിക്കുന്ന ഇതര URL-കളുടെ ലിസ്റ്റ് നിർദ്ദേശിക്കുന്നു. തിരയൽ പദങ്ങൾ എക്സ്ട്രാക്റ്റ് ചെയ്യുന്നതിന് URL-കളിൽ സ്ട്രിംഗ് <ph name="SEARCH_TERM_MARKER" /> അടങ്ങിയിരിക്കണം. - ഈ നയം ഓപ്ഷണൽ ആണ്. സജ്ജമാക്കാത്ത നിലയിലാണെങ്കിൽ, തിരയൽ പദങ്ങൾ എക്സ്ട്രാക്റ്റുചെയ്യുന്നതിന് ഇതര url-കൾ ഉപയോഗിക്കില്ല. + ഈ നയം ഓപ്ഷണൽ ആണ്. സജ്ജമാക്കാത്ത നിലയിലാണെങ്കിൽ, തിരയൽ പദങ്ങൾ എക്സ്ട്രാക്റ്റ് ചെയ്യുന്നതിന് ഇതര url-കൾ ഉപയോഗിക്കില്ല. - ഈ നയം ബാധകമാകുന്നത് 'DefaultSearchProviderEnabled' നയം പ്രാപ്തമാക്കിയിട്ടുണ്ടെങ്കിൽ മാത്രമാണ്.</translation> + ഈ നയം ബാധകമാകുന്നത് 'DefaultSearchProviderEnabled' നയം പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടെങ്കിൽ മാത്രമാണ്.</translation> <translation id="7302043767260300182">AC പവറിൽ പ്രവർത്തിക്കുമ്പോഴുള്ള സ്ക്രീൻ ലോക്ക് കാലതാമസം</translation> <translation id="7311458740754205918">ഇത് ശരിയാണെന്ന് സജ്ജമാക്കുകയോ സജ്ജമാക്കാതിരിക്കുകയോ ആണെങ്കിൽ, ഉപയോക്താവിന്റെ ബ്രൗസിംഗ് ചരിത്രമോ താൽപ്പര്യങ്ങളോ ലൊക്കേഷനോ അടിസ്ഥാനമാക്കി പുതിയ ടാബ് പേജിൽ ഉള്ളടക്ക നിർദ്ദേശങ്ങൾ കാണിച്ചേക്കും. @@ -2681,7 +2681,7 @@ <translation id="7547549430720182663">ലയിപ്പിക്കുക</translation> <translation id="7553535237300701827">ഈ നയം സജ്ജമാക്കിയിരിക്കുമ്പോൾ, ക്രമീകരണ മൂല്യത്തിന്റെ അടിസ്ഥാനത്തിൽ ലോഗിൻ പരിശോധിച്ചുറപ്പിക്കൽ ഫ്ലോ ഇനിപ്പറയുന്ന രീതികളിലൊന്നായിരിക്കും: - GAIA എന്ന് സജ്ജമാക്കിയെങ്കിൽ, സാധാരണ GAIA പരിശോധിച്ചുറപ്പിക്കൽ ഫ്ലോ വഴിയായിരിക്കും ലോഗിൻ ചെയ്യാനാകുക. + GAIA എന്ന് സജ്ജമാക്കിയതെങ്കിൽ, സാധാരണ GAIA പരിശോധിച്ചുറപ്പിക്കൽ ഫ്ലോ വഴിയായിരിക്കും ലോഗിൻ ചെയ്യാനാകുക. SAML_INTERSTITIAL എന്നാണ് സജ്ജമാക്കിയിരിക്കുന്നതെങ്കിൽ, ലോഗിൻ, ഉപകരണത്തിന്റെ എൻറോൾമെന്റ് ഡൊമെയ്നിന്റെ SAML IdP വഴി ഉപയോക്താവിന് പരിശോധിച്ചുറപ്പിക്കലുമായി മുന്നോട്ട് പോകാൻ പറയുന്ന ഒരു ഇന്റർസ്റ്റീഷ്യൽ സ്ക്രീൻ കാണിക്കും അല്ലെങ്കിൽ സാധാരണ GAIA ലോഗിൻ ഫ്ലോയിലേക്ക് മടങ്ങുക.</translation> <translation id="755951849901630953">സജ്ജീകരിക്കാത്തപ്പോഴും 'ശരി' എന്ന് സജ്ജീകരിച്ചിരിക്കുമ്പോഴും, <ph name="PRODUCT_NAME" /> എന്നതിലെ എല്ലാ ഘടകങ്ങളുടെയും ഘടക അപ്ഡേറ്റുകൾ പ്രവർത്തനക്ഷമമാക്കുന്നു. @@ -2882,7 +2882,7 @@ വിശദമായ ഉദാഹരണങ്ങൾക്ക്, ഇത് സന്ദർശിക്കുക: <ph name="PROXY_HELP_URL" />.</translation> -<translation id="793134539373873765">OS അപ്ഡേറ്റ് പേലോഡുകൾക്ക് p2p ഉപയോഗിക്കണോ എന്നത് വ്യക്തമാക്കുന്നു. True എന്നതായി സജ്ജമാക്കുകയാണെങ്കിൽ, ഉപകരണങ്ങൾ LAN-ൽ അപ്ഡേറ്റ് പേലോഡുകൾ പങ്കിടുകയും അവ ഉപയോഗിക്കാൻ ശ്രമിക്കുകയും ചെയ്യും, ഇത് ഇന്റർനെറ്റ് ബാൻഡ്വിഡ്ത്ത് ഉപയോഗവും തിരക്കും കുറയ്ക്കുകയും ചെയ്യുന്നു. LAN-ൽ അപ്ഡേറ്റ് പേലോഡുകൾ ലഭ്യമല്ലെങ്കിൽ, ഒരു അപ്ഡേറ്റ് സെർവറിൽ നിന്ന് ഡൗൺലോഡുചെയ്യുന്നതിലേക്ക് ഉപകരണം തിരികെ ഉപയോഗിക്കപ്പെടും. False എന്നതായി സജ്ജമാക്കിയിട്ടുണ്ടെങ്കിലോ കോൺഫിഗർ ചെയ്തിട്ടില്ലെങ്കിലോ, p2p ഉപയോഗിക്കപ്പെടില്ല.</translation> +<translation id="793134539373873765">OS അപ്ഡേറ്റ് പേലോഡുകൾക്ക് p2p ഉപയോഗിക്കണോ എന്നത് വ്യക്തമാക്കുന്നു. 'ശരി' എന്ന് സജ്ജമാക്കുകയാണെങ്കിൽ, ഉപകരണങ്ങൾ LAN-ൽ അപ്ഡേറ്റ് പേലോഡുകൾ പങ്കിടുകയും അവ ഉപയോഗിക്കാൻ ശ്രമിക്കുകയും ചെയ്യും, ഇത് ഇന്റർനെറ്റ് ബാൻഡ്വിഡ്ത്ത് ഉപയോഗവും തിരക്കും കുറയ്ക്കാനുള്ള സാധ്യതയുണ്ട്. LAN-ൽ അപ്ഡേറ്റ് പേലോഡുകൾ ലഭ്യമല്ലെങ്കിൽ, ഒരു അപ്ഡേറ്റ് സെർവറിൽ നിന്ന് ഉപകരണം, ഡൗൺലോഡ് ചെയ്യുന്ന രീതിയിലേക്ക് തിരികെ പോകും. 'തെറ്റ്' എന്നായി സജ്ജമാക്കിയിട്ടുണ്ടെങ്കിലോ കോൺഫിഗർ ചെയ്തിട്ടില്ലെങ്കിലോ, p2p ഉപയോഗിക്കപ്പെടില്ല.</translation> <translation id="7933141401888114454">സൂപ്പർവൈസുചെയ്ത ഉപയോക്താക്കളെ സൃഷ്ടിക്കുന്നത് പ്രവർത്തനക്ഷമമാക്കുക</translation> <translation id="793473937901685727">ARC-ആപ്സിനുള്ള സർട്ടിഫിക്കറ്റ് ലഭ്യത സജ്ജമാക്കുക</translation> <translation id="7937766917976512374">വീഡിയോ ക്യാപ്ചർ അനുവദിക്കുകയോ നിരസിക്കുകയോ ചെയ്യുക</translation> @@ -3317,7 +3317,7 @@ Google സമന്വയം പൂർണ്ണമായും പ്രവർത്തനരഹിതമാക്കാൻ, Google Admin കൺസോളിൽ Google സമന്വയ സേവനം പ്രവർത്തനരഹിതമാക്കാൻ നിങ്ങളോട് നിർദ്ദേശിക്കുന്നു. <ph name="ROAMING_PROFILE_SUPPORT_ENABLED_POLICY_NAME" /> നയം നടപ്പിലാക്കുന്നത് സജ്ജമാക്കുമ്പോൾ, ആ സവിശേഷതയെ അതേ ക്ലയന്റ് സൈറ്റിന്റെ പ്രവർത്തനവുമായി പങ്കിടുന്നതിനാൽ നയം പ്രവർത്തനക്ഷമമാക്കരുത്. ഈ കേസിൽ Google ഹോസ്റ്റുചെയ്ത സമന്വയിപ്പിക്കൽ പ്രവർത്തനരഹിതമാക്കി.</translation> -<translation id="8955719471735800169">മുകളിലേയ്ക്ക് മടങ്ങുക </translation> +<translation id="8955719471735800169">മുകളിലേക്ക് മടങ്ങുക</translation> <translation id="8959992920425111821">ഡിഫോൾട്ട് കോൺഫിഗറേഷൻ</translation> <translation id="8960850473856121830">ഈ ലിസ്റ്റിലെ പാറ്റേണുകൾ, അഭ്യർത്ഥിക്കുന്ന URL-ന്റെ സുരക്ഷാ ഉറവിടവുമായി പൊരുത്തപ്പെടും. ഒരു പൊരുത്തം കണ്ടെത്തിയാൽ ആവശ്യപ്പെടാതെ തന്നെ
diff --git a/components/policy/resources/policy_templates_mr.xtb b/components/policy/resources/policy_templates_mr.xtb index 3206d54..1239f7e 100644 --- a/components/policy/resources/policy_templates_mr.xtb +++ b/components/policy/resources/policy_templates_mr.xtb
@@ -378,7 +378,7 @@ हे सेटिंग सेट न केलेली ठेवल्यास, वापरकर्ता हे कार्य वापरायचे की नाही हे ठरवू शकतो.</translation> <translation id="2006530844219044261">उर्जा व्यवस्थापन</translation> <translation id="201557587962247231">डिव्हाइस स्थिती अहवाल अपलोडची वारंवारता</translation> -<translation id="2017301949684549118">शांतपणे इंस्टॉल केल्या जाणाऱ्या वेब अॅपसाठी URL.</translation> +<translation id="2017301949684549118">सायलंटली इंस्टॉल केल्या जाणाऱ्या वेब अॅपसाठी URL.</translation> <translation id="2018836497795982119">डिव्हाइस व्यवस्थापन सेवेकडे वापरकर्ता धोरण माहितीसाठी क्वेरी करण्यात आली तो कालावधी मिलीसेकंदात निर्दिष्ट करते. हे धोरण सेट केल्याने 3 तासांचे डीफॉल्ट मूल्य ओलांडले जाते. या धोरणासाठी वैध मूल्ये 1800000 (30 मिनिटे) ते 86400000 (1 दिवसाच्या) श्रेणीत आहेत. या श्रेणीत नसणारी कोणतीही मूल्ये अनुक्रमे सीमारेखांवर बद्ध करण्यात येतील. प्लॅटफॉर्म धोरण सूचनांचे समर्थन करत असल्यास, रिफ्रेश विलंब 24 तासांसाठी सेट केला जाईल कारण असे अपेक्षित आहे की जेव्हा धोरण बदलेल तेव्हा धोरण सूचना स्वयंचलितपणे रिफ्रेश करण्याची सक्ती केली जाईल. @@ -1504,7 +1504,7 @@ <translation id="4554841826517980623">हे धोरण <ph name="PRODUCT_NAME" /> साठी नेटवर्क फाइल शेअर वैशिष्ट्याने नेटवर्कवरील शेअर शोधण्यासाठी <ph name="NETBIOS_PROTOCOL" /> वापरावा का ते नियंत्रित करते. हे धोरण सत्य वर सेट केले असल्यास, नेटवर्कवर शेअर शोधण्यासाठी शेअर शोध <ph name="NETBIOS_PROTOCOL" /> प्रोटोकॉल वापरेल. हे धोरण असत्य वर सेट केले असल्यास, शेअर शोधण्यासाठी शेअर शोध <ph name="NETBIOS_PROTOCOL" /> प्रोटोकॉल वापरणार नाही. - धोरण सेट न केलेले ठेवल्यास, एंटरप्राइझ-व्यवस्थापित वापरकर्त्यांसाठी डीफॉल्ट बंद केले जाते आणि व्यवस्थापित न केलेल्या वापरकर्त्यांसाठी सुरू केले जाते.</translation> + धोरण सेट न केलेले ठेवल्यास, एंटरप्राइझ व्यवस्थापित वापरकर्त्यांसाठी डीफॉल्ट बंद केले जाते आणि व्यवस्थापित न केलेल्या वापरकर्त्यांसाठी सुरू केले जाते.</translation> <translation id="4555850956567117258">वापरकर्त्यासाठी दूरस्थ अनुप्रमाणन सक्षम करा</translation> <translation id="4557134566541205630">डीफॉल्ट शोध प्रदाता नवीन टॅब पृष्ठ URL</translation> <translation id="4567137030726189378">डेव्हलपर टूलच्या वापराला अनुमती द्या</translation>
diff --git a/components/policy/resources/policy_templates_ms.xtb b/components/policy/resources/policy_templates_ms.xtb index a1d25b1e..a8c40c5 100644 --- a/components/policy/resources/policy_templates_ms.xtb +++ b/components/policy/resources/policy_templates_ms.xtb
@@ -205,6 +205,7 @@ <translation id="1522425503138261032">Membenarkan tapak untuk mengesan lokasi fizikal pengguna</translation> <translation id="152657506688053119">Senarai URL alternatif untuk penyedia carian lalai</translation> <translation id="1530812829012954197">Sentiasa paparkan corak URL berikut dalam penyemak imbas hos</translation> +<translation id="1541170838458414064">Hadkan saiz halaman pencetakan</translation> <translation id="1553684822621013552">Apabila dasar ini ditetapkan kepada benar, ARC akan didayakan untuk pengguna (tertakluk kepada semakan tetapan dasar tambahan - ARC masih tidak boleh digunakan jika salah satu antara mod sementara atau @@ -386,6 +387,12 @@ <translation id="2082205219176343977">Konfigurasikan versi Chrome minimum yang dibenarkan untuk peranti ini.</translation> <translation id="209586405398070749">Saluran stabil</translation> <translation id="2098658257603918882">Dayakan laporan penggunaan dan data berkaitan nahas</translation> +<translation id="2098916259427011890">Dasar ini mengawal sama ada hendak melaporkan maklumat versi, seperti versi OS, platform OS, seni bina OS, versi <ph name="PRODUCT_NAME" /> dan saluran <ph name="PRODUCT_NAME" />. + + Apabila dasar ini dibiarkan tanpa ditetapkan atau ditetapkan kepada Benar, maklumat versi akan dikumpulkan. + Apabila dasar ini ditetapkan kepada Palsu, maklumat versi tidak akan dikumpulkan. + + Dasar ini hanya dikuatkuasakan apabila Sambungan Pelaporan Chrome dan Pengurusan Awan didayakan.</translation> <translation id="2111016292707172233">Mendayakan ketersediaan Ketik untuk Mencari dalam paparan kandungan <ph name="PRODUCT_NAME" />. Jika anda mendayakan tetapan ini, Ketik untuk Mencari akan tersedia kepada pengguna dan mereka boleh memilih untuk menghidupkan atau mematikan ciri tersebut. @@ -419,6 +426,8 @@ Jika dasar ini tidak ditetapkan, nilai lalai ialah 0 darjah dan pengguna bebas untuk mengubahnya. Dalam keadaan ini, nilai lalai tidak digunakan semula pada mula semula.</translation> +<translation id="214901426630414675">Hadkan mod dupleks pencetakan</translation> +<translation id="2149330464730004005">Dayakan pencetakan berwarna</translation> <translation id="2156132677421487971">Konfigurasikan dasar untuk <ph name="PRODUCT_NAME" />, ciri yang membolehkan pengguna menghantar kandungan tab, tapak atau desktop daripada penyemak imbas ke paparan dan sistem bunyi jauh.</translation> <translation id="2166472654199325139">Jangan tapis tapak untuk kandungan dewasa</translation> <translation id="2168397434410358693">Kelewatan melahu apabila dijalankan dengan kuasa AC</translation> @@ -618,6 +627,7 @@ <translation id="2529880111512635313">Konfigurasikan senarai apl dan sambungan pemasangan paksa</translation> <translation id="253135976343875019">Kelewatan amaran melahu apabila dijalankan dengan kuasa AC</translation> <translation id="2536525645274582300">Pengguna menentukan sama ada untuk mendayakan perkhidmatan lokasi Google</translation> +<translation id="2550593661567988768">Pencetakan simpleks sahaja</translation> <translation id="2552966063069741410">Zon waktu</translation> <translation id="2562339630163277285">Menentukan URL enjin carian yang digunakan untuk memberikan hasil carian segera. URL tersebut harus mengandungi rentetan <ph name="SEARCH_TERM_MARKER" />, yang akan digantikan oleh teks yang telah dimasukkan oleh pengguna setakat ini pada masa pertanyaan dibuat. @@ -749,9 +759,12 @@ Jika anda melumpuhkan tetapan ini atau tidak menetapkan nilai, Pratonton Cetakan akan menggunakan pencetak yang paling baru digunakan sebagai pilihan destinasi lalai. Jika anda mendayakan tetapan ini, Pratonton Cetakan akan menggunakan pencetak lalai sistem OS sebagai pilihan destinasi lalai.</translation> +<translation id="2856674246949497058">Undur dan kekal pada versi sasaran jika versi OS lebih baharu daripada versi sasaran. Lakukan powerwash semasa proses ini.</translation> <translation id="2872961005593481000">Mematikan</translation> +<translation id="2873651257716068683">Mengatasi saiz halaman pencetakan lalai. Jika saiz halaman tidak tersedia, dasar ini akan diabaikan.</translation> <translation id="2874209944580848064">Nota untuk peranti <ph name="PRODUCT_OS_NAME" /> yang menyokong apl Android:</translation> <translation id="2877225735001246144">Lumpuhkan carian CNAME apabila berunding pengesahan Kerberos</translation> +<translation id="2892414556511568464">Mengehadkan mod dupleks pencetakan. Dasar yang tidak ditetapkan dan set kosong dianggap sebagai tiada sekatan.</translation> <translation id="2893546967669465276">Hantar log sistem ke pelayan pengurusan</translation> <translation id="2899002520262095963">Apl Android boleh menggunakan konfigurasi rangkaian dan sijil CA yang ditetapkan melalui dasar ini tetapi tiada akses kepada beberapa pilihan konfigurasi.</translation> <translation id="290002216614278247">Membolehkan anda mengunci sesi pengguna berdasarkan masa pelanggan atau kuota penggunaan untuk hari itu. @@ -841,6 +854,7 @@ Pelayan digalakkan supaya berhijrah kepada suit sifer ECDHE. Jika tidak boleh, pastikan suit sifer yang menggunakan pertukaran kunci RSA didayakan.</translation> <translation id="316778957754360075">Penetapan ini telah dihentikan bermula pada <ph name="PRODUCT_NAME" /> versi 29. Cara yang disyorkan untuk menyediakan koleksi sambungan/apl yang dihoskan organisasi ialah dengan memasukkan tapak yang mengehoskan pakej CRX dalam ExtensionInstallSources dan meletakkan pautan muat turun terus kepada pakej tersebut di halaman web. Pelancar untuk halaman web tersebut boleh dihasilkan menggunakan dasar ExtensionInstallForcelist.</translation> +<translation id="3171369832001535378">Templat nama hos rangkaian peranti</translation> <translation id="3185009703220253572">sejak versi <ph name="SINCE_VERSION" /></translation> <translation id="3187220842205194486">Apl Android tidak boleh mendapatkan akses kepada kunci korporat. Dasar ini tidak berkesan terhadapnya.</translation> <translation id="3201273385265130876">Membenarkan anda menetapkan pelayan proksi yang digunakan oleh <ph name="PRODUCT_NAME" /> dan menghalang pengguna daripada menukar tetapan proksi. @@ -953,6 +967,7 @@ Nilai dasar ini ialah token Pendaftaran yang boleh diambil daripada konsol Google Admin.</translation> <translation id="3496296378755072552">Pengurus kata laluan</translation> +<translation id="3502555714327823858">Benarkan semua mod dupleks</translation> <translation id="350443680860256679">Konfigurasi ARC</translation> <translation id="3504791027627803580">Menentukan URL enjin carian yang digunakan untuk menyediakan carian imej. Permintaan carian akan dihantar menggunakan kaedah GET. Sebaliknya, jika dasar DefaultSearchProviderImageURLPostParams ditetapkan, maka permintaan carian imej akan menggunakan kaedah POST. @@ -962,6 +977,7 @@ <translation id="350797926066071931">Dayakan Terjemahan</translation> <translation id="3512226956150568738">Jika model peranti pelanggan sudah menyokong ARC sebelum penghijrahan kepada ext4 yang diperlukan untuk menjalankan ARC dan jika dasar ArcEnabled ditetapkan kepada benar, pilihan ini akan berkelakuan seperti AskUser (nilai 3). Dalam semua keadaan lain, (jika model peranti tidak menyokong ARC sebelum ini atau jika dasar ArcEnabled ditetapkan kepada palsu), nilai ini bersamaan dengan DisallowArc (nilai 0).</translation> <translation id="3524204464536655762">Jangan benarkan mana-mana tapak meminta akses kepada peranti USB melalui API WebUSB</translation> +<translation id="3526752951628474302">Pencetakan monokrom sahaja</translation> <translation id="3528000905991875314">Dayakan halaman ralat ganti</translation> <translation id="3545457887306538845">Membenarkan anda mengawal tempat Alat Pembangun boleh digunakan. @@ -985,6 +1001,7 @@ <translation id="3577251398714997599">Tetapan iklan untuk tapak yang mengandungi iklan yang mengganggu</translation> <translation id="3591584750136265240">Konfigurasikan gelagat pengesahan log masuk</translation> <translation id="3627678165642179114">Dayakan atau lumpuhkan perkhidmatan web penyemakan ejaan</translation> +<translation id="3628480121685794414">Dayakan pencetakan simpleks</translation> <translation id="3646859102161347133">Tetapkan jenis penggadang skrin</translation> <translation id="3653237928288822292">Ikon pembekal carian lalai</translation> <translation id="3660562134618097814">Pindahkan kuki IdP SAML semasa log masuk</translation> @@ -1085,6 +1102,7 @@ Jika dasar ini ditetapkan kepada palsu, maklumat sesi kios tidak akan dilaporkan. Jika ditetapkan kepada benar atau dibiarkan tanpa ditetapkan, maklumat sesi kios akan dilaporkan.</translation> +<translation id="3858658082795336534">Mod dupleks pencetakan lalai</translation> <translation id="3859780406608282662">Tambahkan parameter untuk pengambilan benih Variasi dalam <ph name="PRODUCT_OS_NAME" />. Jika ditetapkan, akan menambahkan parameter pertanyaan yang dipanggil 'sekat' pada URL yang digunakan untuk mengambil benih Variasi. Nilai parameter tersebut ialah nilai yang ditetapkan dalam dasar ini. @@ -1193,6 +1211,12 @@ Jika tidak, dasar ini mungkin ditetapkan kepada satu daripada nilai berikut: "tls1.2" atau "tls1.3". Apabila ditetapkan, <ph name="PRODUCT_NAME" /> tidak akan menggunakan versi SSL/TLS yang lebih tinggi daripada versi yang dinyatakan. Nilai yang tidak dicam akan diabaikan.</translation> <translation id="4121350739760194865">Elakkan promosi apl daripada muncul pada halaman tab baharu</translation> <translation id="412697421478384751">Benarkan pengguna menetapkan PIN yang lemah bagi PIN kunci skrin</translation> +<translation id="4129183564590133854">Dasar ini mengawal sama ada hendak melaporkan maklumat versi yang boleh digunakan untuk mengenal pasti pengguna, seperti Log masuk OS, Log masuk profil <ph name="PRODUCT_NAME" />, Nama profil <ph name="PRODUCT_NAME" />, Laluan profil <ph name="PRODUCT_NAME" /> dan laluan boleh laksana <ph name="PRODUCT_NAME" />. + + Apabila dasar ini dibiarkan tanpa ditetapkan atau ditetapkan kepada Benar, maklumat yang boleh digunakan untuk mengenal pasti pengguna akan dikumpulkan. + Apabila dasar ini ditetapkan kepada Palsu, maklumat yang boleh digunakan untuk mengenal pasti pengguna tidak akan dikumpulkan. + + Dasar ini hanya dikuatkuasakan apabila Sambungan Pelaporan Chrome dan Pengurusan Awan didayakan.</translation> <translation id="4138655880188755661">Had Masa</translation> <translation id="4157003184375321727">Laporkan versi OS dan perisian tegar</translation> <translation id="4157594634940419685">Benarkan akses kepada pencetak CUPS asli</translation> @@ -1504,6 +1528,12 @@ Jika ia tidak ditetapkan, pengguna mungkin ditanya sama ada hendak mengimport atau import boleh berlaku secara automatik.</translation> <translation id="5056708224511062314">Penggadang skrin dilumpuhkan</translation> <translation id="5058573563327660283">Pilih strategi yang digunakan untuk mengosongkan ruang cakera semasa pembersihan automatik (ditamatkan)</translation> +<translation id="5058771123777243130">Dasar ini mengawal sama ada hendak melaporkan data dasar dan masa pengambilan dasar. + + Apabila dasar ini dibiarkan tanpa ditetapkan atau ditetapkan kepada Benar, data dasar dan masa pengambilan dasar akan dikumpulkan. + Apabila dasar ini ditetapkan kepada Palsu, data dasar dan masa pengambilan data tidak akan dikumpulkan. + + Dasar ini hanya dikuatkuasakan apabila Sambungan Pelaporan Chrome dan Pengurusan Awan didayakan.</translation> <translation id="5067143124345820993">Log masuk senarai putih pengguna</translation> <translation id="5068140065960598044">Dasar awan <ph name="PRODUCT_NAME" /> mengatasi dasar Mesin.</translation> <translation id="5085647276663819155">Lumpuhkan Pratonton Cetakan</translation> @@ -1615,6 +1645,7 @@ <translation id="5366977351895725771">Jika ditetapkan kepada palsu, penghasilan pengguna diselia oleh pengguna ini akan dilumpuhkan. Mana-mana pengguna diselia yang sedia ada masih akan tersedia. Jika ditetapkan kepada benar atau tidak dikonfigurasi, pengguna diselia boleh dihasilkan dan diuruskan oleh pengguna ini.</translation> +<translation id="5369937289900051171">Pencetakan berwarna sahaja</translation> <translation id="5370279767682621504">Dayakan sokongan HTTP/0.9 pada port bukan lalai</translation> <translation id="5378985487213287085">Membolehkan anda menetapkan sama ada tapak web dibenarkan untuk memapar pemberitahuan desktop. Memaparkan pemberitahuan desktop boleh dibenarkan secara lalai, dinafikan secara lalai atau pengguna boleh ditanya setiap kali tapak web mahu memaparkan pemberitahuan desktop. @@ -1641,6 +1672,7 @@ Jika ia tidak ditetapkan, pengguna mungkin ditanya sama ada untuk mengimport atau tidak, atau pengimportan mungkin berlaku secara automatik.</translation> <translation id="5423197884968724595">Nama sekatan Android WebView:</translation> +<translation id="5424147596523390018">Benarkan semua mod warna</translation> <translation id="5442026853063570579">Dasar ini turut mengawal akses kepada Pilihan Pembangun Android. Jika anda menetapkan dasar ini kepada 'DeveloperToolsDisallowed' (nilai 2), pengguna tidak dapat mengakses Pilihan Pembangun. Jika anda menetapkan dasar ini kepada nilai lain atau membiarkannya tidak ditetapkan, pengguna dapat mengakses Pilihan Pembangun dengan mengetik nombor binaan sebanyak tujuh kali dalam apl tetapan Android.</translation> <translation id="5447306928176905178">Dayakan maklumat pelaporan memori (saiz timbunan JS) pada halaman (lapuk)</translation> <translation id="5457065417344056871">Dayakan mod tetamu dalam penyemak imbas</translation> @@ -1708,6 +1740,7 @@ <translation id="5586942249556966598">Jangan buat apa-apa</translation> <translation id="5630352020869108293">Pulihkan sesi terakhir</translation> <translation id="5645779841392247734">Benarkan kuki pada tapak ini</translation> +<translation id="5689430183304951538">Saiz halaman pencetakan lalai</translation> <translation id="5693469654327063861">Benarkan penghijrahan data</translation> <translation id="5694594914843889579">Apabila dasar ini ditetapkan kepada benar, storan luaran tidak akan tersedia dalam penyemak imbas fail. @@ -1737,6 +1770,7 @@ Apabila dasar ini tidak ditetapkan, panjang masa lalai digunakan. Nilai dasar harus dinyatakan dalam milisaat.</translation> +<translation id="5783009211970309878">Cetak Pengepala dan Pengaki</translation> <translation id="5809728392451418079">Tetapkan nama paparan untuk akaun setempat peranti</translation> <translation id="5814301096961727113">Tetapkan keadaan lalai maklum balas pertuturan pada skrin log masuk</translation> <translation id="5815129011704381141">But semula secara automatik selepas kemas kini</translation> @@ -1754,6 +1788,7 @@ Jika 'Dilumpuhkan' dipilih, halaman tidak akan boleh dibuka dalam mod Inkognito. Jika 'Dipaksa' dipilih, halaman boleh dibuka HANYA dalam mod Inkognito.</translation> +<translation id="582857022372205358">Dayakan pencetakan dupleks pinggir pendek</translation> <translation id="583091600226586337"> Jika dasar in didayakan, pengguna akan ditanya tempat untuk menyimpan setiap fail sebelum muat turun. Jika dasar ini dilumpuhkan, muat turun akan bermula dengan serta-merta dan pengguna tidak akan ditanya tempat untuk menyimpan fail. @@ -1789,6 +1824,7 @@ Jika tetapan ini dilumpuhkan atau tidak dikonfigurasikan, permintaan pengesahan gnubby tidak akan diproksikan.</translation> <translation id="5898486742390981550">Apabila beberapa orang pengguna mengelog masuk, pengguna utama sahaja yang boleh menggunakan apl Android.</translation> +<translation id="5901427587865226597">Pencetakan dupleks sahaja</translation> <translation id="5906199912611534122">Membenarkan pendayaan atau pelumpuhan pendikitan rangkaian. Dasar ini terpakai kepada semua pengguna dan kepada semua antara muka pada peranti. Setelah ditetapkan, pendikitan terus aktif sehingga dasar diubah untuk melumpuhkan pendikitan. @@ -1896,6 +1932,7 @@ Nilai dasar mesti dinyatakan dalam milisaat. Nilai diketatkan menjadi kurang daripada kelewatan melahu.</translation> <translation id="6097601282776163274">Dayakan pengumpulan data awanama termasuk URL</translation> +<translation id="6099853574908182288">Mod warna pencetakan lalai</translation> <translation id="6111936128861357925">Benarkan Permainan Telur Easter Dinosaur</translation> <translation id="6114416803310251055">dikecam</translation> <translation id="6133088669883929098">Benarkan semua tapak untuk menggunakan penghasilan kunci</translation> @@ -1910,6 +1947,7 @@ Jika dasar ini dibiarkan tanpa ditetapkan, nilai lalai global akan digunakan untuk semua tapak sama ada daripada dasar 'DefaultPluginsSetting' jika dasar ini ditetapkan atau konfigurasi peribadi pengguna akan digunakan.</translation> <translation id="6190022522129724693">Tetapan pop muncul lalai</translation> +<translation id="6190367314942602985">Laporkan maklumat Pengenalan Pengguna</translation> <translation id="6197453924249895891">Memberi akses kepada kunci korporat untuk sambungan. Kunci ditetapkan untuk kegunaan korporat jika dijana menggunakan API chrome.enterprise.platformKeys pada akaun terurus. Kunci yang diimport atau dijana dengan cara lain tidak ditetapkan untuk kegunaan korporat. @@ -1919,6 +1957,8 @@ Secara lalai, sambungan tidak boleh menggunakan kunci yang ditetapkan untuk kegunaan korporat, sama seperti menetapkan allowCorporateKeyUsage kepada palsu untuk sambungan itu. Jika hanya allowCorporateKeyUsage ditetapkan kepada benar untuk sambungan, ia boleh menggunakan mana-mana kunci platform yang ditandai untuk kegunaan korporat bagi menandatangani data arbitrari. Kebenaran ini hanya boleh diberikan jika sambungan itu dipercayai untuk menjamin keselamatan akses kepada kekunci daripada penyerang.</translation> +<translation id="6208896993204286313">Laporkan Maklumat Dasar <ph name="PRODUCT_NAME" /></translation> +<translation id="6210259502936598222">Laporkan Maklumat OS dan Versi <ph name="PRODUCT_NAME" /></translation> <translation id="6211428344788340116">Laporkan masa aktiviti peranti. Jika tetapn ini tidak ditetapkan atau ditetapkan ke Benar, peranti yang tersenarai akan melaporkan tempoh masa pengguna aktif pada peranti. Jika tetapan ini ditetapkan ke Tidak Benar, masa aktiviti peranti tidak akan direkod atau dilaporkan.</translation> @@ -1936,6 +1976,7 @@ Jika anda mendayakan tetapan ini dan port tidak standard (iaitu, port selain 80 atau 443) dimasukkan, ia akan dimasukkan dalam Kerberos SPN yang dihasilkan. Jika anda melumpuhkan tetapan ini atau membiarkannya tanpa ditetapkan, Kerberos SPN yang dihasilkan tidak akan memasukkan port dalam sebarang keadaan.</translation> +<translation id="6261643884958898336">Laporkan maklumat Pengenalan Mesin</translation> <translation id="6281043242780654992">Konfigurasi dasar untuk Pemesejan Natif. Hos pemesejan natif yang disenaraihitamkan tidak akan dibenarkan melainkan hos ini disenaraiputihkan.</translation> <translation id="6282799760374509080">Benarkan atau nafikan rakaman audio</translation> <translation id="6284362063448764300">TLS 1.1</translation> @@ -1966,6 +2007,7 @@ Jika anda memilih untuk mengesan pelayan proksi secara automatik, URL skrip "http://wpad/wpad.dat" akan diberikan kepada apl Android. Tiada bahagian protokol autokesan proksi yang lain akan digunakan. Jika anda memilih untuk menggunakan skrip proksi .pac, URL skrip akan diberikan kepada apl Android.</translation> +<translation id="6430366557948788869">Sambungan Pelaporan Chrome</translation> <translation id="6440051664870270040">Benarkan tapak menavigasi dan membuka tetingkap timbul secara serentak</translation> <translation id="6447948611083700881">Sandaran dan pemulihan dilumpuhkan</translation> <translation id="645425387487868471">Dayakan log masuk paksa untuk <ph name="PRODUCT_NAME" /></translation> @@ -2012,6 +2054,7 @@ <translation id="6628646143828354685">Membenarkan anda menetapkan sama ada tapak web dibenarkan untuk mendapatkan akses kepada peranti Bluetooth berhampiran. Akses boleh disekat sepenuhnya atau pengguna boleh ditanya setiap kali tapak web ingin mendapatkan akses kepada peranti Bluetooth berhampiran. Jika dasar ini dibiarkan tanpa ditetapkan, '3' akan digunakan dan pengguna akan dapat mengubahnya.</translation> +<translation id="663685822663765995">Hadkan mod warna pencetakan</translation> <translation id="6641981670621198190">Lumpuhkan sokongan untuk API grafik 3D</translation> <translation id="6647965994887675196">Jika ditetapkan kepada benar, pengguna diselia boleh dihasilkan dan digunakan. @@ -2039,6 +2082,7 @@ Corak URL dalam dasar ini tidak boleh bercanggah dengan corak yang dikonfigurasi melalui WebUsbAskForUrls. Antara dua dasar ini, tidak dinyatakan dasar yang diberi keutamaan jika URL didapati sepadan dengan kedua-dua dasar.</translation> <translation id="6689792153960219308">Laporkan status perkakasan</translation> +<translation id="6698632841807204978">Dayakan pencetakan monokrom</translation> <translation id="6699880231565102694">Dayakan pengesahan dua faktor untuk hos akses jauh</translation> <translation id="6724842112053619797">Jika anda mendayakan tetapan ini, tetapan yang disimpan dalam profil <ph name="PRODUCT_NAME" /> seperti penanda halaman, data autolengkap, kata laluan dan sebagainya akan turut ditulis pada fail yang disimpan dalam folder profil "Roaming" pengguna atau lokasi yang ditentukan oleh Pentadbir melaui dasar <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Sekiranya dasar ini didayakan, penyegerakan awan akan dilumpuhkan. @@ -2078,6 +2122,12 @@ Tetapan ini mengawal persembahan halaman pertama yang membantu pengguna log masuk ke <ph name="PRODUCT_NAME" />, memilihnya sebagai penyemak imbas lalai mereka atau memaklumi mereka tentang ciri produk.</translation> <translation id="6766216162565713893">Benarkan tapak web meminta pengguna memberikan akses kepada peranti Bluetooth berhampiran</translation> <translation id="6770454900105963262">Laporkan maklumat tentang sesi kios aktif</translation> +<translation id="6773056206551814546">Dasar ini mengawal sama ada hendak melaporkan maklumat versi yang boleh digunakan untuk mengenal pasti mesin, seperti nama mesin dan alamat rangkaian. + + Apabila dasar ini dibiarkan tanpa ditetapkan atau ditetapkan kepada Benar, maklumat yang boleh digunakan untuk mengenal pasti mesin akan dikumpulkan. + Apabila dasar ini ditetapkan kepada Palsu, maklumat yang boleh digunakan untuk mengenal pasti mesin tidak akan dikumpulkan. + + Dasar ini hanya dikuatkuasakan apabila Sambungan Pelaporan Chrome dan Pengurusan Awan didayakan.</translation> <translation id="6786747875388722282">Pelanjutan</translation> <translation id="6786967369487349613">Tetapkan direktori profil perayauan</translation> <translation id="6810445994095397827">Sekat JavaScript pada tapak ini</translation> @@ -2180,6 +2230,7 @@ <translation id="6923366716660828830">Menentukan nama penyedia carian lalai. Jika dibiarkan kosong atau tidak ditetapkan, nama hos yang ditentukan oleh URL carian akan digunakan. Dasar ini hanya dipertimbangkan jika dasar 'DefaultSearchProviderEnabled' didayakan.</translation> +<translation id="6926703471186170050">Dayakan pencetakan dupleks pinggir panjang</translation> <translation id="6931242315485576290">Lumpuhkan penyegerakan data dengan Google</translation> <translation id="6936894225179401731">Menentukan jumlah maksimum sambungan serentak pada pelayan proksi. @@ -2388,6 +2439,7 @@ Jika tetapan ini dilumpuhkan atau tidak dikonfigurasi, maka pengguna boleh memilih untuk meneruskan ke tapak yang dibenderakan selepas amaran dipaparkan. Lihat https://developers.google.com/safe-browsing untuk mendapatkan maklumat lanjut tentang Penyemakan Imbas Selamat.</translation> +<translation id="737655323154569539">Mengehadkan saiz halaman pencetakan. Dasar yang tidak ditetapkan dan set kosong dianggap sebagai tiada sekatan.</translation> <translation id="7417728346887499628">Jika dilumpuhkan, Pembersih Chrome tidak akan dapat mengimbas sistem untuk mengesan perisian yang tidak dikehendaki dan melakukan pembersihan. Tindakan memulakan Pembersih Chrome secara manual daripada chrome://settings/cleanup dilumpuhkan. Jika didayakan atau tidak ditetapkan, Pembersih Chrome akan mengimbas sistem secara berkala untuk mengesan perisian yang tidak dikehendaki dan sekiranya menemui perisian tersebut, Pembersih Chrome akan bertanya kepada pengguna sama ada mereka ingin mengalih keluar perisian tersebut. Tindakan memulakan Pembersih Chrome secara manual daripada chrome://settings didayakan. @@ -2458,6 +2510,8 @@ <translation id="7617319494457709698">Dasar ini menentukan sambungan yang boleh menggunakan fungsi <ph name="CHALLENGE_USER_KEY_FUNCTION" /> <ph name="ENTERPRISE_PLATFORM_KEYS_API" /> untuk pembuktian jauh. Sambungan hendaklah ditambahkan pada senarai ini supaya boleh menggunakan API tersebut. Jika sambungan tidak tersenarai atau senarai tidak ditetapkan, panggilan kepada API tersebut akan gagal dengan kod ralat.</translation> +<translation id="7618907117929117943">Undur dan kekal pada versi sasaran jika versi OS lebih baharu daripada versi sasaran dan konfigurasi tahap peranti mungkin boleh dibawa ke depan (termasuk bukti kelayakan rangkaian) melalui pengunduran dan melangkau OOBE selepas pengunduran juga. Jangan lakukan atau batalkan pengunduran jika tidak boleh dilakukan (kerana versi sasaran tidak meyokong pemulihan data atau kerana perubahan undur yang tidak serasi). + Disokong pada <ph name="PRODUCT_OS_NAME" /> versi 70 ke atas. Untuk klien lama, nilai ini bermakna pengunduran telah dilumpuhkan.</translation> <translation id="7625444193696794922">Menetapkan saluran pelepasan yang harus mengunci peranti ini.</translation> <translation id="7632724434767231364">Nama perpustakaan GSSAPI</translation> <translation id="7635471475589566552">Mengkonfigurasi penempatan aplikasi dalam <ph name="PRODUCT_NAME" /> dan menghalang pengguna daripada menukar penempatan. @@ -2661,6 +2715,7 @@ Jika anda mendayakan tetapan ini atau tidak menetapkan nilai, Autolengkap akan kekal di bawah kawalan pengguna. Perkara ini akan membenarkan mereka mengkonfigurasi profil Autolengkap dan menghidupkan atau mematikan Autolengkap mengikut budi bicara mereka sendiri.</translation> <translation id="8044493735196713914">Laporkan mod but peranti</translation> <translation id="8050080920415773384">Pencetakan Natif</translation> +<translation id="8053580360728293758">Mengatasi mod warna pencetakan lalai. Jika mod tidak tersedia, dasar ini akan diabaikan.</translation> <translation id="8059164285174960932">URL di mana pelanggan akses jauh harus mendapatkan token pengesahan mereka</translation> <translation id="8078366200175825572">Membolehkan anda menetapkan beberapa pola url yang menentukan tapak yang tidak dibenarka menetapkan kuki. @@ -2847,6 +2902,7 @@ "Versi" di sini bermaksud versi tepat seperti '61.0.3163.120' atau awalan versi, contohnya '61.0' </translation> <translation id="8544375438507658205">Pemapar HTML lalai untuk <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">Benarkan Mesej SMS disegerakkan dari telefon ke Chromebook.</translation> +<translation id="8548832052135586762">Menetapkan pencetakan kepada berwarna sahaja, monokrom sahaja atau tiada sekatan mod warna. Dasar yang tidak ditetapkan akan dianggap sebagai tiada sekatan.</translation> <translation id="8549772397068118889">Beri amaran apabila melawat tapak web di luar pek kandungan</translation> <translation id="8566842294717252664">Sembunyikan gedung web daripada Halaman Tab Baharu dan pelancar apl</translation> <translation id="8586528890725660268">Menentukan pencetak yang tidak boleh digunakan oleh pengguna. @@ -2960,6 +3016,7 @@ Jika tetapan ini dibiarkan tanpa ditetapkan, pengguna boleh menentukan sama ada hendak menggunakan fungsi ini atau tidak.</translation> <translation id="8870318296973696995">Halaman utama</translation> +<translation id="8876188741456358123">Mengatasi mod dupleks pencetakan lalai. Jika mod tidak tersedia, dasar ini akan diabaikan.</translation> <translation id="8882006618241293596">Sekat pemalam <ph name="FLASH_PLUGIN_NAME" /> pada tapak ini</translation> <translation id="890403179930035128">Paksa dayakan bahasa semakan ejaan. Bahasa yang tidak dikenali dalam senarai itu akan diabaikan. @@ -3058,6 +3115,8 @@ <translation id="9084985621503260744">Menyatakan sama ada aktiviti video menjejaskan pengurusan kuasa</translation> <translation id="9088433379343318874">Dayakan penyedia kandungan pengguna di bawah seliaan</translation> <translation id="9088444059179765143">Konfigurasi kaedah pengesanan zon waktu automatik</translation> +<translation id="9094064873808699479">Undur dan kekal pada versi sasaran jika versi OS lebih baharu daripada versi sasaran. Cuba bawa ke depan konfigurasi tahap peranti (termasuk bukti kelayakan rangkaian) melalui proses pengunduran, jika boleh, tetapi lakukan pengunduran dengan powerwash penuh walaupun pemulihan data tidak boleh dilakukan (kerana versi sasaran tidak meyokong pemulihan data atau kerana perubahan undur yang tidak serasi). + Disokong pada <ph name="PRODUCT_OS_NAME" /> versi 70 ke atas. Untuk klien lama, nilai ini bermakna pengunduran telah dilumpuhkan.</translation> <translation id="9096086085182305205">Senarai putih pelayan pengesahan</translation> <translation id="9098553063150791878">Dasar untuk pengesahan HTTP</translation> <translation id="9105265795073104888">Hanya subset pilihan konfigurasi proksi disediakan kepada apl Android. Apl Android boleh memilih untuk menggunakan proksi secara sukarela. Anda tidak boleh memaksanya untuk menggunakan proksi.</translation> @@ -3116,6 +3175,13 @@ <translation id="9187743794267626640">Lumpuhkan pelekapan storan luaran</translation> <translation id="9197740283131855199">Peratusan yang digunakan untuk menskala kelewatan pemalapan skrin jika pengguna menjadi aktif selepas pemalapan</translation> <translation id="9200828125069750521">Parameter untuk URL imej yang menggunakan POST</translation> +<translation id="920209539000507585">Paksa 'pengepala dan pengaki' dihidupkan atau dimatikan dalam dialog pencetakan. + + Jika dasar ini tidak ditetapkan, pengguna boleh menentukan sama ada hendak mencetak pengepala dan pengaki. + + Jika dasar ini ditetapkan kepada palsu, 'Pengepala dan pengaki' tidak dipilih dalam dialog prapaparan cetak dan pengguna tidak dapat mengubahnya. + + Jika dasar ditetapkan kepada benar, 'Pengepala dan pengaki' di pilih dalam dialog prapaparan cetak dan pengguna tidak dapat mengubahnya.</translation> <translation id="9210953373038593554">Mengkonfigurasi jenis pengesahan untuk log masuk SAML. Apabila dasar ini tidak ditetapkan atau ditetapkan kepada Lalai (nilai 0), gelagat log masuk SAML ditentukan oleh penyemak imbas bergantung pada faktor lain. Dalam senario paling asas, pengesahan pengguna dan perlindungan data pengguna dicache adalah berdasarkan kata laluan yang dimasukkan secara manual oleh pengguna. @@ -3123,6 +3189,9 @@ Apabila dasar ini ditetapkan kepada ClientCertificate (nilai 1), pengesahan sijil pelanggan digunakan untuk pengguna yang baru ditambahkan, yang log masuk melalui SAML. Tiada kata laluan digunakan untuk pengguna sedemikian dan data setempat mereka yang dicache dilindungi menggunakan kunci kriptografi yang sepadan. Contohnya, tetapan ini membenarkan konfigurasi kad pintar dilakukan berdasarkan pengesahan pengguna (harap maklum bahawa apl perisian tengah kad pintar perlu dipasang melalui dasar DeviceLoginScreenAppInstallList). Dasar ini hanya memberi kesan pada pengguna yang membuat pengesahan menggunakan SAML.</translation> +<translation id="9211439035693857287">Konfigurasikan dasar yang berkaitan dengan Sambungan Pelaporan Chrome. + + Dasar ini hanya dikuatkuasakan apabila Sambungan Pelaporan Chrome dan Pengurusan Awan didayakan.</translation> <translation id="9213347477683611358">Mengkonfigurasikan imej kertas dinding tahap peranti yang dipaparkan pada skrin log masuk jika belum ada pengguna yang pernah log masuk ke peranti. Dasar ini ditetapkan dengan menentukan URL tempat peranti OS Chrome boleh memuat turun imej kertas dinding itu dan cincangan kriptografi digunakan untuk mengesahkan integriti muat turun itu. Imej mestilah dalam format JPEG dan saiznya tidak boleh melebihi 16MB. URL mestilah boleh diakses tanpa sebarang pengesahan. Imej kertas dinding dimuat turun dan dicache. Imej kertas dinding akan dimuat turun semula setiap kali URL atau cincangan berubah. Dasar ini hendaklah ditetapkan sebagai rentetan yang menyatakan URL dan cincangan dalam format JSON, mis.,
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb index eda8b0c6..623f276 100644 --- a/components/policy/resources/policy_templates_nl.xtb +++ b/components/policy/resources/policy_templates_nl.xtb
@@ -665,7 +665,7 @@ Als deze instelling is uitgeschakeld, mogen gebruikers geen sms-synchronisatie instellen. - Als dit beleid niet wordt ingesteld, is sms-synchronisatie standaard toegestaan voor beheerde gebruikers en niet toegestaan voor niet-beheerde gebruikers.</translation> + Als dit beleid niet wordt ingesteld, is sms-synchronisatie standaard niet toegestaan voor beheerde gebruikers en wel toegestaan voor niet-beheerde gebruikers.</translation> <translation id="2660846099862559570">Nooit een proxy gebruiken</translation> <translation id="267596348720209223">Hiermee worden de tekencoderingen gespecificeerd die door de zoekprovider worden ondersteund. Deze coderingen zijn codepaginanamen zoals UTF-8, GB2312 en ISO-8859-1. Ze worden getest in de volgorde waarin ze worden opgegeven. @@ -2222,7 +2222,7 @@ Chrome verzamelt deze gegevens alleen als Chrome wordt getriggerd door webservices van Google, zoals Google Hangouts of Google Meet. - Google mag deze logboeken aan de hand van de sessie-ID koppelen aan andere logboeken die door de Google-service zelf zijn verzameld. Het doel hiervan is dat fouten makkelijker kunnen worden opgelost. + Google mag deze logboeken aan de hand van de sessie-ID koppelen aan andere logboeken die door de Google-service zelf zijn verzameld. Het doel hiervan is dat fouten makkelijker kunnen worden opgespoord. </translation> <translation id="706669471845501145">Sites toestaan bureaubladmeldingen weer te geven</translation> <translation id="7072208053150563108">Wijzigingsfrequentie van computerwachtwoord</translation> @@ -2357,9 +2357,9 @@ <translation id="7336878834592315572">Cookies bewaren voor de duur van de sessie</translation> <translation id="7340034977315324840">Tijdsduur van apparaatgebruik melden</translation> <translation id="7343497214039883642">Configuratiebestand voor zakelijke printers voor apparaten</translation> -<translation id="7349338075015720646">Specificeert een lijst met websites die op de achtergrond worden geïnstalleerd zonder interactie van de gebruiker en die niet kunnen worden verwijderd of uitgeschakeld door de gebruiker. +<translation id="7349338075015720646">Specificeert een lijst met web-apps die op de achtergrond worden geïnstalleerd zonder interactie van de gebruiker en die niet kunnen worden verwijderd of uitgeschakeld door de gebruiker. - Elk item op de lijst van het beleid is een tweeledig object, bestaande uit 'url' en 'launch_container'. 'url' moet de URL van de te installeren web-app zijn en 'launch_container' moet 'window' of 'tab' zijn om aan te duiden hoe de web-app na de installatie wordt geopend. Als 'launch_container' wordt weggelaten, wordt de app geopend in een venster indien Chrome de app als progressieve web-app beschouwt en op een tabblad indien de app niet als progressieve web-app wordt beschouwd.</translation> + Elk lijstitem van het beleid is een tweeledig object, bestaande uit 'url' en 'launch_container'. 'url' moet de URL van de te installeren web-app zijn en 'launch_container' moet 'window' of 'tab' zijn om aan te duiden hoe de web-app na de installatie wordt geopend. Als 'launch_container' wordt weggelaten, wordt de app geopend in een venster indien Chrome de app als progressieve web-app beschouwt en op een tabblad indien de app niet als progressieve web-app wordt beschouwd.</translation> <translation id="7367028210010532881">De service Safe Browsing geeft een waarschuwingspagina weer wanneer gebruikers naar sites gaan die als potentieel schadelijk zijn gemarkeerd. Als je deze instelling inschakelt, voorkom je dat gebruikers vanaf de waarschuwingspagina toch doorgaan naar de schadelijke site. Als deze instelling is uitgeschakeld of niet is geconfigureerd, kunnen gebruikers ervoor kiezen door te gaan naar de gemarkeerde site nadat de waarschuwing is weergegeven.
diff --git a/components/policy/resources/policy_templates_pl.xtb b/components/policy/resources/policy_templates_pl.xtb index a8cfdc5..c309688ec 100644 --- a/components/policy/resources/policy_templates_pl.xtb +++ b/components/policy/resources/policy_templates_pl.xtb
@@ -200,6 +200,7 @@ <translation id="1522425503138261032">Zezwalaj witrynom na śledzenie fizycznej lokalizacji użytkownika</translation> <translation id="152657506688053119">Lista alternatywnych URL-i dla domyślnego dostawcy wyszukiwania</translation> <translation id="1530812829012954197">Zawsze renderuj strony w przeglądarce hosta według następujących wzorców adresów URL</translation> +<translation id="1541170838458414064">Ogranicz rozmiar drukowanych stron</translation> <translation id="1553684822621013552">Gdy ta zasada jest włączona, użytkownik ma dostęp do rozszerzenia ARC (zależy to jednak od kontroli dodatkowych ustawień zasad – rozszerzenie ARC nadal jest niedostępne, jeśli w bieżącej sesji użytkownika włączono tryb tymczasowy @@ -350,7 +351,7 @@ <translation id="199764499252435679">Włącz aktualizacje komponentów w: <ph name="PRODUCT_NAME" /></translation> <translation id="2006530844219044261">Zarządzanie energią</translation> <translation id="201557587962247231">Częstotliwość pobierania raportów o stanie urządzenia</translation> -<translation id="2017301949684549118">Adresy URL aplikacji internetowych do zainstalowania po cichu.</translation> +<translation id="2017301949684549118">Adresy URL aplikacji internetowych, które mają być instalowane dyskretnie.</translation> <translation id="2018836497795982119">Określa, co ile milisekund do usługi zarządzania urządzeniami będzie wysyłane zapytanie o zasady dotyczące użytkowników. Skonfigurowanie tej zasady powoduje zastąpienie wartości domyślnej 3 godzin. Dozwolone są wartości od 1 800 000 (30 minut) do 86 400 000 (1 dzień). Wartości spoza tego zakresu zostaną sprowadzone do odpowiedniej wartości granicznej. Jeśli platforma obsługuje powiadomienia o naruszeniu zasad, czas odświeżania będzie ustawiony na 24 godziny, ponieważ powiadomienia te powinny automatycznie wymuszać odświeżenie po każdej zmianie zasad. @@ -375,6 +376,12 @@ <translation id="2082205219176343977">Skonfiguruj minimalną dozwoloną wersję Chrome dla urządzenia.</translation> <translation id="209586405398070749">Wersja stabilna</translation> <translation id="2098658257603918882">Włącz przesyłanie raportów o użytkowaniu i danych dotyczących awarii</translation> +<translation id="2098916259427011890">Ta zasada określa, czy mają być zgłaszane informacje o wersji, takie jak wersja, platforma i architektura systemu operacyjnego, wersja <ph name="PRODUCT_NAME" /> i kanał <ph name="PRODUCT_NAME" />. + + Gdy ta zasada jest nieskonfigurowana lub ma wartość prawda, informacje o wersji są zbierane. + Gdy ta zasada ma wartość fałsz, informacje o wersji nie są zbierane. + + Ta zasada jest stosowana tylko wtedy, gdy włączone są Rozszerzenie zgłaszające informacje o Chrome i Zarządzanie przez chmurę.</translation> <translation id="2111016292707172233">Pozwala korzystać z funkcji „Kliknij, by wyszukać” w widoku treści w <ph name="PRODUCT_NAME" />. Jeśli włączysz to ustawienie, funkcja „Kliknij, by wyszukać” będzie dostępna dla użytkownika i będzie on mógł ją włączyć lub wyłączyć. @@ -409,6 +416,8 @@ Kiedy ta zasada nie jest skonfigurowana, domyślna wartość to 0 stopni, a użytkownik może ją zmienić. Jeśli tak zrobi, zmieniona wartość nie zostanie ponownie zastosowana po ponownym uruchomieniu urządzenia.</translation> +<translation id="214901426630414675">Ogranicz tryb drukowania dwustronnego</translation> +<translation id="2149330464730004005">Włącz drukowanie w kolorze</translation> <translation id="2156132677421487971">Pozwala skonfigurować zasady dotyczące <ph name="PRODUCT_NAME" /> – funkcji, która umożliwia użytkownikom przesyłanie zawartości kart, stron i pulpitu z przeglądarki do zdalnych wyświetlaczy i systemów audio.</translation> <translation id="2166472654199325139">Nie filtruj witryn pod kątem treści dla dorosłych</translation> <translation id="2168397434410358693">Opóźnienie bezczynności przy zasilaniu sieciowym</translation> @@ -598,6 +607,7 @@ <translation id="2529880111512635313">Konfiguruj listę aplikacji i rozszerzeń, których instalacja jest wymuszana</translation> <translation id="253135976343875019">Opóźnienie ostrzeżenia o bezczynności przy zasilaniu sieciowym</translation> <translation id="2536525645274582300">Użytkownik decyduje, czy włączyć usługi lokalizacyjne Google</translation> +<translation id="2550593661567988768">Tylko drukowanie jednostronne</translation> <translation id="2552966063069741410">Strefa czasowa</translation> <translation id="2562339630163277285">Określa URL wyszukiwarki, z której pobierane są wyniki wyszukiwania dynamicznego. URL musi zawierać ciąg <ph name="SEARCH_TERM_MARKER" />, który podczas wyszukiwania jest zastępowany tekstem wpisanym przez użytkownika @@ -654,7 +664,7 @@ URL wyszukiwania Google to: <ph name="GOOGLE_SEARCH_URL" />. Ta opcja musi być ustawiona w przypadku włączenia zasady „DefaultSearchProviderEnabled” i tylko wtedy będzie egzekwowana.</translation> -<translation id="2659019163577049044">Jeśli to ustawienie jest włączone, użytkownicy będą mogli włączyć synchronizację SMS-ów między telefonem a Chromebookiem. Jeśli jest to dozwolone, użytkownicy muszą włączyć ją samodzielnie, wykonując proces konfiguracji. Po ukończeniu procesu konfiguracji użytkownicy mogą wysyłać i odbierać SMS-y na swoich Chromebookach. +<translation id="2659019163577049044">Jeśli to ustawienie jest włączone, użytkownicy będą mogli włączyć synchronizację SMS-ów między telefonem a Chromebookiem. Jeśli jest to dozwolone, użytkownicy muszą włączyć ją samodzielnie, przeprowadzając konfigurację. Po ukończeniu konfiguracji użytkownicy mogą wysyłać i odbierać SMS-y na swoich Chromebookach. Jeśli to ustawienie jest wyłączone, użytkownicy nie będą mogli skonfigurować synchronizacji SMS-ów. @@ -725,9 +735,12 @@ Jeśli wyłączysz to ustawienie lub pozostawisz je puste, w podglądzie wydruku zostanie wybrana ostatnio użyta drukarka. Jeśli włączysz to ustawienie, w podglądzie wydruku zostanie wybrana domyślna drukarka systemowa.</translation> +<translation id="2856674246949497058">Cofnięcie i pozostawienie docelowej wersji systemu operacyjnego, jeśli zainstalowana jest wersja nowsza niż docelowa. W trakcie tego procesu zostanie wykonana procedura Powerwash.</translation> <translation id="2872961005593481000">Wyłącz</translation> +<translation id="2873651257716068683">Zastępuje domyślny rozmiar drukowanej strony. Jeśli dany rozmiar strony jest niedostępny, zasada jest ignorowana.</translation> <translation id="2874209944580848064">Uwaga dotycząca urządzeń z <ph name="PRODUCT_OS_NAME" /> obsługujących aplikacje na Androida:</translation> <translation id="2877225735001246144">Wyłącz wyszukiwanie rekordu CNAME podczas negocjowania uwierzytelniania Kerberos</translation> +<translation id="2892414556511568464">Ogranicza tryb drukowania dwustronnego. Zasada nieskonfigurowana i pusty zbiór są traktowane jako brak ograniczeń.</translation> <translation id="2893546967669465276">Wysyłaj dzienniki systemowe na serwer zarządzania</translation> <translation id="2899002520262095963">Aplikacje na Androida mogą używać konfiguracji sieci i certyfikatów CA ustawianych przez tę zasadę, ale nie mają dostępu do niektórych opcji konfiguracji.</translation> <translation id="290002216614278247">Umożliwia blokowanie sesji użytkownika na podstawie godziny na kliencie lub dziennego limitu użytkowania. @@ -812,6 +825,7 @@ Zalecamy wdrożenie na serwerach mechanizmów szyfrowania ECDHE. Jeśli nie ma takiej możliwości, upewnij się, że włączony jest mechanizm szyfrowania obsługujący wymianę kluczy RSA.</translation> <translation id="316778957754360075">To ustawienie zostało wycofane w <ph name="PRODUCT_NAME" /> w wersji 29. Zalecany sposób konfigurowania kolekcji rozszerzeń lub aplikacji udostępnianych przez organizację polega na tym, że witrynę z pakietami CRX umieszcza się w zasadzie ExtensionInstallSources, a na stronie internetowej udostępnia się bezpośrednie linki do pakietów do pobrania. Program uruchamiający tę stronę internetową można utworzyć, korzystając z zasady ExtensionInstallForcelist.</translation> +<translation id="3171369832001535378">Szablon sieciowej nazwy hosta urządzenia</translation> <translation id="3185009703220253572">od wersji <ph name="SINCE_VERSION" /></translation> <translation id="3187220842205194486">Aplikacje na Androida nie mają dostępu do kluczy firmowych. Ta zasada nie ma na nie żadnego wpływu.</translation> <translation id="3201273385265130876">Umożliwia wskazanie serwera proxy używanego przez <ph name="PRODUCT_NAME" /> i uniemożliwia użytkownikom zmianę ustawień serwera proxy. @@ -922,6 +936,7 @@ Wartość tej zasady stanowi token rejestracji, który można pobrać z konsoli Google Admin.</translation> <translation id="3496296378755072552">Menedżer haseł</translation> +<translation id="3502555714327823858">Zezwól na wszystkie tryby drukowania dwustronnego</translation> <translation id="350443680860256679">Konfigurowanie aplikacji ARC</translation> <translation id="3504791027627803580">Określa adres URL wyszukiwarki używanej do wyszukiwania obrazem. Żądania wyszukiwania będą wysyłane przy użyciu metody GET. Jeśli zasada DefaultSearchProviderImageURLPostParams jest ustawiona, wtedy takie żądania będą używać metody POST. @@ -931,6 +946,7 @@ <translation id="350797926066071931">Włącz Tłumacza</translation> <translation id="3512226956150568738">Jeśli model urządzenia klienta obsługiwał środowisko ARC już wtedy, gdy do uruchomienia ARC nie była konieczna migracja do ext4, i jeśli zasada ArcEnabled jest ustawiona na wartość prawda, ta opcja będzie zachowywać się tak jak opcja AskUser (wartość 3). We wszystkich pozostałych przypadkach (jeśli model urządzenia nie obsługiwał wcześniej ARC lub jeśli zasada ArcEnabled jest ustawiona na wartość fałsz), ta wartość jest równoznaczna z opcją DisallowArc (wartość 0).</translation> <translation id="3524204464536655762">Nie zezwalaj żadnym stronom na wysyłanie próśb o dostęp do urządzeń USB przez interfejs API WebUSB</translation> +<translation id="3526752951628474302">Tylko drukowanie monochromatyczne</translation> <translation id="3528000905991875314">Włącz alternatywne strony błędów</translation> <translation id="3545457887306538845">Określa, gdzie można używać narzędzi dla programistów. @@ -954,6 +970,7 @@ <translation id="3577251398714997599">Ustawienia reklam dla stron zawierających uciążliwe reklamy</translation> <translation id="3591584750136265240">Skonfiguruj sposób uwierzytelniania logowania</translation> <translation id="3627678165642179114">Włącz lub wyłącz internetową usługę sprawdzania pisowni</translation> +<translation id="3628480121685794414">Włącz drukowanie jednostronne</translation> <translation id="3646859102161347133">Ustaw typ lupy</translation> <translation id="3653237928288822292">Ikona domyślnego dostawcy wyszukiwania</translation> <translation id="3660562134618097814">Prześlij pliki cookie dostawcy tożsamości SAML podczas logowania</translation> @@ -1044,6 +1061,7 @@ <translation id="3851039766298741586">Przesyłaj informacje o aktywnej sesji publicznej, np. identyfikator i wersję aplikacji. Jeśli ta zasada jest wyłączona, informacje o sesji nie będą przesyłane. Jeśli zasada jest włączona lub nieustawiona, informacje o sesji będą przesyłane.</translation> +<translation id="3858658082795336534">Domyślny tryb drukowania dwustronnego</translation> <translation id="3859780406608282662">Dodaj parametr do pobierania odmian referencyjnych w <ph name="PRODUCT_OS_NAME" />. Jeśli ta zasada jest ustalona, zostanie dodany parametr zapytania „z ograniczeniem” do adresu URL używanego do pobierania odmian referencyjnych. Wartością parametru będzie wartość tej zasady. @@ -1152,6 +1170,12 @@ W przeciwnym razie zasada może mieć jedną z tych wartości: „tls1.2” lub „tls1.3”. Po jej ustawieniu <ph name="PRODUCT_NAME" /> nie używa wersji SSL/TLS wyższych niż określona. Nierozpoznana wartość jest ignorowana.</translation> <translation id="4121350739760194865">Zablokuj wyświetlanie promocji aplikacji na stronie Nowa karta</translation> <translation id="412697421478384751">Zezwalaj użytkownikom na ustawianie słabych kodów PIN blokady ekranu</translation> +<translation id="4129183564590133854">Ta zasada określa, czy mają być zgłaszane informacje, na podstawie których można zidentyfikować użytkowników, takie jak login użytkownika systemu operacyjnego, login profilu <ph name="PRODUCT_NAME" />, nazwa profilu <ph name="PRODUCT_NAME" />, ścieżka profilu <ph name="PRODUCT_NAME" /> i ścieżka pliku wykonywalnego <ph name="PRODUCT_NAME" />. + + Gdy ta zasada jest nieskonfigurowana lub ma wartość prawda, informacje, na podstawie których można zidentyfikować użytkowników, są zbierane. + Gdy zasada ma wartość fałsz, informacje, na podstawie których można zidentyfikować użytkowników, nie są zbierane. + + Ta zasada jest stosowana tylko wtedy, gdy włączone są Rozszerzenie zgłaszające informacje o Chrome i Zarządzanie przez chmurę.</translation> <translation id="4138655880188755661">Limit czasu</translation> <translation id="4157003184375321727">Zgłoś wersje systemu operacyjnego i oprogramowania układowego</translation> <translation id="4157594634940419685">Zezwalaj na dostęp do natywnych drukarek CUPS</translation> @@ -1455,6 +1479,12 @@ <translation id="5052081091120171147">Po włączeniu tej zasady wymuszany jest import historii przeglądania z bieżącej przeglądarki domyślnej. Włączenie zasady ma również wpływ na opcje w oknie dialogowym importowania. W przypadku jej wyłączenia historia przeglądania nie jest importowana. Jeśli zasada nie jest skonfigurowana, użytkownik może zostać zapytany, czy zaimportować historię lub operacja ta zostanie wykonana automatycznie.</translation> <translation id="5056708224511062314">Lupa wyłączona</translation> <translation id="5058573563327660283">Wybierz strategię zwalniania miejsca na dysku podczas automatycznego czyszczenia (wycofana)</translation> +<translation id="5058771123777243130">Ta zasada określa, czy zgłaszać informacje o zasadach i czas pobrania zasad. + + Gdy ta zasada jest nieskonfigurowana lub ma wartość prawda, informacje o zasadach i czas pobrania zasad są zbierane. + Gdy zasada ma wartość fałsz, informacje o zasadach i czas pobrania zasad nie są zbierane. + + Ta zasada jest stosowana tylko wtedy, gdy włączone są Rozszerzenie zgłaszające informacje o Chrome i Zarządzanie przez chmurę.</translation> <translation id="5067143124345820993">Biała lista loginów użytkowników</translation> <translation id="5068140065960598044">Zasady dotyczące chmury obowiązujące w <ph name="PRODUCT_NAME" /> zastępują zasady dotyczące komputera.</translation> <translation id="5085647276663819155">Wyłącz podgląd wydruku</translation> @@ -1557,6 +1587,7 @@ <translation id="5366977351895725771">Jeśli ta zasada ma wartość „fałsz”, ten użytkownik nie może tworzyć użytkowników nadzorowanych. Dotychczasowi użytkownicy nadzorowani będą nadal dostępni. Jeśli ma ona wartość „prawda” lub nie jest skonfigurowana, ten użytkownik może tworzyć użytkowników nadzorowanych i zarządzać nimi.</translation> +<translation id="5369937289900051171">Tylko drukowanie kolorowe</translation> <translation id="5370279767682621504">Włącz obsługę HTTP/0.9 w portach innych niż domyślne</translation> <translation id="5378985487213287085">Umożliwia określenie, czy witryny mogą wyświetlać powiadomienia na pulpicie. Wyświetlanie powiadomień na pulpicie może być domyślnie dozwolone lub zabronione bądź użytkownikowi może być wyświetlany monit za każdym razem, gdy witryna chce wyświetlić takie powiadomienie. W przypadku nieskonfigurowania tej zasady będzie używana zasada „AskNotifications”, a użytkownik będzie mógł zmienić to ustawienie.</translation> <translation id="538108065117008131">Zezwalaj wtyczce <ph name="PRODUCT_FRAME_NAME" /> na obsługę następujących typów treści</translation> @@ -1576,6 +1607,7 @@ Jeśli ta zasada ma ustawioną jako wartość listę identyfikatorów metod wprowadzania, metody te są dostępne na ekranie logowania. Wstępnie wybrana jest pierwsza z nich. Gdy na ekranie logowania jest wybrany profil danego użytkownika, oprócz metod wprowadzania ustawionych w tej zasadzie dostępna jest metoda ostatnio używana przez tego użytkownika. Gdy zasada nie jest skonfigurowana, metody wprowadzania na ekranie logowania odpowiadają ustawieniom regionalnym stosowanym do wyświetlania tego ekranu. Wartości, które nie są prawidłowymi identyfikatorami metod wprowadzania, są ignorowane.</translation> <translation id="5423001109873148185">Po włączeniu tej zasady wymuszany jest import wyszukiwarek z bieżącej przeglądarki domyślnej. Włączenie zasady ma również wpływ na opcje w oknie dialogowym importowania. W przypadku jej wyłączenia wyszukiwarka domyślna nie jest importowana. Jeśli zasada nie zostanie skonfigurowana, użytkownik może zobaczyć pytanie o zaimportowanie wyszukiwarki lub importowanie odbędzie się automatycznie.</translation> <translation id="5423197884968724595">Nazwa ograniczenia w Android WebView:</translation> +<translation id="5424147596523390018">Zezwalaj na wszystkie tryby kolorów</translation> <translation id="5442026853063570579">Ta zasada kontroluje też dostęp do Opcji programisty aplikacji na Androida. Gdy jest ustawiona na wartość „DeveloperToolsDisallowed” (wartość 2), użytkownicy nie mają dostępu do Opcji programisty. Gdy jest ustawiona na inną wartość lub nieskonfigurowana, użytkownicy mogą uzyskać dostęp do Opcji programisty, klikając siedem razy numer kompilacji w aplikacji Ustawienia Androida.</translation> <translation id="5447306928176905178">Włącz raportowanie informacji o pamięci (rozmiar stosu pamięci JS) do strony (opcja wycofana)</translation> <translation id="5457065417344056871">Włącz tryb gościa w przeglądarce</translation> @@ -1642,6 +1674,7 @@ <translation id="5586942249556966598">Nic nie rób</translation> <translation id="5630352020869108293">Przywróć ostatnią sesję</translation> <translation id="5645779841392247734">Zezwalaj na pliki cookie w tych witrynach</translation> +<translation id="5689430183304951538">Domyślny rozmiar drukowanych stron</translation> <translation id="5693469654327063861">Zezwól na migrację danych</translation> <translation id="5694594914843889579">Po włączeniu tej zasady pamięci zewnętrzne będą niedostępne w przeglądarce plików. @@ -1671,6 +1704,7 @@ Jeśli ta zasada nie jest ustawiona, używana jest domyślna wartość długości czasu. Wartość tej zasady powinna być określona w milisekundach.</translation> +<translation id="5783009211970309878">Drukuj nagłówki i stopki</translation> <translation id="5809728392451418079">Ustaw nazwę wyświetlaną dla lokalnych kont na urządzeniu</translation> <translation id="5814301096961727113">Ustaw domyślny stan potwierdzeń głosowych na ekranie logowania</translation> <translation id="5815129011704381141">Automatyczne ponowne uruchomienie po aktualizacji</translation> @@ -1682,6 +1716,7 @@ Gdy ta opcja nie jest ustawiona, obowiązuje domyślny katalog profilu.</translation> <translation id="5826047473100157858">Określa, czy użytkownik może otwierać strony w trybie incognito w <ph name="PRODUCT_NAME" />. W przypadku opcji „Włączone” lub nieskonfigurowania zasady strony mogą być otwierane w tym trybie. Opcja „Wyłączone” uniemożliwia otwieranie stron w tym trybie. Po wybraniu opcji „Wymuszone” strony można otwierać TYLKO w trybie incognito.</translation> +<translation id="582857022372205358">Włącz drukowanie dwustronne względem krótkiej krawędzi</translation> <translation id="583091600226586337"> Jeśli zasada jest włączona, podczas pobierania każdego pliku użytkownik jest pytany, gdzie należy zapisać plik. Jeśli zasada jest wyłączona, pobieranie zaczyna się od razu bez pytania o miejsce zapisania pliku. @@ -1717,6 +1752,7 @@ Jeśli wyłączysz to ustawienie lub go nie skonfigurujesz, żądania uwierzytelniania Gnubby nie będą przesyłane przez serwer proxy.</translation> <translation id="5898486742390981550">Gdy zalogowanych jest wielu użytkowników, tylko główny użytkownik może używać aplikacji na Androida.</translation> +<translation id="5901427587865226597">Tylko drukowanie dwustronne</translation> <translation id="5906199912611534122">Umożliwia włączenie lub wyłączenie ograniczenia przepustowości sieci. Ta zasada wpływa na wszystkich użytkowników i wszystkie interfejsy urządzenia. Po włączeniu tej funkcji przepustowość będzie ograniczana do czasu, aż zasada ta nie zostanie zmieniona. @@ -1824,6 +1860,7 @@ Wartość dla tej zasady należy określić w milisekundach. Wartości są zmniejszane tak, by były mniejsze niż opóźnienie nieaktywności.</translation> <translation id="6097601282776163274">Włącz zbieranie zanonimizowanych danych z URL-em jako kluczem</translation> +<translation id="6099853574908182288">Domyślny tryb drukowania kolorów</translation> <translation id="6111936128861357925">Zezwól na ukrytą grę-żart z dinozaurem</translation> <translation id="6114416803310251055">przestarzała</translation> <translation id="6133088669883929098">Zezwalaj na generowanie kluczy we wszystkich witrynach</translation> @@ -1836,6 +1873,7 @@ Jeśli ta zasada nie zostanie skonfigurowana, będzie używana wartość domyślna pobrana z zasady „DefaultPluginsSetting” (jeśli jest określona) lub z osobistej konfiguracji użytkownika.</translation> <translation id="6190022522129724693">Domyślne ustawienie wyskakujących okienek</translation> +<translation id="6190367314942602985">Zgłaszanie informacji identyfikujących użytkownika</translation> <translation id="6197453924249895891">Przyznaje dostęp do kluczy firmowych do rozszerzeń. Klucze są przeznaczone do użytku firmowego, jeśli są wygenerowane przy użyciu interfejsu API chrome.platformKeys na koncie zarządzanym. Klucze importowane lub wygenerowane w inny sposób nie są przeznaczone do użytku firmowego. @@ -1845,6 +1883,8 @@ Domyślnie rozszerzenie nie może używać klucza przeznaczonego do użytku firmowego. Jest to równoznaczne z wyłączeniem zasady allowCorporateKeyUsage dla tego rozszerzenia. Tylko jeśli zasada allowCorporateKeyUsage jest włączona dla rozszerzenia, może ono używać dowolnego klucza platformy oznaczonego jako do użytku firmowego, by podpisywać arbitralne dane. To uprawnienie należy przyznawać, tylko jeśli rozszerzenie jest zaufane, by uniemożliwić osobom niepowołanym dostęp do klucza.</translation> +<translation id="6208896993204286313">Zgłaszanie informacji o zasadach <ph name="PRODUCT_NAME" /></translation> +<translation id="6210259502936598222">Zgłaszanie informacji o wersji systemu operacyjnego i <ph name="PRODUCT_NAME" /></translation> <translation id="6211428344788340116">Zgłasza godziny aktywności urządzenia. Jeśli to ustawienie nie jest określone lub jego wartość to Prawda, zarejestrowane urządzenie zgłasza, kiedy korzysta z niego użytkownik. Jeśli ta zasada ma wartość Fałsz, godziny aktywności urządzenia nie są rejestrowane ani zgłaszane.</translation> @@ -1858,6 +1898,7 @@ <translation id="6233173491898450179">Ustaw katalog pobierania</translation> <translation id="6244210204546589761">Adresy URL otwierane po uruchomieniu</translation> <translation id="6258193603492867656">Pozwala określić, czy generowana nazwa SPN w protokole Kerberos ma zawierać port niestandardowy. Po włączeniu tego ustawienia i wprowadzeniu portu niestandardowego (tzn. innego niż 80 i 443) jest on umieszczany w generowanej nazwie SPN w protokole Kerberos. Jeśli wyłączysz ustawienie, generowana nazwa SPN w protokole Kerberos nie będzie w żadnym przypadku zawierać portu.</translation> +<translation id="6261643884958898336">Zgłaszanie informacji identyfikujących urządzenie</translation> <translation id="6281043242780654992">Konfiguruje zasady wiadomości natywnych. Hosty wiadomości natywnych na czarnej liście nie będą dostępne, dopóki nie znajdą się na białej liście.</translation> <translation id="6282799760374509080">Zezwól lub nie na przechwytywanie dźwięku</translation> <translation id="6284362063448764300">TLS 1.1</translation> @@ -1888,6 +1929,7 @@ Jeśli wybierzesz automatyczne wykrywanie serwera proxy, aplikacje na Androida otrzymają URL skryptu „http://wpad/wpad.dat”. Nie jest używana żadna inna część protokołu automatycznego wykrywania serwera proxy. Jeśli wybierzesz używanie skryptu .pac serwera proxy, aplikacje na Androida otrzymają URL skryptu.</translation> +<translation id="6430366557948788869">Rozszerzenie zgłaszające informacje o Chrome</translation> <translation id="6440051664870270040">Zezwalaj stronom na otwieranie wyskakujących okienek podczas nawigowania</translation> <translation id="6447948611083700881">Wyłączono tworzenie i przywracanie kopii zapasowej</translation> <translation id="645425387487868471">Włącz wymuszone logowanie w: <ph name="PRODUCT_NAME" /></translation> @@ -1934,6 +1976,7 @@ <translation id="6628646143828354685">Pozwala określić, czy strony mogą korzystać z urządzeń Bluetooth w pobliżu. Dostęp może być całkowicie zablokowany lub użytkownik może być pytany za każdym razem, gdy strona chce użyć takiego urządzenia. Jeśli ta zasada nie zostanie ustawiona, będzie stosowane ustawienie „3”, a użytkownik będzie mógł je zmienić.</translation> +<translation id="663685822663765995">Ogranicz tryb drukowania kolorów</translation> <translation id="6641981670621198190">Wyłącz obsługę interfejsów API grafiki 3D</translation> <translation id="6647965994887675196">Jeśli ta zasada ma wartość „prawda”, można tworzyć użytkowników nadzorowanych i logować się jako oni. @@ -1961,6 +2004,7 @@ Wzorce adresów URL z tej zasady nie mogą kolidować z wzorcami skonfigurowanymi w zasadzie WebUsbAskForUrls. Nie jest określone, która zasada zostanie zastosowana, gdy URL pasuje do obu zasad.</translation> <translation id="6689792153960219308">Raportuj stan sprzętu</translation> +<translation id="6698632841807204978">Włącz drukowanie monochromatyczne</translation> <translation id="6699880231565102694">Włącz uwierzytelnianie dwuskładnikowe dla hostów zdalnego dostępu</translation> <translation id="6724842112053619797">Jeśli włączysz to ustawienie, ustawienia zapisane w profilach <ph name="PRODUCT_NAME" />, takie jak zakładki, dane autouzupełniania, hasła itp., będą też zapisywane w folderze profilu przenośnego (Roaming) użytkownika lub w lokalizacji ustawionej przez administratora w zasadzie <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Włączenie tej zasady wyłącza synchronizację z chmurą. @@ -2000,6 +2044,12 @@ To ustawienie kontroluje wyświetlanie stron powitalnych pomagających użytkownikom zalogować się w <ph name="PRODUCT_NAME" />, ustawić domyślną przeglądarkę czy informować o innych funkcjach przeglądarki.</translation> <translation id="6766216162565713893">Zezwól, by strony prosiły użytkownika o przyznanie dostępu do urządzeń Bluetooth w pobliżu</translation> <translation id="6770454900105963262">Informuj o aktywnych sesjach kiosku</translation> +<translation id="6773056206551814546">Ta zasada określa, czy mają być zgłaszane informacje umożliwiające identyfikację urządzeń, takie jak nazwa urządzenia i adresy sieciowe. + + Gdy ta zasada jest nieskonfigurowana lub ma wartość prawda, informacje, na podstawie których można zidentyfikować urządzenia, są zbierane. + Gdy zasada ma wartość fałsz, informacje, na podstawie których można zidentyfikować urządzenia, nie są zbierane. + + Ta zasada jest stosowana tylko wtedy, gdy włączone są Rozszerzenie zgłaszające informacje o Chrome i Zarządzanie przez chmurę.</translation> <translation id="6786747875388722282">Rozszerzenia</translation> <translation id="6786967369487349613">Ustaw katalog profilu przenośnego</translation> <translation id="6810445994095397827">Blokuj kod JavaScript w tych witrynach</translation> @@ -2099,6 +2149,7 @@ </translation> <translation id="6922884955650325312">Blokuj wtyczkę <ph name="FLASH_PLUGIN_NAME" /></translation> <translation id="6923366716660828830">Określa nazwę domyślnego dostawcy wyszukiwania. Jeśli ta zasada pozostanie pusta lub nieskonfigurowana, będzie używana nazwa hosta określona w URL-u wyszukiwarki. Ta zasada jest uwzględniana tylko przy włączonej zasadzie „DefaultSearchProviderEnabled”.</translation> +<translation id="6926703471186170050">Włącz drukowanie dwustronne względem długiej krawędzi</translation> <translation id="6931242315485576290">Wyłącz synchronizację danych z Google</translation> <translation id="6936894225179401731">Określa maksymalną liczbę jednoczesnych połączeń z serwerem proxy. Niektóre serwery proxy nie są w stanie obsłużyć dużej liczby jednoczesnych połączeń z tym samym klientem. W takiej sytuacji można rozwiązać problem, ustawiając dla tej zasady mniejszą wartość. Jej wartość powinna być mniejsza niż 100 i większa niż 6. Wartość domyślna wynosi 32. Niektóre aplikacje sieciowe używają wielu połączeń z oczekującymi żądaniami GET, dlatego zmniejszenie wartości tej zasady poniżej wartości 32 może powodować przerwy w działaniu sieci, jeśli zbyt wiele takich aplikacji będzie otwartych. Zmniejszasz wartości domyślne na własne ryzyko. W przypadku nieskonfigurowania tej zasady będzie używana wartość domyślna, czyli 32.</translation> <translation id="6943577887654905793">Nazwa ustawienia w systemie macOS/Linux:</translation> @@ -2279,7 +2330,7 @@ <translation id="7336878834592315572">Zachowaj pliki cookie na czas trwania sesji</translation> <translation id="7340034977315324840">Zgłoś godziny aktywności urządzenia</translation> <translation id="7343497214039883642">Plik konfiguracji drukarek firmowych dla urządzeń</translation> -<translation id="7349338075015720646">Określa listę witryn internetowych instalowanych po cichu, bez interakcji z użytkownikiem, których użytkownik nie może odinstalować ani wyłączyć. +<translation id="7349338075015720646">Określa listę witryn internetowych instalowanych dyskretnie, bez interakcji z użytkownikiem, których użytkownik nie może odinstalować ani wyłączyć. Każda pozycja na liście jest obiektem o dwóch składowych: „url” i „launch_container”. „url” to URL aplikacji internetowej do zainstalowania, a „launch_container” może mieć wartość „window” (okno) lub „tab” (karta) wskazującą sposób otwierania zainstalowanej aplikacji. Jeśli element „launch_container” zostanie pominięty, aplikacja będzie otwierana w oknie, o ile Chrome uzna ją za progresywną aplikację internetową, a w przeciwnym razie na karcie.</translation> <translation id="7367028210010532881">Funkcja Bezpieczne przeglądanie wyświetla ostrzeżenie, gdy użytkownik chce wejść na stronę oznaczoną jako potencjalnie szkodliwa. Jeśli włączysz to ustawienie, użytkownicy nie będą mogli przechodzić ze strony ostrzeżenia na strony szkodliwe. @@ -2287,6 +2338,7 @@ Jeśli nie skonfigurujesz tego ustawienia lub je wyłączysz, użytkownicy będą mogli wybrać, czy chcą przejść ze strony ostrzeżenia na stronę oznaczoną jako szkodliwa. Więcej informacji o Bezpiecznym przeglądaniu znajdziesz na https://developers.google.com/safe-browsing</translation> +<translation id="737655323154569539">Ogranicza rozmiar drukowanych stron. Zasada nieskonfigurowana i pusty zbiór są traktowane jako brak ograniczeń.</translation> <translation id="7417728346887499628">Wyłączenie tej zasady powoduje, że Czyszczenie Chrome nie będzie skanować systemu w celu wykrycia i usunięcia niechcianego oprogramowania. Ręczne uruchamianie Czyszczenia Chrome na stronie chrome://settings/cleanup będzie wyłączone. Jeśli zasada zostanie włączona lub nie będzie skonfigurowana, Czyszczenie Chrome będzie okresowo skanować system, a gdy wykryje niechciane oprogramowanie, zapyta użytkownika, czy je usunąć. Ręczne uruchamianie Czyszczenia Chrome na stronie chrome://settings będzie włączone. @@ -2355,6 +2407,8 @@ <translation id="7617319494457709698">Ta zasada określa dozwolone rozszerzenia do użycia z funkcją <ph name="CHALLENGE_USER_KEY_FUNCTION" /> interfejsu <ph name="ENTERPRISE_PLATFORM_KEYS_API" />. Rozszerzenia muszą zostać dodane do tej listy, by były używane z interfejsem API. Jeśli rozszerzenie nie znajduje się na liście lub lista nie jest ustawiona, wywołanie interfejsu API zakończy się błędem.</translation> +<translation id="7618907117929117943">Cofnięcie i pozostawienie docelowej wersji systemu operacyjnego, jeśli zainstalowana jest wersja nowsza niż docelowa i jest możliwe zachowanie konfiguracji na poziomie urządzenia (w tym danych logowania do sieci) podczas cofnięcia. Po cofnięciu pomijana jest procedura pierwszego uruchomienia (OOBE). Jeśli nie jest to możliwe (ponieważ wersja docelowa nie umożliwia przywrócenia danych lub z powodu niezgodnej wstecznie zmiany), cofnięcie nie zostanie wykonane lub zostanie przerwane. + Obsługiwane w <ph name="PRODUCT_OS_NAME" /> w wersji 70 lub nowszej. W przypadku starszych klientów ta wartość powoduje wyłączenie cofnięcia.</translation> <translation id="7625444193696794922">Określa kanał wersji, z którym to urządzenie powinno być powiązane na stałe.</translation> <translation id="7632724434767231364">Nazwa biblioteki GSSAPI</translation> <translation id="7635471475589566552">Pozwala skonfigurować język w przeglądarce <ph name="PRODUCT_NAME" /> i uniemożliwia użytkownikom jego zmianę. Jeśli włączysz to ustawienie, w <ph name="PRODUCT_NAME" /> będzie używany określony język. W przypadku, gdy skonfigurowany język nie jest obsługiwany, wybierana jest opcja „en-US”. Jeśli ustawienie jest wyłączone lub nieskonfigurowane, w <ph name="PRODUCT_NAME" /> używany jest preferowany język określony przez użytkownika (jeśli został skonfigurowany), język ustawiony w systemie lub zastępcza opcja „en-US”.</translation> @@ -2549,6 +2603,7 @@ Jeśli włączysz to ustawienie lub go nie skonfigurujesz, użytkownik zachowa kontrolę nad autouzupełnianiem. Będzie mógł wówczas konfigurować profile autouzupełniania oraz włączać i wyłączać tę funkcję według własnego uznania.</translation> <translation id="8044493735196713914">Zgłoś tryb uruchomienia urządzenia</translation> <translation id="8050080920415773384">Drukowanie natywne</translation> +<translation id="8053580360728293758">Zastępuje domyślny tryb drukowania kolorów. Jeśli tryb jest niedostępny, zasada jest ignorowana.</translation> <translation id="8059164285174960932">Adres URL, dla którego klienty dostępu zdalnego powinny uzyskać token uwierzytelniania</translation> <translation id="8078366200175825572">Umożliwia skonfigurowanie listy wzorców adresów URL określających witryny, którym nie wolno tworzyć plików cookie. @@ -2740,6 +2795,7 @@ „Wersja” może być określona dokładnym numerem wersji, np. „61.0.3163.120”, lub prefiksem, np. „61.0”. </translation> <translation id="8544375438507658205">Domyślny mechanizm renderowania HTML wtyczki <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">Zezwól na synchronizację SMS-ów między telefonem a Chromebookiem.</translation> +<translation id="8548832052135586762">Ustawia drukowanie tylko kolorowe, tylko monochromatyczne albo brak ograniczenia. Nieskonfigurowanie zasady oznacza brak ograniczenia.</translation> <translation id="8549772397068118889">Ostrzegaj przy odwiedzaniu witryn spoza pakietów treści</translation> <translation id="8566842294717252664">Ukryj Chrome Web Store na stronie Nowa karta i w menu z aplikacjami</translation> <translation id="8586528890725660268">Określa drukarki, z których użytkownik nie może korzystać. @@ -2845,6 +2901,7 @@ Jeśli ustawienie pozostanie nieskonfigurowane, użytkownik może sam zdecydować, czy będzie korzystać z tej funkcji.</translation> <translation id="8870318296973696995">Strona główna</translation> +<translation id="8876188741456358123">Zastępuje domyślny tryb drukowania dwustronnego. Jeśli tryb jest niedostępny, zasada jest ignorowana.</translation> <translation id="8882006618241293596">Blokuj uruchamianie wtyczki <ph name="FLASH_PLUGIN_NAME" /> w tych witrynach</translation> <translation id="890403179930035128">Wymusza włączenie sprawdzania pisowni. Nierozpoznane języki z tej listy będą ignorowane. @@ -2940,6 +2997,8 @@ <translation id="9084985621503260744">Określ, czy aktywność związana z filmami wpływa na zarządzanie energią</translation> <translation id="9088433379343318874">Włącz dostawcę treści dla nadzorowanego użytkownika</translation> <translation id="9088444059179765143">Konfigurowanie metody automatycznego wykrywania strefy czasowej</translation> +<translation id="9094064873808699479">Cofnięcie i pozostawienie docelowej wersji systemu operacyjnego, jeśli zainstalowana jest wersja nowsza niż docelowa. Jeśli to możliwe, konfiguracja na poziomie urządzenia (w tym dane logowania do sieci) zostanie zachowana, ale jeśli nie jest to możliwe (ponieważ wersja docelowa nie umożliwia przywrócenia danych lub z powodu niezgodnej wstecznie zmiany), wykonane zostanie cofnięcie z pełną procedurą Powerwash. + Obsługiwane w <ph name="PRODUCT_OS_NAME" /> w wersji 70 lub nowszej. W przypadku starszych klientów ta wartość powoduje wyłączenie cofnięcia.</translation> <translation id="9096086085182305205">Biała lista serwera uwierzytelniania</translation> <translation id="9098553063150791878">Zasady uwierzytelniania HTTP</translation> <translation id="9105265795073104888">Aplikacje na Androida mają dostęp tylko do niektórych opcji konfiguracji serwera proxy. Nie można wymusić, by używały serwera proxy. Mogą go używać dobrowolnie.</translation> @@ -2983,6 +3042,13 @@ <translation id="9187743794267626640">Wyłącz podłączanie pamięci zewnętrznych</translation> <translation id="9197740283131855199">Wartość procentowa skalowania opóźnienia przyciemnienia ekranu, jeśli użytkownik stanie się aktywny po przyciemnieniu</translation> <translation id="9200828125069750521">Parametry dla adresów URL obrazów używających POST</translation> +<translation id="920209539000507585">Wymusza włączenie lub wyłączenie opcji „Nagłówki i stopki” w oknie drukowania. + + Jeśli zasada jest nieskonfigurowana, użytkownik może wybrać, czy drukować nagłówki i stopki. + + Jeśli zasada ma wartość fałsz, opcja „Nagłówki i stopki” jest wyłączona w oknie podglądu wydruku, a użytkownik nie może jej zmienić. + + Jeśli zasada ma wartość prawda, opcja „Nagłówki i stopki” jest włączona w oknie podglądu wydruku, a użytkownik nie może jej zmienić.</translation> <translation id="9210953373038593554">Konfiguruje typ uwierzytelniania dla logowania SAML. Gdy ta zasada nie jest ustawiona lub jest ustawiona na wartość Domyślna (wartość 0), przebieg logowania SAML jest ustalany przez przeglądarkę na podstawie innych czynników. W podstawowym scenariuszu do uwierzytelniania użytkownika i do ochrony jego danych w pamięci podręcznej używane są hasła wpisywane ręcznie przez użytkownika. @@ -2990,6 +3056,9 @@ Gdy zasada jest ustawiona na wartość Certyfikat klienta (wartość 1), dla nowo dodanych użytkowników logujących się za pomocą SAML jest używane uwierzytelnianie przy użyciu certyfikatu klienta. Nie są używane żadne hasła, a dane tych użytkowników w pamięci podręcznej są chronione za pomocą odpowiednich kluczy kryptograficznych. To ustawienie umożliwia na przykład skonfigurowanie uwierzytelniania przy użyciu kart inteligentnych (aplikacje pośredniczące dla kart inteligentnych muszą zostać zainstalowane za pomocą zasady DeviceLoginScreenAppInstallList). Ta zasada ma wpływ tylko na użytkowników uwierzytelniających się za pomocą SAML.</translation> +<translation id="9211439035693857287">Konfigurowanie zasad związanych z Rozszerzeniem zgłaszającym informacje o Chrome. + + Te zasady są stosowane tylko wtedy, gdy włączone są Rozszerzenie zgłaszające informacje o Chrome i Zarządzanie przez chmurę.</translation> <translation id="9213347477683611358">Skonfiguruj tapetę na poziomie urządzenia wyświetlaną na ekranie logowania, jeśli żaden użytkownik nie jest jeszcze zalogowany na urządzeniu. Aby ustawić tę zasadę, podaj adres URL, z którego urządzenie z Chrome OS może pobrać tapetę, a także skrót kryptograficzny używany do weryfikacji poprawności pobranego pliku. Obraz musi być w formacie JPEG, a jego rozmiar nie może przekraczać 16 MB. URL musi być dostępny bez żadnego uwierzytelniania. Po pobraniu tapeta jest zapisywana w pamięci podręcznej. Gdy URL lub skrót się zmieni, pobieranie jest powtarzane. Zasadę należy zdefiniować jako ciąg znaków w formacie JSON zawierający URL i skrót, zgodnie z tym schematem:
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb index 975852b..8f773b2 100644 --- a/components/policy/resources/policy_templates_pt-BR.xtb +++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -197,6 +197,7 @@ <translation id="1522425503138261032">Permitir que os sites rastreiem a localização física dos usuários</translation> <translation id="152657506688053119">Lista de URLs alternativos para o provedor de pesquisa padrão</translation> <translation id="1530812829012954197">Sempre renderizar os seguintes padrões de URL no navegador do host</translation> +<translation id="1541170838458414064">Restringir o tamanho da página de impressão</translation> <translation id="1553684822621013552">Quando esta política está definida como "true", o recurso ARC fica ativado para o usuário (sujeito a verificações de configuração adicionais de política - O ARC ainda estará disponível, se o modo efêmero ou o login múltiplo estiver ativado @@ -372,6 +373,12 @@ <translation id="2082205219176343977">Configurar a versão mínima permitida do Chrome para o dispositivo.</translation> <translation id="209586405398070749">Canal Stable</translation> <translation id="2098658257603918882">Ativar relato de uso e dados relacionados a falhas</translation> +<translation id="2098916259427011890">Esta política controla a permissão de fornecimento das informações sobre versão, como a versão, a plataforma e a arquitetura do SO, a versão do <ph name="PRODUCT_NAME" /> e o canal do <ph name="PRODUCT_NAME" />. + + Quando esta política não for configurada ou for definida como verdadeira, as informações sobre versão serão coletadas. + Quando esta política for definida como falsa, as informações sobre versão não serão coletadas. + + Esta política só é eficaz quando a Chrome Reporting Extension está ativada e quando a máquina está inscrita na política MachineLevelUserCloudPolicyEnrollmentToken.</translation> <translation id="2111016292707172233">Ativa a disponibilidade de "Tocar para pesquisar" na visualização de conteúdo do <ph name="PRODUCT_NAME" />. Se ativar esta configuração, o recurso "Tocar para pesquisar" ficará disponível para o usuário e ele poderá optar por ativá-lo ou desativá-lo. @@ -405,6 +412,8 @@ Se esta política não for definida, o valor padrão será 0 graus, e o usuário terá liberdade para alterá-lo. Nesse caso, o valor padrão não é reaplicado na reinicialização.</translation> +<translation id="214901426630414675">Restringir o modo duplex de impressão</translation> +<translation id="2149330464730004005">Ativar a impressão colorida</translation> <translation id="2156132677421487971">"Configurar políticas para o <ph name="PRODUCT_NAME" />", um recurso que permite que os usuários enviem o conteúdo de guias, sites ou a área de trabalho do navegador para telas e sistemas de som remotos.</translation> <translation id="2166472654199325139">Não filtrar sites com conteúdo adulto</translation> <translation id="2168397434410358693">Intervalo de inatividade no funcionamento com alimentação CA</translation> @@ -594,6 +603,7 @@ <translation id="2529880111512635313">Configurar a lista de extensões e aplicativos instalados forçadamente</translation> <translation id="253135976343875019">Intervalo da advertência de inatividade no funcionamento com alimentação CA</translation> <translation id="2536525645274582300">O usuário decide se quer ativar os serviços de localização do Google</translation> +<translation id="2550593661567988768">Apenas impressão simplex</translation> <translation id="2552966063069741410">Fuso horário</translation> <translation id="2562339630163277285">Especifica o URL do mecanismo de pesquisa usado para fornecer resultados instantâneos. O URL deve conter a string <ph name="SEARCH_TERM_MARKER" />, que será substituída no instante da consulta pelo texto que o usuário digitou até o momento. @@ -719,9 +729,12 @@ Se você desativar essa configuração ou não inserir um valor, a Visualização de impressão utilizará a impressora usada mais recentemente como a escolha padrão. Se você ativar essa configuração, a Visualização de impressão utilizará a impressora padrão do sistema operacional como a escolha padrão.</translation> +<translation id="2856674246949497058">Faça a reversão e permaneça na versão de destino se a versão do SO for mais recente que a de destino. Execute um Powerwash durante o processo.</translation> <translation id="2872961005593481000">Encerrar</translation> +<translation id="2873651257716068683">Modifica o tamanho da página de impressão padrão. Se o tamanho da página não estiver disponível, esta política será ignorada.</translation> <translation id="2874209944580848064">Observação para dispositivos <ph name="PRODUCT_OS_NAME" /> compatíveis com apps Android:</translation> <translation id="2877225735001246144">Desativar consulta CNAME ao negociar a autenticação do Kerberos</translation> +<translation id="2892414556511568464">Restringe o modo duplex de impressão. Se a política não for definida ou estiver em branco, não haverá restrição.</translation> <translation id="2893546967669465276">Enviar registros do sistema ao servidor de gerenciamento</translation> <translation id="2899002520262095963">Os apps Android podem usar as configurações de rede e os certificados de CA definidos por esta política, mas não têm acesso a algumas opções de configuração.</translation> <translation id="290002216614278247">Permite bloquear a sessão do usuário com base no tempo do cliente ou na cota de uso diária. @@ -809,6 +822,7 @@ Os servidores são incentivados a migrar para pacotes de criptografia ECDHE. Se eles não estiverem disponíveis, ative um pacote de criptografia que use troca de chaves RSA.</translation> <translation id="316778957754360075">Esta configuração foi descontinuada a partir da versão 29 do <ph name="PRODUCT_NAME" />. O modo recomendado de configurar as coleções de extensões/aplicativos hospedados pela organização é incluir na hospedagem do site os pacotes CRX em ExtensionInstallSources e colocar links de download direto para os pacotes em uma página da Web. É possível criar um iniciador da página da Web usando a política ExtensionInstallForcelist.</translation> +<translation id="3171369832001535378">Modelo de nome do host da rede do dispositivo</translation> <translation id="3185009703220253572">desde a versão <ph name="SINCE_VERSION" /></translation> <translation id="3187220842205194486">Os apps Android não podem acessar chaves corporativas. Esta política não tem nenhum efeito sobre eles.</translation> <translation id="3201273385265130876">Permite que você especifique o servidor proxy usado pelo <ph name="PRODUCT_NAME" /> e impede que os usuários alterem as configurações de proxy. @@ -915,6 +929,7 @@ O valor desta política é um token de inscrição que pode ser recuperado no Google Admin console.</translation> <translation id="3496296378755072552">Gerenciador de senhas</translation> +<translation id="3502555714327823858">Permitir todos os modos duplex</translation> <translation id="350443680860256679">Configurar ARC</translation> <translation id="3504791027627803580">Especifica o URL do mecanismo de pesquisa usado para pesquisas de imagens. As solicitações de pesquisa são enviadas com o método GET. Por outro lado, se a política DefaultSearchProviderImageURLPostParams estiver definida, as solicitações de pesquisa de imagens usarão o método POST. @@ -924,6 +939,7 @@ <translation id="350797926066071931">Ativar Traduzir</translation> <translation id="3512226956150568738">Se o modelo do dispositivo do cliente já era compatível com ARC antes de a migração para ext4 ser necessária para executar ARC e se a política ArcEnabled estiver definida como verdadeiro, esta opção vai se comportar como AskUser (valor 3). Em todos os outros casos (se o modelo do dispositivo não era compatível com ARC anteriormente ou se a política ArcEnabled estiver definida como falso), esse valor será equivalente a DisallowArc (valor 0).</translation> <translation id="3524204464536655762">Não permite que nenhum site solicite acesso a dispositivos USB por meio da API WebUSB</translation> +<translation id="3526752951628474302">Apenas impressão monocromática</translation> <translation id="3528000905991875314">Ativar páginas de erro alternativas</translation> <translation id="3545457887306538845">Permite controlar onde as Ferramentas para Desenvolvedores podem ser usadas. @@ -947,6 +963,7 @@ <translation id="3577251398714997599">Configurações de anúncios para sites com anúncios invasivos</translation> <translation id="3591584750136265240">Configura o comportamento de autenticação de login</translation> <translation id="3627678165642179114">Ativar ou desativar serviço da web de verificação ortográfica</translation> +<translation id="3628480121685794414">Ativar impressão simplex</translation> <translation id="3646859102161347133">Definir tipo de lupa</translation> <translation id="3653237928288822292">Ícone do provedor de pesquisa padrão</translation> <translation id="3660562134618097814">Transferir cookies do IDP de SAML durante o login</translation> @@ -1040,6 +1057,7 @@ Se a política for definida como "false", as informações da sessão de quiosque não serão comunicadas. Se definida como "true" ou não configurada, as informações da sessão de quiosque serão comunicadas.</translation> +<translation id="3858658082795336534">Modo duplex de impressão padrão</translation> <translation id="3859780406608282662">Adicionar um parâmetro para a busca do termo-semente "Variações" no <ph name="PRODUCT_OS_NAME" />. Se especificada, adiciona um parâmetro de consulta chamado "restrict" ao URL usado para buscar o termo-semente "Variações". O valor do parâmetro é o valor especificado nesta politica. @@ -1146,6 +1164,12 @@ Caso contrário, ela poderá ser definida para um dos seguintes valores: "tls1.2" ou "tls1.3". Quando definida, o <ph name="PRODUCT_NAME" /> não usará versões SSL/TLS maiores que a especificada. Um valor não reconhecido será ignorado.</translation> <translation id="4121350739760194865">Evitar que promoções de aplicativos apareçam na página nova guia</translation> <translation id="412697421478384751">Permitir que os usuários definam PINs fracos para a tela de bloqueio</translation> +<translation id="4129183564590133854">Esta política controla a permissão de fornecimento das informações que podem ser usadas para identificar o usuário, como login no SO, login de perfil do <ph name="PRODUCT_NAME" />, nome do perfil do <ph name="PRODUCT_NAME" />, caminho do perfil do <ph name="PRODUCT_NAME" /> e caminho executável do <ph name="PRODUCT_NAME" />. + + Quando esta política não for configurada ou for definida como verdadeira, as informações que podem ser usadas para identificar usuários serão coletadas. + Quando esta política for definida como falsa, as informações que podem ser usadas para identificar usuários não serão coletadas. + + Esta política só é eficaz quando a Chrome Reporting Extension está ativada e quando a máquina está inscrita na política MachineLevelUserCloudPolicyEnrollmentToken.</translation> <translation id="4138655880188755661">Limite de tempo</translation> <translation id="4157003184375321727">Informar a versão do sistema operacional e do firmware</translation> <translation id="4157594634940419685">Permitir acesso a impressoras CUPS nativas</translation> @@ -1296,8 +1320,8 @@ </translation> <translation id="4554651132977135445">Modo de processamento loopback da política do usuário</translation> <translation id="4554841826517980623">Esta política controla se o recurso "Compartilhamentos de arquivos de rede" do <ph name="PRODUCT_NAME" /> usará o <ph name="NETBIOS_PROTOCOL" /> para encontrar compartilhamentos na rede. - Quando esta política estiver definida como Verdadeira, a detecção de compartilhamentos usará o protocolo <ph name="NETBIOS_PROTOCOL" /> para encontrar compartilhamentos na rede. - Quando esta política estiver definida como Falsa, a detecção de compartilhamentos não usará o protocolo <ph name="NETBIOS_PROTOCOL" /> para encontrar compartilhamentos. + Quando esta política estiver definida como True, a detecção de compartilhamentos usará o protocolo <ph name="NETBIOS_PROTOCOL" /> para encontrar compartilhamentos na rede. + Quando esta política estiver definida como False, a detecção de compartilhamentos não usará o protocolo <ph name="NETBIOS_PROTOCOL" /> para encontrar compartilhamentos. Quando a política não estiver definida, o padrão será "desativado" para usuários gerenciados por empresa e "ativado" para usuários não gerenciados.</translation> <translation id="4555850956567117258">Ativar declaração remota para o usuário</translation> <translation id="4557134566541205630">URL da página "Nova guia" do provedor de pesquisa padrão</translation> @@ -1445,6 +1469,12 @@ <translation id="5052081091120171147">Se ativada, esta política força a importação do histórico de navegação a partir do navegador padrão atual. Se ativada, esta política também afeta a caixa de diálogo de importação. Se desativada, nenhum histórico de navegação é importado. Caso não seja definida, o usuário pode ser solicitado a responder se deseja importar ou permitir a importação automática.</translation> <translation id="5056708224511062314">Lupa desativada</translation> <translation id="5058573563327660283">Selecionar a estratégia usada para liberar espaço em disco durante a limpeza automática (obsoleta)</translation> +<translation id="5058771123777243130">Esta política controla a permissão de fornecimento dos dados da política e do horário de busca dela. + + Quando esta política não for configurada ou for definida como verdadeira, os dados e o horário de busca da política serão coletados. + Quando esta política for definida como falsa, os dados e o horário de busca da política não serão coletados. + + Esta política só é eficaz quando a Chrome Reporting Extension está ativada e quando a máquina está inscrita na política MachineLevelUserCloudPolicyEnrollmentToken.</translation> <translation id="5067143124345820993">Lista de permissões de login de usuário</translation> <translation id="5068140065960598044">A política de nuvem do <ph name="PRODUCT_NAME" /> modifica a política do computador.</translation> <translation id="5085647276663819155">Desativar visualização da impressão</translation> @@ -1546,6 +1576,7 @@ <translation id="5366977351895725771">Se definida como falsa, a criação de usuários supervisionados por este usuário será desativada. Quaisquer usuários supervisionados existentes permanecerão disponíveis. Se definida como verdadeira ou não configurada, este usuário poderá criar e gerenciar usuários supervisionados.</translation> +<translation id="5369937289900051171">Apenas impressão colorida</translation> <translation id="5370279767682621504">Ativar suporte a HTTP/0.9 em portas não padrão</translation> <translation id="5378985487213287085">Permite que você defina se os websites são autorizados a exibir notificações na área de trabalho. A exibição de notificações na área de trabalho pode ser autorizada ou recusada por padrão ou o usuário pode ser solicitado a autorizar todas as vezes em que um website quiser exibir notificações na área de trabalho. Se esta política for deixada sem definição, a política "AskNotifications" será utilizada, podendo ser modificada pelo usuário.</translation> <translation id="538108065117008131">Permitir que o <ph name="PRODUCT_FRAME_NAME" /> lide com os seguintes tipos de conteúdo.</translation> @@ -1562,6 +1593,7 @@ Se esta política for definida como uma lista de identificadores de método de entrada, os métodos de entrada fornecidos ficarão disponíveis na tela de login. O primeiro método de entrada fornecido será pré-selecionado. Enquanto um grupo de usuários estiver focado na tela de login, o último método de entrada usado pelo usuário ficará disponível juntamente com os métodos de entrada fornecidos por esta política. Se esta política não for definida, os métodos de entrada na tela de login serão derivados da localidade em que a tela de login é exibida. Os valores que não forem identificadores de método de entrada válidos serão ignorados.</translation> <translation id="5423001109873148185">Caso ativada, esta política força mecanismos de pesquisa a serem importados do navegador padrão atual. Se ativada, esta política também afeta a caixa de diálogo de importação. Caso seja desativada, o mecanismo de pesquisa padrão não é importado. Se não for definida, o usuário pode ser solicitado a responder se deseja importar ou permitir a importação automática.</translation> <translation id="5423197884968724595">Nome de restrição do Android WebView:</translation> +<translation id="5424147596523390018">Permitir todos os modos de cor</translation> <translation id="5442026853063570579">Esta política também controla o acesso às Opções do desenvolvedor Android. Se esta política for definida como "DeveloperToolsDisallowed" (valor 2), os usuários não poderão acessar as Opções do desenvolvedor. Se for definida como falsa ou se não for definida, os usuários poderão acessar as Opções do desenvolvedor tocando sete vezes no número da versão no app de configurações do Android.</translation> <translation id="5447306928176905178">Ativar relatórios de informação de memória (JS tamanho da pilha) para a página (obsoleta)</translation> <translation id="5457065417344056871">Ativar o modo visitante no navegador</translation> @@ -1628,6 +1660,7 @@ <translation id="5586942249556966598">Não fazer nada</translation> <translation id="5630352020869108293">Restaurar a última sessão</translation> <translation id="5645779841392247734">Permitir cookies nestes sites</translation> +<translation id="5689430183304951538">Tamanho da página de impressão padrão</translation> <translation id="5693469654327063861">Permitir migração de dados</translation> <translation id="5694594914843889579">Quando esta política é definida como "true", o armazenamento externo não fica disponível no navegador de arquivos. @@ -1657,6 +1690,7 @@ Quando esta política não está definida, é usado um período padrão. O valor da política deve ser especificado em milissegundos.</translation> +<translation id="5783009211970309878">Imprimir cabeçalhos e rodapés</translation> <translation id="5809728392451418079">Definir o nome de exibição das contas locais de dispositivo</translation> <translation id="5814301096961727113">Definir estado padrão do feedback falado na tela de login</translation> <translation id="5815129011704381141">Reinicializar automaticamente após a atualização</translation> @@ -1668,6 +1702,7 @@ Se a política não for definida, será usado o diretório padrão do perfil.</translation> <translation id="5826047473100157858">Especifica se o usuário pode abrir páginas no modo de navegação anônima em <ph name="PRODUCT_NAME" />. Se a opção "Ativado" for selecionada ou a política for deixada sem configuração, as páginas podem ser abertas no modo de navegação anônima. Se a opção "Destivado" for selecionada, as páginas não poderão ser abertas no modo de navegação anônima. Se a opção "Forçado" for selecionada, as páginas podem ser abertas somente no modo de navegação anônima.</translation> +<translation id="582857022372205358">Ativar impressão duplex de borda curta</translation> <translation id="583091600226586337"> Se a política for ativada, o usuário poderá escolher onde salvar cada arquivo antes de fazer o download. Se a política for desativada, os downloads começarão imediatamente, e o usuário não poderá escolher onde salvar o arquivo. @@ -1703,6 +1738,7 @@ Se essa configuração não está ativada ou configurada, as solicitações de autenticação gnubby não são transmitidas por proxy.</translation> <translation id="5898486742390981550">Quando vários usuários estão conectados, somente o usuário principal pode usar os apps Android.</translation> +<translation id="5901427587865226597">Apenas impressão duplex</translation> <translation id="5906199912611534122">Permite ativar ou desativar a limitação da rede. Essa opção se aplica a todos os usuários e todas as interfaces no dispositivo. Depois que a política é definida, a limitação permanece ativada até que ela seja alterada para desativá-la. @@ -1810,6 +1846,7 @@ O valor da política deve ser especificado em milissegundos. Os valores são fixados para serem menores que o tempo de espera de inatividade.</translation> <translation id="6097601282776163274">Ativar a coleta de dados anônimos inseridos no URL</translation> +<translation id="6099853574908182288">Modo de cor de impressão padrão</translation> <translation id="6111936128861357925">Permitir jogo easter egg de dinossauro</translation> <translation id="6114416803310251055">obsoleto</translation> <translation id="6133088669883929098">Permitir que todos os sites usem a geração de chaves</translation> @@ -1822,6 +1859,7 @@ Se esta política não for definida, o valor padrão global será utilizado para todos os sites, seja a partir da política "DefaultPluginsSetting", caso esta tenha sido definida, ou a partir das configurações pessoais do usuário, caso não tenha sido definida.</translation> <translation id="6190022522129724693">Configuração padrão de pop-ups</translation> +<translation id="6190367314942602985">Reportar informações de identificação do usuário</translation> <translation id="6197453924249895891">Concede acesso a chaves corporativas para extensões. As chaves são projetadas para uso corporativo se forem geradas usando a API chrome.enterprise.platformKeys em uma conta gerenciada. As chaves importadas ou geradas de outra forma não são destinadas ao uso corporativo. @@ -1831,6 +1869,8 @@ Por padrão, uma extensão não pode usar uma chave destinada ao uso corporativo, o que equivale a configurar allowCorporateKeyUsage como "false" para essa extensão. Apenas se allowCorporateKeyUsage é configurada como "true" para uma extensão, ela pode usar qualquer chave de plataforma marcada para uso corporativo para assinar dados arbitrários. Essa permissão só deve ser concedida se não há dúvidas de que a extensão protege o acesso à chave contra invasores.</translation> +<translation id="6208896993204286313">Reportar informações da política do <ph name="PRODUCT_NAME" /></translation> +<translation id="6210259502936598222">Reportar informações sobre a versão do SO e do <ph name="PRODUCT_NAME" /></translation> <translation id="6211428344788340116">Informa o horário das atividades do dispositivo. Se essa configuração não for definida ou for definida como "True", os dispositivos inscritos informarão os períodos de tempo em que um usuário estiver ativo no dispositivo. Se essa configuração for definida como "False", os horários das atividades do dispositivo não serão gravados ou informados.</translation> @@ -1844,6 +1884,7 @@ <translation id="6233173491898450179">Definir diretório de download</translation> <translation id="6244210204546589761">URLs que devem ser abertos na inicialização</translation> <translation id="6258193603492867656">Especifica se o SPN do Kerberos gerado deve incluir uma porta fora do padrão. Se ativar esta configuração e uma porta fora do padrão (uma porta diferente da 80 ou 443, por exemplo) for inserida, ela será incluída no SPN do Kerberos gerado. De qualquer maneira, se desativar esta configuração ou deixar sem definição, o SPN do Kerberos não incluirá uma porta.</translation> +<translation id="6261643884958898336">Reportar informações de identificação da máquina</translation> <translation id="6281043242780654992">Configura políticas para as mensagens nativas. Os hosts de mensagens nativas presentes na lista negra não serão permitidos, a menos que estejam na lista de permissões.</translation> <translation id="6282799760374509080">Permitir ou negar captura de áudio</translation> <translation id="6284362063448764300">TLS 1.1</translation> @@ -1874,6 +1915,7 @@ Se você optar pela detecção automática do servidor proxy, o URL do script "http://wpad/wpad.dat" será fornecido aos apps Android. Nenhuma outra parte do protocolo de detecção automática de proxy será usada. Se você optar por usar um script de proxy .pac, o URL do script será fornecido aos apps Android.</translation> +<translation id="6430366557948788869">Chrome Reporting Extension</translation> <translation id="6440051664870270040">Permitir que sites naveguem e abram pop-ups simultaneamente</translation> <translation id="6447948611083700881">Backup e restauração desativados</translation> <translation id="645425387487868471">Ativar login forçado no <ph name="PRODUCT_NAME" /></translation> @@ -1920,6 +1962,7 @@ <translation id="6628646143828354685">Permite definir se os websites podem ter acesso aos dispositivos Bluetooth nas proximidades. O acesso pode ser completamente bloqueado, ou uma pergunta será feita ao usuário toda vez que um website quiser ter acesso a dispositivos Bluetooth próximos. Se esta política não for definida, será usado "3", e o usuário poderá fazer alterações.</translation> +<translation id="663685822663765995">Restringir o modo de cor de impressão</translation> <translation id="6641981670621198190">Desativar o suporte a APIs para gráficos 3D</translation> <translation id="6647965994887675196">Se definida com verdadeira, será possível criar e utilizar usuários supervisionados. @@ -1947,6 +1990,7 @@ Os padrões de URL desta política não devem ser contrários àqueles configurados por meio de WebUsbAskForUrls. Não é especificado qual das duas políticas tem precedência quando um URL corresponde a ambas.</translation> <translation id="6689792153960219308">Informar status de hardware</translation> +<translation id="6698632841807204978">Ativar impressão monocromática</translation> <translation id="6699880231565102694">Ativar autenticação de dois fatores para hosts de acesso remoto</translation> <translation id="6724842112053619797">Se você ativar esta configuração, as definições armazenadas nos perfis do <ph name="PRODUCT_NAME" />, como favoritos, dados de preenchimento automático, senhas, entre outros, serão gravadas em um arquivo armazenado na pasta Perfil de usuário de roaming ou em um local especificado pelo administrador por meio da política <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. A ativação dessa política desativa a sincronização em nuvem. @@ -1986,6 +2030,12 @@ Esta configuração controla a apresentação das páginas de boas-vindas que ajudam os usuários a fazer login no <ph name="PRODUCT_NAME" />, a escolhê-lo como navegador padrão ou informam sobre os recursos do produto.</translation> <translation id="6766216162565713893">Permitir que os sites peçam ao usuário para conceder acesso a um dispositivo Bluetooth próximo</translation> <translation id="6770454900105963262">Denunciar informações sobre sessões de quiosque ativas</translation> +<translation id="6773056206551814546">Esta política controla a permissão de fornecimento das informações que podem ser usadas para identificar as máquinas, como endereços da rede e nome da máquina. + + Quando esta política não for configurada ou for definida como verdadeira, as informações que podem ser usadas para identificar máquinas serão coletadas. + Quando esta política for definida como falsa, as informações que podem ser usadas para identificar máquinas não serão coletadas. + + Esta política só é eficaz quando a Chrome Reporting Extension está ativada e quando a máquina está inscrita na política MachineLevelUserCloudPolicyEnrollmentToken.</translation> <translation id="6786747875388722282">Extensões</translation> <translation id="6786967369487349613">Configurar o diretório do perfil de roaming</translation> <translation id="6810445994095397827">Bloquear o JavaScript nestes sites</translation> @@ -2086,6 +2136,7 @@ </translation> <translation id="6922884955650325312">Bloquear o plug-in <ph name="FLASH_PLUGIN_NAME" /></translation> <translation id="6923366716660828830">Especifica o nome do mecanismo de pesquisa padrão. Se deixado em branco ou não definido, o nome do host especificado pelo URL de pesquisa será utilizado. Esta política só é considerada caso a política "DefaultSearchProviderEnabled" seja ativada.</translation> +<translation id="6926703471186170050">Ativar impressão duplex de borda longa</translation> <translation id="6931242315485576290">Desativar a sincronização de dados com o Google</translation> <translation id="6936894225179401731">Especifica o número máximo de conexões simultâneas ao servidor proxy. @@ -2279,6 +2330,7 @@ Se esta configuração for desativada ou não for configurada, os usuários poderão optar por prosseguir para o site sinalizado após o aviso ser exibido. Consulte https://developers.google.com/safe-browsing para ver mais informações sobre o recurso Navegação segura.</translation> +<translation id="737655323154569539">Restringe o tamanho da página de impressão. Se a política não for definida ou estiver em branco, não haverá restrição.</translation> <translation id="7417728346887499628">Se esta política for desativada, ela impedirá que o recurso "Varredura do Chrome" verifique o sistema para ver se há software indesejado e que execute limpezas. O acionamento manual do "Varredura do Chrome" em chrome://settings/cleanup ficará desativado. Se ela for ativada ou se não for definida, o recurso "Varredura do Chrome" verificará o sistema periodicamente para ver se há software indesejado. Se encontrar algum, ele perguntará ao usuário se ele quer removê-lo. O acionamento manual do "Varredura do Chrome" em chrome://settings ficará ativado. @@ -2347,6 +2399,8 @@ <translation id="7617319494457709698">Esta política especifica as extensões que podem usar a função <ph name="CHALLENGE_USER_KEY_FUNCTION" /> da API <ph name="ENTERPRISE_PLATFORM_KEYS_API" /> para declaração remota. As extensões devem ser adicionadas a esta lista para usar a API. Se uma extensão não estiver na lista ou se a lista não for definida, a chamada para a API falhará com um código de erro.</translation> +<translation id="7618907117929117943">Faça a reversão e permaneça na versão de destino se a versão do SO for mais recente que a de destino e se for possível transferir a configuração do dispositivo (incluindo as credenciais de rede) por meio da reversão, ignorando também a OOBE após a reversão. Não faça nem aborte a reversão se isso não for possível, seja porque a versão de destino não é compatível com a restauração de dados ou devido a uma alteração incompatível com versões anteriores. + Compatível com o <ph name="PRODUCT_OS_NAME" /> 70 ou versões posteriores. Para clientes com versões anteriores, esse valor significa que a reversão está desativada.</translation> <translation id="7625444193696794922">Especifica o canal de liberação ao qual este dispositivo deve ser vinculado.</translation> <translation id="7632724434767231364">Nome da biblioteca GSSAPI</translation> <translation id="7635471475589566552">Configura a localidade do aplicativo em <ph name="PRODUCT_NAME" /> e impede que os usuários a alterem. Se ativar esta configuração, <ph name="PRODUCT_NAME" /> utilizará a localidade especificada. Se a localidade configurada não for compatível, "pt-BR" será utilizada. Se esta configuração for desativada ou não for configurada, <ph name="PRODUCT_NAME" /> utilizará a localidade preferida especificada pelo usuário (se configurada), a localidade do sistema ou a localidade padrão "pt-BR".</translation> @@ -2540,6 +2594,7 @@ Se ativar esta configuração ou não definir um valor, o Preenchimento automático continuará sob o controle do usuário. Isso permitirá que ele configure perfis de Preenchimento automático e ative ou desative esse recurso quando quiser.</translation> <translation id="8044493735196713914">Informar modo de inicialização do dispositivo</translation> <translation id="8050080920415773384">Impressão nativa</translation> +<translation id="8053580360728293758">Modifica o modo de cor de impressão padrão. Se o modo não estiver disponível, esta política será ignorada.</translation> <translation id="8059164285174960932">URL no qual clientes de acesso remoto devem receber seu token de autenticação</translation> <translation id="8078366200175825572">Permite que você defina uma lista de padrões de URL que especifica sites que não têm permissão para definir cookies. @@ -2722,6 +2777,7 @@ Aqui, "versão" pode ser uma versão exata como "61.0.3163.120" ou um prefixo de versão, como "61.0" </translation> <translation id="8544375438507658205">Renderizador padrão de HTML para o <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">Permite a sincronização de mensagens SMS do smartphone com o Chromebook.</translation> +<translation id="8548832052135586762">Define a impressão para apenas em cores, apenas monocromática ou sem restrição de modo de cor. Se a política não for definida, não haverá restrição.</translation> <translation id="8549772397068118889">Avisar ao visitar sites fora de pacotes de conteúdo</translation> <translation id="8566842294717252664">Ocultar a loja on-line da página "Nova guia" e do Acesso rápido aos apps</translation> <translation id="8586528890725660268">Especifica as impressoras que um usuário não pode usar. @@ -2824,6 +2880,7 @@ Se esta configuração for deixada sem definição, o usuário poderá optar por utilizar esta função ou não.</translation> <translation id="8870318296973696995">Página inicial</translation> +<translation id="8876188741456358123">Modifica o modo duplex de impressão padrão. Se o modo não estiver disponível, esta política será ignorada.</translation> <translation id="8882006618241293596">Bloquear o plug-in <ph name="FLASH_PLUGIN_NAME" /> nestes sites</translation> <translation id="890403179930035128">Força a ativação da correção ortográfica de idiomas. Idiomas não reconhecidos nessa lista serão ignorados. @@ -2920,6 +2977,8 @@ <translation id="9084985621503260744">Especifica se a atividade de vídeo afeta o gerenciamento de energia</translation> <translation id="9088433379343318874">Ativar o provedor de conteúdo de usuário supervisionado</translation> <translation id="9088444059179765143">Configurar o método de detecção automática de fuso horário</translation> +<translation id="9094064873808699479">Faça a reversão e permaneça na versão de destino se a versão do SO for mais recente que a de destino. Se possível, tente transferir a configuração do dispositivo (incluindo as credenciais de rede) por meio do processo de reversão. Porém, faça a reversão com o Powerwash completo mesmo se não for possível restaurar os dados, seja porque a versão de destino não é compatível com a restauração de dados ou devido a uma alteração incompatível com versões anteriores. + Compatível com o <ph name="PRODUCT_OS_NAME" /> 70 ou versões posteriores. Para clientes com versões anteriores, esse valor significa que a reversão está desativada.</translation> <translation id="9096086085182305205">Lista branca do servidor de autenticação</translation> <translation id="9098553063150791878">Políticas para a autenticação HTTP</translation> <translation id="9105265795073104888">Somente um subconjunto de opções de configuração de proxy é disponibilizado para apps Android. Esses apps podem optar voluntariamente por usar o proxy. Não é possível forçá-los a usar um proxy.</translation> @@ -2971,6 +3030,13 @@ <translation id="9187743794267626640">Desativa a montagem de armazenamento externo</translation> <translation id="9197740283131855199">Percentual pelo qual calcular o intervalo de escurecimento da tela se o usuário ficar ativo após o escurecimento</translation> <translation id="9200828125069750521">Parâmetros para URL de imagens que usa POST</translation> +<translation id="920209539000507585">Forçar a ativação ou desativação de "cabeçalhos e rodapés" na caixa de diálogo de impressão. + + Se a política não for definida, o usuário poderá decidir se quer imprimir cabeçalhos e rodapés. + + Se a política for definida como falsa, a opção "Cabeçalhos e rodapés" não ficará selecionada na caixa de diálogo de visualização de impressão, e o usuário não poderá alterá-la. + + Se a política for definida como verdadeira, a opção "Cabeçalhos e rodapés" ficará selecionada na caixa de diálogo de visualização de impressão, e o usuário não poderá alterá-la.</translation> <translation id="9210953373038593554">Configura o tipo de autenticação para logins SAML. Quando esta política não é definida ou é definida como "Padrão" (valor 0), o comportamento de logins SAML é determinado pelo navegador dependendo de outros fatores. No cenário mais básico, a autenticação do usuário e a proteção dos dados do usuário armazenados em cache se baseiam em senhas inseridas manualmente pelos usuários. @@ -2978,6 +3044,9 @@ Quando esta política é definida como ClientCertificate (valor 1), a autenticação do certificado do cliente é usada para usuários recém-adicionados que fazem login via SAML. Nenhuma senha é usada para esses usuários, e os dados locais deles armazenados em cache são protegidos usando chaves criptográficas correspondentes. Por exemplo, essa configuração permite configurar cartões inteligentes com base na autenticação do usuário (apps de middleware de cartão inteligente precisam ser instalados pela política DeviceLoginScreenAppInstallList). Esta política afeta apenas os usuários que autenticam usando SAML.</translation> +<translation id="9211439035693857287">Configurar as políticas relacionadas à Chrome Reporting Extension. + + Estas políticas só são eficazes quando a Chrome Reporting Extension está ativada e quando a máquina está inscrita na política MachineLevelUserCloudPolicyEnrollmentToken.</translation> <translation id="9213347477683611358">Configura a imagem de plano de fundo do dispositivo que é exibida na tela de login se nenhum usuário está conectado ao dispositivo. A política é definida pela especificação do URL no qual o dispositivo Chrome OS pode fazer o download da imagem de plano de fundo e de um hash criptográfico usado para verificar a integridade do download. A imagem deve estar no formato JPEG, e seu tamanho não deve ultrapassar 16 MB. O URL deve ser acessado sem nenhuma autenticação. A imagem de plano de fundo é transferida por download e armazenada em cash. Sempre que o URL ou o hash muda, o download é feito novamente. A política deve ser especificada como uma string que expressa o URL e o hash no formato JSON, por exemplo,
diff --git a/components/policy/resources/policy_templates_pt-PT.xtb b/components/policy/resources/policy_templates_pt-PT.xtb index 40d68b6..cd5c411 100644 --- a/components/policy/resources/policy_templates_pt-PT.xtb +++ b/components/policy/resources/policy_templates_pt-PT.xtb
@@ -670,7 +670,7 @@ Se esta definição for desativada, os utilizadores não podem configurar a sincronização de SMS. - Se esta política não for definida, a predefinição é não permitida para os utilizadores geridos e permitida para os utilizadores não geridos.</translation> + Se esta política for deixada por definir, a predefinição não é autorizada para utilizadores geridos e autorizada para utilizadores não geridos.</translation> <translation id="2660846099862559570">Nunca utilizar proxy</translation> <translation id="267596348720209223">Especifica as codificações de caracteres suportadas pelo fornecedor de pesquisas. As codificações são nomes de páginas de códigos, como UTF-8, GB2312 e ISO-8859-1, e são selecionadas por esta ordem. Esta política é opcional. Se não for definida, a codificação predefinida será UTF-8. Esta política aplica-se apenas se a política "DefaultSearchProviderEnabled" estiver ativada.</translation> <translation id="268577405881275241">Ativar a funcionalidade proxy de compressão de dados</translation> @@ -1314,10 +1314,10 @@ Para obter uma descrição completa das definições possíveis e da estrutura desta política, aceda a https://www.chromium.org/administrators/policy-list-3/extension-settings-full. </translation> <translation id="4554651132977135445">Modo de processamento de loopback da Política do Utilizador.</translation> -<translation id="4554841826517980623">Esta política controla se a funcionalidade Partilhas de ficheiros na rede do <ph name="PRODUCT_NAME" /> devem utilizar o <ph name="NETBIOS_PROTOCOL" /> para detetar partilhas na rede. - Se esta política estiver definida como Verdadeira, a deteção de partilhas utiliza o protocolo <ph name="NETBIOS_PROTOCOL" /> para detetar partilhas na rede. - Se esta política estiver definida como Falsa, a deteção de partilhas não vai utilizar o protocolo <ph name="NETBIOS_PROTOCOL" /> para detetar partilhas. - Se a política não for definida, a predefinição é desativada para utilizadores geridos pela empresa e ativada para utilizadores não geridos.</translation> +<translation id="4554841826517980623">Esta política controla se a funcionalidade Partilhas de ficheiros na rede do <ph name="PRODUCT_NAME" /> deve utilizar o <ph name="NETBIOS_PROTOCOL" /> para detetar partilhas na rede. + Se esta política estiver definida como "true", a deteção de partilhas utiliza o protocolo <ph name="NETBIOS_PROTOCOL" /> para detetar partilhas na rede. + Se esta política estiver definida como "false", a deteção de partilhas não vai utilizar o protocolo <ph name="NETBIOS_PROTOCOL" /> para detetar partilhas. + Se a política for deixada por definir, a predefinição é desativada para utilizadores geridos pela empresa e ativada para utilizadores não geridos.</translation> <translation id="4555850956567117258">Permitir a comprovação remota para o utilizador</translation> <translation id="4557134566541205630">URL da página Novo separador do motor de pesquisa predefinido</translation> <translation id="4567137030726189378">Permite a utilização das Ferramentas para programadores.</translation> @@ -2155,11 +2155,11 @@ <translation id="7053678646221257043">Se esta política estiver ativada, força a importação de marcadores a partir do navegador predefinido atual e também afeta a caixa de diálogo de importação. Se estiver desativada, não serão importados quaisquer marcadores. Se não estiver definida, o utilizador poderá ser questionado se pretende importá-los ou a importação poderá ocorrer automaticamente.</translation> <translation id="7063895219334505671">Permitir pop-ups nestes sites</translation> <translation id="706568410943497889"> - Se a definição for definida como verdadeira, o <ph name="PRODUCT_NAME" /> tem autorização para recolher registos de eventos WebRTC dos serviços Google (por exemplo, do Google Meet) e carregar esses registos para o Google. + Se a política for definida como "true", o <ph name="PRODUCT_NAME" /> tem autorização para recolher registos de eventos WebRTC dos serviços Google (por exemplo, do Google Meet) e carregar esses registos para o Google. - Se a política for definida como falsa ou não for definida, o <ph name="PRODUCT_NAME" /> não pode recolher nem carregar esses registos. + Se a política for definida como "false" ou não for definida, o <ph name="PRODUCT_NAME" /> não pode recolher nem carregar esses registos. - Estes registos contêm informações de diagnóstico que são úteis para depurar problemas em chamadas de áudio ou videochamadas no Chrome, como, por exemplo, a hora e o tamanho dos pacotes RTP enviados e recebidos, feedback sobre congestionamentos na rede e metadados sobre a hora e a qualidade dos frames de áudio e vídeo. Estes registos não incluem conteúdos de áudio ou vídeo das chamadas. + Estes registos contêm informações de diagnóstico que são úteis para depurar problemas em chamadas de áudio ou videochamadas no Chrome, como, por exemplo, a hora e o tamanho dos pacotes RTP enviados e recebidos, comentários sobre congestionamentos na rede e metadados sobre a hora e a qualidade dos frames de áudio e vídeo. Estes registos não incluem conteúdos de áudio ou vídeo das chamadas. Esta recolha de dados por parte do Chrome só pode ser acionada pelos serviços Google na Web, como o Google Hangouts ou o Google Meet. @@ -2298,7 +2298,7 @@ <translation id="7343497214039883642">Ficheiro de configuração de impressoras empresariais para dispositivos</translation> <translation id="7349338075015720646">Especifica uma lista de Websites que são instalados silenciosamente, sem interação do utilizador, e que não podem ser desinstalados nem desativados pelo utilizador. - Cada item de lista da política é um objeto com dois membros: "url" e "launch_container". "url" deve ser o URL da aplicação Web que vai ser instalada e "launch_container" deve ser "window" ("janela") ou "tab" ("separador") para indicar de que forma é que a aplicação Web vai ser aberta depois da instalação. Se "launch_container" for omitido, a aplicação é aberta numa janela se o Chrome a considerar uma Progressive Web App; caso contrário, é aberta num separador.</translation> + Cada item de lista da política é um objeto com dois membros: "url" e "launch_container". "url" deve ser o URL da aplicação Web que vai ser instalada e "launch_container" deve ser "window" ("janela") ou "tab" ("separador") para indicar de que forma é que a aplicação Web vai ser aberta depois da instalação. Se "launch_container" for omitido, a aplicação é aberta numa janela se o Chrome a considerar uma progressive web app; caso contrário, é aberta num separador.</translation> <translation id="7367028210010532881">O serviço de Navegação segura apresenta uma página de aviso quando os utilizadores navegam para sites sinalizados como potencialmente maliciosos. A ativação desta definição impede que os utilizadores prossigam da página de aviso para o site com conteúdo malicioso. Se esta definição estiver desativada ou não estiver configurada, os utilizadores podem optar por prosseguir para o site sinalizado após a apresentação do aviso. @@ -2994,9 +2994,9 @@ <translation id="9158929520101169054">Permitir o início de sessão integrado no navegador</translation> <translation id="9159126470527871268">Notifique os utilizadores de que o <ph name="PRODUCT_NAME" /> tem de ser reiniciado ou que o <ph name="PRODUCT_OS_NAME" /> tem de ser reiniciado para aplicar uma atualização pendente. - A definição desta política ativa notificações para informar o utilizador de que é recomendado ou necessário reiniciar um navegador ou um dispositivo. Se não for definida, o <ph name="PRODUCT_NAME" /> indica ao utilizador que é necessário reiniciar através de subtis mudanças nos respetivos menus, ao passo que o <ph name="PRODUCT_OS_NAME" /> indica essa mesma necessidade através de uma notificação no tabuleiro do sistema. Se for definida como "Recomendada", é mostrado um aviso recorrente ao utilizador, a dizer que o reinício é necessário. O utilizador pode ignorar esse aviso para adiar o reinício. Se for definida como "Obrigatória", é mostrado um aviso recorrente ao utilizador a indicar que o reinício do navegador vai ser forçado quando o período de notificação for ultrapassado. O período predefinido são sete dias para o <ph name="PRODUCT_NAME" /> e quatro dias para o <ph name="PRODUCT_OS_NAME" />, o qual pode ser configurado através de definição da política <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. + A definição desta política ativa notificações para informar o utilizador de que é recomendado ou necessário reiniciar um navegador ou um dispositivo. Se não for definida, o <ph name="PRODUCT_NAME" /> indica ao utilizador que é necessário reiniciar através de subtis mudanças no respetivo menu, ao passo que o <ph name="PRODUCT_OS_NAME" /> indica essa mesma necessidade através de uma notificação no tabuleiro do sistema. Se for definida como "Recomendada", é mostrado um aviso recorrente ao utilizador, a indicar que o reinício é necessário. O utilizador pode ignorar esse aviso para adiar o reinício. Se for definida como "Obrigatória", é mostrado um aviso recorrente ao utilizador a indicar que o reinício do navegador vai ser forçado quando o período de notificação for ultrapassado. O período predefinido é de sete dias para o <ph name="PRODUCT_NAME" /> e de quatro dias para o <ph name="PRODUCT_OS_NAME" />, o qual pode ser configurado através da definição da política <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. - A sessão do utilizador é reiniciada após o reinício.</translation> + A sessão do utilizador é restaurada após o reinício.</translation> <translation id="9165792353046089850">Permite definir se os Websites podem aceder a dispositivos USB ligados. O acesso pode ser totalmente bloqueado ou pode ser efetuado um pedido ao utilizador sempre que um Website pretender aceder a dispositivos USB ligados. Esta política pode ser substituída para padrões de URL específicos ao utilizar as políticas "WebUsbAskForUrls" e "WebUsbBlockedForUrls".
diff --git a/components/policy/resources/policy_templates_ro.xtb b/components/policy/resources/policy_templates_ro.xtb index cdfb0ab..31b1911 100644 --- a/components/policy/resources/policy_templates_ro.xtb +++ b/components/policy/resources/policy_templates_ro.xtb
@@ -1300,10 +1300,10 @@ Pentru o descriere completă a setărilor posibile și a structurii acestei politici, accesează https://www.chromium.org/administrators/policy-list-3/extension-settings-full </translation> <translation id="4554651132977135445">Modul de procesare loopback conform politicii privind utilizatorii</translation> -<translation id="4554841826517980623">Această politică stabilește dacă funcția Dispozitive de stocare în rețea pentru <ph name="PRODUCT_NAME" /> trebuie să folosească <ph name="NETBIOS_PROTOCOL" /> pentru a descoperi elementele la care se permite accesul în rețea. - Când politica este activată, descoperirea elementelor la care se permite accesul va folosi protocolul <ph name="NETBIOS_PROTOCOL" /> pentru a descoperi elementele la care se permite accesul în rețea. - Când politica este dezactivată, descoperirea elementelor la care se permite accesul nu va folosi protocolul <ph name="NETBIOS_PROTOCOL" /> pentru a descoperi elementele la care se permite accesul. - Dacă politica nu este configurată, opțiunea prestabilită este dezactivată pentru utilizatorii gestionați de întreprindere și activată pentru utilizatorii negestionați.</translation> +<translation id="4554841826517980623">Această politică stabilește dacă funcția Dispozitive de stocare în rețea pentru <ph name="PRODUCT_NAME" /> trebuie să folosească <ph name="NETBIOS_PROTOCOL" /> pentru a descoperi dispozitive în rețea. + Când politica este activată, se va folosi protocolul <ph name="NETBIOS_PROTOCOL" /> pentru a se descoperi dispozitive în rețea. + Când politica este dezactivată, nu se va folosi protocolul <ph name="NETBIOS_PROTOCOL" /> pentru a se descoperi dispozitive. + Dacă politica nu este configurată, opțiunea este în mod prestabilit dezactivată pentru utilizatorii gestionați de întreprindere și activată pentru utilizatorii negestionați.</translation> <translation id="4555850956567117258">Activați atestarea la distanță pentru utilizator</translation> <translation id="4557134566541205630">Adresa URL pentru pagina Filă nouă a furnizorului de căutare prestabilit</translation> <translation id="4567137030726189378">Permite folosirea Instrumentelor pentru dezvoltatori</translation> @@ -1702,7 +1702,7 @@ Dacă această politică nu este configurată, feedbackul vocal este dezactivat la afișarea inițială a ecranului de conectare. Utilizatorii pot oricând să activeze sau să dezactiveze feedbackul vocal, iar starea sa pe ecranul de conectare persistă de la un utilizator la altul.</translation> <translation id="5868414965372171132">Configurație de rețea la nivel de utilizator</translation> -<translation id="5879014913445067283">Controlează descoperirea elementelor la care se permite accesul din rețea prin <ph name="NETBIOS_NAME" /></translation> +<translation id="5879014913445067283">Controlează descoperirea dispozitivelor de stocare în rețea prin <ph name="NETBIOS_NAME" /></translation> <translation id="5883015257301027298">Setări prestabilite cu privire la cookie-uri</translation> <translation id="5887414688706570295">Configurează prefixul TalkGadget care va fi utilizat de gazdele de acces la distanță și nu le permite utilizatorilor să-l modifice. @@ -2147,7 +2147,7 @@ Dacă politica este dezactivată sau nu este configurată, <ph name="PRODUCT_NAME" /> nu poate colecta sau încărca astfel de jurnale. - Aceste jurnale conțin informații de diagnosticare utile la remedierea problemelor cu apelurile audio sau video din Chrome, precum ora și dimensiunea pachetelor RTP trimite și primite, feedback privind congestionarea rețelei și metadate despre ora și calitatea cadrelor audio și video. Jurnalele nu conțin înregistrări audio sau video din apel. + Aceste jurnale conțin informații de diagnosticare utile la remedierea problemelor cu apelurile audio sau video din Chrome, precum ora și dimensiunea pachetelor RTP trimise și primite, feedback privind congestionarea rețelei și metadate despre ora și calitatea cadrelor audio și video. Jurnalele nu conțin înregistrări audio sau video din apel. Această colectare a datelor de către Chrome poate fi declanșată numai de serviciile web Google, precum Google Hangouts sau Google Meet. @@ -2778,7 +2778,7 @@ În această perioadă, utilizatorul va fi informat în mod repetat despre necesitatea unei actualizări. Pentru dispozitivele <ph name="PRODUCT_OS_NAME" />, notificarea privind repornirea apare în bara de sistem atunci când se detectează un upgrade. Pentru browserele <ph name="PRODUCT_NAME" />, meniul aplicației se modifică, indicând faptul că este necesară o relansare după expirarea unei treimi din perioada de notificare. Această notificare își schimbă culoarea după expirarea a două treimi din perioada de notificare și încă o dată, după încheierea întregii perioade de notificare. Notificările suplimentare activate de politica <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> urmează același program. - Dacă nu este configurată, se aplică o perioadă prestabilită de 345.600.000 milisecunde (patru zile) pentru dispozitivele <ph name="PRODUCT_OS_NAME" /> și 604.800.000 milisecunde (o săptămână) pentru <ph name="PRODUCT_NAME" />.</translation> + Dacă nu este configurată, se aplică o perioadă prestabilită de 345.600.000 de milisecunde (patru zile) pentru dispozitivele <ph name="PRODUCT_OS_NAME" /> și 604.800.000 de milisecunde (o săptămână) pentru <ph name="PRODUCT_NAME" />.</translation> <translation id="8685024486845674965">Avertismentul privind protecția prin parolă este declanșat de refolosirea parolei</translation> <translation id="8693243869659262736">Utilizați clientul DNS integrat</translation> <translation id="8704831857353097849">Lista pluginurilor dezactivate</translation> @@ -2961,7 +2961,7 @@ <translation id="9158929520101169054">Permite conectarea multiplă în browser</translation> <translation id="9159126470527871268">Notifică utilizatorul că <ph name="PRODUCT_NAME" /> trebuie relansat sau <ph name="PRODUCT_OS_NAME" /> trebuie repornit pentru aplicarea unei actualizări în așteptare. - Setarea acestei politici activează notificările care informează utilizatorul că este recomandată sau necesară relansarea browserului sau repornirea utilizatorului. Dacă politica nu este setată, <ph name="PRODUCT_NAME" /> îi arată utilizatorului că este necesară o relansare prin schimbări subtile aduse meniului, în timp ce <ph name="PRODUCT_OS_NAME" /> indică acest lucru printr-o notificare în bara de sistem. Dacă politica este setată la „Recomandat”, utilizatorului i se va afișa o avertizare recurentă prin care se indică faptul că relansarea este recomandată. Utilizatorul poate să respingă avertizarea pentru a amâna relansarea. Dacă politica este setată la „Obligatoriu”, utilizatorului i se va afișa o avertizare recurentă prin care se indică faptul că relansarea browserului va fi obligatorie după încheierea perioadei de notificare. În mod prestabilit, această perioadă este de șapte zile pentru <ph name="PRODUCT_NAME" /> și patru zile pentru <ph name="PRODUCT_OS_NAME" /> și poate fi configurată prin setarea politicii <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. + Setarea acestei politici activează notificările care informează utilizatorul că este recomandată sau necesară relansarea browserului sau repornirea dispozitivului. Dacă politica nu este setată, <ph name="PRODUCT_NAME" /> îi arată utilizatorului că este necesară o relansare prin schimbări subtile aduse meniului, în timp ce <ph name="PRODUCT_OS_NAME" /> indică acest lucru printr-o notificare în bara de sistem. Dacă politica este setată la „Recomandat”, utilizatorului i se va afișa o avertizare recurentă prin care se indică faptul că relansarea este recomandată. Utilizatorul poate să închidă avertizarea pentru a amâna relansarea. Dacă politica este setată la „Obligatoriu”, utilizatorului i se va afișa o avertizare recurentă prin care se indică faptul că relansarea browserului va fi obligatorie după încheierea perioadei de notificare. În mod prestabilit, această perioadă este de șapte zile pentru <ph name="PRODUCT_NAME" /> și patru zile pentru <ph name="PRODUCT_OS_NAME" /> și poate fi configurată prin setarea politicii <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. Sesiunea utilizatorului este restabilită după relansare/repornire.</translation> <translation id="9165792353046089850">Îți permite să stabilești dacă site-urile primesc acces la dispozitivele USB conectate. Accesul poate fi blocat complet sau utilizatorul poate fi întrebat de fiecare dată când un site dorește să primească acces la dispozitivele USB conectate.
diff --git a/components/policy/resources/policy_templates_sk.xtb b/components/policy/resources/policy_templates_sk.xtb index d930819..1d117a4f 100644 --- a/components/policy/resources/policy_templates_sk.xtb +++ b/components/policy/resources/policy_templates_sk.xtb
@@ -186,6 +186,7 @@ <translation id="1522425503138261032">Povoliť stránkam sledovať fyzickú polohu používateľov</translation> <translation id="152657506688053119">Zoznam alternatívnych webových adries pre predvoleného poskytovateľa vyhľadávania</translation> <translation id="1530812829012954197">Vždy vykresliť nasledujúce vzory webových adries v hostiteľskom prehliadači</translation> +<translation id="1541170838458414064">Obmedziť veľkosť tlačenej strany</translation> <translation id="1553684822621013552">Keď je toto pravidlo nastavené na hodnotu True, bude pre používateľa povolená funkcia ARC (táto možnosť podlieha ďalším kontrolám nastavení pravidiel – ak je v aktuálnej relácii používateľa povolený buď režim dočasných profilov, alebo viacnásobné prihlásenie, funkcia ARC nebude dostupná). Ak je toto nastavenie zakázané alebo nie je nakonfigurované, nebudú môcť podnikoví používatelia používať funkciu ARC.</translation> @@ -334,7 +335,7 @@ <translation id="199764499252435679">Povoliť aktualizácie komponentov v prehliadači <ph name="PRODUCT_NAME" /></translation> <translation id="2006530844219044261">Správa možností napájania</translation> <translation id="201557587962247231">Frekvencia nahrávania hlásení stavu zariadenia</translation> -<translation id="2017301949684549118">Adresy weboých aplikácií využijú tichú inštaláciu.</translation> +<translation id="2017301949684549118">Adresy webových aplikácií využijú tichú inštaláciu.</translation> <translation id="2018836497795982119">Určuje interval (v ms), v ktorom budú službe správy zariadenia odosielané žiadosti o informácie o pravidlách pre používateľov. Nastavením tohto pravidla bude prepísaná predvolená hodnota 3 hodiny. Platné hodnoty pre toto pravidlo sa pohybujú v rozmedzí od 1800000 (30 minút) do 86400000 (1 deň). Hodnoty mimo daného rozsahu budú upravené na príslušnú medznú hodnotu. Ak platforma podporuje upozornenia na pravidlá, oneskorenie obnovenia bude nastavené na 24 hodín, pretože sa očakáva, že upozornenia na pravidlá vynútia automatické obnovenie po každej zmene pravidiel. @@ -359,6 +360,12 @@ <translation id="2082205219176343977">Konfigurácia minimálnej povolenej verzie Chromu pre zariadenie.</translation> <translation id="209586405398070749">Stabilná verzia</translation> <translation id="2098658257603918882">Povoliť hlásenie údajov týkajúcich sa používania a zlyhaní</translation> +<translation id="2098916259427011890">Toto pravidlo ovláda, či sa majú nahlasovať informácie o verzii, napríklad verzia, platforma, architektúra operačného systému, verzia prehliadača <ph name="PRODUCT_NAME" /> a kanál <ph name="PRODUCT_NAME" />. + + Keď ho nenastavíte alebo nastavíte na hodnotu true, informácie o verzii sa zhromažďujú. + Keď ho nastavíte na hodnotu false, informácie o verzii sa nezhromažďujú. + + Toto pravidlo je účinné iba vtedy, keď povolíte aj rozšírenie na nahlasovanie údajov o Chrome a správu cloudu.</translation> <translation id="2111016292707172233">Povolí dostupnosť Vyhľadávania klepnutím v zobrazení obsahu v prehliadači <ph name="PRODUCT_NAME" />. Ak toto nastavenie povolíte, bude mať používateľ k dispozícii Vyhľadávanie klepnutím a bude si môcť túto funkciu vypnúť alebo zapnúť. @@ -392,6 +399,8 @@ Ak toto pravidlo nenastavíte, predvolená hodnota bude 0 stupňov a používateľ ju môže zmeniť. V tomto prípade sa predvolená hodnota pri reštartovaní opakovane nepoužije.</translation> +<translation id="214901426630414675">Obmedziť režim obojstrannej tlače</translation> +<translation id="2149330464730004005">Povoliť farebnú tlač</translation> <translation id="2156132677421487971">Umožňuje nakonfigurovať pravidlá pre funkciu <ph name="PRODUCT_NAME" />, ktorá používateľom umožňuje odosielať obsah kariet, webov alebo plochy z prehliadača na vzdialené obrazovky a do vzdialených zvukových systémov.</translation> <translation id="2166472654199325139">Nefiltrovať weby podľa obsahu pre dospelých</translation> <translation id="2168397434410358693">Oneskorenie režimu nečinnosti pri používaní napájacieho zdroja</translation> @@ -584,6 +593,7 @@ <translation id="2529880111512635313">Konfigurácia zoznamu vynútene nainštalovaných aplikácií a rozšírení</translation> <translation id="253135976343875019">Oneskorenie upozornenia na nečinnosť pri napájaní zo siete</translation> <translation id="2536525645274582300">O povolení služieb na určovanie polohy od Googlu rozhoduje používateľ</translation> +<translation id="2550593661567988768">Tlačiť iba na jednu stranu</translation> <translation id="2552966063069741410">Časové pásmo</translation> <translation id="2562339630163277285">Určuje webovú adresu vyhľadávača, ktorý poskytuje výsledky dynamického vyhľadávania. Webová adresa by mala obsahovať reťazec <ph name="SEARCH_TERM_MARKER" />, ktorý bude počas posielania dopytu nahradený textom zadávaným používateľom. @@ -717,9 +727,12 @@ Ak toto nastavenie zakážete alebo nenastavíte žiadnu hodnotu, Ukážka tlače bude používať poslednú použitú tlačiareň ako predvolenú cieľovú možnosť. Ak povolíte toto zariadenie, Ukážka tlače bude používať predvolenú tlačiareň operačného systému OS ako predvolenú cieľovú možnosť.</translation> +<translation id="2856674246949497058">Ak je verzia operačného systému novšia ako cieľová, prejdite na cieľovú verziu. Počas tohto procesu vykonajte kompletné obnovenie Powerwash.</translation> <translation id="2872961005593481000">Vypnúť</translation> +<translation id="2873651257716068683">Prepíše predvolenú veľkosť tlačenej strany. Ak nie je k dispozícii veľkosť strany, toto pravidlo je ignorované.</translation> <translation id="2874209944580848064">Poznámka pre zariadenia so systémom <ph name="PRODUCT_OS_NAME" />, ktoré podporujú aplikácie pre Android:</translation> <translation id="2877225735001246144">Zakázať hľadanie záznamov CNAME pri absolvovaní overenia Kerberos</translation> +<translation id="2892414556511568464">Zakáže režim obojstrannej tlače. Ak pravidlo nenastavíte alebo obsahuje prázdnu hodnotu, znamená to, že sa nepoužijú žiadne obmedzenia.</translation> <translation id="2893546967669465276">Odosielanie denníkov systému na správcovský server</translation> <translation id="2899002520262095963">Aplikácie pre Android môžu používať konfigurácie siete a certifikáty CA nastavené prostredníctvom tohto pravidla, nemajú však prístup k rovnakým možnostiam konfigurácie.</translation> <translation id="290002216614278247">Umožňuje uzamknúť reláciu používateľa na základe času klienta alebo dennej kvóty využitia. @@ -809,6 +822,7 @@ Odporúčame migráciu serverov na šifrovacie súpravy ECDHE. Ak nie sú k dispozícii, povoľte šifrovaciu súpravu používajúcu výmenu kľúčov RSA.</translation> <translation id="316778957754360075">Toto nastavenie sa prestalo používať v prehliadači <ph name="PRODUCT_NAME" /> verzie 29. Odporúčaným spôsobom na nastavenie zbierok rozšírení/aplikácií hostených organizáciou je zahrnúť stránky hostiace balíky CRX do zoznamu ExtensionInstallSources a vložiť na webovú stránku priame odkazy na balíky. Spúšťač pre danú webovú stránku je možné vytvoriť pomocou pravidla ExtensionInstallForcelist.</translation> +<translation id="3171369832001535378">Šablóna názvu hostiteľa siete zariadenia</translation> <translation id="3185009703220253572">od verzie <ph name="SINCE_VERSION" /></translation> <translation id="3187220842205194486">Aplikácie pre Android nemajú prístup k podnikovým kľúčom. Toto pravidlo nemá na ne žiaden vplyv.</translation> <translation id="3201273385265130876">Umožňuje špecifikovať proxy server, ktorý bude <ph name="PRODUCT_NAME" /> používať. Zabraňuje používateľom zmeniť nastavenia proxy servera. @@ -920,6 +934,7 @@ Hodnotou tohto pravidla je registračný token, ktorý je možné získať v správcovskej konzole Googlu.</translation> <translation id="3496296378755072552">Správca hesiel</translation> +<translation id="3502555714327823858">Povoliť všetky obojstranné režimy</translation> <translation id="350443680860256679">Konfigurovať ARC</translation> <translation id="3504791027627803580">Určuje webovú adresu vyhľadávača použitého na poskytovanie vyhľadávania obrázkov. Žiadosti o vyhľadávanie sa budú odosielať pomocou metódy GET. Ak je nastavené pravidlo DefaultSearchProviderImageURLPostParams, budú žiadosti o vyhľadávanie obrázkov používať namiesto toho metódu POST. @@ -929,6 +944,7 @@ <translation id="350797926066071931">Povoliť službu Translate</translation> <translation id="3512226956150568738">Ak model klientskeho zariadenia podporoval ARC už predtým, ako bolo na spustenie ARC potrebné migrovať na ext4, a ak je pravidlo ArcEnabled nastavené na hodnotu True, táto možnosť sa bude správať ako parameter AskUser (hodnota 3). Vo všetkých ostatných prípadoch (ak model zariadenia predtým ARC nepodporoval alebo ak je pravidlo ArcEnabled nastavené na hodnotu False), táto hodnota sa bude zhodovať s parametrom DisallowArc (hodnota 0).</translation> <translation id="3524204464536655762">Nepovoliť žiadnemu webu požadovať prístup k zariadeniam USB prostredníctvom rozhrania WebUSB API</translation> +<translation id="3526752951628474302">Iba monochromatická tlač</translation> <translation id="3528000905991875314">Povoliť alternatívne chybové stránky</translation> <translation id="3545457887306538845">Umožňuje ovládať, kde sa môžu nástroje pre vývojárov používať. @@ -952,6 +968,7 @@ <translation id="3577251398714997599">Nastavenie reklám pre weby s obťažujúcimi reklamami</translation> <translation id="3591584750136265240">Konfigurácia správania pri overovaní prihlasovacích údajov</translation> <translation id="3627678165642179114">Povoliť alebo zakázať webovú službu kontroly pravopisu</translation> +<translation id="3628480121685794414">Povoliť tlač na jednu stranu</translation> <translation id="3646859102161347133">Nastavenie typu lupy obrazovky</translation> <translation id="3653237928288822292">Ikona predvoleného poskytovateľa vyhľadávania</translation> <translation id="3660562134618097814">Preniesť súbory cookie poskytovateľa identity SAML počas prihlásenia</translation> @@ -1047,6 +1064,7 @@ Ak pravidlo nastavíte na možnosť False, informácie o relácii sa nebudú nahlasovať. Ak ho nastavíte na možnosť True alebo ho nenastavíte, informácie o relácii sa budú nahlasovať.</translation> +<translation id="3858658082795336534">Predvolený režim obojstrannej tlače</translation> <translation id="3859780406608282662">Pridá parameter k načítavaniu kanála Variácie systému <ph name="PRODUCT_OS_NAME" />. Ak je pravidlo určené, pridá k webovej adrese na načítanie kanála Variácie parameter dopytu s názvom „restrict". Hodnotou parametra bude hodnota, ktorá sa určí v tomto pravidle. @@ -1155,6 +1173,12 @@ Inak ho môžete nastaviť na niektorú z nesledujúcich hodnôt: tls1.2 alebo tls1.3. Keď ho nastavíte, <ph name="PRODUCT_NAME" /> nebude používať verzie protokolu SSL/TLS vyššie ako stanovená verzia. Hodnota, ktorá sa nebude dať rozpoznať, bude ignorovaná.</translation> <translation id="4121350739760194865">Zabraňuje tomu, aby sa propagácie aplikácií zobrazovali na stránke Nová karta</translation> <translation id="412697421478384751">Povoliť používateľom nastaviť slabé kódy PIN na uzamknutej obrazovke</translation> +<translation id="4129183564590133854">Toto pravidlo ovláda, či sa majú nahlasovať informácie, ktoré sa dajú použiť na identifikáciu používateľov, ako sú napríklad prihlasovacie údaje operačného systému, prihlasovacie údaje profilu v prehliadači <ph name="PRODUCT_NAME" />, názov profilu v prehliadači <ph name="PRODUCT_NAME" />, cesta k profilu v prehliadači <ph name="PRODUCT_NAME" /> a spustiteľná cesta k prehliadaču <ph name="PRODUCT_NAME" />. + + Keď ho nenastavíte alebo nastavíte na hodnotu true, informácie použiteľné na identifikáciu používateľov sa zhromažďujú. + Keď ho nastavíte na hodnotu false, informácie použiteľné na identifikáciu používateľov sa nezhromažďujú + + Toto pravidlo je účinné iba vtedy, keď povolíte aj rozšírenie na nahlasovanie údajov o Chrome a správu cloudu.</translation> <translation id="4138655880188755661">Časový limit</translation> <translation id="4157003184375321727">Hlásiť verziu operačného systému a firmvéru</translation> <translation id="4157594634940419685">Povoliť prístup k natívnym tlačiarňam CUPS</translation> @@ -1468,6 +1492,12 @@ Ak nie je nastavené, môže sa používateľovi zobraziť výzva, či chce históriu prehliadania importovať, alebo môže import prebehnúť automaticky.</translation> <translation id="5056708224511062314">Lupa obrazovky je vypnutá</translation> <translation id="5058573563327660283">Vybrať stratégiu, ktorá sa použije na uvoľnenie miesta na disku počas automatického čistenia (podpora bola ukončená)</translation> +<translation id="5058771123777243130">Toto pravidlo ovláda, či sa majú nahlasovať údaje o pravidle a čas načítania pravidla. + + Keď ho nenastavíte alebo nastavíte na hodnotu true, údaje o pravidle a čas jeho načítania sa zhromažďujú. + Keď ho nastavíte na hodnotu false, údaje o pravidle a čas jeho načítania sa nezhromažďujú. + + Toto pravidlo je účinné iba vtedy, keď povolíte aj rozšírenie na nahlasovnie údajov o Chrome a správu cloudu.</translation> <translation id="5067143124345820993">Zoznam používateľov s povolením na prihlásenie</translation> <translation id="5068140065960598044">Pravidlá používania cloudu v prehliadači <ph name="PRODUCT_NAME" /> prepíšu pravidlá zariadenia.</translation> <translation id="5085647276663819155">Zakázať ukážku pred tlačou</translation> @@ -1579,6 +1609,7 @@ <translation id="5366977351895725771">Ak toto pravidlo nastavíte na hodnotu false, bude vytváranie a prihlasovanie kontrolovaných používateľov zakázané. Všetci existujúci kontrolovaní používatelia budú stále k dispozícii. Ak toto pravidlo nenakonfigurujete alebo ho nastavíte na hodnotu true, tento používateľ bude môcť vytvárať a spravovať kontrolovaných používateľov.</translation> +<translation id="5369937289900051171">Iba farebná tlač</translation> <translation id="5370279767682621504">Povoliť podporu protokolu HTTP/0.9 v portoch, ktoré nie sú predvolené</translation> <translation id="5378985487213287085">Umožňuje nastaviť, či môžu webové stránky zobrazovať upozornenia na pracovnej ploche. Zobrazovanie upozornení na pracovnej ploche je možné nakonfigurovať tak, že bude v predvolenom nastavení buď umožnené, alebo zamietnuté. Tiež je možné nastaviť, aby sa pri pokuse webových stránok o zobrazenie upozornení na pracovnej ploche zobrazila používateľovi výzva. @@ -1605,6 +1636,7 @@ Ak nie je nastavené, môže sa používateľovi zobraziť výzva, či chce vyhľadávač importovať, alebo môže import prebehnúť automaticky.</translation> <translation id="5423197884968724595">Názov obmedzenia Android WebView:</translation> +<translation id="5424147596523390018">Povoliť všetky farebné režimy</translation> <translation id="5442026853063570579">Toto pravidlo ovláda aj prístup k možnostiam pre vývojárov Androidu. Ak toto pravidlo nastavíte na hodnotu „DeveloperToolsDisallowed“ (hodnota 2), používatelia nebudú mať prístup k možnostiam Pre vývojárov. Ak toto pravidlo nastavíte na inú hodnotu alebo ho ponecháte nenastavené, umožníte používateľom otvoriť možnosti Pre vývojárov tým, že sedemkrát klepnú na číslo zostavy v aplikácii nastavení Androidu.</translation> <translation id="5447306928176905178">Povoliť nahlasovanie informácií o pamäti (veľkosť hromady kódu JavaScript) stránke (zamietnuté)</translation> <translation id="5457065417344056871">Povoliť v prehliadači režim pre hostí</translation> @@ -1672,6 +1704,7 @@ <translation id="5586942249556966598">Nevykonať žiadnu akciu</translation> <translation id="5630352020869108293">Obnoviť poslednú reláciu</translation> <translation id="5645779841392247734">Povoliť súbory cookie na týchto webových stránkach</translation> +<translation id="5689430183304951538">Predvolená veľkosť tlačenej strany</translation> <translation id="5693469654327063861">Povoliť migráciu dát</translation> <translation id="5694594914843889579">Ak je toto pravidlo nastavené na hodnotu True, externé úložisko sa nezobrazí v prehliadači súborov. @@ -1701,6 +1734,7 @@ Ak toto pravidlo nastavené nie je, použije sa predvolená doba. Hodnota pravidla by mala byť uvedená v milisekundách.</translation> +<translation id="5783009211970309878">Tlačiť hlavičky a päty</translation> <translation id="5809728392451418079">Nastaviť zobrazovaný názov pre miestne účty na zariadení</translation> <translation id="5814301096961727113">Nastaviť predvolený stav hlasovej odozvy na prihlasovacej obrazovke</translation> <translation id="5815129011704381141">Automaticky reštartovať po aktualizácii</translation> @@ -1718,6 +1752,7 @@ Ak vyberiete možnosť „Zakázané“, stránky v režime Inkognito nebude možné otvoriť. Ak vyberiete možnosť „Vynútené“, stránky bude možné otvoriť LEN v režime Inkognito.</translation> +<translation id="582857022372205358">Povoliť obojstrannú tlač s krátkym okrajom</translation> <translation id="583091600226586337"> Ak je toto pravidlo povolené, používateľovi sa pred stiahnutím zobrazí výzva s otázkou, kde chce súbor uložiť. Ak je zakázané, sťahovanie sa začne okamžite a používateľovi sa nezobrazí výzva s otázkou, kde chce súbor uložiť. @@ -1753,6 +1788,7 @@ Ak je toto nastavenie zakázané alebo nie je nakonfigurované, žiadosti o overenie gnubby nebudú sprostredkované.</translation> <translation id="5898486742390981550">Keď je v Androide prihlásených viacero používateľov, môže aplikácie používať iba hlavný používateľ.</translation> +<translation id="5901427587865226597">Iba obojstranná tlač</translation> <translation id="5906199912611534122">Umožňuje aktivovať alebo deaktivovať obmedzenie rýchlosti siete. Platí pre všetkých používateľov a rozhrania na zariadení. Po nastavení tohto pravidla bude rýchlosť obmedzovaná, dokým ho nezmeníte alebo nezakážete. @@ -1859,6 +1895,7 @@ Hodnota tohto pravidla sa zadáva v milisekundách. Ak zadáte hodnotu vyššiu ako je čas nečinnosti, použije sa hodnota času nečinnosti.</translation> <translation id="6097601282776163274">Povoliť anonymizované zhromažďovanie dát prostredníctvom kódovaných webových adries</translation> +<translation id="6099853574908182288">Predvolený režim farebnej tlače</translation> <translation id="6111936128861357925">Povoliť hru s dinosaurom</translation> <translation id="6114416803310251055">zamietnuté</translation> <translation id="6133088669883929098">Povoliť všetkým webovým stránkam používať generovanie kľúčov</translation> @@ -1873,6 +1910,7 @@ Ak toto pravidlo nenastavíte, pre všetky weby sa použije globálna predvolená hodnota, ktorá je určená buď pravidlom DefaultCookiesSetting (ak je nastavené), alebo inou osobnou konfiguráciou od používateľa.</translation> <translation id="6190022522129724693">Predvolené nastavenie kontextových okien</translation> +<translation id="6190367314942602985">Nahlasovať informácie identifikujúce používateľa</translation> <translation id="6197453924249895891">Poskytne rozšíreniam prístup k podnikovým kľúčom. Kľúče vygenerované pomocou rozhrania chrome.enterprise.platformKeys API v spravovanom účte sú určené na podnikové využitie. Kľúče importované alebo generované iným spôsobom nie sú určené na podnikové využitie. @@ -1882,6 +1920,8 @@ Predvolene nemôže žiadne rozšírenie používať kľúč určený na podnikové využitie, čo je to isté, ako keď je povolenie allowCorporateKeyUsage pre toto rozšírenie nastavené na možnosť False. Rozšírenie môže použiť kľúč ľubovoľnej platformy určený na podnikové využitie na podpísanie ľubovoľných dát iba vtedy, keď je povolenie allowCorporateKeyUsage pre toto rozšírenie nastavené na možnosť True. Toto povolenie by ste mali udeliť iba vtedy, keď máte istotu, že rozšírenie určite ochráni prístup ku kľúču pred útočníkmi.</translation> +<translation id="6208896993204286313">Nahlasovať informácie o pravidle prehliadača <ph name="PRODUCT_NAME" /></translation> +<translation id="6210259502936598222">Nahlasovať informácie o operačnom systéme a verzii prehliadača <ph name="PRODUCT_NAME" /></translation> <translation id="6211428344788340116">Nahlásenie časov aktivity zariadenia. Ak toto pravidlo nenastavíte alebo ho nastavíte na hodnotu True, registrované zariadenia budú nahlasovať časové obdobia, kedy používateľ zariadenie aktívne používa. Ak je nastavené na hodnotu False, časy aktivity zariadenia sa nebudú zaznamenávať ani nahlasovať.</translation> @@ -1899,6 +1939,7 @@ Ak toto nastavenie povolíte a zadáte neštandardný port (t.j. iný port ako 80 či 443), zahrnie sa do vygenerovaného hlavného názvu služby protokolu Kerberos. Ak toto nastavenie zakážete alebo ho ponecháte nenastavené, port sa do vygenerovaného hlavného názvu služby protokolu Kerberos v žiadnom prípade nezahrnie.</translation> +<translation id="6261643884958898336">Nahlasovať informácie identifikujúce zariadenie</translation> <translation id="6281043242780654992">Umožňuje konfiguráciu pravidiel pre odosielanie natívnych správ. Hostitelia pre odosielanie natívnych správ, ktorí sú na zozname zakázaných položiek, budú povolení iba v prípade, že budú pridaní na bielu listinu.</translation> <translation id="6282799760374509080">Povoliť alebo zakázať zaznamenávanie zvuku</translation> <translation id="6284362063448764300">TLS 1.1</translation> @@ -1929,6 +1970,7 @@ Ak zvolíte možnosť „Automaticky zisťovať proxy server“, aplikácie pre Android budú mať k dispozícii webovú adresu skriptu http://wpad/wpad.dat. Nepoužije sa žiadna iná časť protokolu automatického zisťovania proxy servera. Ak zvolíte, že chcete používať skript .pac proxy servera, budú mať aplikácie pre Android k dispozícii webovú adresu skriptu.</translation> +<translation id="6430366557948788869">Rozšírenie na nahlasovanie údajov o Chrome</translation> <translation id="6440051664870270040">Povoliť webom súbežne prechádzať a otvárať kontextové okná</translation> <translation id="6447948611083700881">Zálohovanie a obnovenie je zakázané</translation> <translation id="645425387487868471">Povoliť vynútenie prihlásenia v prehliadači <ph name="PRODUCT_NAME" /></translation> @@ -1975,6 +2017,7 @@ <translation id="6628646143828354685">Umožňuje nastaviť, či môžu weby získať prístup k zariadeniam Bluetooth v blízkosti. Prístup môže byť úplne zablokovaný alebo je možné používateľa požiadať, keď chce web získať prístup k zariadeniam Bluetooth v blízkosti. Ak toto pravidlo ponecháte nenastavené, použije sa hodnota 3 a používateľ ju bude môcť zmeniť.</translation> +<translation id="663685822663765995">Zakázať režim farebnej tlače</translation> <translation id="6641981670621198190">Zakázať podporu rozhrania API pre grafiku 3D</translation> <translation id="6647965994887675196">Ak toto pravidlo nastavíte na hodnotu true, bude možné vytvárať a používať kontrolovaných používateľov. @@ -2002,6 +2045,7 @@ Vzory webových adries v tomto pravidle by nemali byť v konflikte s tými, ktoré sú nakonfigurované prostredníctvom pravidla WebUsbAskForUrls. Ak webová adresa zodpovedá obom pravidlám, nie je určené, ktoré z nich má prednosť.</translation> <translation id="6689792153960219308">Nahlásiť stav hardvéru</translation> +<translation id="6698632841807204978">Povoliť monochromatickú tlač</translation> <translation id="6699880231565102694">Povolenie dvojfázového overenia totožnosti pre hostiteľov vzdialeného prístupu</translation> <translation id="6724842112053619797">Ak povolíte toto nastavenie, nastavenia uložené v profiloch <ph name="PRODUCT_NAME" /> (napr. záložky, údaje automatického dopĺňania, heslá atď.) sa zapíšu tiež do súboru uloženého v priečinku roamingového používateľského profilu alebo v umiestnení špecifikovanom správcom prostredníctvom pravidla <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Povolenie tohto pravidla vypne synchronizáciu s cloudom. @@ -2041,6 +2085,12 @@ Toto nastavenie ovláda prezentovanie uvítacích stránok, ktoré pomáhajú používateľom prihlásiť sa do prehliadača <ph name="PRODUCT_NAME" /> a vybrať ho ako svoj predvolený prehliadač alebo ich pomáhajú inak informovať o funkciách produktov.</translation> <translation id="6766216162565713893">Povoliť webom žiadať používateľa o prístup k zariadeniam Bluetooth v blízkosti</translation> <translation id="6770454900105963262">Nahlásiť informácie o aktívnych reláciách verejného terminálu</translation> +<translation id="6773056206551814546">Toto pravidlo ovláda, či sa majú nahlasovať informácie, ktoré sa dajú použiť na identifikáciu zariadení, ako napríklad názov zariadenia a sieťové adresy. + + Keď ho nenastavíte alebo nastavíte na hodnotu true, informácie použiteľné na identifikáciu zariadení sa zhromažďujú. + Keď ho nastavíte na hodnotu false, informácie použiteľné na identifikáciu zariadení sa nezhromažďujú. + + Toto pravidlo je účinné iba vtedy, keď povolíte aj rozšírenie na nahlasovanie údajov o Chrome a správu cloudu.</translation> <translation id="6786747875388722282">Rozšírenia</translation> <translation id="6786967369487349613">Nastaviť adresár roamingového profilu</translation> <translation id="6810445994095397827">Blokovať jazyk JavaScript na týchto webových stránkach</translation> @@ -2145,6 +2195,7 @@ <translation id="6923366716660828830">Určuje názov predvoleného poskytovateľa vyhľadávania. Ak sa pole nevyplní alebo bude pravidlo ponechané nenastavené, použije sa názov hostiteľa určený webovou adresou vyhľadávania. Toto pravidlo sa vezme do úvahy len v prípade, ak je povolené pravidlo „DefaultSearchProviderEnabled“.</translation> +<translation id="6926703471186170050">Povoliť obojstrannú tlač s dlhým okrajom</translation> <translation id="6931242315485576290">Zakázať synchronizáciu údajov so servermi Google</translation> <translation id="6936894225179401731">Určuje maximálny počet súbežných pripojení k serveru proxy. @@ -2352,6 +2403,7 @@ Ak je toto nastavenie zakázané alebo ak nie je nakonfigurované, používatelia môžu pokračovať na nahlásený web aj po zobrazení upozornenia. Ďalšie informácie o Bezpečnom prehliadaní získate na adrese https://developers.google.com/safe-browsing.</translation> +<translation id="737655323154569539">Obmedzí veľkosť tlačenej strany. Ak pravidlo nenastavíte alebo obsahuje prázdnu hodnotu, znamená to, že sa nepoužijú žiadne obmedzenia.</translation> <translation id="7417728346887499628">Ak toto pravidlo zakážete, zabráni nástroju Chrome Cleanup hľadať v systéme nechcený softvér a vykonávať čistenia. Ručné spúšťanie nástroja Chrome Cleanup z adresy chrome://settings/cleanup je zakázané. Ak ho povolíte alebo ponecháte nenastavené, Chrome Cleanup bude pravidelne hľadať v systéme nechcený softvér a v prípade jeho nájdenia sa používateľa opýta, či ho chce odstrániť. Ručné spúšťanie nástroja Chrome Cleanup z adresy chrome://settings je povolené. @@ -2422,6 +2474,8 @@ <translation id="7617319494457709698">Toto pravidlo určuje, pre ktoré rozšírenia bude povolené vzdialené prihlásenie pomocou metódy <ph name="CHALLENGE_USER_KEY_FUNCTION" /> rozhrania <ph name="ENTERPRISE_PLATFORM_KEYS_API" />. Rozšírenia môžu používať toto rozhranie API, keď sú pridané do tohto zoznamu. Ak sa rozšírenie v zozname nenachádza alebo zoznam nie je vytvorený, volania rozhrania API zlyhajú a nahlásia kód chyby.</translation> +<translation id="7618907117929117943">Ak je verzia operačného systému novšia ako cieľová a môžete preniesť konfiguráciu na úrovni zariadenia (vrátane prihlasovacích údajov do siete) v rámci prechodu na nižšiu verziu a pritom po ňom preskočiť proces prvotnej konfigurácie, prejdite na nižšiu verziu. Ak to nie je možné (pretože cieľová verzia nepodporuje obnovu údajov alebo z dôvodu zmeny, ktorá neumožňuje prechod na nižšiu verziu), neprechádzajte na nižšiu verziu alebo tento proces prerušte. + Podporované v prehliadači <ph name="PRODUCT_OS_NAME" /> verzie 70 a novšej. V prípade starších klientov táto hodnota znamená, že prechod na nižšiu verziu je zakázaný.</translation> <translation id="7625444193696794922">Určuje, aký kanál verzie by mal byť v zariadení uzamknutý.</translation> <translation id="7632724434767231364">Názov knižnice GSSAPI</translation> <translation id="7635471475589566552">Slúži na konfiguráciu miestneho nastavenia aplikácie v prehliadači <ph name="PRODUCT_NAME" /> a bráni používateľom miestne nastavenie zmeniť. @@ -2621,6 +2675,7 @@ Ak toto nastavenie povolíte alebo nenastavíte žiadnu hodnotu, funkcia Automatické dopĺňanie zostane pod kontrolou používateľa. Vďaka tomu si budú môcť používatelia nakonfigurovať profily tejto funkcie a podľa vlastného úsudku ich vypínať alebo zapínať.</translation> <translation id="8044493735196713914">Hlásiť režim spustenia zariadenia</translation> <translation id="8050080920415773384">Natívna tlač</translation> +<translation id="8053580360728293758">Prepíše predvolený režim farebnej tlače. Ak daný režim nie je k dispozícii, toto pravidlo je ignorované.</translation> <translation id="8059164285174960932">Webová adresa, kde by klienti vzdialeného prístupu mali získať token na overenie totožnosti</translation> <translation id="8078366200175825572">Umožňuje nastaviť zoznam vzorov webových adries určujúcich weby, ktoré nemôžu nastavovať súbory cookie. @@ -2807,6 +2862,7 @@ V tomto prípade znamená výraz „verzia“ buď presnú verziu, ako napríklad 61.0.3163.120, alebo predponu verzie, napríklad 61.0. </translation> <translation id="8544375438507658205">Predvolený vykresľovací modul HTML pre doplnok <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">Povoliť synchronizáciu správ SMS z telefónu do Chromebooku</translation> +<translation id="8548832052135586762">Nastaví iba farebnú tlač, iba monochromatickú tlač alebo žiadne obmedzenie farebného režimu. Ak toto pravidlo nenastavíte, znamená to, že sa nepoužijú žiadne obmedzenia.</translation> <translation id="8549772397068118889">Upozorniť na návštevu stránky, ktorá je mimo balíkov obsahu</translation> <translation id="8566842294717252664">Skryť internetový obchod zo stránky na novej karte a zo spúšťača aplikácií</translation> <translation id="8586528890725660268">Umožňuje určiť tlačiarne, ktoré používateľ nemá k dispozícii. @@ -2917,6 +2973,7 @@ Ak je toto nastavenie ponechané nenastavené, používateľ sa môže rozhodnúť, či chce túto funkciu použiť.</translation> <translation id="8870318296973696995">Domovská stránka</translation> +<translation id="8876188741456358123">Prepíše predvolený režim obojstrannej tlače. Ak daný režim nie je k dispozícii, toto pravidlo je ignorované.</translation> <translation id="8882006618241293596">Blokovať doplnok <ph name="FLASH_PLUGIN_NAME" /> na týchto weboch</translation> <translation id="890403179930035128">Vynucuje povolenie jazykov kontroly pravopisu. Nerozpoznané jazyky sa budú v danom zozname ignorovať. @@ -3001,6 +3058,8 @@ <translation id="9084985621503260744">Určuje, či prehrávanie videa ovplyvňuje správu napájania</translation> <translation id="9088433379343318874">Povoliť poskytovateľa obsahu pre kontrolovaného používateľa</translation> <translation id="9088444059179765143">Konfigurovať spôsob automatického zisťovania časového pásma</translation> +<translation id="9094064873808699479">Ak je verzia operačného systému novšia ako cieľová, vráťte sa na cieľovú verziu. Ak je to možné, vyskúšajte v rámci prechodu na nižšiu verziu preniesť konfiguráciu na úrovni zariadenia (vrátane prihlasovacích údajov do siete). Ak sa údaje nedajú obnoviť (pretože cieľová verzia nepodporuje obnovu údajov alebo ste vykonali zmenu, ktorá neumožňuje prechod na nižšiu verziu), prejdite na nižšiu verziu a vykonajte úplné obnovenie Powerwash. + Podporované v prehliadači <ph name="PRODUCT_OS_NAME" /> verzie 70 a novšej. V prípade starších klientov táto hodnota znamená, že prechod na nižšiu verziu je zakázaný.</translation> <translation id="9096086085182305205">Zoznam povolených overovacích serverov</translation> <translation id="9098553063150791878">Pravidlá pre overenie HTTP</translation> <translation id="9105265795073104888">Aplikácie pre Android majú k dispozícii iba podmnožinu možností konfigurácie proxy servera. Aplikácie pre Android sa môžu samostatne rozhodnúť, či budú proxy server používať. Nie je možné to vynútiť.</translation> @@ -3059,6 +3118,13 @@ <translation id="9187743794267626640">Zákaz pripojenia externého ukladacieho priestoru</translation> <translation id="9197740283131855199">Percentuálna hodnota, o ktorú sa predĺži oneskorenie stmavenia obrazovky, keď sa zaznamená aktivita používateľa po stmavení obrazovky</translation> <translation id="9200828125069750521">Parametre pre webovú adresu obrázkov, ktorá používa metódu POST</translation> +<translation id="920209539000507585">Presaďte, aby bolo zobrazenie položky Hlavičky a päty v dialógovom okne tlače zapnuté alebo vypnuté. + + Ak toto pravidlo nenastavíte, používateľ sa môže rozhodnúť, či chce hlavičky a päty tlačiť. + + Ak toto pravidlo nastavíte na hodnotu false, položka Hlavičky a päty nebude vybraná v dialógovom okne ukážky tlače a používateľ to nemôže zmeniť. + + Ak ho nastavíte na hodnotu true, položka Hlavičky a päty je vybraná v dialógovom okne ukážky tlače a používateľ to nemôže zmeniť.</translation> <translation id="9210953373038593554">Umožňuje konfigurovať typ overenia totožnosti prihlasovacích údajov SAML. Keď toto pravidlo nenastavíte alebo nastavíte na možnosť Predvolené (hodnota 0), správanie prihlasovacích údajov SAML určuje prehliadač v závislosti od ďalších faktorov. Najčastejšie sa overenie totožnosti používateľa a ochrana údajov používateľa vo vyrovnávacej pamäti zakladajú na heslách ručne zadaných používateľmi. @@ -3066,6 +3132,9 @@ Keď tieto pravidlá nastavíte na možnosť ClientCertificate (hodnota 1), overenie certifikátu klienta sa použije pre nových pridaných používateľov, ktorí sa prihlásia prostredníctvom SAML. Nepoužijú sa pre nich žiadne heslá a ich miestne dáta vo vyrovnávacej pamäti sú chránené pomocou zodpovedajúcich kryptografických kľúčov. Toto nastavenie umožňuje napríklad konfigurovať inteligentnú kartu na základe overenia totožnosti používateľa (pamätajte, že middlevérové aplikácie inteligentných kariet musíte nainštalovať prostredníctvom pravidla DeviceLoginScreenAppInstallList). Toto pravidlo sa vzťahuje iba na používateľov, ktorí sa prihlásia pomocou SAML.</translation> +<translation id="9211439035693857287">Umožňuje konfigurovať pravidlá súvisiace s rozšírením na nahlasovanie údajov o Chrome. + + Tieto pravidlá sú účinné iba vtedy, keď povolíte aj rozšírenie na nahlasovanie údajov o Chrome a správu cloudu.</translation> <translation id="9213347477683611358">Slúži na konfiguráciu obrázku tapety na úrovni zariadenia, ktorý sa bude zobrazovať na obrazovke prihlásenia, ak sa do zariadenia zatiaľ neprihlásil žiadny používateľ. Pravidlo nastavíte určením webovej adresy, z ktorej môže zariadenie so systémom Chrome OS stiahnuť daný obrázok tapety, a určením kryptografickej hodnoty hash, pomocou ktorej sa overí integrita stiahnutého súboru. Obrázok musí byť vo formáte JPEG a jeho veľkosť nesmie prekročiť 16 MB. Webová adresa musí byť prístupná bez overenia totožnosti. Obrázok tapety sa stiahne a uloží do vyrovnávacej pamäte. Obrázok sa stiahne znova v prípade, že sa zmení webová adresa alebo hodnota hash. Toto pravidlo je potrebné zadať ako reťazec, ktorý udáva webovú adresu a hodnotu hash vo formáte JSON. Príklad:
diff --git a/components/policy/resources/policy_templates_sl.xtb b/components/policy/resources/policy_templates_sl.xtb index becb48f..3eafd4c 100644 --- a/components/policy/resources/policy_templates_sl.xtb +++ b/components/policy/resources/policy_templates_sl.xtb
@@ -2253,7 +2253,7 @@ To zbiranje podatkov v Chromu lahko sprožijo samo Googlove spletne storitve, na primer Google Hangouts ali Google Meet. - Google lahko te dnevnike pred ID-ja seje poveže z drugimi dnevniki, ki jih zbira sama Googlova storitev, in sicer zaradi lažjega odpravljanja napak. + Google lahko te dnevnike prek ID-ja seje poveže z drugimi dnevniki, ki jih zbira sama Googlova storitev, in sicer zaradi lažjega odpravljanja napak. </translation> <translation id="706669471845501145">Mestom dovoli prikazovanje namiznih obvestil</translation> <translation id="7072208053150563108">Hitrost spreminjanja gesla naprave</translation> @@ -2388,7 +2388,7 @@ <translation id="7336878834592315572">Ohrani piškotke za obdobje trajanja seje</translation> <translation id="7340034977315324840">Pošiljanje podatkov o času dejavnosti v napravi</translation> <translation id="7343497214039883642">Datoteka s konfiguracijami tiskalnikov v podjetjih za naprave</translation> -<translation id="7349338075015720646">Določa seznam spletnih mest, ki se namestijo brez obveščanja in brez poseganja uporabnika ter ki jih uporabnik ne more ne odstraniti ne onemogočiti. +<translation id="7349338075015720646">Določa seznam spletnih aplikacij, ki se namestijo brez obveščanja in brez poseganja uporabnika ter ki jih uporabnik ne more ne odstraniti ne onemogočiti. Vsak element na seznamu pravilnika je predmet z dvema členoma: »url« in »launch_container«. »url« mora biti URL spletne aplikacije za namestitev, »launch_container« pa »window« (okno) ali »tab« (zavihek), s čimer je nakazano, kako se bo spletna aplikacija odprla po namestitvi. Če »launch_container« izpustite, se bo aplikacija zagnala v oknu, če jo bo Chrome obravnaval kot moderno spletno aplikacijo, v nasprotnem primeru pa na zavihku.</translation> <translation id="7367028210010532881">Storitev Varno brskanje prikaže opozorilno stran, ko uporabniki pridejo na spletna mesta, ki so označena kot potencialno zlonamerna. Če je ta nastavitev omogočena, uporabniki z opozorilne strani ne morejo na zlonamerno spletno mesto. @@ -2895,7 +2895,7 @@ V tem časovnem obdobju je uporabnik večkrat obveščen glede potrebe po posodobitvi. Ko je zaznana nadgradnja, se za naprave <ph name="PRODUCT_OS_NAME" /> v sistemski vrstici pojavi obvestilo o vnovičnem zagonu. Za brskalnike <ph name="PRODUCT_NAME" /> se meni aplikacije spremeni, da ponazori, da je potreben vnovični zagon, ko mine ena tretjina obdobja za obveščanje. Barva tega obvestila se spremeni, ko mineta dve tretjini obdobja za obveščanje, in znova, ko mine celotno obdobje za obveščanje. Za dodatna obvestila, ki jih je omogočil pravilnik <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" />, prav tako velja ta pravilnik. - Če pravilnik ni nastavljen, se za naprave <ph name="PRODUCT_OS_NAME" /> kot privzeto časovno obdobje uporabi 345.600.000 millisekund (štirje dnevi), za brskalnike <ph name="PRODUCT_NAME" /> pa 604.800.000 milisekund (en teden).</translation> + Če pravilnik ni nastavljen, se za naprave <ph name="PRODUCT_OS_NAME" /> kot privzeto časovno obdobje uporabi 345.600.000 milisekund (štirje dnevi), za brskalnike <ph name="PRODUCT_NAME" /> pa 604.800.000 milisekund (en teden).</translation> <translation id="8685024486845674965">Opozorilo zaščite z geslom sproži vnovična uporaba gesla</translation> <translation id="8693243869659262736">Uporaba vgrajenega odjemalca DNS</translation> <translation id="8704831857353097849">Seznam onemogočenih vtičnikov</translation>
diff --git a/components/policy/resources/policy_templates_sr.xtb b/components/policy/resources/policy_templates_sr.xtb index abebcaa0..5037ea6c 100644 --- a/components/policy/resources/policy_templates_sr.xtb +++ b/components/policy/resources/policy_templates_sr.xtb
@@ -2229,7 +2229,7 @@ Ако је ова смерница подешена на вредност Нетачно или није подешена, <ph name="PRODUCT_NAME" /> не може да прикупља нити отпрема те евиденције. - Те евиденције садрже дијагностичке информације орисне при отклањању грешака са аудио и видео позивима у Chrome-у, попут времена слања и примања RTP пакета и њихове величине, повратних информација о закрчењима на мрежи и метаподатака о времену и квалитету аудио и видео оквира. Те евиденције не обухватају аудио или видео садржај позива. + Те евиденције садрже дијагностичке информације корисне при отклањању грешака са аудио и видео позивима у Chrome-у, попут времена слања и примања RTP пакета и њихове величине, повратних информација о закрчењима на мрежи и метаподатака о времену и квалитету аудио и видео оквира. Те евиденције не обухватају аудио или видео садржај позива. Ову колекцију Chrome података можете да покренете само помоћу Google веб-услуга, као што је Google Hangouts или Google Meet.
diff --git a/components/policy/resources/policy_templates_sw.xtb b/components/policy/resources/policy_templates_sw.xtb index f36008a..8806ede 100644 --- a/components/policy/resources/policy_templates_sw.xtb +++ b/components/policy/resources/policy_templates_sw.xtb
@@ -181,6 +181,7 @@ <translation id="1522425503138261032">Ruhusu tovuti kufuatilia eneo halisi la mtumiaji</translation> <translation id="152657506688053119">Orodha ya URL mbadala za mtoa huduma chaguomsingi wa utafutaji.</translation> <translation id="1530812829012954197">Onyesha ruwaza zifuatazo za URL mara kwa mara katika kivinjari cha mpangishaji</translation> +<translation id="1541170838458414064">Dhibiti ukubwa wa ukurasa wa kuchapisha</translation> <translation id="1553684822621013552">Sera hii ikiwekwa kuwa ndivyo, kipengee cha ARC kitawashiwa mtumiaji (kutegemea kanuni za mipangilio ya ziada ya sera - kipengee cha ARC bado hakitapatikana ikiwa kipindi cha matumizi ya muda au kipengee cha kuingia katika akaunti nyingi kitawashwa katika kipindi cha sasa cha mtumiaji). @@ -359,6 +360,12 @@ <translation id="2082205219176343977">Weka mipangilio ya msingi inayoruhusiwa ya toleo la Chrome kwenye kifaa.</translation> <translation id="209586405398070749">Kituo imara</translation> <translation id="2098658257603918882">Wezesha kuripoti kwa matumizi na data zinazohusu mvurugiko</translation> +<translation id="2098916259427011890">Sera hii inadhibiti ikiwa unapaswa kuripoti maelezo ya toleo, kama vile toleo la mfumo wa uendeshaji, mifumo ya uendeshaji, usanifu wa mfumo wa uendeshaji, toleo la <ph name="PRODUCT_NAME" /> na kituo cha <ph name="PRODUCT_NAME" />. + + Mipangilio ya sera hii isipowekwa au ikiwekewa mipangilio ya Ndivyo, maelezo ya toleo yanakusanywa. + Sera hii ikiwekewa mipangilio ya Sivyo, maelezo ya toleo hayatakusanywa. + + Sera hii inatumika tu wakati umewasha Kiendelezi cha Kuripoti Chrome na kipengele cha Kudhibiti Wingu.</translation> <translation id="2111016292707172233">Huwasha kipengele cha Gusa ili Utafute katika mwonekano wa maudhui ya <ph name="PRODUCT_NAME" />. Ukiwasha mipangilio hii, kipengele cha Gusa ili Utafute kitapatikana kwa mtumiaji na anaweza kuamua kukiwasha au kukizima. @@ -391,6 +398,8 @@ Sera hii isipowekwa, thamani chaguomsingi ni digrii 0 na mtumiaji yuko huru kuibadilisha. Kwa hivyo, thamani chaguomsingi haitumiwi tena wakati wa kuzima na kuwasha.</translation> +<translation id="214901426630414675">Dhibiti hali ya uchapishaji kwenye pande mbili</translation> +<translation id="2149330464730004005">Ruhusu uchapishaji wa rangi</translation> <translation id="2156132677421487971">Weka sera za <ph name="PRODUCT_NAME" />, kipengele kinachoruhusu watumiaji kutuma maudhui ya vichupo, tovuti au eneo-kazi kutoka kwenye kivinjari hadi skrini za mbali na spika.</translation> <translation id="2166472654199325139">Usichuje tovuti zilizo na maudhui ya watu wazima</translation> <translation id="2168397434410358693">Kutokuwa na shughuli kunachelewesha wakati wa kuendesha kwenye nishati ya AC</translation> @@ -581,6 +590,7 @@ <translation id="2529880111512635313">Sanidi orodha ya programu na viendelezi vilivyosakinishwa kwa nguvu</translation> <translation id="253135976343875019">Onyo ya kuchelewa wakati wa kutokuwa na shughuli wakati wa kuendesha kwa nishati ya AC</translation> <translation id="2536525645274582300">Mtumiaji anaamua iwapo atawasha Huduma za Mahali za Google</translation> +<translation id="2550593661567988768">Uchapishaji kwenye upande mmoja pekee</translation> <translation id="2552966063069741410">Saa za eneo:</translation> <translation id="2562339630163277285">Hubainisha URL ya mtambo wa kutafuta inayotumiwa kutoa matokeo ya papo hapo. URL inapaswa kuwa na mfuatano wa <ph name="SEARCH_TERM_MARKER" />, ambao nafasi yake itachukuliwa wakati wa kuandika hoja ya maandishi ambayo mtumiaji atakuwa ameweka. @@ -714,9 +724,12 @@ Ukiizima mipangilio hii au usipoweka thamani, Onyesho la Kuchungulia la Printa litatumia printa iliyotumika hivi majuzi zaidi kama uteuzi chaguomsingi. Ukiiwasha mipangilio hii, Onyesho la Kuchungulia la Printa litatumia printa chaguomsingi ya mfumo wa uendeshaji kama uteuzi chaguomsingi.</translation> +<translation id="2856674246949497058">Rejesha na uendelee kutumia toleo lengwa ikiwa toleo la Mfumo wa Uendeshaji ni jipya zaidi kuliko toleo lengwa. Tekeleza Powerwash katika mchakato huu.</translation> <translation id="2872961005593481000">Zima</translation> +<translation id="2873651257716068683">Inabatilisha ukubwa chaguomsingi wa ukurasa wa kuchapisha. Ikiwa ukubwa wa ukurasa haupatikani, sera hii haizingatiwi.</translation> <translation id="2874209944580848064">Kidokezo kwa vifaa vya <ph name="PRODUCT_OS_NAME" /> vinavyotumia programu za Android:</translation> <translation id="2877225735001246144">Lemaza kidokezo cha CNAME unapohawilisha uthibitishaji wa Kerberos</translation> +<translation id="2892414556511568464">Inazuia uchapishaji katika hali rudufu. Sera isiyo na mipangilio na seti isiyokuwa na kitu chochote zinachukuliwa kama zisizo na vizuizi.</translation> <translation id="2893546967669465276">Tuma kumbukumbu za mfumo kwenye seva ya udhibiti</translation> <translation id="2899002520262095963">Programu za Android zinaweza kutumia usanidi wa mtandao na vyeti vya CA vilivyowekwa kupitia sera hii, lakini hazina idhini ya kufikia chaguo za kuweka mipangilio.</translation> <translation id="290002216614278247">Hukuruhusu ufunge kipindi cha mtumiaji kulingana na wakati wa mteja au mgawo wa nafasi ya siku hiyo. @@ -805,6 +818,7 @@ Seva zinahimizwa kuhamia kwenye mipangilio ya kriptografia ya ECDHE. Ikiwa mipangilio hii haipatikani, hakikisha kuwa mipangilio ya kriptografia inayotumia ubadilishanaji wa kitufe cha RSA imewashwa.</translation> <translation id="316778957754360075">Mpangilio huu hautumiki kutoka toleo la 29 la<ph name="PRODUCT_NAME" />. Njia iliyopendekezwa ya kuanzisha kiendelezi cha shirika kilichopangishwa/makusanyo ya programu ni pamoja na kujumuisha tovuti inayopangisha CRX katika ExtensionInstallSources na kuweka viungo vya kupakua vifungu hivyo moja kwa moja kwenye ukurasa wa wavuti. Kizinduzi cha ukurasa huo wa wavuti kinaweza kuundwa kutumia sera ya ExtensionInstallForcelist.</translation> +<translation id="3171369832001535378">Kiolezo cha jina la mpangishaji wa mtandao wa kifaa</translation> <translation id="3185009703220253572">kuanzia toleo la <ph name="SINCE_VERSION" /></translation> <translation id="3187220842205194486">Programu za Android haziwezi kufikia vitufe vya shirika. Sera hii haiviathiri.</translation> <translation id="3201273385265130876">Hukuruhusu kubainisha seva mbadala inayotumiwa na <ph name="PRODUCT_NAME" /> na huzuia watumiaji kubadilisha mipangilio ya seva mbadala. @@ -919,6 +933,7 @@ Thamani ya sera hii ni tokeni ya Uandikishaji ambayo inaweza kutolewa kwenye dashibodi ya Msimamizi wa Google.</translation> <translation id="3496296378755072552">Kidhibiti cha nenosiri</translation> +<translation id="3502555714327823858">Ruhusu hali zote za kuchapisha pande mbili</translation> <translation id="350443680860256679">Weka mipangilio ya ARC</translation> <translation id="3504791027627803580">Hubainisha URL ya injini tafuti inayotumika kutoa utafutaji kwa picha. Maombi ya utafutaji yatatumwa kwa kutumia mbinu ya GET. Kama sera ya DefaultSearchProviderImageURLPostParams imewekwa basi maombi ya utafutaji kwa picha yatatumia mbinu ya POST badala yake. @@ -928,6 +943,7 @@ <translation id="350797926066071931">Wezesha Tafsiri</translation> <translation id="3512226956150568738">Ikiwa muundo wa kifaa teja tayari unatumia ARC kabla ya kuhamishiwa kwenye ext4 ili kutumia ARC na sera ya ArcEnabled imewekwa kuwa ndivyo, chaguo hili litafanya kazi kama AskUser (thamani ya 3). Katika hali zingine zote (ikiwa muundo wa kifaa haukuwa unatumia ARC hapo awali, au kama sera ya ArcEnabled imewekwa kuwa sivyo), thamani hii inalingana na DisallowArc (thamani ya 0).</translation> <translation id="3524204464536655762">Usiruhusu tovuti yoyote iombe idhini ya kufikia vifaa vya USB kupitia API ya WebUSB</translation> +<translation id="3526752951628474302">Uchapishaji katika rangi nyeusi na nyeupe pekee</translation> <translation id="3528000905991875314">Wezesha kurasa badala za hitilafu</translation> <translation id="3545457887306538845">Inakuruhusu udhibiti sehemu ambapo Zana za Wasanidi Programu zinaweza kutumika. @@ -951,6 +967,7 @@ <translation id="3577251398714997599">Mipangilio ya matangazo kwa tovuti zilizo na matangazo yanayokatiza matumizi</translation> <translation id="3591584750136265240">Weka mipangilio ya tabia ya kithibitishaji cha kuingia katika akaunti</translation> <translation id="3627678165642179114">Wezesha au lemaza huduma ya wavuti ya ukaguzi tahajia</translation> +<translation id="3628480121685794414">Ruhusu uchapishaji kwenye upande mmoja</translation> <translation id="3646859102161347133">Weka aina ya kikuza skrini</translation> <translation id="3653237928288822292">Aikoni ya mtoaji wa utafutaji chaguomsingi</translation> <translation id="3660562134618097814">Hamisha vidakuzi vya SAML IdP wakati wa kuingia katika akaunti</translation> @@ -1054,6 +1071,7 @@ Sera ikiwekwa kuwa sivyo, maelezo ya kipindi cha skrini nzima hayataripotiwa. Ikiwekwa kuwa ndivyo au ikiachwa bila kuwekwa, maelezo ya kipindi cha skrini nzima yataripotiwa.</translation> +<translation id="3858658082795336534">Hali chaguomsingi ya uchapishaji kwenye pande mbili</translation> <translation id="3859780406608282662">Ongeza kigezo kwenye uletaji wa mbegu Tofauti katika <ph name="PRODUCT_OS_NAME" />. Iwapo imebainishwa, itaongeza kigezo cha hoja inayoitwa "zuia" kwenye URL inayotumiwa kuleta mbegu Tofauti. Thamani ya kigezo itakuwa thamani iliyobainishwa kwenye sera hii. @@ -1162,6 +1180,12 @@ Vinginevyo, huenda ikawekwa katika mojawapo ya thamani zifuatazo: "tls1.2" au "tls1.3". Ikiwekwa, <ph name="PRODUCT_NAME" /> haitatumia matoleo ya SSL/TLS ambayo yamepita toleo lililobainishwa. Thamani isiyotambuliwa haitazingatiwa.</translation> <translation id="4121350739760194865">Zuia utambulishaji dhidi ya kuonekana kwenye ukurasa mpya wa kichupo</translation> <translation id="412697421478384751">Ruhusu watumiaji waweke PIN ambazo si thabiti zitumike kama PIN ya skrini iliyofungwa</translation> +<translation id="4129183564590133854">Sera hii inadhibiti ikiwa unapaswa kuripoti maelezo yanayoweza kutumika kutambulisha watumiaji kama vile kuingia katika akaunti ya mfumo wa uendeshaji, kuingia katika akaunti ya wasifu wa <ph name="PRODUCT_NAME" />, Jina la wasifu wa <ph name="PRODUCT_NAME" />, Njia ya wasifu wa <ph name="PRODUCT_NAME" /> na njia inayoweza kutumika ya <ph name="PRODUCT_NAME" />. + + Mipangilio ya sera hii isipowekwa au ikiwekewa mipangilio ya Ndivyo, maelezo yanayoweza kutumika kutambulisha watumiaji yanakusanywa. + Sera hii ikiwekewa mipangilio ya Sivyo, maelezo yanayoweza kutumika kutambulisha watumiaji hayakusanywi. + + Sera hii inatumika tu wakati umewasha Kiendelezi cha Kuripoti cha Chrome na kipengele ha Kudhibiti Wingu.</translation> <translation id="4138655880188755661">Kikomo cha Muda</translation> <translation id="4157003184375321727">Ripoti OS na toleo la programu dhibiti</translation> <translation id="4157594634940419685">Ruhusu ufikiaji wa printa za mtandao wa CUPS</translation> @@ -1466,6 +1490,12 @@ Ikiwa haijawekwa, mtumiaji anaweza kuombwa iwapo anataka kuleta, au uletaji unaweza kufanyika kiotomatiki.</translation> <translation id="5056708224511062314">Kikuza skrini kimezimwa</translation> <translation id="5058573563327660283">Chagua mkakati unaotumiwa kufuta baadhi ya faili ili kupata nafasi wakati wa kufuta data kiotomatiki (haitumiki)</translation> +<translation id="5058771123777243130">Sera hii inadhibiti iwapo utaripoti data ya sera na wakati wa kuleta sera. + + Mipangilio ya sera hii isipowekwa au ikiwekewa mipangilio ya Ndivyo, maelezo ya data ya sera na wakati wa kuleta sera yatakusanywa. + Sera hii ikiwekewa mipangilio ya Sivyo, maelezo kuhusu data ya sera na wakati wa kuleta sera hayatakusanywa. + + Sera hii inatumika tu wakati umewasha Kiendelezi cha Kuripoti Chrome na kipengele cha Kudhibiti Wingu.</translation> <translation id="5067143124345820993">Ingia kwenye orodha ya kutoa idhini ya mtumiaji</translation> <translation id="5068140065960598044">Sera ya wingu ya <ph name="PRODUCT_NAME" /> inabatilisha Sera ya Mashine</translation> <translation id="5085647276663819155">Lemaza Uhakiki wa Uchapishaji</translation> @@ -1581,6 +1611,7 @@ <translation id="5366977351895725771">Ikiwekwa kuwa si kweli, uwezo wa mtumiaji huu wa kufungua akaunti ya mtumiaji anayesimamiwa utazimwa. Bado mtumiaji yeyote ambaye hivi sasa anasimamiwa atapatikana. Ikiwekwa kuwa kweli au haijasanidiwa, akaunti za watumiaji wanaosimamiwa zinaweza kufunguliwa na kusimamiwa na mtumiaji huyu.</translation> +<translation id="5369937289900051171">Uchapishaji katika rangi pekee</translation> <translation id="5370279767682621504">Washa matumizi ya HTTP/0.9 kwenye milango isiyo chaguomsingi</translation> <translation id="5378985487213287085">Inakuruhusu kuweka iwapo tovuti zinaruhusiwa kuonyesha arifa. Kuonyesha arifa za eneo-kazi kunaweza kuruhusiwa kwa chaguomsingi, kukataliwa kwa chaguomsingi au mtumiaji anawewa kuulizwa kila wakati tovuti inayotaka kuonyesha arifa za eneo-kazi. @@ -1606,6 +1637,7 @@ Ikiwa haitawekwa, mtumiaji anaweza kuomba aingize, au huenda ungizaji ukatendeka kiotomatiki.</translation> <translation id="5423197884968724595">Jina la vikwazo la Android WebView:</translation> +<translation id="5424147596523390018">Ruhusu hali zote za rangi</translation> <translation id="5442026853063570579">Sera hii pia inadhibiti idhini ya kufikia Chaguo za Wasanidi Programu wa Android. Ukiweka sera hii kuwa DeveloperToolsDisallowed' (thamani ya 2), watumiaji hawawezi kufikia Chaguo za Wasanidi Programu. Ukiweka sera hii kuwa thamani nyingine au uiache bila kuiweka, watumiaji wataweza kufikia Chaguo za Wasanidi Programu kwa kugusa mara saba nambari ya muundo katika programu ya mipangilio ya Android.</translation> <translation id="5447306928176905178">Washa kuripoti maelezo ya kumbukumbu (ukubwa wa kumbukumbu ya JS) kwenye ukurasa (haitumiki tena)</translation> <translation id="5457065417344056871">Washa matumizi ya wageni katika kivinjari</translation> @@ -1673,6 +1705,7 @@ <translation id="5586942249556966598">Usifanye chochote</translation> <translation id="5630352020869108293">Rejesha kipindi kilichopita</translation> <translation id="5645779841392247734">Ruhusu vidakuzi kwenye tovuti hizi</translation> +<translation id="5689430183304951538">Ukubwa chaguomsingi wa ukurasa wa kuchapisha</translation> <translation id="5693469654327063861">Ruhusu uhamishaji data</translation> <translation id="5694594914843889579">Sera hii ikiwekwa kuwa ndivyo, hifadhi ya nje haitapatikana katika kivinjari cha faili. @@ -1702,6 +1735,7 @@ Sera hii inapokuwa haijawekwa, urefu wa muda wa chaguomsingi unatumiwa. Sera ya thamani inastahili kubainishwa kwa nukta. </translation> +<translation id="5783009211970309878">Chapisha Vichwa na Vijachini</translation> <translation id="5809728392451418079">Weka jina la onyesho kwa ajili ya akaunti za kifaa cha karibu</translation> <translation id="5814301096961727113">Weka hali chaguomsingi ya maoni yanayotamkwa kwenye skrini ya kuingia katika akaunti</translation> <translation id="5815129011704381141">Zima na uwashe tena otomatiki baada ya kusasisha</translation> @@ -1719,6 +1753,7 @@ Ikiwa hiari ya 'Imezimwa' imechaguliwa, huenda kurasa zisifunguliwe katika hali Fiche. Ikiwa hiari ya 'Imelazimishwa' imechaguliwa, huenda kurasa zikafunguliwa TU katika hali Fiche.</translation> +<translation id="582857022372205358">Ruhusu uchapishaji kwenye pande mbili ukurasa ukiwa wima</translation> <translation id="583091600226586337"> Kama sera hii imewashwa, mtumiaji ataulizwa mahali atakapohifadhi kila faili kabla ya kuipakua. Kama sera imezimwa, upakuaji utaanza moja kwa moja na mtumiaji hataulizwa mahali atakapohifadhi faili. @@ -1750,6 +1785,7 @@ Mpangilio huu ukizimwa au usisanidiwe, maombi ya uthibitisho ya gnubby hayatawekwa kama proksi.</translation> <translation id="5898486742390981550">Watumiaji wengi wanapoingia katika akaunti, ni mtumiaji wa kwanza pekee anayeweza kutumia programu za Android.</translation> +<translation id="5901427587865226597">Uchapishaji kwenye pande mbili pekee</translation> <translation id="5906199912611534122">Huruhusu kuwashwa na kuzimwa kwa kipengele cha kudhibiti mtandao. Hii inatumika kwa watumiaji wote, na violesura vyote kwenye kifaa. Baada ya kuwekwa, udhibiti utaendelea mpaka sera ibadilike ili kuizima. @@ -1856,6 +1892,7 @@ Thamani ya sera inapaswa kubainishwa katika milisekunde. Thamani huwekwa pamoja kuwa chini ya ucheleweshaji wa kutofanya kitu.</translation> <translation id="6097601282776163274">Washa kipengele cha ukusanyaji wa faragha wa data ukitumia ufunguo wa URL</translation> +<translation id="6099853574908182288">Hali chaguomsingi ya uchapishaji wa rangi</translation> <translation id="6111936128861357925">Ruhusu Mchezo Fiche wa Dinosau</translation> <translation id="6114416803310251055">Limepuuzwa</translation> <translation id="6133088669883929098">Ruhusu tovuti zote zitumie uundaji ufunguo</translation> @@ -1870,6 +1907,7 @@ Ikiwa sera hii haitawekwa, thamani chaguomsingi itatumiwa kwa tovuti zote kutoka kwenye sera ya 'DefaultPluginsSetting' endapo itawekwa, au mtumiaji akiweka mipangilio mwenyewe.</translation> <translation id="6190022522129724693">Mpangilio chaguomsingi za ibukizi</translation> +<translation id="6190367314942602985">Ripoti maelezo ya Utambulisho wa Mtumiaji</translation> <translation id="6197453924249895891">Hutoa idhini ya kufikia vitufe vya shirika vya viendelezi. Vitufe vinateuliwa kwa matumizi ya shirka ikiwa vitazalishwa kwa kutumia API ya chrome.platformKeys kwenye akaunti inayodhibitiwa. Vitufe vinavyoletwa au kuzalishwa kwa njia nyingine haviteuliwi kwa ajili ya matumizi ya shirika. @@ -1879,6 +1917,8 @@ Kwa chaguomsingi kiendelezi hakiwezi kutumia kitufe kilichoteuliwa kwa ajili ya matumizi ya shirika, ambayo ni sawa na kuweka allowCorporateKeyUsage kwenye sivyo kwa kiendelezi hicho. Ikiwa tu allowCorporateKeyUsage itawekwa kuwa ndivyo kwa kiendelezi, inaweza kutumia mfumo wa kitufe chochote kilichowekewa alama kwa ajili ya matumizi ya shirika kutia sahihi data isiyo na mpangilio. Ruhusa hii inapaswa tu kutolewa kama kiendelezi kinaaminiwa kuweka ufikiaji salama wa kitufe dhidi ya wavamizi.</translation> +<translation id="6208896993204286313">Ripoti Maelezo ya Sera ya <ph name="PRODUCT_NAME" /></translation> +<translation id="6210259502936598222">Ripoti Maelezo ya Mfumo wa Uendeshaji na ya Toleo la <ph name="PRODUCT_NAME" /></translation> <translation id="6211428344788340116">Ripoti muda wa shughuli za kifaa. Ikiwa mpangilio huu hautawekwa au utawekwa kuwa Ukweli, vifaa vilivyosajiliwa vitaripoti vipindi vya muda mtumiaji anapotumia kifaa. Ikiwa mpangilio huu utawekwa kuwa Uongo, muda wa shughuli za kifaa hautarekodiwa wala kuripotiwa.</translation> @@ -1896,6 +1936,7 @@ Ukiwezesha mpangilio huu, na lango lisilo wastani (yaani, lango jingine lisilo la 80 au 443) liingizwe, itajumuishwa katika Kerberos SPN iliyotengenezwa. Ukilemaza mpangilio huu au uuache bila kuwekwa, Kerberos SPN zilizotengenezwa hazitajumuisha lango kwa namna yoyote.</translation> +<translation id="6261643884958898336">Ripoti maelezo ya Utambulisho wa Mashine</translation> <translation id="6281043242780654992">Sanidi sera za Ujumbe Asili. Wapangishi wa ujumbe asili ambao hawajaidhinishwa hawataruhusiwa isipokuwa kama wamepewa idhini.</translation> <translation id="6282799760374509080">Ruhusu au upinge kurekodi sauti</translation> <translation id="6284362063448764300">TLS 1.1</translation> @@ -1926,6 +1967,7 @@ Ukichagua kugundua seva mbadala kiotomatiki, URL ya hati "http://wpad/wpad.dat" hutolewa kwa programu za Android. Hakuna sehemu nyingine ya itifaki ya kugundua kiotomatiki inayotumiwa. Ukichagua kutumia hati ya seva mbadala ya a .pac, URL ya hati inatolewa kwa programu za Android.</translation> +<translation id="6430366557948788869">Kiendelezi cha Kuripoti Chrome</translation> <translation id="6440051664870270040">Ruhusu tovuti zivinjari kwa wakati mmoja na zifungue madirisha ibukizi</translation> <translation id="6447948611083700881">Vipengele vya kuhifadhi nakala na kurejesha vimezimwa</translation> <translation id="645425387487868471">Washa kulazimisha kuingia katika akaunti ya <ph name="PRODUCT_NAME" /></translation> @@ -1972,6 +2014,7 @@ <translation id="6628646143828354685">Hukuruhusu kuweka ikiwa tovuti zinaruhusiwa kupata idhini ya kufikia vifaa vya karibu vya Bluetooth. Idhini ya kufikia inaweza kuzuiwa kabisa, au mtumiaji anaweza kuulizwa kila wakati tovuti inapotaka kufikia vifaa vya karibu vya Bluetooth. Sera hii ikiachwa bila kuwekwa, chaguo la '3' litatumiwa, na mtumiaji ataweza kulibadilisha.</translation> +<translation id="663685822663765995">Dhibiti hali ya uchapishaji wa rangi</translation> <translation id="6641981670621198190">Lemaza uhimili wa API za michoro ya 3D</translation> <translation id="6647965994887675196">Ikiwekwa kuwa kweli, akaunti za watumiaji wanaosimamiwa zitaweza kufunguliwa na kutumiwa. @@ -1996,6 +2039,7 @@ 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="6698632841807204978">Ruhusu uchapishaji wa rangi nyeusi na nyeupe</translation> <translation id="6699880231565102694">Wezesha uthibitishaji wa vipengee viwili kwa wapangishaji wa ufikivu wa mbali</translation> <translation id="6724842112053619797">Ukiiwasha mipangilio hii, mipangilio iliyohifadhiwa kwenye wasifu wa <ph name="PRODUCT_NAME" /> kama vile alamisho, data ya kujaza kiotomatiki, manenosiri, n.k. pia vitaandikwa kwenye faili iliyohifadhiwa kwenye folda ya wasifu wa mtumiaji mwingine au kwenye eneo lililobainishwa na Msimamizi kupitia sera ya <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Ukiiwasha sera hii, usawazishaji kwenye wingu utazimwa. @@ -2034,6 +2078,13 @@ Mipangilio hii hudhibiti uwasilishaji wa kurasa za utangulizi ambazo husaidia watumiaji kuingia katika akaunti ya <ph name="PRODUCT_NAME" />, kuichagua iwe kivinjari chaguomsingi au kuwafahamisha kuhusu vipengele vya bidhaa.</translation> <translation id="6766216162565713893">Ruhusu tovuti zimwombe mtumiaji atoe idhini ya kufikia vifaa vya karibu vya Bluetooth</translation> <translation id="6770454900105963262">Ripoti taarifa kuhusu vipindi vya skrini nzima vinavyoendelea</translation> +<translation id="6773056206551814546">Sera hii inadhibiti iwapo unapaswa kuripoti maelezo yanayoweza kutumika kutambua mashine, kama vile jina la mashine na anwani za mtandao. + + Mipangilio ya sera hii isipowekwa au ikiwekewa mipangilio ya Ndivyo, maelezo yanayoweza kutumika kutambulisha mashine yanakusanywa. + + Sera hii ikiwekewa mipangilio ya Sivyo, maelezo yanayoweza kutumika kutambulisha mashine hayakusanywi. + + Sera hii inatumika tu wakati umewasha Kiendelezi cha Kuripoti Chrome na Kipengele ha Kudhibiti Wingu.</translation> <translation id="6786747875388722282">Viendelezi</translation> <translation id="6786967369487349613">Weka saraka ya wasifu isiyo ya kawaida</translation> <translation id="6810445994095397827">Zuia JavaScript kwenye tovuti hizi</translation> @@ -2140,6 +2191,7 @@ <translation id="6923366716660828830">Inabainisha jina la mtoaji wa utafutaji chaguo -msingi. Likiachwa tupu au bila kuwekwa, jina la mpangishaji lililobainishwa na URL ya utafutaji litatumiwa. Sera hii inazingatiwa tu ikiwa sera ya 'DefaultSearchProviderEnabled' itawezeshwa.</translation> +<translation id="6926703471186170050">Ruhusu uchapishaji wa pande mbili ukurasa ukiwa mlalo</translation> <translation id="6931242315485576290">Lemaza usawazishaji wa data iliyna Google</translation> <translation id="6936894225179401731">Inabainisha idadi ya juu ya miunganisho sawia katika seva ya proksi. @@ -2347,6 +2399,7 @@ Ikiwa mipangilio hii itazimwa au haitawekwa basi watumiaji wataweza kuchagua kuenda kwenye tovuti iliyoripotiwa baada ya kuonyeshwa onyo. Angalia https://developers.google.com/safe-browsing ili upate maelezo zaidi kuhusu Kuvinjari Salama.</translation> +<translation id="737655323154569539">Hudhibiti uchapishaji wa ukubwa wa ukurasa. Usipoweka mipangilio ya sera itachukuliwa kuwa hamna kudhibiti.</translation> <translation id="7417728346887499628">Ikiwa sera imezimwa, itazuia Kipengele cha Kusafisha Chrome kisichanganue mfumo kubaini programu zisizotakikana na kuziondoa. Uwezo wa kuanzisha Kipengele cha Kusafisha Chrome kutoka chrome://settings/cleanup umezimwa. Ikiwa sera imewekwa kuwa ndivyo au haijawekwa, Kipengele cha Kusafisha Chrome kitakagua mfumo mara kwa mara ili kubaini programu zisizotakikana. Ikiwa programu yoyote itapatikana, kitamwuliza mtumiaji iwapo angependa kuiondoa. Uwezo wa kuanzisha Kipengele cha Kusafisha Chrome kutoka chrome://settings umewashwa. @@ -2417,6 +2470,8 @@ <translation id="7617319494457709698">Sera hii hubainisha viendelezi vinavyoruhusiwa kutumia utendaji wa <ph name="ENTERPRISE_PLATFORM_KEYS_API" /> <ph name="CHALLENGE_USER_KEY_FUNCTION" /> kwa uthibitishaji wa mbali. Lazima viendelezi viongezwe kwenye orodha hii ili kutumia API. Ikiwa kiendelezi hakiko kwenye orodha, au orodha haijawekwa, mawasiliano na API hayatafanikiwa na kutakuwa na msimbo wa hitilafu.</translation> +<translation id="7618907117929117943">Rejesha na uendelee kutumia toleo lengwa ikiwa toleo la mfumo wa uendeshaji ni jipya zaidi kuliko toleo lengwa na unaweza kuleta mipangilio ya kiwango cha kifaa (ikiwa ni pamoja na kitambulisho cha mtandao) unaporejesha. Pia, unaweza kuruka OOBE baada ya kurejesha. Usitekeleze wala kughairi urejeshaji ikiwa haiwezekani (kwa sababu toleo lengwa haliwezi kurejesha data au kutokana na mabadiliko ya urejeshaji yasiyooana). + Inaweza kutumika kwenye toleo la 70 na la juu zaidi la <ph name="PRODUCT_OS_NAME" />. Kwa viteja vya zamani zaidi, thamani hii ina maana kuwa urejeshaji umezimwa.</translation> <translation id="7625444193696794922">Hubainisha kituo cha kutoa ambacho kifaa hiki kinastahili kufungiwa kwacho.</translation> <translation id="7632724434767231364">Jina la maktaba ya GSSAPI</translation> <translation id="7635471475589566552">Inasanidi lugha ya programu katika <ph name="PRODUCT_NAME" /> na huzuia watumiaji kubadilisha lugha. @@ -2611,6 +2666,7 @@ Ukiwasha mipangilo hii au usiweke thamani yoyote, kipengele cha Kujaza Kiotomatiki kitasalia chini ya udhibiti wa mtumiaji. Hali hii itaruhusu watumiaji kupanga wasifu wa kipengele cha Kujaza Kiotomatiki na kuwasha au kuzima kipengele cha Kujaza Kiotomatiki wakati wowote.</translation> <translation id="8044493735196713914">Ripoti modi ya kuwasha kifaa</translation> <translation id="8050080920415773384">Uchapishaji Asilia</translation> +<translation id="8053580360728293758">Inabatilisha hali chaguomsingi ya rangi ya kuchapisha. Ikiwa hali haipatikani, sera hii haitazingatiwa.</translation> <translation id="8059164285174960932">URL ambapo seva teja za ufikiaji wa mbali zinapaswa kupata tokeni za uthibitishaji</translation> <translation id="8078366200175825572">Inakuruhusu kuweka orodha ya ruwaza za url zinayobainisha tovuti zinazoruhusiwa kuweka vidakuzi. Ikiwa sera hii itaachwa bila kuwekwa, thamani chaguomsingi itatumiwa kwa tovuti zote kutoka kwenye sera ya 'DefaultCookiesSetting' endapo itawekwa, au mtumiaji akiweka mipangilio mwenyewe. @@ -2786,6 +2842,7 @@ Katika hali hii "Toleo" linaweza kuwa toleo halisi kama vile toleo la '61.0.3163.120' au kiambishi cha toleo, kama vile '61.0' </translation> <translation id="8544375438507658205">Kionyeshi chaguo-msngi cha HTML kwa<ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">Ruhusu Ujumbe wa SMS kusawazishwa kutoka simu hadi Chromebook.</translation> +<translation id="8548832052135586762">Inaweka uchapishaji wa rangi pekee, rangi moja nyeupe na nyeusi pekee au kudhibiti hali isiyo na rangi. Sera ambayo haijawekewa mipangilio inachukuliwa kuwa hamna kudhibiti.</translation> <translation id="8549772397068118889">Tahadharisha ninapotembelea tovuti zilizo nje ya vifurushi vya maudhui</translation> <translation id="8566842294717252664">Ficha duka la wavuti kwenye ukurasa mpya wa kichupo na kifungua programu cha Chrome</translation> <translation id="8586528890725660268">Hubainisha printa ambazo mtumiaji hawezi kutumia. @@ -2898,6 +2955,7 @@ Kama mipangilio hii haitawekwa, mtumiaji anaweza kuamua kutumia kipengele hiki au asikitumie.</translation> <translation id="8870318296973696995">Ukurasa wa Kwanza</translation> +<translation id="8876188741456358123">Inabatilisha hali chaguomsingi ya kuchapisha kwenye pande mbili. Ikiwa hali haipatikani, sera hii haizingatiwi.</translation> <translation id="8882006618241293596">Zuia programu-jalizi ya <ph name="FLASH_PLUGIN_NAME" /> kwenye tovuti hizi</translation> <translation id="890403179930035128">Lazimisha kuwasha kikagua tahajia cha lugha. Lugha ambazo hazitambuliki katika orodha hii hazitakaguliwa. @@ -2982,6 +3040,8 @@ <translation id="9084985621503260744">Bainisha iwapo shughuli za video zinaathiri udhibiti wa nishati</translation> <translation id="9088433379343318874">Washa mtoa huduma za maudhui ya mtumiaji anayesimamiwa</translation> <translation id="9088444059179765143">Weka mbinu ya ugunduzi wa saa za eneo kiotomatiki</translation> +<translation id="9094064873808699479">Rejesha na uendelee kutumia toleo lengwa ikiwa toleo la mfumo wa uendeshaji ni jipya zaidi kuliko toleo lengwa. Jaribu kuleta mipangilio kwenye kiwango cha kifaa (ikiwa ni pamoja na kitambulisho cha mtandao) kupitia mchakato wa urejeshaji, ikiwezekana, lakini usirejeshe katika hali kamili ya Powerwash hata kama urejeshaji wa data hauwezekani (kwa sababu toleo lengwa haliwezi kurejesha data au kutokana na mabadiliko ya urejeshaji yasiyooana). + Inaweza kutumika kwenye toleo la 70 na la juu zaidi la <ph name="PRODUCT_OS_NAME" />. Kwa viteja vya zamani zaidi, thamani hii ina maana kuwa urejeshaji umezimwa.</translation> <translation id="9096086085182305205">Orodha ya kuidhinisha ya seva ya uthibitishaji</translation> <translation id="9098553063150791878">Sera za uthibitishaji wa HTTP</translation> <translation id="9105265795073104888">Chaguo za kuweka mipangilio ya seva mbadala zinazofuata pekee hupatikana kwa programu za Android. Programu za Android zinaweza kuchagua kutumia seva mbadala. Huwezi kuzilazimisha zitumie seva mbadala.</translation> @@ -3041,6 +3101,13 @@ <translation id="9187743794267626640">Lemaza uangikaji wa hifadhi ya nje</translation> <translation id="9197740283131855199">Asilimia ambayo mwangaza wa skrini utaongezwa uchelewaji iwapo mtumiaji anaanza kutumia baada ya kupunguza mwangaza</translation> <translation id="9200828125069750521">Vigezo vya URL ya picha inayotumia POST</translation> +<translation id="920209539000507585">Lazimisha 'vichwa na vijachini' viwashwe au vizimwe kwenye kidirisha cha kuchapisha. + + Ikiwa sera haijawekwa, mtumiaji anaweza kuamua iwapo atachapisha vichwa na vijachini. + + Ikiwa mipangilio ya sera imwekwa kuwa ya sivyo, 'Vichwa na vijachini' havitachaguliwa kwenye kidirisha cha onyesho la kukagua uchapishaji, na mtumiaji hawezi kuibadilisha. + + Ikiwa mipangilio ya sera imewekwa kuwa ya ndivyo, 'Vichwa na vijachini' vitachaguliwa kwenye kidirisha cha onyesho la kukagua uchapishaji, na mtumiaji hawezi kuibadilisha.</translation> <translation id="9210953373038593554">Huweka mipangilio ya aina ya uthibitishaji wa kuingia katika akaunti kupitia SAML. Wakati sera hii imeweka au haijawekwa kuwa Chaguomsingi (thamani ya 0), hali ya kuingia katika akaunti kupitia SAML inabainishwa na kivinjari kulingana na sifa zingine. Katika hali msingi kabisa, uthibitishaji na ulinzi wa akiba ya data ya mtumiaji hulingana na manenosiri yanayowekwa na watumiaji wenyewe. @@ -3048,6 +3115,9 @@ Wakati sera hii imewekwa kuwa Cheti cha Kiteja (thamani ya 1), uthibitishaji wa cheti cha kiteja hutumiwa kwa watumiaji wapya walioongezwa ambao wanaingia katika akaunti wakitumia SAML. Hakuna manenosiri yanayotumiwa kwa watumiaji kama hawa na akiba ya data yao iliyohifadhiwa inalindwa kwa kutumia funguo za kriptografia zinazowiana. Kwa mfano, mipangilio hii inaruhusu kuweka mipangilio ya kadi mahiri kulingana na uthibitishaji wa mteja (kumbuka programu zinazotumika kati ya kadi mahiri na programu zinapaswa kusakinishwa kupitia DeviceLoginScreenAppInstallList). Sera hii inaathiriwa watumiaji ambao wanathibitisha kupitia SAML pekee.</translation> +<translation id="9211439035693857287">Weka mipangilio inayohusiana na sera za Kiendelezi cha Kuripoti Chrome. + + Sera hizi zinaweza kutumika tu wakati umewasha Kiendelezi cha Kuripoti Chrome na Kipengele cha Kudhibiti Wingu.</translation> <translation id="9213347477683611358">Weka mipangilio ya picha ya mandhari ya kiwango cha kifaa ambayo inaonyeshwa kwenye skrini ya kuingia katika akaunti ikiwa hakuna mtumiaji aliyeingia katika kifaa. Sera inawekwa kwa kubainisha URL ambayo kifaa cha Mfumo wa Uendeshaji wa Chrome kinaweza kupakua picha ya mandhari na hash ya kriptografia inayotumiwa kuthibitisha kwamba kipakuliwa hakina virusi. Lazima picha iwe ya aina ya faili ya JPEG, ukubwa wake usizidi MB 16. Lazima URL ifikiwe bila uthibitishaji wowote. Picha ya mandhari hupakuliwa na kuakibishwa. Itapakuliwa tena wakati URL au hash inabadilika. Sera inapaswa kubainishwa kama mfuatano unaoeleza URL na hash katika aina ya faili ya JSON, kwa mfano,
diff --git a/components/policy/resources/policy_templates_ta.xtb b/components/policy/resources/policy_templates_ta.xtb index 5e4daae..8ab4e71 100644 --- a/components/policy/resources/policy_templates_ta.xtb +++ b/components/policy/resources/policy_templates_ta.xtb
@@ -182,6 +182,7 @@ <translation id="1522425503138261032">பயனரின் நிஜ இருப்பிடத்தை தடமறிவதற்கு தளங்களை அனுமதி</translation> <translation id="152657506688053119">இயல்புநிலை தேடல் வழங்குநருக்கான மாற்று URLகளின் பட்டியல்</translation> <translation id="1530812829012954197">ஹோஸ்ட் உலாவியில் பின்வரும் URL பேட்டர்ன்களை எப்போதும் ரெண்டர் செய்க</translation> +<translation id="1541170838458414064">அச்சிடும் பக்க அளவைக் கட்டுப்படுத்தும்</translation> <translation id="1553684822621013552">இந்தக் கொள்கையை true என அமைத்தால், பயனருக்கு ARC இயக்கப்படும் (கூடுதல் கொள்கை அமைப்புகள் சோதனைகளுக்கு உட்படும் - நடப்பு பயனர் அமர்வில் குறுகியகால பயன்முறை அல்லது பல உள்நுழைவு இயக்கப்பட்டால், ARC @@ -209,15 +210,15 @@ <translation id="1634989431648355062">இந்தத் தளங்களில் <ph name="FLASH_PLUGIN_NAME" /> செருகுநிரலை அனுமதி</translation> <translation id="1655229863189977773">வட்டு தற்காலிக சேமிப்பு அளவை பைட்களில் அமை</translation> <translation id="166427968280387991">ப்ராக்ஸி சேவையகம்</translation> -<translation id="1668836044817793277"><ph name="PRODUCT_OS_NAME" /> பதிப்பைக் கட்டுப்படுத்துவதற்கு, தானாகவே உடனடியாகத் துவங்கும் கியோஸ்க் பயன்பாட்டை அனுமதிப்பது தொடர்பான செயல்முறை. +<translation id="1668836044817793277"><ph name="PRODUCT_OS_NAME" /> பதிப்பைக் கட்டுப்படுத்துவதற்கு, தானாகவே உடனடியாகத் துவங்கும் கியோஸ்க் ஆப்ஸை அனுமதிப்பது தொடர்பான கொள்கை. - இந்தக் கொள்கை அதன் மேனிஃபெஸ்ட்டில் required_platform_version இன் மதிப்பை அறிவித்து, அதைத் தானியங்கு புதுப்பிப்புக்கான இலக்குப் பதிப்பு முன்னொட்டாகப் பயன்படுத்தி, <ph name="PRODUCT_OS_NAME" /> பதிப்பைக் கட்டுப்படுத்துவதற்கு, தானாகவே உடனடியாகத் துவங்கும் கியோஸ்க் பயன்பாட்டை அனுமதிப்பதைக் கட்டுப்படுத்தும். + இந்தக் கொள்கை அதன் மெனிஃபெஸ்ட்டில் required_platform_version மதிப்பை அறிவிப்பதன் மூலம் <ph name="PRODUCT_OS_NAME" /> பதிப்பைக் கட்டுப்படுத்தி, அதைத் தானியங்கு புதுப்பிப்புக்கான இலக்குப் பதிப்பு முன்னொட்டாகப் பயன்படுத்த, தானாகவே உடனடியாகத் துவங்கும் கியோஸ்க் ஆப்ஸை அனுமதிப்பதைக் கட்டுப்படுத்தும். - கொள்கையை ”சரி” என அமைத்தால், தானாகவே உடனடியாகத் துவங்கும் கியோஸ்க் பயன்பாட்டின் required_platform_version மேனிஃபெஸ்ட் குறியீட்டின் மதிப்பானது தானியங்கு புதுப்பிப்புக்கான இலக்குப் பதிப்பு முன்னொட்டாகப் பயன்படுத்தப்படும். + கொள்கையை ”சரி” என அமைத்தால், தானாகவே உடனடியாகத் துவங்கும் கியோஸ்க் ஆப்ஸின் required_platform_version மெனிஃபெஸ்ட் குறியீட்டின் மதிப்பானது தானியங்கு புதுப்பிப்புக்கான இலக்குப் பதிப்பு முன்னொட்டாகப் பயன்படுத்தப்படும். - கொள்கையை உள்ளமைக்கவில்லை என்றாலோ அல்லது ”தவறு” என அமைத்தாலோ, required_platform_version மேனிஃபெஸ்ட் குறியீடு நிராகரிக்கப்பட்டு, தானியங்கு புதுப்பிப்பு இயல்பாகவே நடைபெறும். + கொள்கையை உள்ளமைக்கவில்லை என்றாலோ ”தவறு” என அமைத்தாலோ, required_platform_version மெனிஃபெஸ்ட் குறியீடு நிராகரிக்கப்பட்டு, தானியங்கு புதுப்பிப்பு இயல்பாகவே நடைபெறும். - எச்சரிக்கை: <ph name="PRODUCT_OS_NAME" /> பதிப்பின் கட்டுப்பாட்டை கியோஸ்க் பயன்பாட்டிற்கு வழங்க வேண்டாம் எனப் பரிந்துரைக்கிறோம். ஏனெனில், சாதனமானது மென்பொருள் புதுப்பிப்புகளையும் முக்கியமான பாதுகாப்புத் திருத்தங்களையும் பெறுவதை இது தடுக்கக்கூடும். <ph name="PRODUCT_OS_NAME" /> பதிப்பின் கட்டுப்பாட்டை வழங்கினால், பயனர்களுக்கு சிக்கல்கள் ஏற்படலாம்.</translation> + எச்சரிக்கை: <ph name="PRODUCT_OS_NAME" /> பதிப்பின் கட்டுப்பாட்டை கியோஸ்க் ஆப்ஸுக்கு வழங்க வேண்டாம் எனப் பரிந்துரைக்கிறோம். இது மென்பொருள் புதுப்பிப்புகளையும் முக்கியமான பாதுகாப்புத் திருத்தங்களையும் பெறுவதிலிருந்து சாதனத்தைத் தடுக்கக்கூடும். <ph name="PRODUCT_OS_NAME" /> பதிப்பின் கட்டுப்பாட்டை வேறு ஆப்ஸிற்கு வழங்கினால், பயனர்களுக்கு சிக்கல்கள் ஏற்படலாம்.</translation> <translation id="1675002386741412210">இவற்றில் ஆதரிக்கப்படுகிறது:</translation> <translation id="1679420586049708690">தானியங்கு உள்நுழைவிற்கான பொது அமர்வு</translation> <translation id="1689963000958717134"><ph name="PRODUCT_OS_NAME" /> சாதனத்தைப் பயன்படுத்தும் அனைவருக்கும் நெட்வொர்க் உள்ளமைவைக் கொடுக்க அனுமதிக்கிறது. இந்த நெட்வொர்க் உள்ளமைவு <ph name="ONC_SPEC_URL" /> இல் விளக்கப்பட்டுள்ளபடி திறந்த நெட்வொர்க் உள்ளமைவு வடிவத்தால் வரையறுக்கப்பட்ட JSON-வடிவமைப்புத் தொடராகும்</translation> @@ -332,7 +333,7 @@ <translation id="199764499252435679"><ph name="PRODUCT_NAME" /> இல் கூறுகள் தொடர்பான புதுப்பிப்புகளை இயக்கும்</translation> <translation id="2006530844219044261">ஆற்றல் நிர்வாகம்</translation> <translation id="201557587962247231">சாதனத்தின் நிலை அறிக்கை ஏற்றப்படும் கால இடைவெளி</translation> -<translation id="2017301949684549118">இணைய ஆப்ஸின் URLகள் மௌனமாக நிறுவப்பட வேண்டும்.</translation> +<translation id="2017301949684549118">மௌனமாக நிறுவப்பட வேண்டிய இணைய ஆப்ஸின் URLகள்.</translation> <translation id="2018836497795982119">பயனர் கொள்கை தகவலை சாதன மேலாண்மை சேவை வினவும் சூழல்களில், காலத்தை மில்லிவினாடிகளில் குறிப்பிடும். இந்தக் கொள்கையை அமைத்தால், இயல்புமதிப்பான 3 மணிநேரத்தை மீறி இது செயல்படும். இந்தக் கொள்கைக்கான செல்லுபடியாகும் மதிப்புகள்: 1800000 (30 நிமிடங்கள்) முதல் 86400000 (1 நாள்) வரை. இந்த வரம்பில் இல்லாத எந்த மதிப்பும், செல்லுபடியாகும் மதிப்பின்படி மாற்றப்படும். இயங்குதளம் கொள்கை அறிவிப்புகளை ஆதரித்தால், புதுப்பிப்பிற்கான தாமதம் 24 மணிநேரமாக அமைக்கப்படும். ஏனெனில் பாலிசி மாற்றங்கள் ஏற்படும் போதெல்லாம், பாலிசி அறிவிப்புகள் தானாகவே புதுப்பிக்கும் என எதிர்பார்க்கப்படுகிறது. @@ -345,7 +346,7 @@ <translation id="203096360153626918">Android பயன்பாடுகளில் இந்தக் கொள்கை எந்த மாற்றத்தையும் ஏற்படுத்தாது. இந்தக் கொள்கை <ph name="FALSE" />க்கு அமைக்கப்பட்டாலும், அவற்றால் முழுத்திரைப் பயன்முறைக்குச் செல்ல முடியும்.</translation> <translation id="2043770014371753404">முடக்கப்பட்ட நிறுவனப் பிரிண்டர்கள்</translation> <translation id="2057317273526988987">URLகளின் பட்டியலுக்கு அணுகலை அனுமதிக்கும்</translation> -<translation id="206623763829450685"><ph name="PRODUCT_NAME" /> ஆதரிக்கும் HTTP அங்கீகாரத் திட்டங்களைக் குறிப்பிடும். +<translation id="206623763829450685"><ph name="PRODUCT_NAME" /> ஆதரிக்கும் HTTP அடையாளத் திட்டங்களைக் குறிப்பிடும். 'basic', 'digest', 'ntlm' மற்றும் 'negotiate' ஆகியவை சாத்தியமுள்ள மதிப்புகள் ஆகும். பலவகை மதிப்புகளைக் காற்புள்ளியைக் கொண்டு பிரிக்கவும். @@ -357,6 +358,12 @@ <translation id="2082205219176343977">சாதனத்திற்கு அனுமதிக்கப்படும் குறைந்தபட்ச Chrome பதிப்பை உள்ளமை.</translation> <translation id="209586405398070749">நிலையான சேனல்</translation> <translation id="2098658257603918882">பயன்பாடு மற்றும் செயலிழப்பு தொடர்பான தரவை அனுப்புவதை இயக்கு</translation> +<translation id="2098916259427011890">OS பதிப்பு, OS இயங்குதளம், OS கட்டமைப்பு, <ph name="PRODUCT_NAME" /> பதிப்பு மற்றும் <ph name="PRODUCT_NAME" /> சேனல் போன்ற பதிப்புத் தகவல்களைத் தெரிவிப்பதா என்பதை இந்தக் கொள்கை கட்டுப்படுத்தும். + + இந்தக் கொள்கையை அமைக்காவிட்டால் அல்லது ‘சரி’ என அமைத்தால், பதிப்புத் தகவல் சேகரிக்கப்படும். + இந்தக் கொள்கையை ‘தவறு’ என அமைத்தால், பதிப்புத் தகவல் சேகரிக்கப்படாது. + + Chrome அறிக்கையிடுதல் நீட்டிப்பும் கிளவுட் நிர்வாகமும் இயக்கப்பட்டால் மட்டுமே இந்தக் கொள்கை செயலில் இருக்கும்.</translation> <translation id="2111016292707172233"><ph name="PRODUCT_NAME" /> இன் உள்ளடக்கக் காட்சியில், தேடுவதற்குத் தட்டு எனும் அம்சத்தைக் கிடைக்கச் செய்யும். இந்த அமைப்பை இயக்கினால், தேடுவதற்குத் தட்டும் அம்சம் பயனருக்குக் கிடைக்கும். அம்சத்தை இயக்குதல் அல்லது முடக்குதலை அவர்களே தேர்வுசெய்யலாம். @@ -391,6 +398,8 @@ இந்த அமைப்பை இயக்கினால், கேப்டிவ் போர்டல் அங்கீகாரப் பக்கங்கள் ஏதேனும் இருந்தால் (அதாவது <ph name="PRODUCT_NAME" /> வெற்றிகரமான இணைய இணைப்பைக் கண்டறியும் வரை கேப்டிவ் போர்டல் உள்நுழைவுப் பக்கம் தொடங்கி அனைத்து இணையப் பக்கங்களும்), அவை தனிச் சாளரத்தில் காண்பிக்கப்படும், தற்போதைய பயனருக்கான அனைத்துக் கொள்கை அமைப்புகளும் கட்டுப்பாடுகளும் புறக்கணிக்கப்படும். இந்த அமைப்பை முடக்கினால் அல்லது அமைக்காமல் விட்டால், கேப்டிவ் போர்டல் அங்கீகாரப் பக்கங்கள் ஏதேனும் இருந்தால், அவை தற்போதைய பயனரின் ப்ராக்ஸி அமைப்புகளைப் பயன்படுத்தி, (வழக்கமான) புதிய உலாவித் தாவலில் காண்பிக்கப்படும்.</translation> +<translation id="214901426630414675">அச்சிடும் டூப்ளெக்ஸ் பயன்முறையைக் கட்டுப்படுத்தும்</translation> +<translation id="2149330464730004005">வண்ண அச்சிடலை இயக்கு</translation> <translation id="2156132677421487971">தாவல்கள், தளங்கள் அல்லது டெஸ்க்டாப்பின் உள்ளடக்கத்தை, உலாவியிலிருந்து தொலைநிலையில் உள்ள திரைகள் மற்றும் ஆடியோ சாதனங்களுக்கு அனுப்ப பயனர்களை அனுமதிக்கும் <ph name="PRODUCT_NAME" /> அம்சத்திற்கான கொள்கைகளை உள்ளமைக்கும்.</translation> <translation id="2166472654199325139">வயதுவந்தோர் உள்ளடக்கம் உள்ள தளங்களை வடிகட்ட வேண்டாம்</translation> <translation id="2168397434410358693">AC சக்தியில் இயங்கும்போது செயலற்ற நிலை தாமதமாகும்</translation> @@ -451,19 +460,19 @@ இந்தக் கொள்கை அமைக்காமல் இருக்கும்போது, எந்த எச்சரிக்கை உரையாடலும் காண்பிக்கப்படாது. கொள்கையின் மதிப்பானது மில்லிவினாடிகளில் குறிப்பிடப்படும். மதிப்புகளானது செயலற்றநிலையின் தாமதத்திற்கு குறைவாகவோ அல்லது சமமாகவோ பிணைக்கப்பட்டிருக்கும்.</translation> -<translation id="2289578386193672044">பயனரின் குறுக்கீடு இல்லாமல் பின்னணியில் நிறுவப்படும், பயனரால் நிறுவல் நீக்க முடியாத மற்றும் முடக்க முடியாத பயன்பாடுகள் மற்றும் நீட்டிப்புகளின் பட்டியலைக் குறிப்பிடும். பயன்பாடு/நீட்டிப்பின் இனிவரும் பதிப்புகள் கோரும் ஏதேனும் கூடுதல் அனுமதிகள் உட்பட, பயன்பாடுகள்/நீட்டிப்புகள் கோரும் எல்லா அனுமதிகளும் பயனரின் குறுக்கீடு இல்லாமல் மறைமுகமாக வழங்கப்படும். மேலும், enterprise.deviceAttributes மற்றும் enterprise.platformKeys நீட்டிப்பு APIகளுக்கு அனுமதிகள் வழங்கப்படும். (தானாக நிறுவப்படாத பயன்பாடுகள்/நீட்டிப்புகளுக்கு இந்த இரண்டு APIகள் இல்லை.) +<translation id="2289578386193672044">பயனரின் பங்கு இல்லாமல் பின்னணியில் நிறுவப்படும், பயனரால் நிறுவல் நீக்க முடியாத மற்றும் முடக்க முடியாத ஆப்ஸ் மற்றும் நீட்டிப்புகளின் பட்டியலைக் குறிப்பிடும். ஆப்ஸ்/நீட்டிப்பின் இனிவரும் பதிப்புகள் கோரும் ஏதேனும் கூடுதல் அனுமதிகள் உட்பட, அவை கோரும் எல்லா அனுமதிகளும் பயனரின் பங்கு இல்லாமல் தானாகவே வழங்கப்படும். மேலும், enterprise.deviceAttributes மற்றும் enterprise.platformKeys நீட்டிப்பு APIகளுக்கு அனுமதிகள் வழங்கப்படும். (தானாக நிறுவப்படாத ஆப்ஸ்/நீட்டிப்புகளுக்கு இந்த இரண்டு APIகளும் இல்லை.) - ஏதேனும் <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> கொள்கையுடன் இந்தக் கொள்கை முரண்பட்டால், இந்தக் கொள்கையே மேலோங்கி செயல்படும். ஏற்கனவே கட்டாயமாக நிறுவப்பட்ட பயன்பாடு அல்லது நீட்டிப்பு இந்தப் பட்டியலிலிருந்து அகற்றப்பட்டால், அதை <ph name="PRODUCT_NAME" /> தானாகவே நிறுவல்நீக்கும். + ஏதேனும் <ph name="EXTENSION_INSTALL_BLACKLIST_POLICY_NAME" /> கொள்கையுடன் இந்தக் கொள்கை முரண்பட்டால், இந்தக் கொள்கையே மேலோங்கி செயல்படும். ஏற்கனவே கட்டாயமாக நிறுவப்பட்ட ஒரு ஆப்ஸோ நீட்டிப்போ இந்தப் பட்டியலிலிருந்து அகற்றப்பட்டால், அதை <ph name="PRODUCT_NAME" /> தானாகவே நிறுவல்நீக்கும். - <ph name="MS_AD_NAME" /> டொமைனில் சேராத Windows இன் நேர்வுகளுக்கு, Chrome இணைய அங்காடியில் பட்டியலிடப்பட்டிருக்கும் பயன்பாடுகள் மற்றும் நீட்டிப்புகளுக்கு மட்டுமே கட்டாய நிறுவல் மேற்கொள்ளப்படும். + <ph name="MS_AD_NAME" /> டொமைனில் சேராத Windows நேர்வுகளுக்கு, Chrome இணைய அங்காடியில் பட்டியலிடப்பட்டிருக்கும் ஆப்ஸுக்கும் நீட்டிப்புகளுக்கும் மட்டுமே கட்டாய நிறுவல் மேற்கொள்ளப்படும். - ஏதேனும் நீட்டிப்பின் மூலக் குறியீட்டை டெவெலப்பர் கருவிகள் மூலம் பயனர்களால் மாற்ற முடியும் (நீட்டிப்பைச் செயல்படாதபடி அமைக்கக்கூடும்) என்பதை நினைவில்கொள்ளவும். இது பிரச்சனையாக இருந்தால், <ph name="DEVELOPER_TOOLS_POLICY_NAME" /> கொள்கையைக் கட்டாயம் அமைக்க வேண்டும். + எந்த ஒரு நீட்டிப்பின் மூலக் குறியீட்டையும் டெவெலப்பர் கருவிகள் மூலம் பயனர்களால் மாற்ற முடியும் (இது சில சமயங்களில் நீட்டிப்பைச் செயல்படாதபடி அமைக்கக்கூடும்) என்பதை நினைவில்கொள்ளவும். இது பிரச்சனையாக இருந்தால், <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லையும் கொண்டுள்ள வார்த்தை ஆகும். நீட்டிப்பு ஐடி என்பது டெவெலப்பர் பயன்முறையில் இருக்கும் போது <ph name="CHROME_EXTENSIONS_LINK" />இல் உள்ளதுபோல் காட்டப்படும் 32 எழுத்துகள் கொண்ட வார்த்தை ஆகும். "புதுப்பிப்பு" 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" />. + எடுத்துக்காட்டாக, <ph name="EXTENSION_POLICY_EXAMPLE" /> ஆனது இயல்பு Chrome இணைய அங்காடியின் "புதுப்பிப்பு" URLலில் இருந்து <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME" /> ஆப்ஸை நிறுவும். நீட்டிப்புகளை ஹோஸ்ட் செய்வது பற்றிய கூடுதல் தகவலுக்கு, பின்வரும் இணைப்பைப் பார்க்கவும்: <ph name="LINK_TO_EXTENSION_DOC2" />. - இந்தக் கொள்கை அமைக்கப்படவில்லை எனில், பயன்பாடுகளோ நீட்டிப்புகளோ தானாக நிறுவப்படாது. பயனர் <ph name="PRODUCT_NAME" /> இல் பயன்பாட்டை அல்லது நீட்டிப்பை நிறுவல் நீக்கலாம்.</translation> + இந்தக் கொள்கை அமைக்கப்படவில்லை எனில், ஆப்ஸோ நீட்டிப்புகளோ தானாக நிறுவப்படாது. பயனர் <ph name="PRODUCT_NAME" /> இல் ஆப்ஸையோ நீட்டிப்பையோ நிறுவல் நீக்கலாம்.</translation> <translation id="2292084646366244343">எழுத்துப்பிழைகளைத் தீர்ப்பதற்கு உதவ <ph name="PRODUCT_NAME" /> Google இணைய சேவையைப் பயன்படுத்தலாம். இந்த அமைப்பு இயக்கப்பட்டால், இந்தச் சேவையானது எப்போதுமே பயன்படுத்தப்படும். இந்த அமைப்பு முடக்கப்பட்டால், இந்தச் சேவை ஒருபோதும் பயன்படுத்தப்படாது. பதிவிறக்கப்பட்ட அகராதியைப் பயன்படுத்தியும் எழுத்துப்பிழை சரிபார்ப்பைச் செயல்படுத்தலாம்; இந்தக் கொள்கையானது ஆன்லைன் சேவையின் பயன்பாட்டை மட்டுமே கட்டுப்படுத்துகிறது. @@ -531,11 +540,11 @@ கொள்கை "சரி" என அமைக்கப்பட்டால், நிகழ்வுகள் பதிவுசெய்யப்படும். கொள்கை "தவறு" என அமைக்கப்பட்டாலோ அல்லது அமைக்கப்படவில்லை என்றாலோ, நிகழ்வுகள் பதிவுசெய்யப்படாது.</translation> -<translation id="244317009688098048">தானியங்கு உள்நுழைவிற்கான மீட்பு விசைப்பலகைக் குறுக்குவழியை இயக்கு. +<translation id="244317009688098048">தானியங்கு உள்நுழைவிற்கான மீட்பு கீபோர்டு ஷார்ட்கட்டை இயக்கும். - இந்தக் கொள்கை அமைக்கப்படவில்லை எனில் அல்லது சரி என்று அமைக்கப்பட்டு, சாதன அகக் கணக்கானது பூஜ்ய தாமத தானியங்கு உள்நுழைவிற்கு உள்ளமைக்கப்பட்டால், <ph name="PRODUCT_OS_NAME" /> ஆனது தானியங்கு உள்நுழைவைப் புறக்கணித்து, உள்நுழைவுத் திரையைக் காண்பிப்பதன் மூலம், Ctrl+Alt+S என்ற விசைப்பலகைக் குறுக்குவழியை அனுமதிக்கிறது. + இந்தக் கொள்கை அமைக்கப்படவில்லை என்றாலோ 'சரி' என்று அமைக்கப்பட்டாலோ, சாதன அகக் கணக்கானது உடனடி தானியங்கு உள்நுழைவிற்கு உள்ளமைக்கப்பட்டால், <ph name="PRODUCT_OS_NAME" /> தானியங்கு உள்நுழைவைப் புறக்கணித்து, உள்நுழைவுத் திரையைக் காட்ட Ctrl+Alt+S என்ற கீபோர்டு ஷார்ட்கட்டை அனுமதிக்கும். - இந்தக் கொள்கை தவறு என்று அமைக்கப்பட்டால், பூஜ்ய தாமத தானியங்கு உள்நுழைவை (உள்ளமைக்கப்பட்டிருந்தால்) புறக்கணிக்க முடியாது.</translation> + இந்தக் கொள்கை 'தவறு' என்று அமைக்கப்பட்டால், உடனடி தானியங்கு உள்நுழைவை (உள்ளமைக்கப்பட்டிருந்தால்) புறக்கணிக்க முடியாது.</translation> <translation id="2463365186486772703">பயன்பாட்டின் மொழி</translation> <translation id="2466131534462628618">ப்ராக்ஸியை நிராகரிக்கும் கேப்டிவ் போர்டல் அங்கீகாரம்</translation> <translation id="2482676533225429905">நேட்டிவ் செய்தியிடல்</translation> @@ -574,6 +583,7 @@ <translation id="2529880111512635313">கட்டாயமாக நிறுவப்பட்ட பயன்பாடுகள் மற்றும் நீட்டிப்புகளின் பட்டியலை உள்ளமை</translation> <translation id="253135976343875019">AC சக்தியில் இயங்கும்போது செயலற்றநிலை எச்சரிக்கை காலதாமதம்</translation> <translation id="2536525645274582300">Google இருப்பிடச் சேவைகளை இயக்க வேண்டுமா என்பதைப் பயனர் தீர்மானிப்பார்</translation> +<translation id="2550593661567988768">சிம்ப்ளெக்ஸ் அச்சிடல் மட்டும்</translation> <translation id="2552966063069741410">நேரமண்டலம்</translation> <translation id="2562339630163277285">உடனடி முடிவுகளை வழங்குவதற்குப் பயன்படுத்தப்படும் தேடல் இன்ஜினின் URLஐக் குறிப்பிடும். URL இல் <ph name="SEARCH_TERM_MARKER" /> சரம் இருக்க வேண்டும், இது வினவல் நேரத்தில் இதுவரை பயனர் உள்ளிட்ட உரையினால் மாற்றப்படும். @@ -630,7 +640,7 @@ Google இன் தேடல் URL ஆனது பின்வருமாறு குறிப்பிடப்படலாம்: <ph name="GOOGLE_SEARCH_URL" />. 'DefaultSearchProviderEnabled' கொள்கை இயக்கப்பட்டிருந்தால், இந்த விருப்பம் கண்டிப்பாக அமைக்கப்பட வேண்டும், மேலும் இந்தச் சூழலில் மட்டும் பயன்படுத்தப்படும்.</translation> -<translation id="2659019163577049044">இந்த அமைப்பு இயக்கப்பட்டால், பயனர்கள் தங்களுடைய ஃபோன்களுக்கும் Chromebookகளுக்கும் இடையே SMS மெசேஜ்களை ஒத்திசைப்பதற்கு தங்கள் சாதனங்களை அமைக்க அனுமதிக்கப்படுவார்கள். இந்தக் கொள்கை அனுமதிக்கப்பட்டால், பயனர்கள் இந்த அம்சத்தை முழுமையாகப் பெறுவதற்கு, அமைவுச் செயல்முறை ஒன்றை முடிக்க வேண்டும். அமைவுச் செயல்முறை முடிந்த பின்னர், பயனர்கள் தங்களுடைய Chromebookகளிலிருந்து SMS மெசேஜ்களை அனுப்பவும் பெறவும் முடியும். +<translation id="2659019163577049044">இந்த அமைப்பு இயக்கப்பட்டால், பயனர்கள் தங்களுடைய ஃபோன்களுக்கும் Chromebookகுகளுக்கும் இடையே SMS மெசேஜ்களை ஒத்திசைப்பதற்குத் தங்கள் சாதனங்களை அமைக்க அனுமதிக்கப்படுவார்கள். இந்தக் கொள்கை அனுமதிக்கப்பட்டால், பயனர்கள் இந்த அம்சத்தை முழுமையாகப் பெறுவதற்கு, அமைவுச் செயல்முறை ஒன்றை முடிக்க வேண்டும். அமைவுச் செயல்முறை முடிந்த பின்னர், பயனர்கள் தங்களுடைய Chromebookகுகளிலிருந்து SMS மெசேஜ்களை அனுப்பவும் பெறவும் முடியும். இந்த அமைப்பு முடக்கப்பட்டால், பயனர்கள் SMS ஒத்திசைவை அமைக்க அனுமதிக்கப்பட மாட்டார்கள். @@ -701,9 +711,12 @@ இந்த அமைப்பை முடக்கினால் அல்லது மதிப்பை அமைக்காமல் இருந்தால், அச்சு மாதிரிக்காட்சியானது இயல்பான இலக்கிடத் தேர்வாக, மிகச் சமீபத்தில் பயன்படுத்திய பிரிண்டரைப் பயன்படுத்தும். இந்த அமைப்பை இயக்கினால், அச்சு மாதிரிக்காட்சியானது இயல்பு இலக்கிடத் தேர்வாக, OS அமைப்பின் இயல்புப் பிரிண்டரைப் பயன்படுத்தும்.</translation> +<translation id="2856674246949497058">OS பதிப்பானது இலக்குப் பதிப்பை விடப் புதியதாக இருந்தால், இலக்குப் பதிப்புக்கு மீட்டமைத்து, அதைப் பயன்படுத்தவும். செயலாக்கத்தின்போது, பவர்வாஷ் செய்யவும்.</translation> <translation id="2872961005593481000">நிறுத்து</translation> +<translation id="2873651257716068683">அச்சிடல் சதவீதப் பக்க அளவுகளை மேலெழுதும். பக்க அளவு இல்லாவிட்டால், இந்தக் கொள்கை புறக்கணிக்கப்படும்.</translation> <translation id="2874209944580848064">Android பயன்பாடுகளை ஆதரிக்கும் <ph name="PRODUCT_OS_NAME" /> சாதனங்களுக்கான குறிப்பு:</translation> <translation id="2877225735001246144">Kerberos அங்கீகரிப்புடன் பரிமாற்றம் செய்யப்படும்போது, CNAME பார்வையிடலை முடக்கவும்</translation> +<translation id="2892414556511568464">டூப்ளெக்ஸ் பயன்முறை அச்சிடலைக் கட்டுப்படுத்தும். கொள்கை அமைக்கப்படவில்லை என்றாலும் தொகுப்பு வெறுமையாக இருந்தாலும், ‘கட்டுப்பாடு எதுவுமில்லை’ என்பதாகக் கருதப்படும்.</translation> <translation id="2893546967669465276">நிர்வகிப்புச் சேவையகத்திற்கு முறைமைப் பதிவுகளை அனுப்பும்</translation> <translation id="2899002520262095963">இந்தக் கொள்கை மூலம் அமைத்த நெட்வொர்க் உள்ளமைவுகளையும் CA சான்றிதழ்களையும் Android ஆப்ஸால் பயன்படுத்த முடியும். ஆனால் சில உள்ளமைவு விருப்பங்களை அணுக முடியாது.</translation> <translation id="290002216614278247">கிளையண்ட் வழங்கியுள்ள நேரம் அல்லது அந்த நாளுக்கான பயன்பாட்டு வரம்பின் அடிப்படையில் பயனரின் அமர்வைப் பூட்ட உங்களை அனுமதிக்கும். @@ -789,6 +802,7 @@ சேவையகங்களை ECDHE சைஃபர் சூட்களுக்கு மாற்றுமாறு பரிந்துரைக்கப்படுகிறது. இவை இல்லையெனில், RSA குறியீட்டு பரிமாற்றத்தைப் பயன்படுத்தும் சைஃபர் சூட்டை இயக்கியுள்ளதை உறுதிசெய்துகொள்ளவும்.</translation> <translation id="316778957754360075">இந்த அமைப்பானது <ph name="PRODUCT_NAME" /> பதிப்பு 29க்கு பின்பு முடக்கப்பட்டுள்ளது. நிறுவனம் சார்ந்த நீட்டிப்பு/பயன்பாட்டு தொகுப்புகளை அமைக்க பரிந்துரைக்கப்படும் வழி, ExtensionInstallSources இல் உள்ள CRX தொகுப்புகளை வழங்கும் தளத்தைச் சேர்த்து, தொகுப்புகளுக்கான நேரடி பதிவிறக்க இணைப்புகளை இணையப்பக்கத்தில் வழங்குவதாகும். ExtensionInstallForcelist கொள்கையைப் பயன்படுத்தி அந்த இணையப்பக்கத்திற்கான துவக்கியை உருவாக்கலாம்.</translation> +<translation id="3171369832001535378">சாதன நெட்வொர்க் ஹோஸ்ட்பெயர் டெம்ப்ளேட்</translation> <translation id="3185009703220253572">பதிப்பு <ph name="SINCE_VERSION" /> முதல்</translation> <translation id="3187220842205194486">Android பயன்பாடுகளால் நிறுவனக் குறியீடுகளை அணுக முடியாது. அவற்றில் இந்தக் கொள்கை எந்த மாற்றத்தையும் ஏற்படுத்தாது.</translation> <translation id="3201273385265130876"><ph name="PRODUCT_NAME" /> பயன்படுத்தும் ப்ராக்ஸி சேவையகத்தைக் குறிப்பிட உங்களை அனுமதித்து, ப்ராக்ஸி அமைப்புகளை மாற்றுவதிலிருந்து பயனர்களைத் தடுக்கும். @@ -835,11 +849,11 @@ <translation id="3273221114520206906">இயல்புநிலை JavaScript அமைப்பு</translation> <translation id="3284094172359247914">WebUSB API இன் பயன்பாட்டைக் கட்டுப்படுத்தும்</translation> <translation id="3288595667065905535">சேனலை வெளியிடு</translation> -<translation id="3292147213643666827"><ph name="CLOUD_PRINT_NAME" /> மற்றும் கணினியுடன் இணைக்கப்பட்டுள்ள அதிகாரப்பூர்வ அச்சுப்பொறிகளுக்கு இடையே <ph name="PRODUCT_NAME" /> ஐ பிராக்சியாக இயங்க வைக்கும். +<translation id="3292147213643666827"><ph name="CLOUD_PRINT_NAME" /> மற்றும் கம்ப்யூட்டருடன் இணைக்கப்பட்டுள்ள லெகஸி பிரிண்டர்களுக்கு இடையே <ph name="PRODUCT_NAME" /> ஐப் ப்ராக்ஸியாக இயங்க வைக்கும். - இந்த அமைப்பு இயக்கப்பட்டிருந்தால் அல்லது உள்ளமைக்கப்படவில்லை என்றால், பயனர்கள், கிளவுடு அச்சுப் பிராக்ஸியை, தங்களின் Google கணக்குடனான அங்கீகரிப்பின் மூலம் இயக்க முடியும். + இந்த அமைப்பு இயக்கப்பட்டிருந்தாலோ உள்ளமைக்கப்படவில்லை என்றாலோ, பயனர்கள் தங்கள் Google கணக்கின் மூலம் அங்கீகரித்து கிளவுட் பிரிண்ட் ப்ராக்ஸியை இயக்க முடியும். - இந்த அமைப்பு முடக்கப்பட்டிருந்தால், பயனர்களால் பிராக்ஸியை இயக்க முடியாது, மேலும் கணினி அதன் பிரிண்டர்களை <ph name="CLOUD_PRINT_NAME" /> உடன் பகிர்ந்து கொள்ள அனுமதிக்கப்படாது.</translation> + இந்த அமைப்பு முடக்கப்பட்டிருந்தால், பயனர்களால் ப்ராக்ஸியை இயக்க முடியாது, மேலும் கம்ப்யூட்டர் அதன் பிரிண்டர்களை <ph name="CLOUD_PRINT_NAME" /> உடன் பகிர்ந்து கொள்ளவும் அனுமதிக்கப்படாது.</translation> <translation id="3307746730474515290">எந்தப் பயன்பாடு/நீட்டிப்பு வகைகளை நிறுவுவதற்கு அனுமதிக்கலாம் என்பதைக் கட்டுப்படுத்துவதோடு, இயக்கநேர அணுகலை வரம்பிடும். இந்த அமைப்பு, <ph name="PRODUCT_NAME" /> இல் நிறுவுவதற்கு அனுமதிக்கப்படும் நீட்டிப்பு/பயன்பாடுகளின் வகைகளையும் அவை தொடர்புகொள்ளக்கூடிய ஹோஸ்ட்டுகளையும் ஏற்புப்பட்டியலில் சேர்க்கும். இதன் மதிப்பு எழுத்துச்சரங்களின் பட்டியலாகும், அவை ஒவ்வொன்றும் பின்வருவனவற்றுள் ஒன்றாக இருக்க வேண்டும்: "extension", "theme", "user_script", "hosted_app", "legacy_packaged_app", "platform_app". இந்த வகைகளைப் பற்றிய கூடுதல் தகவலுக்கு, <ph name="PRODUCT_NAME" /> நீட்டிப்புகள் ஆவணத்தைப் பார்க்கவும். @@ -893,10 +907,11 @@ <translation id="3478024346823118645">வெளியேறும்போது பயனர் தரவை நீக்கவும்</translation> <translation id="348495353354674884">விர்ச்சுவல் விசைப்பலகையை இயக்கு</translation> <translation id="3487623755010328395"> - இந்தக் கொள்கை அமைக்கப்பட்டிருந்தால், தன்னைப் பதிவுசெய்வதற்கு <ph name="PRODUCT_NAME" /> முயலும். மேலும், தொடர்புடைய கிளவுட் கொள்கையை அனைத்துச் சுயவிவரங்களுக்கும் பயன்படுத்தும். + இந்தக் கொள்கை அமைக்கப்பட்டிருந்தால் <ph name="PRODUCT_NAME" /> தன்னைப் பதிவுசெய்வதற்கும் தொடர்புடைய கிளவுட் கொள்கையை அனைத்துக் கணக்குகளுக்கும் பயன்படுத்தவும் முயலும். இந்தக் கொள்கையின் மதிப்பானது, Google Admin கன்சோலிலிருந்து பெறக்கூடிய பதிவுசெய்வதற்கான டோக்கன் ஆகும்.</translation> <translation id="3496296378755072552">கடவுச்சொல் நிர்வாகி</translation> +<translation id="3502555714327823858">அனைத்து டூப்ளெக்ஸ் பயன்முறைகளையும் அனுமதி</translation> <translation id="350443680860256679">ARCஐ உள்ளமை</translation> <translation id="3504791027627803580">படத் தேடலை வழங்குவதற்கு பயன்படுத்தப்பட்ட தேடல் இன்ஜினின் URL ஐக் குறிப்பிடுகிறது. GET முறையைப் பயன்படுத்தி தேடல் கோரிக்கைகள் அனுப்பப்படும். DefaultSearchProviderImageURLPostParams கொள்கை அமைக்கப்பட்டால், படத் தேடல் கோரிக்கைகள் அதற்குப் பதிலாக POST முறையைப் பயன்படுத்தும். @@ -906,6 +921,7 @@ <translation id="350797926066071931">மொழியாக்கத்தை இயக்கு</translation> <translation id="3512226956150568738">ARCஐ இயக்குவதற்கு, ext4க்கு நகரத்துவதற்கு முன்னர் ARCஐ ஆதரித்த கிளையன்ட் சாதன மாடல் தேவைப்பட்டிருந்து, ArcEnabled கொள்கை "சரி" என அமைக்கப்பட்டால், இந்த விருப்பம் "AskUser (மதிப்பு 3)" என்ற மதிப்புக்கேற்ப செயல்படும். மற்ற எல்லாச் சூழல்களிலும் (சாதன மாடல் முன்னர் ARCஐ ஆதரிக்கவில்லை என்றாலோ அல்லது ArcEnabled கொள்கை "தவறு" என அமைக்கப்பட்டிருந்தாலோ), இந்த மதிப்பானது "DisallowArc (மதிப்பு 0)"க்குச் சமமானதாக இருக்கும்.</translation> <translation id="3524204464536655762">WebUSB API மூலமாக USB சாதனங்களுக்கான அணுகலைக் கோர எந்தத் தளத்தையும் அனுமதிக்காது</translation> +<translation id="3526752951628474302">மோனோகுரோம் அச்சிடல் மட்டும்</translation> <translation id="3528000905991875314">மாற்று பிழைப் பக்கங்களை இயக்கு</translation> <translation id="3545457887306538845">இது டெவெலப்பர் கருவிகளை எந்தெந்த இடங்களில் பயன்படுத்தலாம் என்பதைக் கட்டுப்படுத்த அனுமதிக்கும். @@ -929,6 +945,7 @@ <translation id="3577251398714997599">குறுக்கிடும் விளம்பரங்களுடன் கூடிய தளங்களுக்கான விளம்பர அமைப்புகள்</translation> <translation id="3591584750136265240">உள்நுழைவு அங்கீகரிப்புச் செயல்பாட்டை உள்ளமை</translation> <translation id="3627678165642179114">எழுத்துப்பிழை சரிபார்க்கும் இணைய சேவையை இயக்கு/முடக்கு</translation> +<translation id="3628480121685794414">சிம்ப்ளெக்ஸ் அச்சிடலை இயக்கு</translation> <translation id="3646859102161347133">திரை உருப்பெருக்கியின் வகையை அமை</translation> <translation id="3653237928288822292">இயல்புநிலை தேடல் வழங்குநர் படவுரு</translation> <translation id="3660562134618097814">உள்நுழைவின் போது SAML IdP குக்கீகளைப் பரிமாற்றும்</translation> @@ -970,11 +987,11 @@ <translation id="3765260570442823273">செயலற்ற சாதனத்தின் வெளியேறுதல் கால நேரத்தின் எச்சரிக்கை செய்தி</translation> <translation id="377044054160169374">தவறான பாதிப்பை விளைவிக்கக்கூடியவற்றைத் தடுத்தல்</translation> <translation id="3780152581321609624">Kerberos SPN இல் இயல்பற்ற போர்ட்டைச் சேர்</translation> -<translation id="3780319008680229708">இந்தக் கொள்கையைச் சரி என அமைத்தால், கருவிப்பட்டி அல்லது கூடுதல் விருப்பங்கள் மெனுவில் Cast கருவிப்பட்டி ஐகான் எப்போதும் காட்டப்படும், பயனர்களால் அதை அகற்ற முடியாது. +<translation id="3780319008680229708">இந்தக் கொள்கையை 'சரி' என அமைத்தால் கருவிப்பட்டியிலோ கூடுதல் விருப்பங்கள் மெனுவிலோ Cast கருவிப்பட்டி ஐகான் எப்போதும் காட்டப்படும், பயனர்களால் அதை அகற்ற முடியாது. - இந்தக் கொள்கையைத் தவறு என அமைத்தால் அல்லது இந்தக் கொள்கையை அமைக்கவில்லை எனில், ஐகானின் சூழல்சார்ந்த மெனுவின் மூலம் பயனர்கள் அதைப் பொருத்தலாம் அல்லது அகற்றலாம். + இந்தக் கொள்கையை 'தவறு' என அமைத்தாலோ அமைக்கவில்லை என்றாலோ, ஐகானின் சூழல்சார்ந்த மெனுவின் மூலம் பயனர்கள் அதைப் பொருத்தலாம் அல்லது அகற்றலாம். - "EnableMediaRouter" கொள்கையைத் தவறு என அமைத்தால், இந்தக் கொள்கையின் மதிப்பில் எந்த மாற்றமும் ஏற்படாது. அத்துடன், கருவிப்பட்டி ஐகானும் காட்டப்படாது.</translation> + "EnableMediaRouter" கொள்கையை 'தவறு' என அமைத்தால், இந்தக் கொள்கையின் மதிப்பினால் எந்த மாற்றமும் ஏற்படாது. அத்துடன், கருவிப்பட்டி ஐகானும் காட்டப்படாது.</translation> <translation id="3788662722837364290">பயனர் செயல்படாமல் இருக்கும்போதான ஆற்றல் நிர்வாக அமைப்புகள்</translation> <translation id="3793095274466276777"><ph name="PRODUCT_NAME" /> இல் இயல்புநிலை உலாவி சோதனைகளை உள்ளமைக்கிறது, மேலும் பயனர்கள் அதை மாற்றுவதைத் தடுக்கிறது. @@ -998,7 +1015,7 @@ <translation id="3805659594028420438">TLS டொமைன்-சார்ந்த சான்றிதழ்களின் நீட்டிப்பை இயக்கு (மறுக்கப்பட்டது)</translation> <translation id="3808945828600697669">முடக்கப்பட்ட செருகுநிரல்களின் பட்டியலைக் குறிப்பிடுக</translation> <translation id="3811562426301733860">எல்லாத் தளங்களிலும் விளம்பரங்களை அனுமதி</translation> -<translation id="3816312845600780067">தானியங்கு உள்நுழைவுக்கு மீட்பு விசைப்பலகை குறுக்குவழியை இயக்கவும்</translation> +<translation id="3816312845600780067">தானியங்கு உள்நுழைவுக்கு மீட்பு கீபோர்டு ஷார்ட்கட்டை இயக்கவும்</translation> <translation id="3820526221169548563">திரை விசைப்பலகையின் அணுகல்தன்மை அம்சத்தை இயக்கவும். இந்தக் கொள்கை சரி என்பதற்கு அமைக்கப்பட்டிருந்தால், திரை விசைப்பலகை எப்போதும் இயக்கப்பட்டிருக்கும். @@ -1028,6 +1045,7 @@ கொள்கையை "தவறு" என அமைத்தால், கியோஸ்க் அமர்வுத் தகவல் அறிவிக்கப்படாது. "சரி" என அமைத்தாலோ அல்லது அமைக்காமல் இருந்தாலோ, அமர்வுத் தகவல் அறிவிக்கப்படும்.</translation> +<translation id="3858658082795336534">அச்சிடல் சதவீத டூப்ளெக்ஸ் பயன்முறை</translation> <translation id="3859780406608282662"><ph name="PRODUCT_OS_NAME" /> இல் மாறுபாடுகள் ஸீடைப் பெறுவதில் அளவுருவைச் சேர். குறிப்பிடப்பட்டால், மாறுபாடுகள் ஸீடைப் பெற பயன்படுத்தப்படும் URL இல், 'கட்டுப்படுத்து' என்ற வினவல் அளவுரு சேர்க்கப்படும். அளவுருவின் மதிப்பானது, இந்தக் கொள்கையில் குறிப்பிடப்பட்டிருக்கும் மதிப்பாகும். @@ -1049,7 +1067,7 @@ ஒவ்வொரு பட்டியல் உள்ளீடானது 'extension-id' புலத்தில் நீட்டிப்பு ஐடியையும், 'update-url' புலத்தில் அதன் புதுப்பிப்பு URL ஐயும் இணைத்துள்ள அகராதியைக் கொண்டுள்ளது.</translation> <translation id="3874773863217952418">தேடுவதற்குத் தட்டு என்பதை இயக்கவும்</translation> <translation id="3877517141460819966">ஒருங்கிணைக்கப்பட்ட இரண்டாம் படி அங்கீகாரப் பயன்முறை</translation> -<translation id="3879208481373875102">கட்டாயப்படுத்தி நிறுவப்பட்ட இணைய ஆப்ஸின் பட்டியலை உள்ளமைக்கும்</translation> +<translation id="3879208481373875102">தானே நிறுவப்பட்ட இணைய ஆப்ஸின் பட்டியலை உள்ளமைக்கும்</translation> <translation id="388237772682176890">SPDY/3.1 ஆதரவை அகற்றியுள்ளதால், இந்தக் கொள்கையானது M53 இல் தடுக்கப்பட்டுள்ளது, M54 இல் அகற்றப்பட்டுள்ளது. <ph name="PRODUCT_NAME" /> இல் SPDY நெறிமுறையைப் பயன்படுத்துவதைத் தடுக்கும். @@ -1158,6 +1176,12 @@ கொள்கை அமைக்கப்படாமல் இருந்தால், டெஸ்க்டாப்பிலும் உள்நுழைவுத் திரையின் பின்புலத்திலும் காட்டுவதற்கான படத்தைப் பயனர் தேர்வுசெய்யலாம்.</translation> <translation id="412697421478384751">பூட்டுத் திரை PINக்கு வலிமை குறைந்த PINகளை அமைப்பதற்கு, பயனர்களை அனுமதிக்கும்</translation> +<translation id="4129183564590133854">OS உள்நுழைவு, <ph name="PRODUCT_NAME" /> சுயவிவர உள்நுழைவு, <ph name="PRODUCT_NAME" /> சுயவிவரப் பெயர், <ph name="PRODUCT_NAME" /> சுயவிவரப் பாதை மற்றும் <ph name="PRODUCT_NAME" /> செயலாக்கப் பாதை போன்ற, பயனர்களை அடையாளம் காணப் பயன்படுத்தக்கூடிய தகவல்களைத் தெரிவிப்பதா என்பதை இந்தக் கொள்கை கட்டுப்படுத்தும். + + இந்தக் கொள்கையை அமைக்காவிட்டால் அல்லது ‘சரி’ என அமைத்தால், பயனர்களை அடையாளம் காணப் பயன்படுத்தக்கூடிய தகவல்கள் சேகரிக்கப்படும். + இந்தக் கொள்கையை ‘தவறு’ என அமைத்தால், பயனர்களை அடையாளம் காணப் பயன்படுத்தக்கூடிய தகவல்கள் சேகரிக்கப்படாது. + + Chrome அறிக்கையிடுதல் நீட்டிப்பும் கிளவுட் நிர்வாகமும் இயக்கப்பட்டால் மட்டுமே இந்தக் கொள்கை செயலில் இருக்கும்.</translation> <translation id="4138655880188755661">நேர வரம்பு</translation> <translation id="4157003184375321727">OS மற்றும் firmware பதிப்பைப் புகாரளி</translation> <translation id="4157594634940419685">இயல்பு CUPS பிரிண்டர்களுக்கான அணுகலை அனுமதிக்கும்</translation> @@ -1284,9 +1308,9 @@ இந்தக் கொள்கையின் மதிப்பு 0 ஆக இருந்தால், இயல்பு தற்காலிகச் சேமிப்பின் அளவு பயன்படுத்தப்படும், ஆனால் பயனரால் இதை மாற்ற முடியாது. இந்தக் கொள்கையானது அமைக்கப்படவில்லை எனில், இயல்பு தற்காலிகச் சேமிப்பின் அளவைப் பயன்படுத்தப்படும், மேலும் --media-cache-size கொடி மூலம் பயனரால் இதை மேலெழுத முடியும்.</translation> -<translation id="4508686775017063528">இந்தக் கொள்கையைச் சரி என அமைத்தால் அல்லது அமைக்கவில்லை எனில், <ph name="PRODUCT_NAME" /> இயக்கப்படும். மேலும், பயன்பாட்டு மெனு, பக்க சூழல் மெனுக்கள், அனுப்புதல் இயக்கப்பட்ட இணையதளங்களிலுள்ள மீடியா கட்டுப்பாடுகள், Cast கருவிப்பட்டி ஐகான் (காட்டப்பட்டால்) ஆகியவற்றிலிருந்து பயனர்கள் அதைத் தொடங்கலாம். +<translation id="4508686775017063528">இந்தக் கொள்கையை 'சரி' என அமைத்தாலோ அமைக்கவில்லை என்றாலோ, <ph name="PRODUCT_NAME" /> இயக்கப்படும். ஆப்ஸ் மெனு, பக்க சூழல் மெனுக்கள், Cast வசதியுடைய இணையதளங்களிலுள்ள மீடியா கட்டுப்பாடுகள் மற்றும் Cast கருவிப்பட்டி ஐகான் (காட்டப்பட்டால்) ஆகியவற்றிலிருந்து பயனர்கள் அதைத் தொடங்கலாம். - இந்தக் கொள்கையைத் தவறு என அமைத்தால், <ph name="PRODUCT_NAME" /> முடக்கப்படும்.</translation> + இந்தக் கொள்கையை 'தவறு' என அமைத்தால், <ph name="PRODUCT_NAME" /> முடக்கப்படும்.</translation> <translation id="4515404363392014383">நம்பகமான ஆதாரங்களுக்கு பாதுகாப்பான உலாவலை இயக்கு</translation> <translation id="4518251772179446575">ஒரு தளம் பயனரின் நிஜ இருப்பிடத்தை பின்தொடர விரும்பும்போதெல்லாம் கேட்கவும்</translation> <translation id="4519046672992331730"><ph name="PRODUCT_NAME" /> இன் சர்வபுலத்தில் தேடல் பரிந்துரைகளை இயக்குகிறது மற்றும் பயனர்கள் இந்த அமைப்பை மாற்றுவதைத் தடுக்கிறது. @@ -1305,14 +1329,14 @@ இந்தக் கொள்கையானது, ஏற்கனவே இருக்கும் நீட்டிப்பு தொடர்பான கொள்கைகள் கட்டுப்படுத்துகின்ற அமைப்புகள் உட்பட பல அமைப்புகளைக் கட்டுப்படுத்தும். இரண்டுமே அமைக்கப்பட்டால், இந்தக் கொள்கையானது லெகஸி கொள்கைகளை (ஏதேனுமிருப்பின்) மீறிச் செயல்படும். - இந்தக் கொள்கையானது, அதன் உள்ளமைவுடன் ஒரு நீட்டிப்பு ஐடி அல்லது புதுப்பிப்பு URLஐ இணைக்கும். நீட்டிப்பு ஐடியை இணைப்பதன் மூலம், குறிப்பிட்ட நீட்டிப்பிற்கு மட்டுமே உள்ளமைவு பயன்படுத்தப்படும். <ph name="DEFAULT_SCOPE" /> எனும் சிறப்பு ஐடிக்கு இயல்பு உள்ளமைவை அமைக்கலாம். இது இந்தக் கொள்கையில் தனிப்பயன் உள்ளமைவு அமைக்கப்படாமல் இருக்கும் எல்லா நீட்டிப்புகளுக்கும் பயன்படுத்தப்படும். <ph name="LINK_TO_EXTENSION_DOC1" /> இல் விவரிக்கப்பட்டுள்ளது போல், புதுப்பிப்பு URLஐ இணைப்பதன் மூலம், இந்த நீட்டிப்பின் மெனிஃபேஸ்ட்டில் உள்ள அதே புதுப்பிப்பு URLஐக் கொண்டுள்ள எல்லா நீட்டிப்புகளுக்கும், உள்ளமைவு பயன்படுத்தப்படும். + இந்தக் கொள்கையானது, அதன் உள்ளமைவுடன் ஒரு நீட்டிப்பு ஐடியையோ புதுப்பிப்பு URLலையோ இணைக்கும். நீட்டிப்பு ஐடியை இணைப்பதன் மூலம், குறிப்பிட்ட நீட்டிப்பிற்கு மட்டுமே உள்ளமைவு பயன்படுத்தப்படும். இந்தக் கொள்கையில் தனிப்பயன் உள்ளமைவு அமைக்கப்படாமல் இருக்கும் எல்லா நீட்டிப்புகளுக்கும் பயன்படுமாறு <ph name="DEFAULT_SCOPE" /> எனும் சிறப்பு ஐடிக்கு இயல்பு உள்ளமைவை அமைக்கலாம். <ph name="LINK_TO_EXTENSION_DOC1" /> இல் விவரிக்கப்பட்டுள்ளது போல், புதுப்பிப்பு URLலை இணைப்பதன் மூலம், இந்த நீட்டிப்பின் மெனிஃபெஸ்ட்டில் உள்ள அதே புதுப்பிப்பு URLலைக் கொண்டுள்ள எல்லா நீட்டிப்புகளுக்கும், உள்ளமைவு பயன்படுத்தப்படும். - இந்தக் கொள்கையின் முழு விளக்கம் தொடர்பான சாத்தியமான அமைப்புகள் மற்றும் கட்டமைப்பிற்கு https://www.chromium.org/administrators/policy-list-3/extension-settings-fullஐப் பார்வையிடவும் + இந்தக் கொள்கையின் சாத்தியமான அமைப்புகள் மற்றும் கட்டமைப்பிற்கு முழு விளக்கம் காண https://www.chromium.org/administrators/policy-list-3/extension-settings-full என்ற இணைப்பைப் பார்வையிடவும் </translation> <translation id="4554651132977135445">பயனர் கொள்கை லூப்பேக் செயலாக்கப் பயன்முறை</translation> <translation id="4554841826517980623">இந்தக் கொள்கை, <ph name="PRODUCT_NAME" />க்கான ‘நெட்வொர்க் கோப்புப் பகிர்வுகள்’ அம்சமானது நெட்வொர்க்கில் பகிரப்படுபவற்றைக் கண்டறிவதற்கு, <ph name="NETBIOS_PROTOCOL" /> நெறிமுறையைப் பயன்படுத்துவதா என்பதைக் கட்டுப்படுத்தும். - இந்தக் கொள்கை ‘சரி’ என அமைக்கப்பட்டால், நெட்வொர்க்கில் பகிரப்படுபவற்றைக் கண்டறிவதற்காக, ‘பகிர்வுக் கண்டறிதல்’ அம்சம் <ph name="NETBIOS_PROTOCOL" /> நெறிமுறையைப் பயன்படுத்தும். - இந்தக் கொள்கை ‘தவறு’ என அமைக்கப்பட்டால், நெட்வொர்க்கில் பகிரப்படுபவற்றைக் கண்டறிவதற்காக, ‘பகிர்வுக் கண்டறிதல்’ அம்சம் <ph name="NETBIOS_PROTOCOL" /> நெறிமுறையைப் பயன்படுத்தாது. + இந்தக் கொள்கை ‘சரி’ என அமைக்கப்பட்டால், நெட்வொர்க்கில் பகிரப்படுபவற்றைக் கண்டறிவதற்காக, ‘பகிர்வு கண்டறிதல்’ அம்சம் <ph name="NETBIOS_PROTOCOL" /> நெறிமுறையைப் பயன்படுத்தும். + இந்தக் கொள்கை ‘தவறு’ என அமைக்கப்பட்டால், நெட்வொர்க்கில் பகிரப்படுபவற்றைக் கண்டறிவதற்காக, ‘பகிர்வு கண்டறிதல்’ அம்சம் <ph name="NETBIOS_PROTOCOL" /> நெறிமுறையைப் பயன்படுத்தாது. இந்தக் கொள்கை அமைக்காமல் விடப்பட்டால், இயல்பில் மேற்கூறிய அம்சம் நிறுவனத்தால் நிர்வகிக்கப்படும் பயனர்களுக்கு முடக்கப்படும், நிர்வகிக்கப்படாத பயனர்களுக்கு இயக்கப்படும்.</translation> <translation id="4555850956567117258">பயனருக்கான தொலைநிலைச் சான்றொப்பத்தை இயக்கு</translation> <translation id="4557134566541205630">இயல்புநிலைத் தேடல் வழங்குநர் புதிய தாவல் பக்க URL</translation> @@ -1458,8 +1482,14 @@ <translation id="5052081091120171147">இந்த கொள்கை செயலாக்கப்பட்டிருந்தால் தற்போதைய இயல்புநிலை உலாவியில் இருந்து, உலாவுதல் வரலாற்றை இறக்குமதி செய்ய வேண்டும் என்பதை வற்புறுத்தும். செயலாக்கப்பட்டிருந்தால், இறக்குமதி உரையாடலையும் இந்தக் கொள்கை பாதிக்கும். முடக்கப்பட்டிருந்தால், உலாவுதல் வரலாறு இறக்குமதியாகாது. இது அமைக்கப்படவில்லை எனில், இறக்குமதி செய்யலாமா என பயனரிடம் கேட்கப்படும் அல்லது தானாக இறக்குமதியாகும்</translation> <translation id="5056708224511062314">திரை உருப்பெருக்கி முடக்கப்பட்டது</translation> <translation id="5058573563327660283">தானியங்கு சுத்தப்படுத்தலின்போது வட்டு இடத்தைக் காலியாக்குவதற்கான உத்தியைத் தேர்ந்தெடுக்கும் (தடுக்கப்பட்டது)</translation> +<translation id="5058771123777243130">கொள்கைத் தரவையும் கொள்கையைப் பெற்ற நேரத்தையும் அறிக்கையிடுவதா என்பதை இந்தக் கொள்கை கட்டுப்படுத்தும். + + இந்தக் கொள்கையை அமைக்காவிட்டால் அல்லது ‘சரி’ என அமைத்தால், கொள்கைத் தரவும் கொள்கையைப் பெற்ற நேரமும் சேகரிக்கப்படும். + இந்தக் கொள்கையை ‘தவறு’ என அமைத்தால், கொள்கைத் தரவும் கொள்கையைப் பெற்ற நேரமும் சேகரிக்கப்படாது. + + Chrome அறிக்கையிடுதல் நீட்டிப்பும் கிளவுட் நிர்வாகமும் இயக்கப்பட்டால் மட்டுமே இந்தக் கொள்கை செயலில் இருக்கும்.</translation> <translation id="5067143124345820993">உள்நுழைவு பயனர் அனுமதிப் பட்டியல்</translation> -<translation id="5068140065960598044"><ph name="PRODUCT_NAME" /> மேகக்கணிக் கொள்கையானது சாதனத்தின் கொள்கையை மீறிச் செயல்படும்.</translation> +<translation id="5068140065960598044"><ph name="PRODUCT_NAME" /> கிளவுட் கொள்கையானது கம்ப்யூட்டரின் கொள்கையை மீறிச் செயல்படும்.</translation> <translation id="5085647276663819155">அச்சு மாதிரிக்காட்சியை முடக்கு</translation> <translation id="5090209345759901501">எல்லா உள்ளடக்கத்திற்கும் Flash உள்ளடக்க அமைப்பைப் பயன்படுத்துதல்</translation> <translation id="5093540029655764852">கிளையன்ட் தனது சாதனக் கணக்கின் கடவுச்சொல்லை மாற்றும் கால இடைவேளையைக் (நாட்களில்) குறிப்பிடும். கிளையன்ட் கடவுச்சொல்லை தற்போக்காக உருவாக்கும், அது பயனருக்குத் தெரியாது. @@ -1551,9 +1581,9 @@ கொள்கையின் மதிப்பானது மில்லிவினாடிகளில் குறிப்பிடப்படும். மதிப்புகளானது செயலற்றநிலையின் தாமதத்திற்கு குறைவாகவோ அல்லது சமமாகவோ பிணைக்கப்பட்டிருக்கும்.</translation> <translation id="5307432759655324440">மறைநிலைப் பயன்முறை கிடைக்கும்நிலை</translation> <translation id="5318185076587284965">தொலைநிலை அணுகல் ஹோஸ்ட் தொடர் சேவையகங்களைப் பயன்படுத்துவதை இயக்கவும்</translation> -<translation id="5323128137188992869"><ph name="PRODUCT_NAME" />ஐப் பயன்படுத்தி, சாதனத்திற்கு உள்ளடக்கத்தை அனுப்ப அனுமதிக்கும். +<translation id="5323128137188992869"><ph name="PRODUCT_NAME" />ஐப் பயன்படுத்தி, சாதனத்திற்கு உள்ளடக்கத்தை அலைபரப்ப அனுமதிக்கும். - இந்தக் கொள்கையைத் தவறு என அமைத்தால், பயனர்களால் அவர்களது சாதனத்திற்கு உள்ளடக்கத்தை அனுப்ப முடியாது. இந்தக் கொள்கையைச் சரி என அமைத்தால், பயனர்களால் உள்ளடக்கத்தை அனுப்ப முடியும். இந்தக் கொள்கையை அமைக்கவில்லை எனில், பதிவுசெய்த Chrome OS சாதனங்களுக்கு உள்ளடக்கத்தை அனுப்ப, பயனர்கள் அனுமதிக்கப்படமாட்டார்கள். ஆனால், பதிவுசெய்யாத சாதனங்களுக்கு அனுப்ப அனுமதிக்கப்படுவார்கள்.</translation> + இந்தக் கொள்கையை 'தவறு' என அமைத்தால், பயனர்களால் அவர்களது சாதனத்திற்கு உள்ளடக்கத்தை அலைபரப்ப முடியாது. இதை 'சரி' என அமைத்தால், பயனர்களால் உள்ளடக்கத்தை அலைபரப்ப முடியும். இதை அமைக்கவில்லை எனில், பயனர்கள் பதிவுசெய்த Chrome OS சாதனங்களுக்கு உள்ளடக்கத்தை அலைபரப்ப அனுமதிக்கப்படமாட்டார்கள். ஆனால், பதிவுசெய்யாத சாதனங்களுக்கு அலைபரப்பலாம்.</translation> <translation id="5330684698007383292">பின்வரும் உள்ளடக்க வகைகளைக் கையாள <ph name="PRODUCT_FRAME_NAME" /> ஐ அனுமதி</translation> <translation id="5365946944967967336">கருவிப்பட்டியில் முகப்புப் பொத்தானைக் காண்பி</translation> <translation id="5366745336748853475">தளம் சான்றிதழைக் கோரினால், SAML செயல்பாட்டை ஹோஸ்ட் செய்யும் ஃப்ரேமில் உள்ள உள்நுழைவுத் திரையில், கிளையன்ட் சான்றிதழைத் தானாகத் தேர்ந்தெடுக்க வேண்டிய தளங்களைக் குறிப்பிடும் url வடிவங்களின் பட்டியலைக் குறிப்பிட உங்களை அனுமதிக்கும். SAML IdPக்கு வழங்குவதற்காக, சாதன அளவிலான சான்றிதழை உள்ளமைப்பதை இதற்கு உதாரணமாகக் குறிப்பிடலாம். @@ -1564,6 +1594,7 @@ <translation id="5366977351895725771">தவறு என அமைக்கப்பட்டால், இந்தப் பயனர் உருவாக்கும் கண்காணிக்கப்படும் பயனர் முடக்கப்படுவார். ஏற்கனவே உள்ள கண்காணிக்கப்படும் பயனர்கள் அனைவரும் தொடர்ந்து இருப்பார்கள். சரி என அமைக்கப்பட்டால் அல்லது உள்ளமைக்கப்படாவிட்டால், இந்தப் பயனரால் கண்காணிக்கப்படும் பயனர்கள் உருவாக்கப்பட்டு நிர்வகிக்கப்படுவார்கள்.</translation> +<translation id="5369937289900051171">வண்ண அச்சிடல் மட்டும்</translation> <translation id="5370279767682621504">இயல்புக்கு மாறான போர்ட்களில் HTTP/0.9 ஆதரவை இயக்கும்</translation> <translation id="5378985487213287085">டெஸ்க்டாப் அறிவிப்புகளைக் காண்பிக்க வலைத்தளங்கள் அனுமதிக்கின்றனவா என்பதை அமைக்க உங்களை அனுமதிக்கிறது. காண்பிக்கப்படும் டெஸ்க்டாப் அறிவிப்புகள் இயல்புநிலை மூலம் அனுமதிக்கப்படும், இயல்புநிலை மூலம் மறுக்கப்படும் அல்லது டெஸ்க்டாப் அறிவிப்புகளைக் காண்பிக்க வலைத்தளம் விரும்புகிறது என ஒவ்வொரு முறையும் பயனர் கேட்கப்படுவார். இந்தக் கொள்கையானது அமைக்கப்படாமல் விலக்கப்பட்டிருந்தால், 'அறிவிப்புகளைக் கேள்' என்பது பயன்படுத்தப்படும், பயனர் அதை மாற்ற இயலும்.</translation> <translation id="538108065117008131">பின்வரும் உள்ளடக்க வகைகளைக் கையாள <ph name="PRODUCT_FRAME_NAME" /> ஐ அனுமதி.</translation> @@ -1584,6 +1615,7 @@ இந்தக் கொள்கை, உள்ளீட்டு முறை அடையாளங்காட்டிகளின் பட்டியலாக அமைக்கப்பட்டால், வழங்கிய உள்ளீட்டுப் பயன்முறைகள் உள்நுழைவுத் திரையில் கிடைக்கும். முதலில் வழங்கிய உள்ளீட்டு முறையானது முன்கூட்டியே தேர்ந்தெடுக்கப்பட்டிருக்கும். உள்நுழைவுத் திரையில் பயனர் பாட் ஃபோகஸ் செய்துக் கொண்டிருக்கும் போது, இந்தக் கொள்கை வழங்கும் உள்ளீட்டு முறைகளுடன் சேர்த்து பயனர் கடைசியாகப் பயன்படுத்திய உள்ளீட்டு முறையும் கிடைக்கும். இந்தக் கொள்கை அமைக்கப்படவில்லை எனில், உள்நுழைவுத் திரை காட்டப்படும் மொழியிலிருந்து உள்நுழைவுத் திரையில் உள்ளீட்டு முறைகள் பெறப்படும். தவறான உள்ளீட்டு முறை அடையாளங்காட்டிகள் உள்ள மதிப்புகள் புறக்கணிக்கப்படும்.</translation> <translation id="5423001109873148185">இந்த கொள்கை செயலாக்கப்பட்டிருந்தால் தற்போதைய இயல்புநிலை உலாவியில் இருந்து, தேடல் இன்ஜின்கள் இறக்குமதி செய்யப்பட வேண்டும் என்பதை வற்புறுத்தும். செயலாக்கப்பட்டிருந்தால், இறக்குமதி உரையாடலையும் இந்தக் கொள்கை பாதிக்கும். முடக்கப்பட்டிருந்தால், இயல்புநிலையான தேடல் இன்ஜின் இறக்குமதியாகாது. இது அமைக்கப்படவில்லை எனில், இறக்குமதி செய்யலாமா என பயனரிடம் கேட்கப்படும் அல்லது தானாக இறக்குமதியாகும்.</translation> <translation id="5423197884968724595">Android WebView வரம்புப் பெயர்:</translation> +<translation id="5424147596523390018">அனைத்து வண்ணப் பயன்முறைகளையும் அனுமதி</translation> <translation id="5442026853063570579">Android டெவெலப்பர் விருப்பங்களுக்கான அணுகலையும் இந்தக் கொள்கை கட்டுப்படுத்தும். இந்தக் கொள்கையை 'DeveloperToolsDisallowed' (மதிப்பு 2) என அமைத்தால், பயனர்களால் டெவெலப்பர் விருப்பங்களை அணுக முடியாது. இந்தக் கொள்கையை வேறொரு மதிப்பில் அமைத்தாலோ அல்லது அமைக்காமல் விட்டாலோ, Android அமைப்புகள் பயன்பாட்டில் இருக்கும் பதிப்பு எண்ணை ஏழு முறை தட்டுவதன் மூலம், பயனர்களால் டெவெலப்பர் விருப்பங்களை அணுக முடியும்.</translation> <translation id="5447306928176905178">பக்கத்திற்கு (நீக்கப்பட்டது) நினைவகத் தகவலை அறிக்கையிடுவதை (JS ஹீப் அளவு) இயக்கு</translation> <translation id="5457065417344056871">உலாவியில் விருந்தினர் பயன்முறையை இயக்கும்</translation> @@ -1651,6 +1683,7 @@ <translation id="5586942249556966598">ஒன்றும் செய்ய வேண்டாம்</translation> <translation id="5630352020869108293">கடைசி அமர்வை மீட்டமை</translation> <translation id="5645779841392247734">இந்த தளங்களில் குக்கீகளை அனுமதி</translation> +<translation id="5689430183304951538">அச்சிடல் சதவீதப் பக்க அளவு</translation> <translation id="5693469654327063861">தரவு நகர்த்துதலை அனுமதி</translation> <translation id="5694594914843889579">இந்தக் கொள்கையை 'சரி' என அமைக்கும் போது, கோப்பு உலாவியில் வெளிப்புறச் சேமிப்பகம் கிடைக்காது. @@ -1680,6 +1713,7 @@ இந்தக் கொள்கை அமைக்கப்படாதபோது, நேரத்தின் இயல்பான அளவு பயன்படுத்தப்படும். கொள்கை மதிப்பை மில்லிவினாடிகளில் மட்டுமே குறிப்பிட வேண்டும்.</translation> +<translation id="5783009211970309878">தலைப்புகளையும் அடிக்குறிப்புகளையும் அச்சிடும்</translation> <translation id="5809728392451418079">சாதன-அகக் கணக்குகளுக்கு காட்சிப் பெயரை அமைக்கவும்</translation> <translation id="5814301096961727113">உள்நுழைவுத் திரையில் பேச்சுவடிவ கருத்தின் இயல்புநிலையை அமை</translation> <translation id="5815129011704381141">புதுப்பிப்புக்கு பிறகு தன்னியக்கமாக மறுதொடக்கம்செய்</translation> @@ -1691,6 +1725,7 @@ இந்த அமைப்பு அமைக்கப்படாமல் விடப்பட்டால், இயல்புநிலைச் சுயவிவரக் கோப்பகம் பயன்படுத்தப்படும்.</translation> <translation id="5826047473100157858">பயனர் <ph name="PRODUCT_NAME" /> இல் உள்ள, மறைநிலைப் பயன்முறையில் பக்கங்களைத் திறக்கலாமா என்பதைக் குறிப்பிடுகிறது. 'செயலாக்கப்பட்டது' என்பதைத் தேர்ந்தெடுத்தால் அல்லது கொள்கையை அமைக்காமல் விட்டால், பக்கங்கள் மறைநிலைப் பயன்முறையில் திறக்கப்படலாம். 'முடக்கப்பட்டது' என்பதைத் தேர்ந்தெடுத்தால், பக்கங்களை மறைநிலைப் பயன்முறையில் திறக்க முடியாது. 'செயல்படுத்து' என்பதைத் தேர்ந்தெடுத்தால், பக்கங்கள் மறைநிலைப் பயன்முறையில் மட்டும் திறக்கப்படலாம்.</translation> +<translation id="582857022372205358">குறுகிய விளிம்பு டூப்ளெக்ஸ் அச்சிடலை இயக்கு</translation> <translation id="583091600226586337"> இந்தக் கொள்கை இயக்கப்பட்டால், பதிவிறக்குவதற்கு முன்னர் ஒவ்வொரு கோப்பையும் எங்கு சேமிக்க வேண்டும் என்று பயனரிடம் கேட்கப்படும். கொள்கை முடக்கப்பட்டால், பதிவிறக்கங்கள் உடனடியாகத் தொடங்கும். கோப்பை எங்கு சேமிக்க வேண்டும் என்று பயனரிடம் கேட்கப்படாது. @@ -1711,7 +1746,7 @@ இந்தக் கொள்கை அமைக்கப்படாமல் இருந்தால், உள்நுழைவுத் திரை முதலில் காண்பிக்கப்படும்போது பேச்சுவடிவ கருத்து முடக்கப்படும். உள்நுழைவுத் திரையில் பயனர்கள் எந்த நேரத்திலும் பேச்சுவடிவ கருத்தையும் அதன் நிலையையும் இயக்கலாம் அல்லது முடக்கலாம், இது பயனர்களுக்கு இடையில் நிலையானது.</translation> <translation id="5868414965372171132">பயனர்-நிலை நெட்வொர்க் உள்ளமைவு</translation> -<translation id="5879014913445067283"><ph name="NETBIOS_NAME" /> வழியாகச் செய்யப்படும் நெட்வொர்க் கோப்புப் பகிர்வுக் கண்டறிதலைக் கட்டுப்படுத்தும்</translation> +<translation id="5879014913445067283"><ph name="NETBIOS_NAME" /> வழியாகச் செய்யப்படும் நெட்வொர்க் கோப்புப் பகிர்வு கண்டறிதலைக் கட்டுப்படுத்தும்</translation> <translation id="5883015257301027298">இயல்புநிலை குக்கீகள் அமைப்பு</translation> <translation id="5887414688706570295">தொலைநிலை அணுகல் ஹோஸ்ட்கள் பயன்படுத்தும் TalkGadget முன்னொட்டை உள்ளமைத்து, பயனர்கள் அதை மாற்ற இயலாதவாறு அமைக்கும். @@ -1726,6 +1761,7 @@ இந்த அமைப்பு முடக்கப்பட்டிருந்தாலோ உள்ளமைக்கப்படாமல் இருந்தாலோ, gnubby அங்கீகரிப்புக் கோரிக்கைகள் ப்ராக்ஸி செய்யப்படாது.</translation> <translation id="5898486742390981550">பல பயனர்கள் உள்நுழைந்திருக்கும் போது, முதன்மைப் பயனர் மட்டுமே Android பயன்பாடுகளைப் பயன்படுத்த முடியும்.</translation> +<translation id="5901427587865226597">டூப்ளெக்ஸ் அச்சிடல் மட்டும்</translation> <translation id="5906199912611534122">நெட்வொர்க் நெருக்குதலை இயக்கவும் முடக்கவும் அனுமதிக்கும். இது எல்லாப் பயனர்களுக்கும், சாதனத்தில் இருக்கும் எல்லா இடைமுகங்களுக்கும் பொருந்தும். ஒரு முறை அமைத்ததும், 'கொள்கையை முடக்கு' என அமைக்கும் வரை, நெருக்குதல் தொடரும். @@ -1765,7 +1801,7 @@ <translation id="6022948604095165524">தொடக்கத்தின்போதான செயல்</translation> <translation id="6023030044732320798">ARC இயங்கும் நேரத்திடம் ஒப்படைக்கப்படும் கொள்கைகளைக் குறிப்பிடும். மதிப்பானது சரியான JSON ஆக இருக்க வேண்டும். - எந்ததெந்த Android பயன்பாடுகள் சாதனத்தில் தானாக நிறுவப்பட வேண்டும் என்பதை உள்ளமைக்க, இந்தக் கொள்கையைப் பயன்படுத்தலாம்: + எந்ததெந்த Android ஆப்ஸ் சாதனத்தில் தானாக நிறுவப்பட வேண்டும் என்பதை உள்ளமைக்க, இந்தக் கொள்கையைப் பயன்படுத்தலாம்: { "type": "object", @@ -1776,11 +1812,11 @@ "type": "object", "properties": { "packageName": { - "description": "Android பயன்பாட்டின் அடையாளங்காட்டி, எ.கா. Gmailக்கு "com.google.android.gm"", + "description": "Android ஆப்ஸ் அடையாளங்காட்டி, எ.கா. Gmailலுக்கு "com.google.android.gm", "type": "string" }, "installType": { - "description": "பயன்பாடானது எவ்வாறு நிறுவப்படுகிறது என்பதைக் குறிப்பிடுகிறது. OPTIONAL: பயன்பாடு தானாக நிறுவப்படாது, பயனர் அதனை நிறுவலாம். இந்தக் கொள்கை குறிப்பிடப்படவில்லை எனில், இதுதான் இயல்பாகப் பயன்படுத்தப்படும். PRELOAD: பயன்பாடானது தானாக நிறுவப்படும், பயனர் அதை நிறுவல் நீக்கலாம். FORCE_INSTALLED: பயன்பாடானது தானாக நிறுவப்படும், பயனரால் அதை நிறுவல் நீக்க முடியாது. BLOCKED: பயன்பாடு முடக்கப்பட்டிருக்கும், அதை நிறுவ முடியாது. முந்தைய கொள்கையின் கீழ் பயன்பாடு நிறுவப்பட்டிருந்தால், அது நிறுவல் நீக்கப்படும்.", + "description": "ஆப்ஸ் எவ்வாறு நிறுவப்படுகிறது என்பதைக் குறிப்பிடுகிறது. OPTIONAL: ஆப்ஸ் தானாக நிறுவப்படாது, பயனர் அதனை நிறுவலாம். இந்தக் கொள்கை குறிப்பிடப்படவில்லை எனில், இதுதான் இயல்பாகப் பயன்படுத்தப்படும். PRELOAD: ஆப்ஸ் தானாக நிறுவப்படும். ஆனால், பயனர் அதை நிறுவல் நீக்கலாம். FORCE_INSTALLED: ஆப்ஸ் தானாக நிறுவப்படும், பயனரால் அதை நிறுவல் நீக்க முடியாது. BLOCKED: ஆப்ஸ் முடக்கப்பட்டிருக்கும், அதை நிறுவ முடியாது. முந்தைய கொள்கையின் கீழ் ஆப்ஸ் நிறுவப்பட்டிருந்தால், அது நிறுவல் நீக்கப்படும்.", "type": "string", "enum": [ "OPTIONAL", @@ -1790,7 +1826,7 @@ ] }, "defaultPermissionPolicy": { - "description": "பயன்பாடுகளுக்கு அனுமதிக் கோரிக்கைகளை வழங்குவதற்கான கொள்கை. + "description": "ஆப்ஸுக்கு அனுமதிக் கோரிக்கைகளை வழங்குவதற்கான கொள்கை. PERMISSION_POLICY_UNSPECIFIED: கொள்கை குறிப்பிடப்படவில்லை. எந்த நிலையிலும் அனுமதிக்காக கொள்கை எதுவும் குறிப்பிடப்படவில்லை எனில், `PROMPT` செயல்பாடு இயல்பாகப் பயன்படுத்தப்படும். PROMPT: அனுமதியை வழங்கும்படி பயனரை அறிவுறுத்தும். GRANT: தானாக அனுமதியை வழங்கும். DENY: தானாக அனுமதியை மறுக்கும்.", "type": "string", "enum": [ @@ -1801,7 +1837,7 @@ ] }, "managedConfiguration": { - "description": "விசை மதிப்பு இணைகளைக் கொண்ட குறிப்பிட்ட பயன்பாடு சார்ந்த JSON உள்ளமைவு ஆஃப்ஜெக்ட். எ.கா. '"managedConfiguration": { "key1": value1, "key2": value2 }'. பயன்பாட்டு மெனிஃபெஸ்ட்டில் விசைகள் வரையறுக்கப்பட்டுள்ளன.", + "description": "விசை மதிப்பு இணைகளைக் கொண்ட குறிப்பிட்ட ஆப்ஸ் சார்ந்த JSON உள்ளமைவு ஆப்ஜெக்ட். எ.கா. '"managedConfiguration": { "key1": value1, "key2": value2 }'. ஆப்ஸ் மெனிஃபெஸ்ட்டில் விசைகள் வரையறுக்கப்பட்டுள்ளன.", "type": "object" } } @@ -1810,16 +1846,16 @@ } } - தொடக்கியில் பயன்பாடுகளைப் பொருத்த, PinnedLauncherApps என்பதைப் பார்க்கவும்.</translation> + தொடக்கியில் ஆப்ஸைப் பொருத்த, PinnedLauncherApps என்பதைப் பார்க்கவும்.</translation> <translation id="602728333950205286">இயல்புநிலை தேடல் வழங்குநர் உடனடி URL</translation> <translation id="603410445099326293">POST ஐப் பயன்படுத்தும் பரிந்துரை URL க்கான அளவுருக்கள்</translation> <translation id="6036523166753287175">தொலைநிலை அணுகல் ஹோஸ்ட்டில் இருந்து கடந்துவர, ஃபயர்வாலைச் செயல்படுத்து</translation> <translation id="6070667616071269965">சாதன உள்நுழைவுத் திரையின் விசைப்பலகைத் தளவமைப்புகள்</translation> <translation id="6074963268421707432">டெஸ்க்டாப் அறிவிக்கைகளைக் காண்பிக்க எந்த தளத்தையும் அனுமதிக்காதே</translation> <translation id="6074964551275531965">புதுப்பிப்பு தொடர்பான அறிவிப்புகளுக்குக் கால அளவை அமைக்கும்</translation> -<translation id="6076099373507468537">chrome.usb API வழியே நேரடியாக இணையப் பயன்பாட்டில் பயன்படுத்துவதற்காக, கெர்னல் இயக்கியிலிருந்து அகற்ற அனுமதிக்கும் USB சாதனங்களின் பட்டியலை வரையறுக்கும். உள்ளீடுகள் என்பவை குறிப்பிட்ட வன்பொருளை அடையாளப்படுத்த, USB விற்பனையாளர் அடையாளங்காட்டி மற்றும் தயாரிப்பு அடையாளங்காட்டியின் இணைகளாகும். +<translation id="6076099373507468537">chrome.usb API வழியே நேரடியாக வலைப் பயன்பாட்டில் பயன்படுத்துவதற்காக, கெர்னல் டிரைவரிலிருந்து அகற்றப்பட அனுமதி பெற்ற USB சாதனங்களின் பட்டியலை வரையறுக்கும். உள்ளீடுகள், குறிப்பிட்ட வன்பொருளை அடையாளப்படுத்தப் பயன்படும் USB விற்பனையாளர் அடையாளங்காட்டி மற்றும் தயாரிப்பு அடையாளங்காட்டியின் இணைகளாகும். - இந்தக் கொள்கை உள்ளமைக்கப்படவில்லை எனில், அகற்றத்தக்க USB சாதனங்களின் பட்டியல் காலியாக இருக்கும்.</translation> +இந்தக் கொள்கை உள்ளமைக்கப்படவில்லை எனில், அகற்றத்தக்க USB சாதனங்களின் பட்டியல் காலியாக இருக்கும்.</translation> <translation id="6083631234867522991">Windows (Windows கிளையன்ட்டுகள்):</translation> <translation id="6093156968240188330">தொலைநிலை உதவி அமர்வுகளில், உயர்நிலைச் சாளரங்களை அணுக தொலைநிலைப் பயனர்களை அனுமதி</translation> <translation id="6095999036251797924">AC பவர் அல்லது பேட்டரி சக்தியில் இயங்கும்போது, திரைப் பூட்டப்பட்டப் பிறகு, பயனர் உள்ளீடு இல்லாமல் இருந்த காலத்தின் அளவைக் குறிப்பிடுகிறது. @@ -1834,6 +1870,7 @@ கொள்கை மதிப்பை மில்லிவினாடிகளில் குறிப்பிட வேண்டும். மதிப்புகளானவை, செயல்படாமல் இருந்த தாமத்தைவிட குறைவாகவே இருக்க வேண்டும்.</translation> <translation id="6097601282776163274">URLகளோடு சேகரிக்கப்படும் அடையாளமற்ற தரவுத் தொகுப்பை இயக்கும்</translation> +<translation id="6099853574908182288">அச்சிடல் சதவீத வண்ணப் பயன்முறை</translation> <translation id="6111936128861357925">டைனோசர் ஈஸ்டர் எக் கேமை அனுமதிக்கும்</translation> <translation id="6114416803310251055">மறுக்கப்பட்டது</translation> <translation id="6133088669883929098">விசை உருவாக்கத்தை எல்லா தளங்களும் பயன்படுத்த அனுமதி</translation> @@ -1846,6 +1883,7 @@ இந்தக் கொள்கையை அமைக்கவில்லை எனில், இயல்புநிலை மதிப்பு எல்லாத் தளங்களுக்கும் பயன்படுத்தப்படும். அப்படி அமைக்கப்படும் மதிப்பு, 'DefaultPluginsSetting' கொள்கையாகவோ (ஏற்கனவே அமைக்கப்பட்டிருந்தால்) அல்லது பயனரின் தனிப்பட்ட உள்ளமைவாகவோ இருக்கும்.</translation> <translation id="6190022522129724693">இயல்புநிலை பாப்அப்கள் அமைப்பு</translation> +<translation id="6190367314942602985">பயனர் அடையாளத் தகவலைத் தெரிவிக்கும்</translation> <translation id="6197453924249895891">நீட்டிப்புகளுக்கான நிறுவன விசைகளுக்கு அணுகலை வழங்குகிறது. நிர்வகிக்கப்பட்ட கணக்கில் chrome.enterprise.platformKeys API மூலம் விசைகள் உருவாக்கப்பட்டால், அவை நிறுவனப் பயன்பாட்டிற்கு என்று நியமிக்கப்படும். இறக்குமதி செய்யப்பட்ட அல்லது வேறு வழியில் உருவாக்கப்பட்ட விசைகள் நிறுவனப் பயன்பாட்டுக்கு நியமிக்கப்படாது. @@ -1855,6 +1893,8 @@ இயல்பாக, நிறுவனப் பயன்பாட்டிற்கு நியமிக்கப்பட்ட விசையை ஒரு நீட்டிப்பால் பயன்படுத்த முடியாது, அது அந்த நீட்டிப்பில் allowCorporateKeyUsage என்பதை false என அமைப்பதற்கு இணையானதாகும். ஒரு நீட்டிப்பில் allowCorporateKeyUsage என்பது true என அமைக்கப்பட்டால் மட்டுமே, விதிக்குட்படாத தரவைப் பதிவு செய்ய நிறுவனப் பயன்பாட்டிற்கு எனக் குறிக்கப்பட்ட இயங்குதள விசையை நீட்டிப்பினால் பயன்படுத்த முடியும். கேடு விளைவிப்பவர்களிடம் இருந்து விசையின் அணுகலைப் பாதுகாக்கும் அளவுக்கு, நீட்டிப்பானது நம்பகமாக இருந்தால் மட்டுமே, இந்த அனுமதி வழங்கப்பட வேண்டும்.</translation> +<translation id="6208896993204286313"><ph name="PRODUCT_NAME" /> கொள்கைத் தகவலைத் தெரிவிக்கும்</translation> +<translation id="6210259502936598222">OS மற்றும் <ph name="PRODUCT_NAME" /> பதிப்புத் தகவலைத் தெரிவிக்கும்</translation> <translation id="6211428344788340116">சாதனத்தின் செயல்பாட்டு நேரங்களை அறிக்கையிடவும். இந்த அமைப்பு அமைக்கப்படாமல் இருந்தால் அல்லது சரி என அமைக்கப்பட்டிருந்தால், சாதனத்தில் பயனர் செயலில் இருந்த காலநேரங்களைப் பற்றி பதிவுசெய்யப்பட்ட சாதனங்கள் அறிக்கையிடும். இந்த அமைப்பு தவறு என அமைக்கப்பட்டிருந்தால், சாதனத்தின் செயல்பாட்டு நேரங்கள் பதிவுசெய்யப்படாது அல்லது அறிக்கையிடப்படாது.</translation> @@ -1868,6 +1908,7 @@ <translation id="6233173491898450179">பதிவிறக்கக் கோப்பகத்தை அமை</translation> <translation id="6244210204546589761">தொடக்கத்தில் திறக்கவேண்டிய URLகள்</translation> <translation id="6258193603492867656">உருவாக்கப்பட்ட Kerberos SPN இல் இயல்புக்கு மாறான போர்ட் சேர்க்கப்பட வேண்டுமா என்று குறிப்பிடுகிறது. இந்த அமைப்பை செயலாக்கி, இயல்புக்கு மாறான (அதாவது, 80 அல்லது 443 ஐ விட வேறுபட்ட) போர்ட்டையும் உள்ளிட்டால், அது உருவாக்கப்பட்ட Kerberos SPN இல் சேர்க்கப்படும். இந்த அமைப்பை முடக்கினால் அல்லது அமைக்கப்படாமல் விட்டால், உருவாக்கப்பட்ட Kerberos SPN இல் எந்த நிலையிலும் எந்தவொரு போர்ட்டும் சேர்க்கப்படாது.</translation> +<translation id="6261643884958898336">சாதன அடையாளத் தகவலைத் தெரிவிக்கும்</translation> <translation id="6281043242780654992">நேட்டிவ் செய்தியிடலுக்கான கொள்கைகளை உள்ளமைக்கிறது. தடுப்புப்பட்டியலிடப்பட்ட நேட்டிவ் செய்தியிடல் ஹோஸ்ட்கள், ஏற்புப்பட்டியலிடப்படும்வரை அவை அனுமதிக்கப்படாது.</translation> <translation id="6282799760374509080">ஆடியோ பதிவை அனுமதி அல்லது தடு</translation> <translation id="6284362063448764300">TLS 1.1</translation> @@ -1898,6 +1939,7 @@ ப்ராக்ஸி சர்வரைத் தானாகக் கண்டறியத் தேர்வுசெய்தால், Android பயன்பாடுகளுக்கு "http://wpad/wpad.dat" எனும் ஸ்கிரிப்ட் வழங்கப்படும். ப்ராக்ஸி தானாகக் கண்டறிதல் நெறிமுறையின் எந்தப் பிற பகுதியும் பயன்படுத்தப்படாது. .pac ப்ராக்ஸி ஸ்கிரிப்டைப் பயன்படுத்தத் தேர்வுசெய்தால், Android பயன்பாடுகளுக்கு ஸ்கிரிப்ட் URL வழங்கப்படும்.</translation> +<translation id="6430366557948788869">Chrome அறிக்கையிடுதல் நீட்டிப்பு</translation> <translation id="6440051664870270040">தளங்கள் ஒரே நேரத்தில் செல்லவும் பாப் அப்களைத் திறக்கவும் அனுமதிக்கும்</translation> <translation id="6447948611083700881">காப்புப் பிரதி எடுப்பது மற்றும் மீட்டெடுப்பது முடக்கப்பட்டது</translation> <translation id="645425387487868471"><ph name="PRODUCT_NAME" />க்குக் கட்டாய உள்நுழைவை இயக்கும்</translation> @@ -1944,6 +1986,7 @@ <translation id="6628646143828354685">இணையதளங்கள் அருகிலுள்ள புளூடூத் சாதனங்களை அணுக அனுமதிக்கலாமா என்பதை அமைக்க உங்களை அனுமதிக்கிறது. அணுகலை முழுதாகத் தடுக்கலாம் அல்லது இணையதளம் அருகிலுள்ள புளூடூத் சாதனங்களை அணுக விரும்பும் ஒவ்வொரு முறையும் பயனரிடம் கேட்கலாம். இந்தக் கொள்கையை அமைக்காமல் விட்டுவிட்டால், '3' பயன்படுத்தப்படும், அதைப் பயனர் மாற்ற முடியும்.</translation> +<translation id="663685822663765995">அச்சிடும் வண்ணப் பயன்முறையைக் கட்டுப்படுத்தும்</translation> <translation id="6641981670621198190">3D கிராஃபிக்ஸ் APIகளுக்கான ஆதரவை முடக்கு</translation> <translation id="6647965994887675196">சரி என அமைக்கப்பட்டால், கண்காணிக்கப்படும் பயனர்களை உருவாக்கி, அவர்களைப் பயன்படுத்த முடியும். @@ -1971,12 +2014,13 @@ இந்தக் கொள்கையின் URL பேட்டர்ன்கள், WebUsbAskForUrls மூலம் உள்ளமைக்கப்பட்டுள்ளவற்றுடன் முரண்படக்கூடாது. ஒரு URL இரு கொள்கைகளுடனும் பொருந்தினால், இரண்டில் எது முன்னுரிமை பெற்றுச் செயல்படும் என்பது குறிப்பிடப்படவில்லை.</translation> <translation id="6689792153960219308">வன்பொருள் நிலையை அறிவிக்கும்</translation> +<translation id="6698632841807204978">மோனோகுரோம் அச்சிடலை இயக்கு</translation> <translation id="6699880231565102694">தொலைநிலை அணுகல் ஹோஸ்ட்களின் இரு-காரணி அங்கீகாரத்தைச் செயல்படுத்து</translation> -<translation id="6724842112053619797">இந்த அமைப்பை இயக்கினால், <ph name="PRODUCT_NAME" /> சுயவிவரங்களில் சேமிக்கப்பட்ட புத்தகக்குறிகள், தன்னிரப்பித் தரவு, கடவுச்சொற்கள் போன்ற பல அமைப்புகளும், ரோமிங் பயனர் சுயவிவரக் கோப்புறையில் சேமிக்கப்பட்ட கோப்பு அல்லது <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> கொள்கை மூலம் நிர்வாகி குறிப்பிட்ட இடத்தில் எழுதப்படும். இந்தக் கொள்கையை இயக்கினால், கிளவுட் ஒத்திசைவு முடக்கப்படும். +<translation id="6724842112053619797">இந்த அமைப்பை இயக்கினால், <ph name="PRODUCT_NAME" /> கணக்குகளில் சேமிக்கப்பட்ட புக்மார்க்குகள், தன்னிரப்பித் தரவு, கடவுச்சொற்கள் போன்ற பல அமைப்புகளும், ரோமிங் பயனர் கனக்குக் கோப்புறையில் சேமிக்கப்பட்ட கோப்பிலோ, <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> கொள்கை மூலம் நிர்வாகி குறிப்பிட்ட இடத்திலோ எழுதப்படும். இந்தக் கொள்கையை இயக்கினால், கிளவுட் ஒத்திசைவு முடக்கப்படும். - இந்தக் கொள்கை முடக்கப்பட்டால் அல்லது அமைக்கப்படவில்லை எனில், வழக்கமான அகச் சுயவிவரங்கள் மட்டுமே பயன்படுத்தப்படும். + இந்தக் கொள்கை முடக்கப்பட்டாலோ அமைக்கப்படவில்லை என்றாலோ, வழக்கமான அகக் கணக்குகள் மட்டுமே பயன்படுத்தப்படும். - <ph name="SYNC_DISABLED_POLICY_NAME" /> கொள்கையானது RoamingProfileSupportEnabledஐ மீறிச் செயல்பட்டு, எல்லாத் தரவு ஒத்திசைவையும் முடக்கும்.</translation> + <ph name="SYNC_DISABLED_POLICY_NAME" /> கொள்கை RoamingProfileSupportEnabledஐ மீறிச் செயல்பட்டு, எல்லா தரவு ஒத்திசைவையும் முடக்கும்.</translation> <translation id="6731757988219967594">வயதுவந்தோர் உள்ளடக்கத்திற்குப் பிரபலமான தளங்களை (உட்பொதிக்கப்பட்ட iframesஸை வடிகட்டாது) வடிகட்டு</translation> <translation id="6734521799274931721">ChromeOSஸின் கிடைக்கும்நிலைக்கான ‘நெட்வொர்க் கோப்புப் பகிர்வுகள்’ அம்சத்தைக் கட்டுப்படுத்தும்</translation> <translation id="6735701345096330595">மொழிகளுக்கான எழுத்துச்சரிபார்ப்பைக் கட்டாயப்படுத்தி இயக்கு</translation> @@ -2010,6 +2054,12 @@ இந்த அமைப்பு, பயனர்கள் <ph name="PRODUCT_NAME" /> இல் உள்நுழைய உதவும் வரவேற்புப் பக்கங்களைக் காண்பிப்பதை, அதை அவர்களது இயல்பு உலாவியாகத் தேர்வுசெய்வதை, அல்லது தயாரிப்பின் அம்சங்களை அவர்களுக்குத் தெரிவிப்பதைக் கட்டுப்படுத்தும்.</translation> <translation id="6766216162565713893">அருகிலுள்ள புளூடூத் சாதன அணுகலைக் கொடுக்குமாறு பயனரிடம் கேட்க தளங்களை அனுமதிக்கும்</translation> <translation id="6770454900105963262">செயல்பாட்டில் உள்ள கியாஸ்க் அமர்வுகளைப் பற்றிய தகவலை அறிவிக்கும்</translation> +<translation id="6773056206551814546">சாதனத்தின் பெயர், நெட்வொர்க் முகவரிகள் போன்ற, சாதனங்களை அடையாளம் காணப் பயன்படுத்தக்கூடிய தகவல்களைத் தெரிவிப்பதா இல்லையா என்பதை இந்தக் கொள்கை கட்டுப்படுத்தும். + + இந்தக் கொள்கையை அமைக்காவிட்டால் அல்லது ‘சரி’ என அமைத்தால், சாதனங்களை அடையாளம் காணப் பயன்படுத்தக்கூடிய தகவல்கள் சேகரிக்கப்படும். + இந்தக் கொள்கையை ‘தவறு’ என அமைத்தால், சாதனங்களை அடையாளம் காணப் பயன்படுத்தக்கூடிய தகவல்கள் சேகரிக்கப்படாது. + + Chrome அறிக்கையிடுதல் நீட்டிப்பும் கிளவுட் நிர்வாகமும் இயக்கப்பட்டால் மட்டுமே இந்தக் கொள்கை செயலில் இருக்கும்.</translation> <translation id="6786747875388722282">நீட்டிப்புகள்</translation> <translation id="6786967369487349613">ரோமிங் சுயவிவரக் கோப்பகத்தை அமை</translation> <translation id="6810445994095397827">இந்த தளங்களில் JavaScript ஐத் தடு </translation> @@ -2072,7 +2122,7 @@ பயனர்களால் இந்த அமைப்பை மாற்றவோ அல்லது மீறிச் செயல்படவோ முடியாது.</translation> <translation id="6908640907898649429">இயல்புநிலை தேடல் வழங்குநரை உள்ளமைக்கிறது. பயனர் பயன்படுத்தும் இயல்புநிலை தேடல் வழங்குநரை நீங்கள் குறிப்பிடலாம் அல்லது இயல்புநிலைத் தேடலை முடக்குமாறு தேர்வுசெய்யலாம்.</translation> -<translation id="6913068954484253496">எல்லா IP முகவரிகளிலும் உள்ள அனுப்பும் சாதனங்களிலும் இணைய <ph name="PRODUCT_NAME" />ஐ அனுமதிக்கும்.</translation> +<translation id="6913068954484253496">எல்லா IP முகவரிகளிலும் உள்ள Cast சாதனங்களில் இணைய <ph name="PRODUCT_NAME" />ஐ அனுமதிக்கும்.</translation> <translation id="6915442654606973733">பேச்சுவடிவ கருத்து அணுகல்தன்மை அம்சத்தை இயக்கவும். இந்தக் கொள்கை சரி என அமைக்கப்பட்டால், பேச்சுவடிவ கருத்து எப்போதும் இயக்கப்பட்டிருக்கும். @@ -2093,14 +2143,15 @@ குறிப்பு: 1 ஜி.பை. RAMமைக் கொண்ட Android இயங்கும் சாதனங்களில் உள்ள Chromeமில் மட்டுமே இந்தக் கொள்கைப் பயன்படுத்தப்படும். பிற இயங்குதளங்களில் கொள்கையைப் பயன்படுத்த SitePerProcessஸைப் பயன்படுத்தவும். </translation> <translation id="6922040258551909078"> - இந்தக் கொள்கையானது சரி என அமைக்கப்பட்டால், சாதனக் கொள்கையுடன் மேகக்கணிக் கொள்கை முரண்படும் போது, மேகக்கணிக் கொள்கை முன்னுரிமை பெறும். - இந்தக் கொள்கையானது தவறு என அமைக்கப்பட்டாலோ அல்லது உள்ளமைக்கப்படவில்லை என்றாலோ, மேகக்கணிக் கொள்கையுடன் சாதனக் கொள்கை முரண்படும்போது, சாதனக் கொள்கை முன்னுரிமை பெறும். - கொள்கை முன்னுரிமை குறித்த மேலும் விவரங்களுக்கு, பின்வரும் இணைப்பிற்குச் செல்லவும்: https://support.google.com/chrome?p=set_chrome_policies_for_devices + இந்தக் கொள்கை 'சரி' என அமைக்கப்பட்டால், சாதனக் கொள்கையுடன் கிளவுட் கொள்கை முரண்படும் போது, கிளவுட் கொள்கை முன்னுரிமை பெறும். + இந்தக் கொள்கை 'தவறு' என அமைக்கப்பட்டாலோ உள்ளமைக்கப்படவில்லை என்றாலோ, கிளவுட் கொள்கையுடன் சாதனக் கொள்கை முரண்படும்போது, சாதனக் கொள்கை முன்னுரிமை பெறும். + கொள்கை முன்னுரிமை குறித்த கூடுதல் விவரங்களுக்கு, பின்வரும் இணைப்பிற்குச் செல்லவும்: https://support.google.com/chrome?p=set_chrome_policies_for_devices <ph name="MS_AD_NAME" /> டொமைனில் சேர்க்கப்படாத Windows நேர்வுகளில் இந்தக் கொள்கை இருக்காது. </translation> <translation id="6922884955650325312"><ph name="FLASH_PLUGIN_NAME" /> செருகுநிரலைத் தடு</translation> <translation id="6923366716660828830">இயல்புநிலை தேடல் வழங்குநரின் பெயரைக் குறிப்பிடுகிறது. இதை அமைக்காமலோ வெறுமையாகவோ விட்டால், தேடல் URLலால் குறிப்பிடப்பட்ட ஹோஸ்ட் பெயர் பயன்படுத்தப்படும். 'DefaultSearchProviderEnabled' கொள்கை இயக்கப்பட்டால் மட்டுமே இந்தக் கொள்கை பரிசீலிக்கப்படும்.</translation> +<translation id="6926703471186170050">நீண்ட விளிம்பு டூப்ளெக்ஸ் அச்சிடலை இயக்கு</translation> <translation id="6931242315485576290">Google உடன் தரவை ஒத்திசைப்பதை முடக்கு</translation> <translation id="6936894225179401731">ப்ராக்ஸி சேவையகத்துடன் ஒரே நேரத்தில் இணைக்கப்படும் இணைப்புகளின் அதிகபட்ச எண்ணிக்கையைக் குறிக்கிறது. @@ -2149,11 +2200,11 @@ இந்தக் கொள்கையைத் ‘தவறு’ என அமைத்தாலோ அமைக்காமலேயே விட்டாலோ, அத்தகைய பதிவுகளைச் சேகரிக்கவோ பதிவேற்றவோ <ph name="PRODUCT_NAME" />க்கு அனுமதி இருக்காது. - இந்தப் பதிவுகளில் RTP பாக்கெட்டுகள் அனுப்பப்பட்ட மற்றும் பெறப்பட்ட நேரம், அவற்றின் அளவு, நெட்வொர்க்கிலுள்ள நெரிசலைப் பற்றிய கருத்து, ஆடியோ மற்றும் வீடியோ ஃப்ரேம்களின் நேரத்தையும் தரத்தையும் பற்றிய மீத்தரவு போன்ற, Chromeமில் ஆடியோ அல்லது வீடியோ அழைப்புகள் குறித்த சிக்கல்களைப் பிழைத்திருத்துவதற்கு உதவக்கூடிய பகுப்பாய்வுத் தகவல்கள் இருக்கும். + இந்தப் பதிவுகளில் Chromeமில் ஆடியோ அல்லது வீடியோ அழைப்புகள் குறித்த சிக்கல்களைப் பிழைத் திருத்துவதற்கு உதவக்கூடிய பகுப்பாய்வுத் தகவல்கள் இருக்கும். இந்தச் சிக்கல்களுக்குச் சில எடுத்துக்காட்டுகள்: RTP பாக்கெட்டுகள் அனுப்பப்பட்ட மற்றும் பெறப்பட்ட நேரம், அவற்றின் அளவு, நெட்வொர்க்கிலுள்ள நெரிசலைப் பற்றிய கருத்து, ஆடியோ மற்றும் வீடியோ ஃப்ரேம்களின் நேரத்தையும் தரத்தையும் பற்றிய மீத்தரவு. இந்தத் தரவுச் சேகரிப்பை Google Hangouts அல்லது Google Meet போன்ற Googleளின் இணையச் சேவைகள் மட்டுமே செயல்படுத்த முடியும். - அமர்வு ஐடி மூலமாக, Google சேவையால் சேகரிக்கப்பட்ட பிற பதிவுகளுடன் Google இந்தப் பதிவுகளைத் தொடர்புபடுத்தலாம்; இது பிழைத்திருத்தத்தை எளிதாக்குவதற்காகச் செய்யப்படுகிறது. + அமர்வு ஐடி மூலமாக, Google சேவையால் சேகரிக்கப்பட்ட பிற பதிவுகளுடன் Google இந்தப் பதிவுகளைத் தொடர்புபடுத்தலாம்; இது பிழைத் திருத்தத்தை எளிதாக்குவதற்காகச் செய்யப்படுகிறது. </translation> <translation id="706669471845501145">டெஸ்க்டாப் அறிவிக்கைகளை காண்பிக்க தளங்களை அனுமதி</translation> <translation id="7072208053150563108">சாதனக் கடவுச்சொல் மாற்றத்தின் கால இடைவேளை</translation> @@ -2289,12 +2340,13 @@ <translation id="7343497214039883642">சாதனங்களுக்கான நிறுவனப் பிரிண்டரின் உள்ளமைவுக் கோப்பு</translation> <translation id="7349338075015720646">இது பயனரின் பங்களிப்பு இல்லாமல் தானாக நிறுவப்படும் இணையதளங்களின் பட்டியலைக் குறிப்பிடுகிறது, இவற்றைப் பயனரால் நிறுவல் நீக்கவோ முடக்கவோ முடியாது. - கொள்கையின் ஒவ்வொரு பட்டியல் உருப்படியும் "url" மற்றும் "launch_container" ஆகிய இரண்டு உறுப்புகளைக் கொண்ட ஒரு பொருளைக் கொண்டிருக்கும். "url" என்பது நிறுவப்பட வேண்டிய இணைய ஆப்ஸின் URLலைக் கொண்டிருக்கும், "launch_container" என்பது, இணைய ஆப்ஸ் நிறுவப்பட்டவுடன் அது "சாளரம்" அல்லது "தாவல்", இவற்றில் எதில் திறக்கப்பட வேண்டும் என்பதைக் குறிக்கும். "launch_container" என்பதைக் குறிப்பிடாமல் விட்டால், அது ‘நவீன இணைய ஆப்ஸாக’ இருந்தால் Chrome அதை ஒரு சாளரத்தில் திறக்கும், இல்லையெனில் ஒரு தாவலில் திறக்கும்.</translation> + கொள்கையின் பட்டியலில் இருக்கும் ஒவ்வொன்றும் "url" மற்றும் "launch_container" ஆகிய இரண்டு உறுப்புகளைக் கொண்ட ஒரு பொருளைக் கொண்டிருக்கும். "url" என்பது நிறுவப்பட வேண்டிய இணைய ஆப்ஸின் URLலைக் கொண்டிருக்கும், "launch_container" என்பது, இணைய ஆப்ஸ் நிறுவப்பட்டவுடன் "சாளரம்" அல்லது "தாவல்" ஆகியவற்றில் எதில் திறக்கப்பட வேண்டும் என்பதைக் குறிக்கும். "launch_container" என்பதைக் குறிப்பிடாமல் விட்டால், அந்த ஆப்ஸை ஒரு ‘நவீன இணைய ஆப்ஸாக’ Chrome எடுத்துக்கொண்டால் அதை ஒரு சாளரத்தில் திறக்கும், இல்லையெனில் ஒரு தாவலில் திறக்கும்.</translation> <translation id="7367028210010532881">தீங்குவிளைவிப்பதற்குச் சாத்தியமுள்ளதாகப் புகாரளிக்கப்பட்ட தளங்களுக்குப் பயனர்கள் செல்லும் போது, பாதுகாப்பான உலாவல் சேவையானது எச்சரிக்கைப் பக்கத்தைக் காட்டும். இந்த அமைப்பை இயக்கினால், பயனர்கள் எச்சரிக்கைப் பக்கத்திலிருந்து தீங்கு விளைவிக்கக்கூடிய தளத்திற்குச் செல்வதற்கான 'எப்படியேனும் செல்' எனும் விருப்பத்தை முடக்கும். இந்த அமைப்பு முடக்கப்பட்டாலோ அல்லது உள்ளமைக்கப்படாமல் இருந்தாலோ, எச்சரிக்கை காட்டப்பட்ட பின்பு, பயனர்கள் புகாரளிக்கப்பட்ட தளத்திற்குச் செல்லலாமா அல்லது வேண்டாமா என்பதைத் தேர்வுசெய்துகொள்ளலாம். பாதுகாப்பான உலாவல் குறித்த கூடுதல் தகவலுக்கு, https://developers.google.com/safe-browsing எனும் இணைப்பிற்குச் செல்லவும்.</translation> +<translation id="737655323154569539">அச்சிடும் பக்க அளவைக் கட்டுப்படுத்தும். கொள்கை அமைக்கப்படவில்லை என்றாலும் தொகுப்பு வெறுமையாக இருந்தாலும், ‘கட்டுப்பாடு எதுவுமில்லை’ என்பதாகக் கருதப்படும்.</translation> <translation id="7417728346887499628">முடக்கப்பட்டால், Chrome கிளீன்அப்பானது தேவையில்லாத மென்பொருள் உள்ளதா என்று சாதனத்தை ஸ்கேன் செய்வதையும் கிளீன்அப்களை மேற்கொள்வதையும் இந்தக் கொள்கை தடுக்கும். chrome://settings/cleanup என்பதில் கைமுறையாக Chrome கிளீன்அப்பை இயக்கும் அம்சம் முடக்கப்படும். @@ -2368,6 +2420,8 @@ <translation id="7617319494457709698">இந்தக் கொள்கையானது, தொலைநிலைச் சான்றொப்பத்திற்காக <ph name="ENTERPRISE_PLATFORM_KEYS_API" /> செயல்பாடு <ph name="CHALLENGE_USER_KEY_FUNCTION" /> என்பதைப் பயன்படுத்த அனுமதிக்கப்பட்ட நீட்டிப்புகளைக் குறிப்பிடும். APIஐப் பயன்படுத்த, நீட்டிப்புகளை இந்தப் பட்டியலில் சேர்க்க வேண்டும். பட்டியலில் நீட்டிப்பு இல்லை என்றாலோ அல்லது பட்டியல் அமைக்கப்படவில்லை என்றாலோ, APIஐ அழைக்கும் போது, பிழைக் குறியீட்டுடன் அழைப்புத் தோல்வியடையும்.</translation> +<translation id="7618907117929117943">OS பதிப்பானது இலக்குப் பதிப்பை விடப் புதியதாக இருந்தால், இலக்குப் பதிப்புக்கு மீட்டமைத்து, அதைப் பயன்படுத்தவும். பின்னோக்கி மீட்டமைப்பதன் மூலம் சாதன நிலை உள்ளமைவை (நெட்வொர்க் அனுமதிச் சான்றுகள் உட்பட) மாற்றாமல் வைத்திருக்கலாம், பின்னோக்கி மீட்டமைத்த பிறகு OOBEயையும் தவிர்க்கலாம். அவ்வாறு செய்ய முடியவில்லை (இலக்குப் பதிப்பானது தரவு மீட்டமைப்பதை ஆதரிக்காததால் அல்லது பின்னோக்கிய இணக்கமற்ற மாற்றம் காரணமாக) என்றால், பின்னோக்கி மீட்டமைக்கவோ மீட்டமைப்பை ரத்துசெய்யவோ வேண்டாம். + <ph name="PRODUCT_OS_NAME" /> பதிப்பு 70 மற்றும் பிந்தையவற்றில் ஆதரிக்கப்படும். பழைய கிளையன்ட்களுக்கு, பின்னோக்கி மீட்டமைப்பது முடக்கப்பட்டுள்ளது என்பது இந்த மதிப்பின் பொருள்.</translation> <translation id="7625444193696794922">இந்த சாதனம் பூட்டப்பட வேண்டிய வெளியீட்டு சேனலைக் குறிப்பிடுகிறது.</translation> <translation id="7632724434767231364">GSSAPI லைப்ரரி பெயர்</translation> <translation id="7635471475589566552"><ph name="PRODUCT_NAME" /> இல் பயன்பாட்டின் மொழியை உள்ளமைக்கிறது மற்றும் பயனர்கள் அதை மாற்றுவதைத் தடுக்கிறது. நீங்கள் இந்த அமைப்பை இயக்கினால், <ph name="PRODUCT_NAME" /> ஆனது குறிப்பிடப்பட்ட மொழியைப் பயன்படுத்தும். உள்ளமைக்கப்பட்ட மொழியானது ஆதரிக்கப்படவில்லை என்றால், அதற்கு மாற்றாக 'en-US' பயன்படுத்தப்படும். இந்த அமைப்பு முடக்கப்பட்டிருந்தால் அல்லது உள்ளமைக்கப்படவில்லை என்றால், <ph name="PRODUCT_NAME" /> ஆனது பயனர் குறிப்பிட்ட மொழியைப் பயன்படுத்தும் (உள்ளமைக்கப்பட்டால்), கணினியின் மொழியைப் பயன்படுத்தும் அல்லது 'en-US' க்கு மீட்டமைக்கப்படும்.</translation> @@ -2562,6 +2616,7 @@ நீங்கள் இந்த அம்சத்தை இயக்கினால் அல்லது எந்தவொரு மதிப்பையும் இதற்கு தரவில்லை என்றால், தன்னிரப்பி அம்சம் பயனரின் கட்டுப்பாட்டில் இருக்கும். இதனால் அவர்கள் தன்னிரப்பி அம்சத்தை, அவர்களின் விருப்புரிமையின்படி இயக்கலாம் அல்லது முடக்கலாம்.</translation> <translation id="8044493735196713914">சாதனத்தின் மறுஇயக்கப் பயன்முறையை அறிக்கையிடவும்</translation> <translation id="8050080920415773384">இயல்நிலை அச்சிடல்</translation> +<translation id="8053580360728293758">அச்சிடல் சதவீத வண்ணப் பயன்முறையை மேலெழுதும். பயன்முறை கிடைக்காவிட்டால், இந்தக் கொள்கை புறக்கணிக்கப்படும்.</translation> <translation id="8059164285174960932">தொலைநிலை அணுகல் க்ளையன்ட்கள் தங்கள் அங்கீகரிப்பு டோக்கனைப் பெற வேண்டிய URL</translation> <translation id="8078366200175825572">குக்கீகளை அமைக்க அனுமதிக்காத தளங்களைக் குறிக்கும் url வகைகளின் பட்டியலை அமைக்க, உங்களை அனுமதிக்கிறது. @@ -2610,13 +2665,13 @@ இந்தக் கொள்கையை நீங்கள் அமைத்தால், இதைப் பயனர்கள் மாற்றவோ அல்லது மேலெழுதவோ முடியாது. இந்தக் கொள்கை அமைக்கப்படாமல் விட்டால், அதிக ஒளி மாறுபாடு பயன்முறை தொடக்கத்தில் முடக்கப்படும், ஆனால் பயனர் அதை எந்த நேரத்திலும் இயக்கலாம்.</translation> -<translation id="815061180603915310">இந்தக் கொள்கையை இயக்கினால், அது சுயவிவரத்தைக் குறுகியகாலப் பயன்முறைக்கு மாற்ற வலியுறுத்தும். இந்தக் கொள்கையை OS கொள்கை (எ.கா: Windows இலுள்ள GPO) என அமைத்தால், அது சாதனத்தில் உள்ள எல்லா சுயவிவரத்திலும் பயன்படுத்தப்படும்; கொள்கையைக் கிளவுட் கொள்கை என அமைத்தால், அது நிர்வகிக்கப்படும் கணக்கின் மூலம் உள்நுழைந்த சுயவிவரத்தில் மட்டுமே பயன்படுத்தப்படும். +<translation id="815061180603915310">இந்தக் கொள்கையை இயக்கினால், அது கணக்கைத் தற்காலிகப் பயன்முறைக்கு வலிந்து மாற்றும். இந்தக் கொள்கையை 'OS கொள்கை' (எ.கா: Windowsஸிலுள்ள GPO) என அமைத்தால், அது சாதனத்தில் உள்ள எல்லா கணக்குகளிலும் பயன்படுத்தப்படும்; கொள்கையை 'கிளவுட் கொள்கை' என அமைத்தால், நிர்வகிக்கப்படும் ஒரு கணக்கின் மூலம் உள்நுழைந்த கணக்குகளில் மட்டுமே பயன்படுத்தப்படும். - இந்தப் பயன்முறையில், பயனர் அமர்வு நடைபெறும் வரை மட்டுமே சுயவிவரத் தரவானது டிஸ்கில் இருக்கும். உலாவியை மூடிய பின்னர், உலாவல் வரலாறு போன்ற அம்சங்கள், நீட்டிப்புகளும் அதன் தரவும், குக்கீகள் போன்ற இணையத் தரவு மற்றும் இணையத் தரவுத்தளங்கள் ஆகியவை சேமிக்கப்படாது. எனினும் இது, பயனர்கள் ஏதேனும் தரவை டிஸ்கில் பதிவிறக்குவதை, பக்கங்களைச் சேமிப்பதை அல்லது அச்சிடுவதைத் தடுக்காது. + இந்தப் பயன்முறையில், பயனர் அமர்வு முடியும் வரை மட்டுமே சுயவிவரத் தரவானது டிஸ்க்கில் இருக்கும். உலாவியை மூடிய பின்னர், உலாவியில் தேடியவை, நீட்டிப்புகளும் அதன் தரவும், குக்கீகள் போன்ற இணையத் தரவு மற்றும் இணையத் தரவுத்தளங்கள் போன்ற அம்சங்கள் சேமிக்கப்படாது. எனினும் இது, பயனர்கள் ஏதேனும் தரவை டிஸ்க்கில் பதிவிறக்கி, பக்கங்களைச் சேமிப்பதையோ அச்சிடுவதையோ தடுக்காது. - ஒத்திசைவைப் பயனர் இயக்கினால், வழக்கமான சுயவிவரங்களைப் போலவே அவரின் ஒத்திசைவுச் சுயவிவரத்தில் எல்லா தரவும் சேமிக்கப்படும். கொள்கையால் முழுவதுமாக முடக்கப்படவில்லை எனில், மறைநிலைப் பயன்முறையையும் பயன்படுத்தலாம். + பயனர் ஒத்திசைவை இயக்கியிருந்தால், வழக்கமான கணக்குகளைப் போலவே அவரின் ஒத்திசைவுக் கணக்கில் எல்லா தரவும் சேமிக்கப்படும். கொள்கையால் வெளிப்படையாக முடக்கப்படவில்லை எனில், மறைநிலைப் பயன்முறையையும் பயன்படுத்தலாம். - கொள்கையை முடக்கினால் அல்லது அமைக்கப்படவில்லை எனில், பயனர் உள்நுழையும்போது வழக்கமான சுயவிவரங்கள் உருவாக்கப்படும்.</translation> +கொள்கையை முடக்கினாலோ அமைக்கப்படவில்லை என்றாலோ, பயனர் உள்நுழையும்போது வழக்கமான கணக்குகள் உருவாக்கப்படும்.</translation> <translation id="8158758865057576716"><ph name="PRODUCT_NAME" /> சுயவிவரத் தரவிற்கான ரோமிங் நகல்களை உருவாக்குவதை இயக்கு.</translation> <translation id="817455428376641507">URL தடுப்புப் பட்டியலுக்கான விதிவிலக்குகள் போன்று, பட்டியலிடப்பட்ட URLகளுக்கு அணுகலை அனுமதிக்கும். @@ -2737,7 +2792,8 @@ இங்கே "பதிப்பு" என்பது '61.0.3163.120' போன்ற ஒரே பதிப்பாகவோ அல்லது '61.0' போன்ற பதிப்பு முன்னொட்டாகவோ இருக்கலாம் </translation> <translation id="8544375438507658205"><ph name="PRODUCT_FRAME_NAME" /> க்கான, இயல்புநிலை HTML ரெண்டரர்</translation> -<translation id="8544465954173828789">SMS மெசேஜ்களை ஃபோனிலிருந்து Chromebookக்கு ஒத்திசைப்பதை அனுமதிக்கும்.</translation> +<translation id="8544465954173828789">SMS மெசேஜ்களை ஃபோனிலிருந்து Chromebookகுக்கு ஒத்திசைப்பதை அனுமதிக்கும்.</translation> +<translation id="8548832052135586762">அச்சிடலை வண்ணம் மட்டும், மோனோகுரோம் மட்டும் அல்லது வண்ணம் இல்லாத பயன்முறைக் கட்டுப்பாட்டுக்கு அமைக்கும், கொள்கை அமைக்கப்படவில்லை என்றால், ‘கட்டுப்பாடு இல்லை’ என்பதாகக் கருதப்படும்.</translation> <translation id="8549772397068118889">உள்ளடக்கத் தொகுப்புகளுக்கு வெளியே உள்ள தளங்களைப் பார்வையிடும்போது எச்சரிக்கை செய்</translation> <translation id="8566842294717252664">புதிய தாவல் பக்கம் மற்றும் பயன்பாட்டுத் துவக்கியில் இணைய அங்காடியை மறை</translation> <translation id="8586528890725660268">பயனர் பயன்படுத்த முடியாத பிரிண்டர்களைக் குறிப்பிடும். @@ -2777,7 +2833,7 @@ <translation id="867410340948518937">U2F (யூனிவர்செல் செகண்ட் ஃபேக்டர்)</translation> <translation id="8682611302223077049">இது மில்லிவினாடிகளில் ஒரு காலகட்டத்தை அமைக்க அனுமதிக்கும், இந்தக் காலகட்டத்தில் <ph name="PRODUCT_NAME" />ஐ மீண்டும் தொடங்குவதற்கோ, நிலுவையிலுள்ள ஒரு புதுப்பிப்பைப் பயன்படுத்துவதற்கு <ph name="PRODUCT_OS_NAME" /> சாதனத்தை மீண்டும் தொடங்குவதற்கோ பயனருக்கு அறிவுறுத்தப்படும். - இந்தக் காலகட்டத்தில், புதுப்பிப்பு தேவை என்பதைப் பற்றி பயனருக்குத் தொடர்ச்சியாகத் தெரிவிக்கப்படும். <ph name="PRODUCT_OS_NAME" /> சாதனங்களுக்கு, ஒரு புதுப்பிப்பு கண்டறியப்படும்போது, முறைமைத் தட்டில் சாதனத்தை மீண்டும் தொடங்குமாறு அறிவுறுத்தும் அறிவிப்பு தோன்றும். <ph name="PRODUCT_NAME" /> உலாவிகளுக்கு, குறிப்பிடப்பட்டுள்ள காலகட்டத்தில் மூன்றில் ஒருபங்கு நேரம் முடிந்தவுடன், உலாவியை மீண்டும் தொடங்கவேண்டும் என்பதைச் சுட்டிக்காட்டும் வகையில் ஆப்ஸ் மெனு மாறும். காலகட்டத்தில் மூன்றில் இரண்டு பங்கு நேரம் முடிந்தவுடன் இந்த அறிவிப்பின் நிறம் மாறும். அறிவிப்புக் காலம் முழுமையாக முடிந்தவுடன் மீண்டும் நிறம் மாறும். <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> கொள்கையால் இயக்கப்பட்ட கூடுதல் அறிவிப்புகளும் இதே கால அட்டவணையைப் பயன்படுத்தும். + இந்தக் காலகட்டத்தில், புதுப்பிப்பு தேவை என்பதைப் பற்றி பயனருக்குத் தொடர்ச்சியாகத் தெரிவிக்கப்படும். <ph name="PRODUCT_OS_NAME" /> சாதனங்களுக்கு, ஒரு புதுப்பிப்பு கண்டறியப்படும்போது, சிஸ்டம் ட்ரேயில் சாதனத்தை மீண்டும் தொடங்குமாறு அறிவுறுத்தும் அறிவிப்பு தோன்றும். <ph name="PRODUCT_NAME" /> உலாவிகளுக்கு, குறிப்பிடப்பட்டுள்ள காலகட்டத்தில் மூன்றில் ஒருபங்கு நேரம் முடிந்தவுடன், உலாவியை மீண்டும் தொடங்கவேண்டும் என்பதைச் சுட்டிக்காட்டும் வகையில் ஆப்ஸ் மெனு மாறும். காலகட்டத்தில் மூன்றில் இரண்டு பங்கு நேரம் முடிந்தவுடன் இந்த அறிவிப்பின் நிறம் மாறும். அறிவிப்புக் காலம் முழுமையாக முடிந்தவுடன் மீண்டும் நிறம் மாறும். <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> கொள்கையால் இயக்கப்பட்ட கூடுதல் அறிவிப்புகளும் இதே கால அட்டவணையைப் பயன்படுத்தும். அமைக்காமல் விடப்பட்டால், இயல்பாக <ph name="PRODUCT_OS_NAME" /> சாதனங்களுக்கு 345600000 மில்லிவினாடிகள் (நான்கு நாட்கள்) காலகட்டமும் <ph name="PRODUCT_NAME" />க்கு 604800000 மில்லிவினாடிகள் (ஒரு வாரம்) காலகட்டமும் பயன்படுத்தப்படும்.</translation> <translation id="8685024486845674965">கடவுச்சொல் பாதுகாப்புச் சேவையின் எச்சரிக்கையானது, கடவுச்சொல் மீண்டும் பயன்படுத்தப்பட்டால் தூண்டப்படும்</translation> @@ -2816,7 +2872,7 @@ அளவு காரணி 100% அல்லது அதற்கு அதிகமாக இருக்க வேண்டும். விளக்கக்காட்சிப் பயன்முறையில் மங்கல் தாமதத்தை உருவாக்கும் மதிப்புகள் வழக்கமான மங்கல் தாமதத்தை விட குறைவாக இருந்தால் அனுமதிக்கப்படாது.</translation> <translation id="8798099450830957504">இயல்புநிலை</translation> -<translation id="8801680448782904838">உலாவியை அல்லது சாதனத்தை மீண்டும் தொடங்குவதற்குப் பரிந்துரைக்கப்படுகிறது அல்லது மீண்டும் தொடங்க வேண்டும் என்று பயனருக்கு அறிவிக்கும்</translation> +<translation id="8801680448782904838">உலாவியை அல்லது சாதனத்தை மீண்டும் தொடங்குவதற்குப் பரிந்துரைக்கப்படுகிறது என்றோ மீண்டும் தொடங்க வேண்டும் என்றோ பயனருக்கு அறிவிக்கும்</translation> <translation id="8818173863808665831">சாதனத்தின் புவியியல் இருப்பிடத்தைப் புகாரளி. கொள்கை அமைக்கப்படாமலோ அல்லது தவறாகவோ அமைக்கப்பட்டிருந்தாலோ, இருப்பிடம் புகாரளிக்கப்படாது.</translation> @@ -2842,6 +2898,7 @@ இந்தக் கொள்கையை அமைக்கவில்லை எனில், இந்தச் செயல்பாட்டைப் பயன்படுத்தலாமா அல்லது வேண்டாமா என்பதை பயனர் தீர்மானிக்கலாம்.</translation> <translation id="8870318296973696995">முகப்புப் பக்கம்</translation> +<translation id="8876188741456358123">அச்சிடல் சதவீத டூப்ளெக்ஸ் பயன்முறையை மேலெழுதும். பயன்முறை கிடைக்காவிட்டால், இந்தக் கொள்கை புறக்கணிக்கப்படும்.</translation> <translation id="8882006618241293596">இந்தத் தளங்களில் <ph name="FLASH_PLUGIN_NAME" /> செருகுநிரலைத் தடு</translation> <translation id="890403179930035128">மொழிகளுக்கான எழுத்துச்சரிபார்ப்பைக் கட்டாயப்படுத்தி இயக்கும். அந்தப் பட்டியலில் உள்ள தெரியாத மொழிகள் புறக்கணிக்கப்படும். @@ -2958,6 +3015,8 @@ <translation id="9084985621503260744">வீடியோ செயல்பாடு, சக்தி மேலாண்மையைப் பாதிக்குமா என்பதைக் குறிப்பிடவும்</translation> <translation id="9088433379343318874">கண்காணிக்கப்படும் பயனருக்கான உள்ளடக்க வழங்குநரை இயக்கு</translation> <translation id="9088444059179765143">தானாக நேரமண்டலத்தைக் கண்டறிதல் முறையை உள்ளமை</translation> +<translation id="9094064873808699479">OS பதிப்பானது இலக்குப் பதிப்பை விடப் புதியதாக இருந்தால், இலக்குப் பதிப்புக்கு மீட்டமைத்து, அதைப் பயன்படுத்தவும். முடிந்தால் பின்னோக்கி மீட்டமைப்பதன் மூலம் சாதன நிலை உள்ளமைவை (நெட்வொர்க் அனுமதிச் சான்றுகள் உட்பட) மாற்றாமல் வைத்திருக்க முயலவும், எனினும் தரவை மீட்டெடுக்க முடியாவிட்டால் (இலக்குப் பதிப்பானது தரவு மீட்டமைப்பதை ஆதரிக்காததால் அல்லது பின்னோக்கிய இணக்கமற்ற மாற்றம் காரணமாக) கூட, பின்னோக்கி மீட்டமைப்பதை முழு பவர்வாஷுடன் செய்யவும் . + <ph name="PRODUCT_OS_NAME" /> பதிப்பு 70 மற்றும் பிந்தையவற்றில் ஆதரிக்கப்படும். பழைய கிளையன்ட்களுக்கு, பின்னோக்கி மீட்டமைப்பது முடக்கப்பட்டுள்ளது என்பது இந்த மதிப்பின் பொருள்.</translation> <translation id="9096086085182305205">அங்கீகார சேவையக அனுமதி பட்டியல்</translation> <translation id="9098553063150791878">HTTP அங்கீகரிப்பிற்கான கொள்கைகள்</translation> <translation id="9105265795073104888">Android பயன்பாடுகளுக்கு ப்ராக்ஸி உள்ளமைவின் துணைக்குழு விருப்பங்கள் மட்டுமே கிடைக்கும்படி செய்யப்படும். Android பயன்பாடுகள் தானாகவே ப்ராக்ஸியைப் பயன்படுத்துவதற்குத் தேர்வுசெய்யலாம். அவை ப்ராக்ஸியைப் பயன்படுத்த வேண்டும் என நீங்கள் கட்டாயப்படுத்த முடியாது.</translation> @@ -2996,7 +3055,7 @@ <translation id="9158929520101169054">உலாவிக்குள் பல உள்நுழைவை அனுமதி</translation> <translation id="9159126470527871268">நிலுவையிலுள்ள ஒரு புதுப்பிப்பைப் பயன்படுத்துவதற்காக, <ph name="PRODUCT_NAME" /> அல்லது <ph name="PRODUCT_OS_NAME" />ஐ மீண்டும் தொடங்க வேண்டும் என்று பயனர்களுக்கு அறிவிக்கும். - இந்தக் கொள்கை அமைப்பு மூலம், உலாவியை அல்லது சாதனத்தை மீண்டும் தொடங்குவதற்குப் பரிந்துரைக்கப்படுகிறது அல்லது புதுப்பிக்க வேண்டும் என்று பயனருக்குத் தெரிவிக்கும் அறிவிப்புகளை இயக்கலாம். இது அமைக்கப்படாவிட்டால், மெனுவில் செய்யப்படும் சிறியளவிலான மாற்றங்கள் மூலம், அதை மீண்டும் தொடங்க வேண்டும் என்று <ph name="PRODUCT_NAME" /> பயனருக்குச் சுட்டிக்காட்டும். <ph name="PRODUCT_OS_NAME" /> இந்த அறிவிப்பை முறைமைத் தட்டில் காண்பிக்கும். இந்தக் கொள்கை ‘பரிந்துரைக்கப்படுகிறது’ என்பதற்கு அமைக்கப்பட்டால், ‘மீண்டும் தொடங்குவது பரிந்துரைக்கப்படுகிறது’ என்று பயனருக்கு தொடர்ச்சியாக ஓர் எச்சரிக்கைக் காண்பிக்கப்படும். பயனர் இந்த எச்சரிக்கையை நிராகரிப்பதன் மூலம் மீண்டும் தொடங்குவதை ஒத்திவைக்கலாம். இந்தக் கொள்கை ‘தேவை’ என்பதற்கு அமைக்கப்பட்டால், அறிவிப்புக் காலம் முடிந்தவுடன் உலாவி கட்டாயமாக மீண்டும் தொடங்கப்படும் என்பதைச் சுட்டிக்காட்டும் ஓர் எச்சரிக்கை, தொடர்ச்சியாகப் பயனருக்குக் காண்பிக்கப்படும். மறுதொடக்கம் செய்வதற்கான இயல்புக் காலகட்டம் <ph name="PRODUCT_NAME" />க்கு ஏழு நாட்களாகவும், <ph name="PRODUCT_OS_NAME" />க்கு நான்கு நாட்களாகவும் இருக்கும். இந்தக் காலகட்டத்தை <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" /> கொள்கை அமைப்பில் உள்ளமைக்கலாம். + இந்தக் கொள்கை அமைப்பு மூலம், உலாவியை அல்லது சாதனத்தை மீண்டும் தொடங்குவதற்குப் பரிந்துரைக்கப்படுகிறது என்றோ மீண்டும் தொடங்க வேண்டும் என்றோ பயனருக்குத் தெரிவிக்கும் அறிவிப்புகளை இயக்கலாம். இது அமைக்கப்படாவிட்டால், மெனுவில் செய்யப்படும் சிறியளவிலான மாற்றங்கள் மூலம், அதை மீண்டும் தொடங்க வேண்டும் என்று <ph name="PRODUCT_NAME" /> பயனருக்குச் சுட்டிக்காட்டும். <ph name="PRODUCT_OS_NAME" /> இந்த அறிவிப்பை சிஸ்டம் ட்ரேயில் காண்பிக்கும். இந்தக் கொள்கை ‘பரிந்துரைக்கப்படுகிறது’ என்பதற்கு அமைக்கப்பட்டால், ‘மீண்டும் தொடங்குவது பரிந்துரைக்கப்படுகிறது’ என்று பயனருக்குத் தொடர்ச்சியாக ஓர் எச்சரிக்கை காண்பிக்கப்படும். பயனர் இந்த எச்சரிக்கையை நிராகரிப்பதன் மூலம் மீண்டும் தொடங்குவதை ஒத்திவைக்கலாம். இந்தக் கொள்கை ‘தேவை’ என்பதற்கு அமைக்கப்பட்டால், அறிவிப்புக் காலம் முடிந்தவுடன் உலாவி கட்டாயமாக மீண்டும் தொடங்கப்படும் என்பதைச் சுட்டிக்காட்டும் ஓர் எச்சரிக்கை தொடர்ச்சியாகப் பயனருக்குக் காண்பிக்கப்படும். மறுதொடக்கம் செய்வதற்கான இயல்புக் காலகட்டம் <ph name="PRODUCT_NAME" />க்கு ஏழு நாட்களாகவும், <ph name="PRODUCT_OS_NAME" />க்கு நான்கு நாட்களாகவும் இருக்கும். இந்தக் காலகட்டத்தை <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" /> கொள்கை அமைப்பில் உள்ளமைக்கலாம். மறுதொடக்கம் செய்த பின்னர், பயனரின் அமர்வு மீட்டெடுக்கப்படும்.</translation> <translation id="9165792353046089850">இணைக்கப்பட்டுள்ள USB சாதனங்களுக்கான அணுகலைப் பெறுவதற்கு, இணையதளங்களை அனுமதிக்கலாமா அல்லது வேண்டாமா என்பதை அமைக்க உதவுகிறது. அணுகலை முழுமையாகத் தடுக்கலாம் அல்லது இணையதளமானது இணைக்கப்பட்டுள்ள USB சாதனங்களை அணுக விரும்பும் ஒவ்வொரு முறையும் பயனரிடம் கேட்கலாம். @@ -3008,6 +3067,13 @@ <translation id="9187743794267626640">வெளிப்புற சேமிப்பிடம் அமைப்பதை முடக்கு</translation> <translation id="9197740283131855199">மங்கலான பிறகு பயனர் செயலில் இருந்தால் திரையின் மங்கல் தாமதத்தை அளவிடுவதற்கான சதவீதம்</translation> <translation id="9200828125069750521">POST ஐப் பயன்படுத்தும் பட URL க்கான அளவுருக்கள்</translation> +<translation id="920209539000507585">அச்சிடல் உரையாடலில் 'தலைப்புகள் மற்றும் அடிக்குறிப்புகள்' இயக்கப்பட வேண்டுமா அல்லது முடக்கப்பட வேண்டுமா என்பதை வலியுறுத்தும். + + கொள்கையை அமைக்காவிட்டால், தலைப்புகளையும் அடிக்குறிப்புகளையும் அச்சிடுவதா என்பதைப் பயனர்களே தீர்மானிக்கலாம். + + கொள்கையை 'தவறு' என அமைத்தால், அச்சு மாதிரிக்காட்சி உரையாடலில் 'தலைப்புகள் மற்றும் அடிக்குறிப்புகள்' தேர்வுசெய்யப்படாது மற்றும் பயனரால் இதை மாற்ற முடியாது. + + கொள்கையை ‘சரி’ என அமைத்தால், அச்சு மாதிரிக்காட்சி உரையாடலில் 'தலைப்புகள் மற்றும் அடிக்குறிப்புகள்' தேர்வுசெய்யப்படும் மற்றும் பயனரால் இதை மாற்ற முடியாது.</translation> <translation id="9210953373038593554">SAML உள்நுழைவுகளுக்கான அங்கீகரிப்பு வகையை உள்ளமைக்கிறது. இந்தக் கொள்கை அமைக்கப்படவில்லை என்றாலோ அல்லது இயல்பு (மதிப்பு 0) என அமைக்கப்பட்டாலோ, பிற காரணிகளின் அடிப்படையில் SAML உள்நுழைவுகளின் செயல்பாட்டை உலாவி தீர்மானிக்கும். பெரும்பாலான அடிப்படைச் சூழலில், பயனர் அங்கீகரிப்பும் தற்காலிகமாகச் சேமித்தப் பயனர் தரவின் பாதுகாப்பும், பயனர்களால் கைமுறையாக உள்ளிடப்படும் கடவுச்சொற்களை அடிப்படையாகக் கொண்டுள்ளது. @@ -3015,6 +3081,9 @@ ClientCertificate (மதிப்பு 1) என இந்தக் கொள்கை அமைக்கப்பட்டால், கிளையன்ட் சான்றிதழ் அங்கீகரிப்பானது SAML வழியாக உள்நுழையும் புதியதாகச் சேர்க்கப்படும் பயனர்களுக்குப் பயன்படுத்தப்படும். அத்தகைய பயனர்களுக்குக் கடவுச்சொற்கள் பயன்படுத்தப்படாது. மேலும், அவர்களின் தற்காலிகமாகச் சேமித்த அகத் தரவானது தொடர்புடைய கிரிப்டோகிராஃபிக் விசைகளைப் பயன்படுத்திப் பாதுகாக்கப்படும். உதாரணமாக, ஸ்மார்ட் கார்டு அடிப்படையிலான பயனர் அங்கீகரிப்பை உள்ளமைக்க இந்த அமைப்பு அனுமதிக்கிறது (ஸ்மார்ட் கார்டு மிட்டில்வேர் பயன்பாடுகள், DeviceLoginScreenAppInstallList கொள்கை வழியே நிறுவப்பட வேண்டும் என்பதைக் கவனத்தில் கொள்ளவும். SAMLஐப் பயன்படுத்தி அங்கீகரிக்கும் பயனர்களுக்கு மட்டுமே இந்தக் கொள்கை பொருந்தும்.</translation> +<translation id="9211439035693857287">Chrome அறிக்கையிடுதல் நீட்டிப்புத் தொடர்பான கொள்கைகளை உள்ளமைக்கும். + + Chrome அறிக்கையிடுதல் நீட்டிப்பும் கிளவுட் நிர்வாகமும் இயக்கப்பட்டால் மட்டுமே இந்தக் கொள்கைகள் செயலில் இருக்கும்.</translation> <translation id="9213347477683611358">சாதனத்தில் இதுவரை எந்தப் பயனரும் உள்நுழையவில்லை எனில், உள்நுழைவுத் திரையில் தோன்றும் சாதன நிலை வால்பேப்பர் படத்தை உள்ளமைக்கும். URL (வால்பேப்பர் படத்தைப் பதிவிறக்க Chrome OS சாதனம் பயன்படுத்தும் இணைப்பு) மற்றும் கிரிப்ஃடோகிராஃபிக் ஹேஷ் (பதிவிறக்கத்தின் உண்மைத்தன்மையைச் சரிபார்ப்பதற்குப் பயன்படுத்தப்படுவது) ஆகியவற்றைக் குறிப்பிடுவதன் மூலம், இந்தக் கொள்கை அமைக்கப்படுகிறது. படமானது கண்டிப்பாக JPEG வடிவத்தில் இருக்க வேண்டும், அத்துடன் அதன் அளவு 16மெ.பை. விட அதிகமாக இருக்கக்கூடாது. URL ஆனது எந்தவித அங்கீகரிப்பும் இல்லாமல் அணுகக்கூடியதாக இருக்க வேண்டும். வால்பேப்பர் படம் பதிவிறக்கப்பட்டு, தற்காலிகமாகச் சேமிக்கப்படும். URL அல்லது ஹேஷ் மாறும் போது, அது மீண்டும் பதிவிறக்கப்படும்.
diff --git a/components/policy/resources/policy_templates_te.xtb b/components/policy/resources/policy_templates_te.xtb index 61c6f9a..ab6d7b5 100644 --- a/components/policy/resources/policy_templates_te.xtb +++ b/components/policy/resources/policy_templates_te.xtb
@@ -402,7 +402,7 @@ ఈ సెట్టింగ్ సెట్ చేయకుండా వదిలేస్తే వినియోగదారు ఈ ఫంక్షన్ను ఉపయోగించాలా వద్దా అని నిర్ణయించుకోగలరు.</translation> <translation id="2006530844219044261">శక్తి నిర్వహణ</translation> <translation id="201557587962247231">పరికర స్థితి నివేదిక అప్లోడ్ల తరచుదనం</translation> -<translation id="2017301949684549118">వెబ్ యాప్ల కోసం URLలు నిశ్శబ్దంగా ఇన్స్టాల్ చేయబడతాయి.</translation> +<translation id="2017301949684549118">నిశ్శబ్దంగా ఇన్స్టాల్ చేయవలసిన వెబ్ యాప్ల URLలు.</translation> <translation id="2018836497795982119">వినియోగదారు విధాన సమాచారం కోసం పరికర నిర్వహణ సేవ ప్రశ్న సమయ వ్యవధిని మిల్లీ సెకన్లలో పేర్కొంటుంది. ఈ విధానాన్ని సెట్ చేయడం వలన 3 గంటల డిఫాల్ట్ విలువ భర్తీ చేయబడుతుంది. ఈ విధానానికి సంబంధించి చెల్లుబాటు అయ్యే విలువల పరిధి 1800000 (30 నిమిషాలు) నుండి 86400000 (1 రోజు) వరకు ఉంది. ఈ పరిధిలో లేని విలువలు ఏవైనా సమీపంలోని పరిధికి పరిమితం చేయబడతాయి. ప్లాట్ఫారమ్ విధాన నోటిఫికేషన్లకు మద్దతిచ్చే పక్షంలో, రిఫ్రెష్ జాప్యం 24 గంటలకు సెట్ చేయబడుతుంది, ఎందుకంటే విధానంలో మార్పులు జరిగినప్పుడు విధాన నోటిఫికేషన్లు నిర్బంధంగా స్వయంచాలిత రిఫ్రెష్ చేయడానికి అవకాశం ఉంటుంది. @@ -2502,11 +2502,11 @@ ఒకవేళ విధానం తప్పుకు సెట్ చేయబడితే లేదా సెట్ చేయకుండా వదిలేస్తే, అలాంటి లాగ్లను <ph name="PRODUCT_NAME" /> సేకరించకపోవచ్చు లేదా అప్లోడ్ చేయకపోవచ్చు. - Chromeలోని ఆడియో, వీడియో కాల్ సమస్యలను డీబగ్ చేస్తున్నప్పుడు సహాయం కోసం పంపిన మరియు అందుకున్న RTP ప్యాకెట్ల సమయం మరియు పరిమాణం, నెట్వర్క్లో రద్దీ గురించిన అభిప్రాయం మరియు ఆడియో, వీడియో ఫ్రేమ్ల సమయం మరియు నాణ్యత గురించి మెటాడేటా లాంటి సమస్య విశ్లేషణ సమాచారం ఈ లాగ్లలో ఉంటుంది. ఈ లాగ్లలో కాల్ సంబంధిత ఆడియో లేదా వీడియో కంటెంట్లు ఉండవు. + పంపిన మరియు అందుకున్న RTP ప్యాకెట్ల సమయం మరియు పరిమాణం, నెట్వర్క్లో రద్దీ గురించిన అభిప్రాయం మరియు ఆడియో, వీడియో ఫ్రేమ్ల సమయం మరియు నాణ్యత గురించి మెటాడేటా లాంటి సమస్య విశ్లేషణ సమాచారం ఈ లాగ్లలో ఉంటుంది. ఈ సమాచారం Chromeలో ఆడియో, వీడియో కాల్ సమస్యలను డీబగ్ చేయడంలో సహాయపడుతుంది. ఈ లాగ్లలో కాల్ సంబంధిత ఆడియో లేదా వీడియో కంటెంట్లు ఉండవు. - Chrome ద్వారా ఈ డేటా సేకరణ Google Hangouts లేదా Google Meet లాంటి Google వెబ్ సేవల ద్వారా మాత్రమే సక్రియం చేయబడుతుంది. + Chrome ద్వారా ఈ డేటా సేకరణ Google Hangouts లేదా Google Meet లాంటి Google వెబ్ సేవల ద్వారా మాత్రమే యాక్టివేట్ చేయబడుతుంది. - Google ఈ లాగ్లను సెషన్ ID లాంటి వాటి ఆధారంగా Google సేవ ద్వారానే సేకరించిన ఇతర లాగ్లతో అనుబంధించవచ్చు; డీబగ్గింగ్ సులభం చేయడానికి ఇది ఉద్దేశించబడింది. + Google ఈ లాగ్లను సెషన్ ID లాంటి వాటి ఆధారంగా Google సేవ ద్వారానే సేకరించిన ఇతర లాగ్లతో అనుబంధించవచ్చు; డీబగ్గింగ్ మరింత సులభం చేయడానికి ఇది ఉద్దేశించబడింది. </translation> <translation id="706669471845501145">డెస్క్టాప్ ప్రకటనలని చూపించడానికి సైట్లను అనుమతించు</translation> <translation id="7070525176564511548">ప్రతి వారం (168 గంటలకు) పాస్వర్డ్ నమోదు చేయడం అవసరం</translation> @@ -3233,9 +3233,9 @@ <translation id="867410340948518937">U2F (సార్వజనీన రెండవ కారకం)</translation> <translation id="8682611302223077049">పెండింగ్లోని అప్డేట్ని అమలు చేయడం కోసం <ph name="PRODUCT_NAME" />ని రీలాంచ్ చేయాల్సిన లేదా <ph name="PRODUCT_OS_NAME" /> పరికరాన్ని పునఃప్రారంభించాల్సిన సంగతి వినియోగదారులకు ఎంత సమయ వ్యవధిలో గుర్తు చేయాలో, మిల్లీసెకన్లలో సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. - ఈ సమయ వ్యవధి తర్వాత, అప్డేట్ కోసం వినియోగదారుకి పదేపదే తెలియజేయబడుతుంది. <ph name="PRODUCT_OS_NAME" /> పరికరాల కోసం, అప్గ్రేడ్ గుర్తించినప్పుడు, సిస్టమ్ ట్రేలో పునఃప్రారంభ నోటిఫికేషన్ కనబడుతుంది. <ph name="PRODUCT_NAME" /> బ్రౌజర్ల కోసం, నోటిఫికేషన్ సమయంలో మూడవ వంతు పూర్తయిన తర్వాత రీలాంచ్ అవసరమని సూచించేలా యాప్ మెనూ మారుతుంది. నోటిఫికేషన్ సమయంలో రెండు వంతులు పూర్తయిన తర్వాత మరియు మళ్ళీ నోటిఫికేషన్ సమయం మొత్తం పూర్తయిన తర్వాత ఈ నోటిఫికేషన్ రంగు మారుతుంది. <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> విధానం ద్వారా ప్రారంభించబడిన అదనపు నోటిఫికేషన్లు ఈ షెడ్యూల్ను అనుసరిస్తాయి. + ఈ సమయ వ్యవధిలో, అప్డేట్ కోసం వినియోగదారుకి పదేపదే తెలియజేయబడుతుంది. <ph name="PRODUCT_OS_NAME" /> పరికరాలలో, అప్గ్రేడ్ గుర్తించినప్పుడు, సిస్టమ్ ట్రేలో పునఃప్రారంభ నోటిఫికేషన్ కనబడుతుంది. <ph name="PRODUCT_NAME" /> బ్రౌజర్లలో, నోటిఫికేషన్ సమయంలో మూడవ వంతు పూర్తయిన తర్వాత రీలాంచ్ అవసరమని సూచించేలా యాప్ మెనూ మారుతుంది. నోటిఫికేషన్ సమయంలో రెండు వంతులు పూర్తయిన తర్వాత మరియు నోటిఫికేషన్ సమయం మొత్తం పూర్తయిన తర్వాత మళ్ళీ ఈ నోటిఫికేషన్ రంగు మారుతుంది. <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> విధానం ద్వారా ప్రారంభించబడిన అదనపు నోటిఫికేషన్లు ఈ షెడ్యూల్ను అనుసరిస్తాయి. - సెట్ చేయకపోతే, డిఫాల్ట్ సమయం 345600000 మిల్లీసెకన్లు (నాలుగు రోజులు) <ph name="PRODUCT_OS_NAME" /> పరికరాల కోసం, అలాగే 604800000 మిల్లీసెకన్లు (ఒక వారం) <ph name="PRODUCT_NAME" /> కోసం ఉపయోగించబడుతుంది.</translation> + సెట్ చేయకపోతే, డిఫాల్ట్ సమయం <ph name="PRODUCT_OS_NAME" /> పరికరాలకు 345600000 మిల్లీసెకన్లు (నాలుగు రోజులు) , అలాగే <ph name="PRODUCT_NAME" />కు 604800000 మిల్లీసెకన్లు (ఒక వారం) ఉపయోగించబడుతుంది.</translation> <translation id="8685024486845674965">పాస్వర్డ్ని తిరిగి ఉపయోగించినప్పుడు పాస్వర్డ్ రక్షణ హెచ్చరిక సక్రియం చేయబడుతుంది</translation> <translation id="8693243869659262736">అంతర్నిర్మిత DNS క్లయింట్ను ఉపయోగించండి</translation> <translation id="8704831857353097849">ఆపివేయబడిన ప్లగ్ఇన్ల జాబితా</translation> @@ -3511,9 +3511,9 @@ <translation id="9158929520101169054">బ్రౌజర్లో బహుళ సైన్-ఇన్లకు అనుమతించండి</translation> <translation id="9159126470527871268">పెండింగ్లోని అప్డేట్ని అమలు చేయడం కోసం <ph name="PRODUCT_NAME" /> రీలాంచ్ చేయాలని లేదా <ph name="PRODUCT_OS_NAME" /> పునఃప్రారంభించాలని వినియోగదారులకు తెలియజేస్తుంది. - ఈ విధానం సెట్టింగ్ బ్రౌజర్ రీలాంచ్ లేదా పరికరం పునఃప్రారంభం సిఫార్సు చేస్తున్నట్లు లేదా అవసరమన్నట్లు వినియోగదారుకు తెలియజేయడం కోసం నోటిఫికేషన్లను ప్రారంభిస్తుంది. సెట్ చేయకపోతే, దాని మెనూకు సూక్ష్మ మార్పుల ద్వారా రీలాంచ్ అవసరమని <ph name="PRODUCT_NAME" /> వినియోగదారుకు సూచిస్తుంది, దానిని సిస్టమ్ ట్రేలో నోటిఫికేషన్ ద్వారా <ph name="PRODUCT_OS_NAME" /> సూచిస్తుంది. ‘సిఫార్సు చేయబడింది’ అని సెట్ చేస్తే, రీలాంచ్ సిఫార్సు చేయబడిందని వినియోగదారుకు పునరావృతమయ్యే హెచ్చరిక చూపించబడుతుంది. రీలాంచ్ను వాయిదా వేయడానికి వినియోగదారు ఈ హెచ్చరికను విస్మరించవచ్చు. ‘అవసరం’ అని సెట్ చేస్తే, నోటిఫికేషన్ సమయం దాటిన తర్వాత బ్రౌజర్ రీలాంచ్ తప్పనిసరి అని సూచిస్తూ వినియోగదారుకు పునరావృతమయ్యే హెచ్చరిక చూపించబడుతుంది. డిఫాల్ట్ సమయం <ph name="PRODUCT_NAME" /> కోసం ఏడు రోజులు మరియు <ph name="PRODUCT_OS_NAME" /> కోసం నాలుగు రోజులు మరియు <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" /> విధానం సెట్టింగ్ ద్వారా కాన్ఫిగర్ చేయవచ్చు. + ఈ విధానం సెట్టింగ్ బ్రౌజర్ రీలాంచ్ లేదా పరికరం పునఃప్రారంభం సిఫార్సు చేస్తున్నట్లు లేదా అవసరమన్నట్లు వినియోగదారుకు తెలియజేయడం కోసం నోటిఫికేషన్లను ప్రారంభిస్తుంది. సెట్ చేయకపోతే, దాని మెనూకు సూక్ష్మ మార్పుల ద్వారా రీలాంచ్ అవసరమని <ph name="PRODUCT_NAME" /> వినియోగదారుకు సూచిస్తుంది, దానిని సిస్టమ్ ట్రేలో నోటిఫికేషన్ ద్వారా <ph name="PRODUCT_OS_NAME" /> సూచిస్తుంది. ‘సిఫార్సు చేయబడింది’ అని సెట్ చేస్తే, రీలాంచ్ సిఫార్సు చేయబడిందని వినియోగదారుకు పునరావృతమయ్యే హెచ్చరిక చూపించబడుతుంది. రీలాంచ్ను వాయిదా వేయడానికి వినియోగదారు ఈ హెచ్చరికను విస్మరించవచ్చు. ‘అవసరం’ అని సెట్ చేస్తే, నోటిఫికేషన్ సమయం దాటిన తర్వాత బ్రౌజర్ రీలాంచ్ తప్పనిసరి అని సూచిస్తూ వినియోగదారుకు పునరావృతమయ్యే హెచ్చరిక చూపించబడుతుంది. డిఫాల్ట్ సమయం అనేది <ph name="PRODUCT_NAME" />కు ఏడు రోజులు మరియు <ph name="PRODUCT_OS_NAME" />కు నాలుగు రోజులు, <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" /> విధానం సెట్టింగ్ ద్వారా కాన్ఫిగర్ చేయవచ్చు. - రీలాంచ్/పునఃప్రారంభం తర్వాత వివియోగదారు సెషన్ పునరుద్ధరించబడుతుంది.</translation> + రీలాంచ్/పునఃప్రారంభం తర్వాత వినియోగదారు సెషన్ పునరుద్ధరించబడుతుంది.</translation> <translation id="9165792353046089850">కనెక్ట్ చేయబడిన USB పరికరాలకు యాక్సెస్ని పొందడానికి వెబ్సైట్లను అనుమతించాలో లేదో సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. యాక్సెస్ని పూర్తిగా బ్లాక్ చేయవచ్చు లేదా కనెక్ట్ చేయబడిన USB పరికరాల యొక్క యాక్సెస్ వెబ్సైట్కి అవసరమైన ప్రతిసారీ వినియోగదారుని అడగవచ్చు. 'WebUsbAskForUrls' మరియు 'WebUsbBlockedForUrls' విధానాలను ఉపయోగించి నిర్దిష్ట URL నమూనాల కోసం ఈ విధానాన్ని భర్తీ చేయవచ్చు.
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb index 0414a9a..b8019a8 100644 --- a/components/policy/resources/policy_templates_th.xtb +++ b/components/policy/resources/policy_templates_th.xtb
@@ -200,6 +200,7 @@ <translation id="1522425503138261032">อนุญาตให้ไซต์ติดตามตำแหน่งทางกายภาพของผู้ใช้</translation> <translation id="152657506688053119">รายการ URL สำรองของผู้ให้บริการค้นหาเริ่มต้น</translation> <translation id="1530812829012954197">แสดงรูปแบบ URL ต่อไปนี้เสมอในเบราว์เซอร์โฮสต์</translation> +<translation id="1541170838458414064">จำกัดขนาดหน้าที่พิมพ์</translation> <translation id="1553684822621013552">เมื่อตั้งค่านโยบายเป็น True ระบบจะเปิดใช้ ARC สำหรับผู้ใช้ (ขึ้นอยู่กับการตรวจสอบการตั้งค่านโยบายเพิ่มเติม ARC จะยังไม่พร้อมใช้งานถ้าเปิดใช้โหมดชั่วคราวหรือการลงชื่อเข้าสู่ระบบพร้อมกันหลายบัญชีในเซสชันของผู้ใช้ปัจจุบัน) @@ -371,6 +372,12 @@ <translation id="2082205219176343977">กำหนดค่าเวอร์ชัน Chrome ขั้นต่ำที่อุปกรณ์จะใช้ได้</translation> <translation id="209586405398070749">เวอร์ชันเสถียร</translation> <translation id="2098658257603918882">เปิดใช้งานการรายงานการใช้และข้อมูลเกี่ยวกับการขัดข้อง</translation> +<translation id="2098916259427011890">นโยบายนี้ควบคุมว่าจะรายงานข้อมูลเวอร์ชันหรือไม่ เช่น เวอร์ชันระบบปฏิบัติการ แพลตฟอร์มระบบปฏิบัติการ สถาปัตยกรรมระบบปฏิบัติการ เวอร์ชัน <ph name="PRODUCT_NAME" /> และช่องของ <ph name="PRODUCT_NAME" /> + + เมื่อไม่ได้ตั้งค่านโยบายนี้หรือตั้งค่าเป็น "จริง" ระบบจะรวบรวมข้อมูลเวอร์ชัน + เมื่อตั้งค่านโยบายนี้เป็น "เท็จ" ระบบจะไม่รวบรวมข้อมูลเวอร์ชัน + + นโยบายนี้จะมีผลเฉพาะเมื่อ Chrome Reporting Extension และการจัดการระบบคลาวด์เปิดอยู่</translation> <translation id="2111016292707172233">เปิดใช้ฟีเจอร์แตะเพื่อค้นหาในมุมมองเนื้อหาของ <ph name="PRODUCT_NAME" /> หากคุณเปิดใช้การตั้งค่านี้ แตะเพื่อค้นหาจะพร้อมใช้งานสำหรับผู้ใช้ โดยผู้ใช้เลือกได้ว่าจะเปิดหรือปิดฟีเจอร์นี้ @@ -404,6 +411,8 @@ หากไม่ตั้งค่านโยบายนี้ ค่าเริ่มต้นคือ 0 องศา และผู้ใช้ สามารถเปลี่ยนค่าได้ตามต้องการ และในกรณีนี้ ระบบจะไม่นำค่าเริ่มต้นมาใช้ซ้ำ เมื่อรีสตาร์ท</translation> +<translation id="214901426630414675">จำกัดโหมดพิมพ์ 2 ด้าน</translation> +<translation id="2149330464730004005">เปิดใช้การพิมพ์สี</translation> <translation id="2156132677421487971">กำหนดค่านโยบายต่างๆ สำหรับ <ph name="PRODUCT_NAME" /> ซึ่งเป็นฟีเจอร์ที่ให้ผู้ใช้ส่งเนื้อหาในแท็บ ไซต์ หรือเดสก์ท็อปจากเบราว์เซอร์ไปยังจอแสดงผลและระบบเสียงระยะไกลได้</translation> <translation id="2166472654199325139">ไม่ต้องกรองเว็บไซต์ที่มีเนื้อหาสำหรับผู้ใหญ่</translation> <translation id="2168397434410358693">ระยะหน่วงเวลาของการไม่ใช้งานเมื่อทำงานโดยใช้ไฟ AC</translation> @@ -591,6 +600,7 @@ <translation id="2529880111512635313">กำหนดค่ารายชื่อแอปและส่วนขยายที่บังคับให้ติดตั้ง</translation> <translation id="253135976343875019">คำเตือนการไม่ใช้งานล่าช้าเมื่อทำงานโดยใช้ไฟ AC</translation> <translation id="2536525645274582300">ผู้ใช้ตัดสินใจว่าจะเปิดใช้บริการตำแหน่งของ Google หรือไม่</translation> +<translation id="2550593661567988768">การพิมพ์ด้านเดียวเท่านั้น</translation> <translation id="2552966063069741410">เขตเวลา</translation> <translation id="2562339630163277285">ระบุ URL ของเครื่องมือค้นหาที่ใช้ในการให้ผลการค้นหาแบบทันใจ URL ควรมีสตริง <ph name="SEARCH_TERM_MARKER" /> ซึ่งจะถูกแทนที่ด้วยข้อความที่ผู้ใช้ป้อนขณะค้นหา @@ -646,7 +656,7 @@ URL การค้นหาของ Google สามารถระบุเป็น: <ph name="GOOGLE_SEARCH_URL" />. นโยบายนี้จะต้องมีการตั้งค่าเมื่อมีการเปิดใช้นโยบาย "DefaultSearchProviderEnabled" และจะมีการใช้งานเฉพาะในกรณีนี้เท่านั้น</translation> -<translation id="2659019163577049044">หากเปิดใช้การตั้งค่านี้ ผู้ใช้จะตั้งค่าอุปกรณ์เพื่อซิงค์ข้อความ SMS ระหว่างโทรศัทพ์กับ Chromebook ได้ โปรดทราบว่าหากอนุญาตให้มีนโยบายนี้ ผู้ใช้ต้องเลือกใช้ฟีเจอร์นี้อย่างชัดเจนด้วยการทำตามขั้นตอนการตั้งค่าจนสมบูรณ์ เมื่อเสร็จแล้ว ผู้ใช้จะส่งและรับข้อความ SMS ใน Chromebook ได้ +<translation id="2659019163577049044">หากเปิดใช้การตั้งค่านี้ ผู้ใช้จะตั้งค่าอุปกรณ์เพื่อซิงค์ข้อความ SMS ระหว่างโทรศัพท์กับ Chromebook ได้ โปรดทราบว่าหากอนุญาตให้มีนโยบายนี้ ผู้ใช้ต้องเลือกใช้ฟีเจอร์นี้อย่างชัดเจนด้วยการทำตามขั้นตอนการตั้งค่าจนสมบูรณ์ เมื่อเสร็จแล้ว ผู้ใช้จะส่งและรับข้อความ SMS ใน Chromebook ได้ หากปิดใช้การตั้งค่านี้ ผู้ใช้จะตั้งค่าการซิงค์ SMS ไม่ได้ @@ -716,9 +726,12 @@ หากคุณปิดใช้การตั้งค่านี้หรือไม่กำหนดค่า หน้าตัวอย่างก่อนพิมพ์จะใช้เครื่องพิมพ์ที่ใช้งานล่าสุดเป็นทางเลือกปลายทางเริ่มต้น หากคุณเปิดใช้การตั้งค่านี้ หน้าตัวอย่างก่อนพิมพ์จะใช้เครื่องพิมพ์เริ่มต้นของระบบปฏิบัติการเป็นทางเลือกปลายทางเริ่มต้น</translation> +<translation id="2856674246949497058">ย้อนกลับไปใช้เวอร์ชันเป้าหมายและใช้เวอร์ชันเป้าหมายเสมอหากใช้ระบบปฏิบัติการเวอร์ชันที่ใหม่กว่า ทำ Powerwash ในขั้นตอนนี้</translation> <translation id="2872961005593481000">ปิด</translation> +<translation id="2873651257716068683">ลบล้างขนาดหน้าการพิมพ์เริ่มต้น ระบบจะเพิกเฉยนโยบายนี้หากไม่มีขนาดหน้าให้เลือก</translation> <translation id="2874209944580848064">หมายเหตุสำหรับอุปกรณ์ <ph name="PRODUCT_OS_NAME" /> ที่รองรับแอป Android:</translation> <translation id="2877225735001246144">ปิดใช้งานการค้นหา CNAME เมื่อมีการเจรจาตรวจสอบสิทธิ์ Kerberos</translation> +<translation id="2892414556511568464">จำกัดโหมดการพิมพ์ 2 ด้าน ระบบจะถือว่าไม่มีข้อจำกัดหากไม่ได้ตั้งค่านโยบายหรือค่าว่างเปล่า</translation> <translation id="2893546967669465276">ส่งบันทึกของระบบไปยังเซิร์ฟเวอร์การจัดการ</translation> <translation id="2899002520262095963">แอป Android สามารถใช้การกำหนดค่าเครือข่ายและใบรับรอง CA ที่ตั้งค่าผ่านนโยบายนี้ได้ แต่จะไม่มีสิทธิ์เข้าถึงตัวเลือกการตั้งค่าบางอย่าง</translation> <translation id="290002216614278247">ให้คุณล็อกเซสชันของผู้ใช้ตามเวลาของไคลเอ็นต์หรือโควตาการใช้งานประจำวัน @@ -806,6 +819,7 @@ ควรย้ายเซิร์ฟเวอร์ไปยังชุดเข้ารหัส ECDHE แต่หากไม่มี ให้ตรวจสอบว่าเปิดใช้ชุดเข้ารหัสที่ใช้กลไกการแลกเปลี่ยนคีย์ RSA อยู่</translation> <translation id="316778957754360075">การตั้งค่านี้ถูกยกเลิกไปตั้งแต่ <ph name="PRODUCT_NAME" /> เวอร์ชัน 29 วิธีที่แนะนำในการตั้งค่าคอลเล็กชันส่วนขยาย/แอปที่โฮสต์โดยองค์กรคือการรวมไซต์ที่โฮสต์แพ็กเกจ CRX ใน ExtensionInstallSources และการวางลิงก์ดาวน์โหลดโดยตรงไปยังแพ็กเกจบนหน้าเว็บ ตัวเรียกใช้งานสำหรับหน้าเว็บนั้นสามารถถูกสร้างขึ้นโดยใช้นโยบาย ExtensionInstallForcelist</translation> +<translation id="3171369832001535378">เทมเพลตชื่อโฮสต์เครือข่ายของอุปกรณ์</translation> <translation id="3185009703220253572">ตั้งแต่รุ่น <ph name="SINCE_VERSION" /></translation> <translation id="3187220842205194486">แอป Android ไม่มีสิทธิ์เข้าถึงกุญแจขององค์กร นโยบายนี้ไม่มีผลต่อกุญแจเหล่านั้น</translation> <translation id="3201273385265130876">ช่วยให้คุณสามารถระบุพร็อกซีเซิร์ฟเวอร์ที่ <ph name="PRODUCT_NAME" /> ใช้ได้และป้องกันไม่ให้ผู้ใช้เปลี่ยนการตั้งค่าพร็อกซีเซิร์ฟเวอร์ @@ -914,6 +928,7 @@ ค่าของนโยบายนี้คือโทเค็นการลงทะเบียนที่ดึงได้จากคอนโซลผู้ดูแลระบบ Google</translation> <translation id="3496296378755072552">ตัวจัดการรหัสผ่าน</translation> +<translation id="3502555714327823858">อนุญาตโหมดพิมพ์ 2 ด้านทั้งหมด</translation> <translation id="350443680860256679">กำหนดค่า ARC</translation> <translation id="3504791027627803580">ระบุ URL ของเครื่องมือค้นหาที่ใช้ในการให้การค้นหาภาพ คำขอค้นหาจะถูกส่งโดยใช้วิธีการ GET หากนโยบาย DefaultSearchProviderImageURLPostParams ถูกกำหนด คำขอค้นหาภาพจะใช้วิธีการ POST แทน @@ -923,6 +938,7 @@ <translation id="350797926066071931">เปิดใช้งานแปลภาษา</translation> <translation id="3512226956150568738">หากรุ่นอุปกรณ์ของไคลเอ็นต์รองรับ ARC มาก่อน จะต้องเรียกใช้ ARC ในการย้ายข้อมูลไปที่ ext4 และหากตั้งนโยบาย ArcEnabled ให้เป็นจริง ตัวเลือกนี้จะทำหน้าที่เป็น AskUser (ค่า 3) ในกรณีอื่นๆ ทั้งหมด (หากรุ่นอุปกรณ์ไม่ได้รองรับ ARC อยู่ หรือหากตั้งนโยบาย ArcEnabled เป็นเท็จ) ค่านี้จะเทียบเท่ากับ DisallowArc (ค่า 0)</translation> <translation id="3524204464536655762">ไม่อนุญาตให้เว็บไซต์ขอสิทธิ์เข้าถึงอุปกรณ์ USB ผ่าน WebUSB API</translation> +<translation id="3526752951628474302">การพิมพ์ขาวดำเท่านั้น</translation> <translation id="3528000905991875314">เปิดใช้งานหน้าเว็บแสดงข้อผิดพลาดสำรอง</translation> <translation id="3545457887306538845">ให้คุณควบคุมว่าจะใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ได้ที่ใดบ้าง @@ -946,6 +962,7 @@ <translation id="3577251398714997599">เครื่องมือตั้งค่าโฆษณาสำหรับเว็บไซต์ที่มีโฆษณาที่แทรก</translation> <translation id="3591584750136265240">กำหนดค่าลักษณะการตรวจสอบสิทธิ์ของการเข้าสู่ระบบ</translation> <translation id="3627678165642179114">เปิดหรือปิดใช้งานบริการเว็บสำหรับการตรวจสอบการสะกด</translation> +<translation id="3628480121685794414">เปิดใช้การพิมพ์แบบด้านเดียว</translation> <translation id="3646859102161347133">ตั้งค่าประเภทของแว่นขยายหน้าจอ</translation> <translation id="3653237928288822292">ไอคอนของผู้ให้บริการการค้นหาเริ่มต้น</translation> <translation id="3660562134618097814">โอนคุกกี้ SAML IdP ขณะลงชื่อเข้าใช้</translation> @@ -1039,6 +1056,7 @@ หากตั้งค่านโยบายเป็น False จะไม่มีการรายงานข้อมูลเซสชันคีออสก์ หากตั้งค่าเป็น True หรือไม่ได้ตั้งค่า จะมีการรายงานข้อมูล เซสชัน</translation> +<translation id="3858658082795336534">โหมดพิมพ์ 2 ด้านเริ่มต้น</translation> <translation id="3859780406608282662">เพิ่มพารามิเตอร์เพื่อเรียกข้อมูลเริ่มต้นของรูปแบบใน <ph name="PRODUCT_OS_NAME" /> หากมีการระบุ จะมีการเพิ่มพารามิเตอร์การค้นหาชื่อ "ข้อจำกัด" ลงใน URL ที่ใช้เรียกข้อมูลเริ่มต้นของรูปแบบ ค่าพารามิเตอร์จะเป็นค่าที่ระบุในนโยบายนี้ @@ -1140,6 +1158,12 @@ มิฉะนั้น อาจตั้งค่านโยบายเป็นค่าใดค่าหนึ่งต่อไปนี้ "tls1.2" หรือ "tls1.3" เมื่อตั้งค่าแล้ว <ph name="PRODUCT_NAME" /> จะไม่ใช้เวอร์ชัน SSL/TLS ที่สูงกว่าเวอร์ชันที่ระบุไว้ และระบบจะไม่สนใจค่าที่ไม่รู้จัก</translation> <translation id="4121350739760194865">ป้องกันไม่ให้การส่งเสริมของแอปพลิเคชันไปปรากฏบนหน้าแท็บใหม่</translation> <translation id="412697421478384751">ยอมให้ผู้ใช้ตั้ง PIN ที่คาดเดาง่ายเป็น PIN หน้าจอล็อก</translation> +<translation id="4129183564590133854">นโยบายนี้ควบคุมว่าจะรายงานข้อมูลที่ใช้ระบุผู้ใช้หรือไม่ เช่น การเข้าสู่ระบบปฏิบัติการ, การเข้าสู่โปรไฟล์ <ph name="PRODUCT_NAME" />, ชื่อโปรไฟล์ <ph name="PRODUCT_NAME" />, เส้นทางโปรไฟล์ <ph name="PRODUCT_NAME" /> และเส้นทางที่สั่งการได้ของ <ph name="PRODUCT_NAME" /> + + เมื่อไม่ได้ตั้งค่านโยบายนี้หรือตั้งค่าเป็น "จริง" ระบบจะรวบรวมข้อมูลที่ใช้ระบุตัวตนผู้ใช้ได้ + เมื่อตั้งค่านโยบายนี้เป็น "เท็จ" ระบบจะไม่รวบรวมข้อมูลที่ใช้ระบุตัวตนผู้ใช้ได้ + + นโยบายนี้จะมีผลเฉพาะเมื่อ Chrome Reporting Extension และการจัดการระบบคลาวด์เปิดอยู่</translation> <translation id="4138655880188755661">การจำกัดเวลา</translation> <translation id="4157003184375321727">รายงานรุ่นของระบบปฏิบัติการและเฟิร์มแวร์</translation> <translation id="4157594634940419685">อนุญาตให้เข้าถึงเครื่องพิมพ์ CUPS ดั้งเดิม</translation> @@ -1289,9 +1313,9 @@ หากต้องการดูคำอธิบายแบบเต็มของการตั้งค่าที่เป็นไปได้และโครงสร้างของนโยบายนี้ โปรดไปที่ https://www.chromium.org/administrators/policy-list-3/extension-settings-full </translation> <translation id="4554651132977135445">โหมดประมวลผล Loopback ของนโยบายด้านผู้ใช้</translation> -<translation id="4554841826517980623">นโยบายนี้ใช้กำหนดว่าฟีเจอร์พื้นที่แชร์ไฟล์ของเครือข่ายของ <ph name="PRODUCT_NAME" /> ควรใช้<ph name="NETBIOS_PROTOCOL" /> เพื่อค้นหาการแชร์ในเครือข่ายหรือไม่ - เมื่อตั้งค่านโยบายนี้เป็น "จริง" การค้นหาการแชร์จะใช้โปรโตคอล<ph name="NETBIOS_PROTOCOL" /> เพื่อค้นหาการแชร์ในเครือข่าย - เมื่อตั้งค่านโยบายนี้เป็น "เท็จ" การค้นหาการแชร์จะไม่ใช้โปรโตคอล<ph name="NETBIOS_PROTOCOL" /> เพื่อค้นหาการแชร์ +<translation id="4554841826517980623">นโยบายนี้ใช้กำหนดว่าฟีเจอร์พื้นที่แชร์ไฟล์ของเครือข่ายของ <ph name="PRODUCT_NAME" /> ควรใช้ <ph name="NETBIOS_PROTOCOL" /> เพื่อค้นหาการแชร์ในเครือข่ายหรือไม่ + เมื่อตั้งค่านโยบายนี้เป็น "จริง" การค้นหาการแชร์จะใช้โปรโตคอล <ph name="NETBIOS_PROTOCOL" /> เพื่อค้นหาการแชร์ในเครือข่าย + เมื่อตั้งค่านโยบายนี้เป็น "เท็จ" การค้นหาการแชร์จะไม่ใช้โปรโตคอล <ph name="NETBIOS_PROTOCOL" /> เพื่อค้นหาการแชร์ หากไม่ได้ตั้งค่านโยบายนี้ ระบบจะปิดใช้ค่าเริ่มต้นสำหรับผู้ใช้ที่จัดการโดยองค์กร แต่จะเปิดใช้สำหรับผู้ใช้ที่ไม่มีการจัดการ</translation> <translation id="4555850956567117258">เปิดใช้งานการยืนยันระยะไกลสำหรับผู้ใช้</translation> <translation id="4557134566541205630">URL หน้าแท็บใหม่ของผู้ให้บริการการค้นหาเริ่มต้น</translation> @@ -1439,6 +1463,12 @@ <translation id="5052081091120171147">นโยบายนี้บังคับให้นำเข้าประวัติการเรียกดูจากเบราว์เซอร์เริ่มต้นปัจจุบันหากเปิดใช้งาน หากเปิดใช้งาน นโยบายนี้ยังมีผลต่อข้อความโต้ตอบการนำเข้าอีกด้วย หากปิดใช้งาน จะไม่มีการนำเข้าประวัติการเรียกดู หากไม่มีการตั้งค่าไว้ ผู้ใช้อาจจะได้รับคำถามว่าจะนำเข้าหรือไม่ หรือการนำเข้าอาจเกิดขึ้นโดยอัตโนมัติ</translation> <translation id="5056708224511062314">ปิดใช้งานแว่นขยายหน้าจอ</translation> <translation id="5058573563327660283">เลือกกลยุทธ์ที่ใช้ในการเพิ่มพื้นที่ว่างของดิสก์ระหว่างการล้างข้อมูลอัตโนมัติ (เลิกใช้แล้ว)</translation> +<translation id="5058771123777243130">นโยบายนี้ควบคุมว่าจะรายงานข้อมูลนโยบายและเวลาที่เรียกนโยบายหรือไม่ + + เมื่อไม่ได้ตั้งค่านโยบายนี้หรือตั้งค่าเป็น "จริง" ระบบจะรวบรวมข้อมูลนโยบายและเวลาที่เรียกนโยบาย + เมื่อตั้งค่านโยบายนี้เป็น "เท็จ" ระบบจะไม่รวบรวมข้อมูลนโยบายและเวลาที่เรียกนโยบาย + + นโยบายนี้จะมีผลเฉพาะเมื่อ Chrome Reporting Extension และการจัดการระบบคลาวด์เปิดอยู่</translation> <translation id="5067143124345820993">ลงชื่อเข้าใช้รายชื่อผู้ใช้ที่อนุญาต</translation> <translation id="5068140065960598044">นโยบายระบบคลาวด์ของ <ph name="PRODUCT_NAME" /> ลบล้างนโยบายของเครื่อง</translation> <translation id="5085647276663819155">ปิดใช้งานหน้าตัวอย่างก่อนพิมพ์</translation> @@ -1541,6 +1571,7 @@ <translation id="5366977351895725771">หากตั้งค่าเป็นเท็จ การสร้างผู้ใช้ภายใต้การดูแลโดยผู้ใช้รายนี้จะถูกปิดใช้งาน ผู้ใช้ภายใต้การดูแลใดๆ ที่มีอยู่แล้วจะยังคงมีอยู่ หากตั้งค่าเป็นจริงหรือไม่ได้กำหนดค่า ผู้ใช้รายนี้จะสามารถสร้างและจัดการผู้ใช้ภายใต้การดูแลได้</translation> +<translation id="5369937289900051171">การพิมพ์สีเท่านั้น</translation> <translation id="5370279767682621504">เปิดใช้การรองรับ HTTP/0.9 บนพอร์ตที่ไม่ใช่ค่าเริ่มต้น</translation> <translation id="5378985487213287085">ช่วยให้คุณกำหนดว่าเว็บไซต์จะได้รับอนุญาตให้แสดงการแจ้งเตือนเดสก์ท็อปหรือไม่ การแสดงการแจ้งเตือนเดสก์ท็อปอาจจะได้รับอนุญาตโดยค่าเริ่มต้น ปฏิเสธโดยค่าเริ่มต้น หรือผู้ใช้อาจได้รับคำถามทุกครั้งที่เว็บไซต์ต้องการจะแสดงการแจ้งเตือนเดสก์ท็อป หากนโยบายนี้ไม่มีการตั้งค่าไว้ จะมีการใช้ "AskNotifications" และผู้ใช้สามารถจะเปลี่ยนแปลงได้</translation> <translation id="538108065117008131">อนุญาตให้ <ph name="PRODUCT_FRAME_NAME" /> จัดการประเภทเนื้อหาดังต่อไปนี้</translation> @@ -1561,6 +1592,7 @@ หากตั้งค่านโยบายนี้เป็นรายการตัวระบุวิธีการป้อนข้อมูล วิธีการป้อนข้อมูลที่ระบุจะพร้อมใช้งานในหน้าจอการลงชื่อเข้าใช้ ระบบจะเลือกวิธีการป้อนข้อมูลแรกที่ระบุไว้ล่วงหน้า เมื่อมีการทำงานบนพ็อดผู้ใช้ในหน้าจอการลงชื่อเข้าใช้ วิธีการป้อนข้อมูลที่ผู้ใช้ใช้ล่าสุดจะพร้อมใช้งานนอกเหนือจากวิธีการป้อนข้อมูลที่ได้จากนโยบายนี้ หากไม่ได้ตั้งค่านโยบายนี้ วิธีการป้อนข้อมูลในหน้าจอการลงชื่อเข้าใช้จะได้รับมาจากภาษาที่หน้าจอการลงชื่อเข้าใช้แสดง ระบบจะไม่สนใจค่าที่ไม่ใช่ตัวระบุวิธีการป้อนข้อมูลที่ถูกต้อง</translation> <translation id="5423001109873148185">นโยบายนี้บังคับให้นำเข้าเครื่องมือค้นหาจากเบราว์เซอร์เริ่มต้นปัจจุบันหากมีการเปิดใช้งานอยู่ หากมีการเปิดใช้งาน นโยบายนี้จะมีผลต่อข้อความโต้ตอบการนำเข้าด้วย หากปิดใช้งาน จะไม่มีการนำเข้าเครื่องมือค้นหาเริ่มต้น หากไม่มีการตั้งค่าไว้ ผู้ใช้อาจได้รับคำถามว่าจะนำเข้าหรือไม่ หรือการนำเข้าอาจเกิดขึ้นโดยอัตโนมัติ</translation> <translation id="5423197884968724595">ชื่อข้อจำกัดของ Android WebView:</translation> +<translation id="5424147596523390018">อนุญาตโหมดสีทั้งหมด</translation> <translation id="5442026853063570579">นโยบายนี้ยังควบคุมการเข้าถึงตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ของ Android เช่นกัน หากคุณตั้งค่านโยบายนี้เป็น "DeveloperToolsDisallowed" (ค่า 2) ผู้ใช้จะเข้าถึงตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ไม่ได้ หากตั้งค่านโยบายเป็นค่าอื่นหรือไม่ได้ตั้งค่า ผู้ใช้จะเข้าถึงตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ได้ด้วยการแตะหมายเลขบิวด์ 7 ครั้งในแอปการตั้งค่าของ Android</translation> <translation id="5447306928176905178">เปิดการรายงานข้อมูลหน่วยความจำ (JS ขนาดใหญ่) บนหน้า (กำหนดให้เลิกใช้แล้ว)</translation> <translation id="5457065417344056871">เปิดใช้โหมดผู้มาเยือนในเบราว์เซอร์</translation> @@ -1626,6 +1658,7 @@ <translation id="5586942249556966598">ไม่ดำเนินการใดๆ</translation> <translation id="5630352020869108293">คืนค่าเซสชันล่าสุด</translation> <translation id="5645779841392247734">อนุญาตให้ใช้คุกกี้บนไซต์เหล่านี้</translation> +<translation id="5689430183304951538">ขนาดหน้าของการพิมพ์เริ่มต้น</translation> <translation id="5693469654327063861">อนุญาตให้ย้ายข้อมูล</translation> <translation id="5694594914843889579">เมื่อตั้งค่านโยบายนี้เป็น True คุณจะไม่สามารถใช้งานที่เก็บข้อมูลภายนอกในเบราว์เซอร์ของไฟล์ @@ -1655,6 +1688,7 @@ เมื่อนโยบายไม่มีการตั้งค่า ระบบจะใช้ระยะเวลาในค่าเริ่มต้น ค่านโยบายควรกำหนดในหน่วยมิลลิวินาที</translation> +<translation id="5783009211970309878">ส่วนหัวและส่วนท้ายของการพิมพ์</translation> <translation id="5809728392451418079">ตั้งชื่อสำหรับแสดงสำหรับบัญชีภายในอุปกรณ์</translation> <translation id="5814301096961727113">ตั้งค่าสถานะเริ่มต้นของเสียงพูดตอบรับบนหน้าจอการเข้าสู่ระบบ</translation> <translation id="5815129011704381141">รีบูตอัตโนมัติหลังจากการอัปเดต</translation> @@ -1666,6 +1700,7 @@ หากไม่มีการตั้งค่านี้ ระบบจะใช้ไดเรกทอรีโปรไฟล์เริ่มต้น</translation> <translation id="5826047473100157858">กำหนดว่าผู้ใช้สามารถจะเปิดหน้าเว็บในโหมดไม่ระบุตัวตนใน <ph name="PRODUCT_NAME" /> ได้หรือไม่ หากเลือก "เปิดใช้งาน" หรือไม่ได้ตั้งค่านโยบายไว้ จะสามารถเปิดหน้าเว็บในโหมดไม่ระบุตัวตนได้ หากเลือก "ปิดใช้งาน" ผู้ใช้จะไม่สามารถเปิดหน้าเว็บในโหมดไม่ระบุตัวตนได้ หากเลือก "บังคับ" หน้าเว็บจะเปิดขึ้นได้ในโหมดไม่ระบุตัวตนเท่านั้น</translation> +<translation id="582857022372205358">เปิดใช้การพิมพ์ 2 ด้านแบบแนวนอน</translation> <translation id="583091600226586337"> หากเปิดใช้นโยบายนี้ ระบบจะถามผู้ใช้ว่าจะบันทึกแต่ละไฟล์ไว้ที่ใดก่อนดาวน์โหลด หากปิดใช้นโยบาย การดาวน์โหลดจะเริ่มทันทีและระบบจะไม่ถามผู้ใช้ว่าจะบันทึกไฟล์ไว้ที่ใด @@ -1701,6 +1736,7 @@ หากปิดใช้การตั้งค่านี้หรือไม่ได้กำหนดค่า คำขอตรวจสอบสิทธิ์ Gnubby จะไม่ส่งผ่านพร็อกซี</translation> <translation id="5898486742390981550">เมื่อมีผู้ใช้หลายคนอยู่ในระบบ จะมีเพียงผู้ใช้หลักเท่านั้นที่ใช้แอป Android ได้</translation> +<translation id="5901427587865226597">การพิมพ์ 2 ด้านเท่านั้น</translation> <translation id="5906199912611534122">อนุญาตการเปิดหรือปิดใช้การควบคุมการใช้งานเครือข่าย การเลือกจะมีผลต่อผู้ใช้ทุกคนและกับทุกอินเทอร์เฟซในอุปกรณ์ เมื่อตั้งค่าแล้ว การควบคุมการใช้งานเครือข่ายจะเปิดใช้จนกว่าจะเปลี่ยนนโยบายเพื่อปิดใช้ @@ -1808,6 +1844,7 @@ ควรระบุค่าของนโยบายโดยมีหน่วยเป็นมิลลิวินาที ค่าจะถูกบีบให้น้อยกว่าการหน่วงเวลาเมื่อไม่มีการใช้งาน</translation> <translation id="6097601282776163274">เปิดใช้การรวบรวมข้อมูลที่ไม่ระบุตัวบุคคลซึ่งผูกกับ URL</translation> +<translation id="6099853574908182288">โหมดสีการพิมพ์เริ่มต้น</translation> <translation id="6111936128861357925">อนุญาตให้เล่นเกมไดโนเสาร์ที่ซ่อนไว้ได้</translation> <translation id="6114416803310251055">ถูกกำหนดให้เลิกใช้</translation> <translation id="6133088669883929098">อนุญาตให้เว็บไซต์ทั้งหมดใช้การสร้างคีย์</translation> @@ -1820,6 +1857,7 @@ หากไม่ได้ตั้งค่านโยบายนี้ ระบบจะใช้ค่าเริ่มต้นทั่วไปกับเว็บไซต์ทั้งหมด ทั้งจากนโยบาย "DefaultPluginsSetting" หากมีการตั้งค่า หรือจากการกำหนดค่าส่วนตัวของผู้ใช้</translation> <translation id="6190022522129724693">การตั้งค่าป๊อปอัปเริ่มต้น</translation> +<translation id="6190367314942602985">รายงานข้อมูลประจำตัวของผู้ใช้</translation> <translation id="6197453924249895891">มอบสิทธิ์การเข้าถึงคีย์ขององค์กรให้แก่ส่วนขยาย คีย์ถูกกำหนดไว้สำหรับการใช้งานขององค์กรหากสร้างขึ้นโดยใช้ API chrome.enterprise.platformKeys บนบัญชีที่มีการจัดการ คีย์ที่นำเข้าหรือสร้างด้วยวิธีอื่นไม่ได้มีไว้สำหรับการใช้งานขององค์กร @@ -1829,6 +1867,8 @@ โดยค่าเริ่มต้นแล้ว ส่วนขยายจะไม่สามารถใช้คีย์ที่มีไว้สำหรับการใช้งานขององค์กร ซึ่งเทียบเท่ากับการตั้งค่า allowCorporateKeyUsage เป็น False สำหรับส่วนขยายดังกล่าว หากตั้งค่า allowCorporateKeyUsage เป็น True สำหรับส่วนขยาย ส่วนขยายดังกล่าวจะสามารถใช้คีย์ของแพลตฟอร์มใดก็ตามที่มีการทำเครื่องหมายสำหรับการใช้งานขององค์กรเพื่อลงนามข้อมูลที่กำหนดเองได้ ควรมอบสิทธิ์นี้ให้แก่ส่วนขยายในกรณีที่ไว้วางใจได้ว่าส่วนขยายมีการป้องกันผู้โจมตีจากการเข้าถึงคีย์เท่านั้น</translation> +<translation id="6208896993204286313">รายงานข้อมูลนโยบายของ <ph name="PRODUCT_NAME" /></translation> +<translation id="6210259502936598222">รายงานข้อมูลระบบปฏิบัติการและเวอร์ชันของ <ph name="PRODUCT_NAME" /></translation> <translation id="6211428344788340116">รายงานเวลากิจกรรมของอุปกรณ์ หากไม่มีการตั้งค่านี้หรือตั้งค่าเป็น True อุปกรณ์ที่ลงทะเบียนจะรายงานระยะเวลาที่ผู้ใช้มีการใช้งานบนอุปกรณ์ หากตั้งค่าเป็น False จะไม่มีการบันทึกหรือรายงานเวลากิจกรรมของอุปกรณ์</translation> @@ -1842,6 +1882,7 @@ <translation id="6233173491898450179">ตั้งค่าไดเรกทอรีสำหรับดาวน์โหลด</translation> <translation id="6244210204546589761">URL ที่จะเปิดเมื่อเริ่มต้นใช้งาน</translation> <translation id="6258193603492867656">ระบุว่า Kerberos SPN ที่สร้างขึ้นควรจะรวมพอร์ตที่ไม่ใช่แบบมาตรฐานไว้หรือไม่ หากคุณเปิดใช้งานการตั้งค่านี้และป้อนพอร์ตที่ไม่ใช่แบบมาตรฐาน (เช่น พอร์ตอื่นๆ นอกจาก 80 หรือ 443) เข้าไป พอร์ตดังกล่าวจะถูกรวมไว้ใน Kerberos SPN ที่สร้างขึ้น หากคุณปิดใช้งานการตั้งค่านี้หรือปล่อยให้ไม่มีการตั้งค่า Kerberos SPN ที่สร้างขึ้นจะไม่รวมพอร์ตไม่ว่าในกรณีใดๆ</translation> +<translation id="6261643884958898336">รายงานข้อมูลการระบุเครื่อง</translation> <translation id="6281043242780654992">กำหนดค่านโยบายสำหรับการรับส่งข้อความดั้งเดิม โฮสต์การรับส่งข้อความดั้งเดิมที่อยู่ในบัญชีดำจะไม่ได้รับอนุญาตเว้นเสียแต่ว่าจะถูกกำหนดให้อยู่ในรายการที่อนุญาตพิเศษ</translation> <translation id="6282799760374509080">อนุญาตหรือปฏิเสธการจับเสียง</translation> <translation id="6284362063448764300">TLS 1.1</translation> @@ -1872,6 +1913,7 @@ หากคุณเลือกตรวจหาพร็อกซีเซิร์ฟเวอร์อัตโนมัติ แอป Android จะได้รับ URL สคริปต์ "http://wpad/wpad.dat" โดยจะไม่มีการใช้โปรโตคอลการตรวจหาพร็อกซีโดยอัตโนมัติอื่นๆ หากคุณเลือกที่จะใช้สคริปต์พร็อกซี .pac แอป Android จะได้รับ URL สคริปต์ดังกล่าว</translation> +<translation id="6430366557948788869">Chrome Reporting Extension</translation> <translation id="6440051664870270040">อนุญาตให้เว็บไซต์นำทางและเปิดป๊อปอัปพร้อมกันได้</translation> <translation id="6447948611083700881">การสำรองและกู้คืนข้อมูลปิดใช้อยู่</translation> <translation id="645425387487868471">เปิดใช้การบังคับลงชื่อเข้าใช้สำหรับ <ph name="PRODUCT_NAME" /></translation> @@ -1918,6 +1960,7 @@ <translation id="6628646143828354685">อนุญาตให้คุณกำหนดได้ว่าจะอนุญาตให้เว็บไซต์ต่างๆ เข้าถึงอุปกรณ์บลูทูธที่อยู่ใกล้เคียงหรือไม่ คุณสามารถเลือกที่จะบล็อกการเข้าถึงโดยสิ้นเชิง หรือให้เว็บไซต์หนึ่งๆ ขออนุญาตจากผู้ใช้ทุกครั้งที่ต้องการเข้าถึงอุปกรณ์บลูทูธที่อยู่ใกล้เคียง หากไม่มีการกำหนดค่านโยบายนี้ ระบบจะใช้ "3" และผู้ใช้จะสามารถเปลี่ยนแปลงได้</translation> +<translation id="663685822663765995">จำกัดโหมดสีการพิมพ์</translation> <translation id="6641981670621198190">ปิดใช้งานการสนับสนุน API ของกราฟิก 3 มิติ</translation> <translation id="6647965994887675196">หากตั้งค่าเป็นจริง จะสามารถสร้างและใช้งานผู้ใช้ภายใต้การดูแลได้ @@ -1945,6 +1988,7 @@ รูปแบบ URL ในนโยบายนี้ไม่ควรขัดแย้งกับรูปแบบที่กำหนดค่าผ่าน WebUsbAskForUrls ไม่มีการระบุว่าระบบจะใช้นโยบายใดหาก URL ตรงกับรูปแบบทั้งสอง</translation> <translation id="6689792153960219308">รายงานสถานะของฮาร์ดแวร์</translation> +<translation id="6698632841807204978">เปิดใช้การพิมพ์ขาวดำ</translation> <translation id="6699880231565102694">เปิดใช้งานการตรวจสอบสิทธิ์แบบสองปัจจัยสำหรับโฮสต์การเข้าถึงระยะไกล</translation> <translation id="6724842112053619797">หากคุณเปิดใช้การตั้งค่านี้ ระบบจะบันทึกการตั้งค่าที่เก็บไว้ในโปรไฟล์ <ph name="PRODUCT_NAME" /> เช่น บุ๊กมาร์ก ข้อมูลการป้อนอัตโนมัติ รหัสผ่าน ไปยังไฟล์ที่เก็บไว้ในโฟลเดอร์โปรไฟล์ผู้ใช้โรมมิ่งหรือตำแหน่งที่ผู้ดูแลระบบระบุไว้ผ่านนโยบาย <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> ด้วย การเปิดใช้นโยบายนี้จะปิดใช้คลาวด์ซิงค์ @@ -1984,6 +2028,12 @@ การตั้งค่านี้จะควบคุมการนำเสนอหน้าต้อนรับที่ช่วยให้ผู้ใช้ลงชื่อเข้าใช้ <ph name="PRODUCT_NAME" /> เลือกผลิตภัณฑ์นี้เป็นเบราว์เซอร์เริ่มต้น หรือให้ข้อมูลเกี่ยวกับฟีเจอร์ของผลิตภัณฑ์</translation> <translation id="6766216162565713893">อนุญาตให้เว็บไซต์ขอสิทธิ์เข้าถึงอุปกรณ์บลูทูธที่อยู่ใกล้เคียงจากผู้ใช้</translation> <translation id="6770454900105963262">รายงานข้อมูลเกี่ยวกับเซสชันคีออสก์ที่ใช้งาน</translation> +<translation id="6773056206551814546">นโยบายนี้ควบคุมว่าจะรายงานข้อมูลที่ใช้ระบุเครื่องได้หรือไม่ เช่น ชื่อเครื่องและที่อยู่เครือข่าย + + เมื่อไม่ได้ตั้งค่านโยบายนี้หรือตั้งค่าเป็น "จริง" ระบบจะรวบรวมข้อมูลที่ใช้ระบุเครื่องได้ + เมื่อตั้งค่านโยบายนี้เป็น "เท็จ" ระบบจะไม่รวบรวมข้อมูลที่ใช้ระบุเครื่องได้ + + นโยบายนี้จะมีผลเฉพาะเมื่อ Chrome Reporting Extension และการจัดการระบบคลาวด์เปิดอยู่</translation> <translation id="6786747875388722282">ส่วนขยาย</translation> <translation id="6786967369487349613">ตั้งค่าไดเรกทอรีโปรไฟล์โรมมิ่ง</translation> <translation id="6810445994095397827">ปิดกั้น JavaScript บนไซต์เหล่านี้</translation> @@ -2084,6 +2134,7 @@ </translation> <translation id="6922884955650325312">บล็อกปลั๊กอิน <ph name="FLASH_PLUGIN_NAME" /></translation> <translation id="6923366716660828830">ระบุชื่อของผู้ให้บริการการค้นหาเริ่มต้น หากปล่อยว่างหรือไม่ได้กำหนดไว้ จะใช้ชื่อโฮสต์ที่ระบุไว้โดย URL ค้นหา นโยบายนี้จะใช้เฉพาะในกรณีที่มีการเปิดใช้งานนโยบาย "DefaultSearchProviderEnabled" เท่านั้น</translation> +<translation id="6926703471186170050">เปิดใช้การพิมพ์ 2 ด้านแบบแนวตั้ง</translation> <translation id="6931242315485576290">ปิดใช้งานการซิงค์ข้อมูลกับ Google</translation> <translation id="6936894225179401731">ระบุจำนวนสูงสุดของการเชื่อมต่อไปยังพร็อกซีเซิร์ฟเวอร์พร้อมกัน @@ -2132,7 +2183,7 @@ หากตั้งค่านโยบายเป็น "เท็จ" หรือไม่ได้ตั้งค่า <ph name="PRODUCT_NAME" /> จะรวบรวมหรืออัปโหลดบันทึกเช่นนี้ไม่ได้ - บันทึกเหล่านี้มีข้อมูลการวินิจฉัยซึ่งเป็นประโยชน์เมื่อแก้ไขข้อบกพร่องเกี่ยวกับการโทรด้วยเสียงหรือการโทรแบบวิดีโอคอลใน Chrome เช่น เวลาและขนาดของแพ็กเก็ต RTP ที่ส่งและได้รับ ผลป้อนกลับเกี่ยวกับความคับคั่งในเครือข่าย ตลอดจนข้อมูลเมตาเกี่ยวกับระยะเวลาและคุณภาพของเสียงและเฟรมของวิดีโอ บันทึกเหล่านี้ไม่มีเนื้อหาเสียงหรือวิดีโอจากการโทร + บันทึกเหล่านี้มีข้อมูลการวินิจฉัยซึ่งเป็นประโยชน์เมื่อแก้ไขข้อบกพร่องเกี่ยวกับการโทรด้วยเสียงหรือการโทรแบบวิดีโอคอลใน Chrome เช่น เวลาและขนาดของแพ็กเก็ต RTP ที่ส่งและได้รับ ผลป้อนกลับเกี่ยวกับความหนาแน่นในเครือข่าย ตลอดจนข้อมูลเมตาเกี่ยวกับระยะเวลาและคุณภาพของเสียงและเฟรมของวิดีโอ บันทึกเหล่านี้ไม่มีเนื้อหาเสียงหรือวิดีโอจากการโทร มีเฉพาะบริการผ่านเว็บของ Google อย่างเช่น Google Hangouts หรือ Google Meet ที่จะเรียกใช้การรวบรวมข้อมูลนี้ได้ @@ -2277,6 +2328,7 @@ หากปิดใช้การตั้งค่านี้หรือไม่ได้กำหนดค่าไว้ ผู้ใช้จะเลือกไปต่อยังเว็บไซต์ที่ถูกแจ้งหลังจากเห็นคำเตือนได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับ Safe Browsing ได้ที่ https://developers.google.com/safe-browsing</translation> +<translation id="737655323154569539">จำกัดขนาดหน้าของการพิมพ์ ระบบจะถือว่าไม่มีข้อจำกัดหากไม่ได้ตั้งค่านโยบายหรือค่าว่างเปล่า</translation> <translation id="7417728346887499628">การปิดใช้จะป้องกันไม่ให้การทำความสะอาด Chrome สแกนหาซอฟต์แวร์ไม่พึงประสงค์ในระบบและนำออก ระบบจะปิดการเรียกใช้การทำความสะอาด Chrome ด้วยตนเองจาก chrome://settings/cleanup หากเปิดใช้หรือไม่ได้ตั้งค่า การทำความสะอาด Chrome จะสแกนหาซอฟต์แวร์ไม่พึงประสงค์ในระบบอยู่เป็นระยะ และหากพบ ก็จะถามผู้ใช้ว่าต้องการนำซอฟต์แวร์ดังกล่าวออกไหม ระบบจะเปิดการเรียกใช้การทำความสะอาด Chrome ด้วยตนเองจาก chrome://settings/cleanup @@ -2351,6 +2403,8 @@ <translation id="7617319494457709698">นโยบายนี้ระบุส่วนขยายที่อนุญาตให้ใช้ฟังก์ชัน <ph name="CHALLENGE_USER_KEY_FUNCTION" /> ของ <ph name="ENTERPRISE_PLATFORM_KEYS_API" /> สำหรับการยืนยันจากระยะไกล โดยต้องเพิ่มส่วนขยายลงในรายการนี้เพื่อใช้ API หากส่วนขยายไม่อยู่ในรายการ หรือไม่มีการตั้งค่ารายการ การเรียกใช้ API จะล้มเหลวโดยมีรหัสข้อผิดพลาด</translation> +<translation id="7618907117929117943">ย้อนกลับไปใช้เวอร์ชันเป้าหมายและใช้เวอร์ชันเป้าหมายเสมอหากใช้ระบบปฏิบัติการเวอร์ชันที่ใหม่กว่า และจะยังใช้ค่ากำหนดระดับอุปกรณ์ต่อไปได้ (รวมถึงข้อมูลรับรองเครือข่าย) ผ่านการย้อนกลับเวอร์ชัน รวมถึงการข้าม OOBE หลังการย้อนกลับเวอร์ชัน อย่าย้อนกลับหรือยกเลิกการย้อนกลับเวอร์ชันหากเป็นไปไม่ได้ (เนื่องจากเวอร์ชันเป้าหมายไม่รองรับการกู้คืนข้อมูลหรือมีการเปลี่ยนแปลงย้อนหลังที่เข้ากันไม่ได้) + รองรับใน <ph name="PRODUCT_OS_NAME" /> เวอร์ชัน 70 ขึ้นไป สำหรับไคลเอ็นต์เก่า ค่านี้หมายความว่าการย้อนกลับเวอร์ชันปิดอยู่</translation> <translation id="7625444193696794922">ระบุช่องทางแสดงผลที่ควรจะล็อกเข้ากับอุปกรณ์นี้</translation> <translation id="7632724434767231364">ชื่อไลบรารี GSSAPI</translation> <translation id="7635471475589566552">กำหนดค่าภาษาแอปพลิเคชันใน <ph name="PRODUCT_NAME" /> และป้องกันไม่ให้ผู้ใช้เปลี่ยนภาษาดังกล่าว หากคุณเปิดใช้งานการตั้งค่านี้ <ph name="PRODUCT_NAME" /> จะใช้ภาษาที่ระบุ หากภาษาที่กำหนดค่าไว้ไม่ได้รับการสนับสนุน "en-US" จะถูกนำมาใช้แทน หากคุณปิดใช้งานหรือไม่ได้กำหนดค่าการตั้งค่านี้ <ph name="PRODUCT_NAME" /> อาจใช้ภาษาที่ต้องการตามที่ผู้ใช้ระบุ (หากกำหนดค่าไว้) ภาษาของระบบ หรือภาษาทางเลือก "en-US"</translation> @@ -2544,6 +2598,7 @@ หากคุณเปิดใช้การตั้งค่านี้หรือไม่ได้กำหนดค่าไว้ ผู้ใช้จะยังคงเป็นผู้ควบคุมฟีเจอร์ป้อนอัตโนมัติ ซึ่งจะทำให้ผู้ใช้กำหนดค่าโปรไฟล์ป้อนอัตโนมัติและเปิดหรือปิดป้อนอัตโนมัติได้ตามที่เห็นสมควร</translation> <translation id="8044493735196713914">รายงานโหมดการบูตอุปกรณ์</translation> <translation id="8050080920415773384">การพิมพ์ดั้งเดิม</translation> +<translation id="8053580360728293758">ลบล้างโหมดการพิมพ์สีเริ่มต้น ระบบจะเพิกเฉยนโยบายนี้หากไม่มีโหมด</translation> <translation id="8059164285174960932">URL ที่ไคลเอ็นต์การเข้าถึงระยะไกลควรรับโทเค็นการตรวจสอบสิทธิ์</translation> <translation id="8078366200175825572">ให้คุณกำหนดรายการรูปแบบ URL ที่ระบุเว็บไซต์ซึ่งไม่ได้รับอนุญาตให้ตั้งค่าคุกกี้ @@ -2729,6 +2784,7 @@ ในที่นี้ "เวอร์ชัน" เป็นได้ทั้งเวอร์ชันที่เจาะจงอย่าง "61.0.3163.120" หรือเลขนำหน้าเวอร์ชันอย่าง "61.0" ก็ได้ </translation> <translation id="8544375438507658205">โปรแกรมแสดง HTML เริ่มต้นสำหรับ <ph name="PRODUCT_FRAME_NAME" /></translation> <translation id="8544465954173828789">อนุญาตให้ซิงค์ข้อความ SMS จากโทรศัพท์ไปยัง Chromebook</translation> +<translation id="8548832052135586762">ตั้งค่าการพิมพ์เป็นสีเท่านั้น ขาวดำเท่านั้น หรือไม่มีข้อจำกัดโหมดสี ระบบจะถือว่าไม่มีข้อจำกัดหากไม่ได้ตั้งค่านโยบายไว้</translation> <translation id="8549772397068118889">เตือนเมื่อไปที่เว็บไซต์ภายนอกชุดเนื้อหา</translation> <translation id="8566842294717252664">ซ่อนเว็บสโตร์จากหน้าแท็บใหม่และเครื่องเรียกใช้งานแอป</translation> <translation id="8586528890725660268">ระบุเครื่องพิมพ์ที่ผู้ใช้ใช้งานไม่ได้ @@ -2831,6 +2887,7 @@ หากไม่กำหนดการตั้งค่านี้ไว้ ผู้ใช้เลือกได้ว่าจะใช้ฟังก์ชันนี้หรือไม่</translation> <translation id="8870318296973696995">หน้าแรก</translation> +<translation id="8876188741456358123">ลบล้างโหมดการพิมพ์ 2 ด้านเริ่มต้น ระบบจะเพิกเฉยนโยบายนี้หากไม่มีโหมด</translation> <translation id="8882006618241293596">บล็อกปลั๊กอิน <ph name="FLASH_PLUGIN_NAME" /> ในเว็บไซต์เหล่านี้</translation> <translation id="890403179930035128">บังคับเปิดใช้การตรวจการสะกดของภาษาต่างๆ ระบบจะเพิกเฉยต่อภาษาที่ไม่รู้จักในรายการนั้น @@ -2926,6 +2983,8 @@ <translation id="9084985621503260744">ระบุว่ากิจกรรมวิดีโอมีผลต่อการจัดการพลังงานหรือไม่</translation> <translation id="9088433379343318874">เปิดใช้ผู้ให้บริการเนื้อหาสำหรับผู้ใช้ภายใต้การดูแล</translation> <translation id="9088444059179765143">กำหนดค่าวิธีการตรวจหาเขตเวลาอัตโนมัติ</translation> +<translation id="9094064873808699479">ย้อนกลับไปใช้เวอร์ชันเป้าหมายและใช้เวอร์ชันเป้าหมายเสมอหากใช้ระบบปฏิบัติการเวอร์ชันที่ใหม่กว่า พยายามใช้ค่ากำหนดระดับอุปกรณ์ต่อไป (รวมถึงข้อมูลรับรองเครือข่าย) ผ่านขั้นตอนการย้อนกลับเวอร์ชัน หากเป็นไปได้ แต่อย่าทำ Powerwash เต็มรูปแบบถ้ากู้คืนข้อมูลไม่ได้ (เพราะเวอร์ชันเป้าหมายไม่รองรับการกู้คืนข้อมูลหรือเพราะมีการเปลี่ยนแปลงย้อนหลังที่เข้ากันไม่ได้) + รองรับใน <ph name="PRODUCT_OS_NAME" /> เวอร์ชัน 70 ขึ้นไป สำหรับไคลเอ็นต์เก่า ค่านี้หมายความว่าการย้อนกลับเวอร์ชันปิดอยู่</translation> <translation id="9096086085182305205">รายการที่อนุญาตสำหรับเซิร์ฟเวอร์การตรวจสอบสิทธิ์</translation> <translation id="9098553063150791878">นโยบายสำหรับการตรวจสอบสิทธิ์ HTTP</translation> <translation id="9105265795073104888">แอป Android สามารถใช้เพียงชุดย่อยของตัวเลือกการกำหนดค่าพร็อกซี โดยแอป Android อาจเลือกใช้พร็อกซีโดยสมัครใจ คุณไม่สามารถบังคับให้แอปใช้พร็อกซีได้</translation> @@ -2977,6 +3036,13 @@ <translation id="9187743794267626640">ปิดใช้งานการต่อเชื่อมที่จัดเก็บข้อมูลภายนอก</translation> <translation id="9197740283131855199">เปอร์เซ็นต์ของระดับการปรับการหน่วงเวลาการสลัวหน้าจอ หากผู้ใช้มีการใช้งานหลังจากการสลัวหน้าจอ</translation> <translation id="9200828125069750521">พารามิเตอร์สำหรับ URL รูปภาพที่ใช้ POST</translation> +<translation id="920209539000507585">บังคับเปิดหรือปิด "ส่วนหัวและส่วนท้าย" ในกล่องโต้ตอบการพิมพ์ + + หากไม่ได้ตั้งค่านโยบายนี้ ผู้ใช้จะเลือกได้ว่าจะพิมพ์หรือไม่พิมพ์ส่วนหัวและส่วนท้าย + + หากตั้งค่านโยบายเป็น "เท็จ" ระบบจะไม่เลือก "ส่วนหัวและส่วนท้าย" ในกล่องโต้ตอบตัวอย่างการพิมพ์ และผู้ใช้จะเปลี่ยนค่าไม่ได้ + + หากตั้งค่านโยบายเป็น "จริง" ระบบจะเลือก "ส่วนหัวและส่วนท้าย" ในกล่องโต้ตอบตัวอย่างการพิมพ์ และผู้ใช้จะเปลี่ยนค่าไม่ได้</translation> <translation id="9210953373038593554">กำหนดค่าประเภทการตรวจสอบสิทธิ์ของการเข้าสู่ระบบด้วย SAML เมื่อไม่ได้ตั้งค่านโยบายนี้หรือตั้งเป็นค่าเริ่มต้น (ค่า 0) เบราว์เซอร์จะเป็นตัวกำหนดลักษณะการทำงานของการเข้าสู่ระบบด้วย SAML ตามปัจจัยอื่นๆ ในกรณีพื้นฐานที่สุด การตรวจสอบสิทธิ์ผู้ใช้และการปกป้องข้อมูลผู้ใช้ที่แคชไว้จะทำด้วยการใช้รหัสผ่านที่ป้อนด้วยตนเอง @@ -2984,6 +3050,9 @@ เมื่อตั้งค่านโยบายนี้เป็น ClientCertificate (ค่า 1) ระบบจะใช้การตรวจสอบสิทธิ์ด้วยใบรับรองไคลเอ็นต์สำหรับผู้ใช้ที่เพิ่มเข้ามาใหม่ซึ่งลงชื่อเข้าสู่ระบบผ่าน SAML และจะไม่มีการใช้รหัสผ่านสำหรับผู้ใช้ประเภทนี้ ระบบจะปกป้องข้อมูลในเครื่องที่แคชไว้โดยใช้คีย์การเข้ารหัสที่สอดคล้องกัน ตัวอย่างเช่น การตั้งค่านี้ช่วยให้กำหนดค่าการตรวจสอบสิทธิ์ผู้ใช้ด้วยสมาร์ทการ์ดได้ (จะต้องติดตั้งแอปมิดเดิลแวร์สมาร์ทการ์ดผ่านนโยบาย DeviceLoginScreenAppInstallList) นโยบายนี้ส่งผลกับผู้ใช้ที่ยืนยันตัวตนโดยใช้ SAML เท่านั้น</translation> +<translation id="9211439035693857287">กำหนดค่านโยบายที่เกี่ยวข้องกับ Chrome Reporting Extension + + นโยบายเหล่านี้จะมีผลเฉพาะเมื่อ Chrome Reporting Extension และการจัดการระบบคลาวด์เปิดอยู่</translation> <translation id="9213347477683611358">กำหนดค่ารูปภาพวอลเปเปอร์ระดับอุปกรณ์ที่แสดงในหน้าจอเข้าสู่ระบบหากยังไม่มีผู้ใช้ลงชื่อเข้าใช้อุปกรณ์ นโยบายตั้งค่าโดยการระบุ URL ที่อุปกรณ์ Chrome OS สามารถดาวน์โหลดรูปภาพวอลเปเปอร์และแฮชแบบเข้ารหัสซึ่งใช้เพื่อยืนยันความสมบูรณ์ของการดาวน์โหลด รูปภาพต้องมีรูปแบบเป็น JPEG ขนาดไฟล์ต้องไม่เกิน 16 MB และ URL ต้องเข้าถึงได้โดยไม่ต้องตรวจสอบสิทธิ์ รูปภาพวอลเปเปอร์จะได้รับการดาวน์โหลดและแคช และจะมีการดาวน์โหลดอีกครั้งเมื่อใดก็ตามที่ URL หรือแฮชมีการเปลี่ยนแปลง ควรระบุนโยบายนี้เป็นสตริงที่แสดง URL และแฮชในรูปแบบ JSON เช่น
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb index 5a31ea5..a028b4f 100644 --- a/components/policy/resources/policy_templates_tr.xtb +++ b/components/policy/resources/policy_templates_tr.xtb
@@ -2212,7 +2212,7 @@ Bu politika yanlış (false) değerine ayarlanır veya ayarlanmadan bırakılırsa, <ph name="PRODUCT_NAME" /> ürünü bu tür günlükleri toplayamaz veya yükleyemez. - Bu günlükler, Chrome'daki sesli veya görüntülü çağrılarla ilgili, gönderilen ve alınan RTP paketlerinin saati ve boyutu, ağdaki tıkanmayla ilgili geri bildirim ve ses ve video karelerinin zamanı ve kalitesiyle ilgili meta veriler gibi sorunların ayıklanmasında yararlı olacak teşhis bilgilerini içerir. + Bu günlükler, Chrome'daki sesli veya görüntülü çağrılarla ilgili, gönderilen ve alınan RTP paketlerinin saati ve boyutu, ağdaki tıkanmayla ilgili geri bildirim ve ses ile video karelerinin zamanı ve kalitesiyle ilgili meta veriler gibi sorunların ayıklanmasında yararlı olacak teşhis bilgilerini içerir. Chrome'un gerçekleştirdiği bu veri toplama işlemi yalnızca Google Hangouts veya Google Meet gibi bir Google web hizmeti tarafından tetiklenebilir.
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb index 75df98e..6a00e9c 100644 --- a/components/policy/resources/policy_templates_uk.xtb +++ b/components/policy/resources/policy_templates_uk.xtb
@@ -203,6 +203,7 @@ <translation id="1522425503138261032">Дозволяти сайтам відстежувати фізичне місцезнаходження користувача</translation> <translation id="152657506688053119">Список альтернативних URL-адрес для пошукової системи за умовчанням</translation> <translation id="1530812829012954197">Завжди відтворювати перелічені шаблони URL-адреси у веб-переглядачі хосту</translation> +<translation id="1541170838458414064">Обмежити розмір сторінки друку</translation> <translation id="1553684822621013552">Якщо для цього правила встановлено значення "true", користувач отримує доступ до додатка ARC (можливі додаткові перевірки налаштувань правила; якщо для поточного сеансу користувача @@ -379,6 +380,12 @@ <translation id="2082205219176343977">Налаштуйте мінімальну дозволену версію Chrome для пристрою.</translation> <translation id="209586405398070749">Стабільна версія</translation> <translation id="2098658257603918882">Увімкнути звіти про використання та дані, пов’язані з аварійним завершенням роботи</translation> +<translation id="2098916259427011890">Це правило визначає, чи повідомляти інформацію про версію, як-от версію, платформу й архітектуру ОС, а також версію <ph name="PRODUCT_NAME" /> і канал <ph name="PRODUCT_NAME" />. + + Якщо це правило не налаштовано або для нього встановлено значення true, інформація про версію збирається. + Якщо для цього правила встановлено значення false, інформація про версію не збирається. + + Це правило працює, лише коли ввімкнено розширення для звітування Chrome і хмарне керування.</translation> <translation id="2111016292707172233">Вмикає доступність функції "Торкніться, щоб шукати" в режимі перегляду вмісту <ph name="PRODUCT_NAME" />. Якщо ввімкнути це налаштування, користувач зможе шукати дотиком, а також вмикати й вимикати цю функцію. @@ -413,6 +420,8 @@ Якщо це правило не встановлено, значення за умовчанням – 0 градусів. Користувач може змінити значення за умовчанням, і воно не відновиться під час перезапуску.</translation> +<translation id="214901426630414675">Обмежити двосторонній друк</translation> +<translation id="2149330464730004005">Увімкнути кольоровий друк</translation> <translation id="2156132677421487971">Налаштування правил для <ph name="PRODUCT_NAME" /> – функції, яка дає змогу надсилати вміст вкладок, сайтів або робочого столу з веб-переглядача на віддалені екрани та звукові системи.</translation> <translation id="2166472654199325139">Не фільтрувати сайти з вмістом для дорослих</translation> <translation id="2168397434410358693">Затримка через неактивність, коли використовується живлення від мережі</translation> @@ -602,6 +611,7 @@ <translation id="2529880111512635313">Скласти список додатків і розширень, які встановлюються примусово</translation> <translation id="253135976343875019">Затримка застереження через неактивність, коли використовується змінний струм</translation> <translation id="2536525645274582300">Користувач вирішує, чи вмикати служби локації Google</translation> +<translation id="2550593661567988768">Лише односторонній друк</translation> <translation id="2552966063069741410">Часовий пояс</translation> <translation id="2562339630163277285">Указує URL-адресу пошукової системи, яка використовується для відображення миттєвих результатів. URL-адреса має містити рядок <ph name="SEARCH_TERM_MARKER" />, який замінюється введеним користувачем текстом під час надсилання запиту. @@ -662,7 +672,7 @@ Якщо це налаштування вимкнено, користувачі не зможуть налаштувати синхронізацію SMS. - Якщо це правило не налаштовано, його зможуть застосовувати лише користувачі, якими не керує адміністратор.</translation> + Якщо це правило не налаштовано, функція синхронізації буде доступна лише користувачам, якими не керує адміністратор.</translation> <translation id="2660846099862559570">Ніколи не використовувати проксі-сервер</translation> <translation id="267596348720209223">Указує системи кодування символів, які підтримуються пошуковою службою. Системи кодування – це назви сторінок кодів, як-от UTF-8, GB2312 та ISO-8859-1. Вони використовуються по порядку. Це правило не обов’язкове. Якщо його не встановлено, використовується значення за умовчанням, тобто UTF-8. Це правило застосовується, лише коли ввімкнено правило "DefaultSearchProviderEnabled".</translation> <translation id="268577405881275241">Увімкнути проксі-сервер стиснення даних</translation> @@ -729,9 +739,12 @@ Якщо це правило вимкнено або не налаштовано, у режимі попереднього перегляду друку за умовчанням використовуватиметься останній використаний принтер. Якщо це правило ввімкнено, у режимі попереднього перегляду друку використовуватиметься принтер операційної системи за умовчанням.</translation> +<translation id="2856674246949497058">Відкочуватися до цільової версії та використовувати її, якщо версія ОС новіша. Під час процедури виконується Powerwash.</translation> <translation id="2872961005593481000">Завершити роботу</translation> +<translation id="2873651257716068683">Замінює стандартний розмір сторінки друку. Якщо розмір сторінки недоступний, це правило ігнорується.</translation> <translation id="2874209944580848064">Примітка для пристроїв <ph name="PRODUCT_OS_NAME" />, які підтримують додатки Android.</translation> <translation id="2877225735001246144">Вимкнути пошук CNAME під час узгодження автентифікації за протоколом Kerberos</translation> +<translation id="2892414556511568464">Обмежує двосторонній друк. Якщо це правило не налаштоване або порожнє, вважається, що воно не має обмежень.</translation> <translation id="2893546967669465276">Надсилати системні журнали на сервер керування</translation> <translation id="2899002520262095963">Додатки Android можуть використовувати налаштування мережі та сертифікати ЦС, установлені за допомогою цього правила, однак вони не мають доступу до деяких параметрів налаштувань.</translation> <translation id="290002216614278247">Дає змогу блокувати сеанс користувача на основі часу клієнта чи денної квоти на використання. @@ -818,6 +831,7 @@ Радимо перейти на використання наборів шифрів ECDHE для серверів. Якщо вони недоступні, переконайтеся, що на сервері ввімкнено набір шрифтів з обміном ключів RSA.</translation> <translation id="316778957754360075">Це налаштування не підтримується від 29-ї версії <ph name="PRODUCT_NAME" />. Рекомендований спосіб налаштування груп розширень і програм, розміщених на корпоративних серверах, – включити сайт, на якому розміщено пакети CRX у правило ExtensionInstallSources і розмістити прямі посилання для завантаження в пакети на веб-сторінці. Панель запуску для веб-сторінки можна створити за допомогою правила ExtensionInstallForcelist.</translation> +<translation id="3171369832001535378">Шаблон імені хосту мережі пристрою</translation> <translation id="3185009703220253572">від версії <ph name="SINCE_VERSION" /></translation> <translation id="3187220842205194486">Додатки Android не мають доступу до корпоративних ключів. На них не впливає це правило.</translation> <translation id="3201273385265130876">Дозволяє вказати проксі-сервер для <ph name="PRODUCT_NAME" /> і забороняє користувачам змінювати налаштування проксі-сервера. @@ -925,6 +939,7 @@ Значенням для цього правила є маркер реєстрації, який можна отримати на консолі адміністратора Google.</translation> <translation id="3496296378755072552">Диспетчер паролів</translation> +<translation id="3502555714327823858">Дозволити всі режими двостороннього друку</translation> <translation id="350443680860256679">Налаштування ARC</translation> <translation id="3504791027627803580">Указує URL-адресу пошукової системи, яка використовується для пошуку зображень. Пошукові запити надсилаються методом GET. Якщо ввімкнено правило "DefaultSearchProviderImageURLPostParams", запити на пошук зображень надсилаються методом POST. @@ -934,6 +949,7 @@ <translation id="350797926066071931">Увімкнути перекладач</translation> <translation id="3512226956150568738">Якщо модель пристрою клієнта перед переходом на ext4 вже підтримувала ARC та для правила ArcEnabled вибрано значення "true", застосовується правило AskUser (значення 3). У всіх інших випадках (зокрема, якщо модель пристрою раніше не підтримувала ARC або якщо для правила ArcEnabled вибрано значення "false") діє правило DisallowArc (значення 0).</translation> <translation id="3524204464536655762">Заборонити всім сайтам запитувати доступ до пристроїв USB через API WebUSB</translation> +<translation id="3526752951628474302">Лише одноколірний друк</translation> <translation id="3528000905991875314">Увімкнути додаткові сторінки з помилками</translation> <translation id="3545457887306538845">Дає змогу керувати використанням Інструментів розробника. @@ -957,6 +973,7 @@ <translation id="3577251398714997599">Налаштування реклами для сайтів із нав’язливими оголошеннями</translation> <translation id="3591584750136265240">Налаштування автентифікації під час входу</translation> <translation id="3627678165642179114">Вмикати чи вимикати веб-службу перевірки орфографії</translation> +<translation id="3628480121685794414">Увімкнути односторонній друк</translation> <translation id="3646859102161347133">Установити тип лупи</translation> <translation id="3653237928288822292">Значок пошукової служби за умовчанням</translation> <translation id="3660562134618097814">Передавати файли cookie SAML IdP під час входу</translation> @@ -1050,6 +1067,7 @@ Якщо для цього правила вибрано значення "false", інформація про сеанс не надсилатиметься. Якщо правило не налаштовано або має значення "true", інформація про сеанс надсилатиметься.</translation> +<translation id="3858658082795336534">Стандартні параметри двостороннього друку</translation> <translation id="3859780406608282662">Додає параметр для отримання початкового числа Варіацій у <ph name="PRODUCT_OS_NAME" />. Якщо вказано, параметр запиту з назвою "restrict" додається до URL-адреси, яка використовується для отримання початкового числа Варіацій. Значенням параметру буде значення, визначене в цьому правилі. @@ -1071,7 +1089,7 @@ Кожен запис списку містить словник, у який мають входити ідентифікатор розширення в полі "extension-id" й URL-адреса оновлення в полі "update-url".</translation> <translation id="3874773863217952418">Увімкнути функцію "Торкніться, щоб шукати"</translation> <translation id="3877517141460819966">Вбудовано режим двофакторної автентифікації</translation> -<translation id="3879208481373875102">Налаштувати список примусово встановлених веб-додатків</translation> +<translation id="3879208481373875102">Налаштувати список примусово встановлюваних веб-додатків</translation> <translation id="388237772682176890">Це правило не діє у версії M53 та видалено у версії M54, оскільки підтримку протоколу SPDY/3.1 припинено. Вимикає використання протоколу SPDY у продукті <ph name="PRODUCT_NAME" />. @@ -1156,6 +1174,12 @@ Для правила можна вибрати такі значення: "tls1.2" або "tls1.3". Якщо правило налаштовано, <ph name="PRODUCT_NAME" /> не використовуватиме вищі від указаних версії SSL/TLS. Нерозпізнані значення ігноруватимуться.</translation> <translation id="4121350739760194865">Запобігання появи реклами програм на сторінці нової вкладки</translation> <translation id="412697421478384751">Дозволяти користувачам установлювати слабкі PIN-коди для блокування екрана</translation> +<translation id="4129183564590133854">Це правило визначає, чи повідомляти інформацію, яка може використовуватися для ідентифікації користувачів, як-от дані входу в ОС і профіль <ph name="PRODUCT_NAME" />, ім’я профілю <ph name="PRODUCT_NAME" />, шлях до профілю <ph name="PRODUCT_NAME" /> і виконуваний шлях <ph name="PRODUCT_NAME" />. + + Якщо це правило не налаштовано або для нього встановлено значення true, інформація, за якою можна ідентифікувати користувачів, збирається. + Якщо для цього правила встановлено значення false, інформація, за якою можна ідентифікувати користувачів, не збирається. + + Це правило працює, лише коли ввімкнено розширення для звітування Chrome і хмарне керування.</translation> <translation id="4138655880188755661">Ліміт часу</translation> <translation id="4157003184375321727">Повідомляти версію ОС і мікропрограми</translation> <translation id="4157594634940419685">Надавати доступ до рідних принтерів CUPS</translation> @@ -1303,10 +1327,10 @@ Повний опис можливих параметрів і структури цього правила можна переглянути на сторінці https://www.chromium.org/administrators/policy-list-3/extension-settings-full </translation> <translation id="4554651132977135445">Режим обробки зациклення політики користувача</translation> -<translation id="4554841826517980623">Це правило визначає, чи функція спільних мережевих файлів у службі <ph name="PRODUCT_NAME" /> має використовувати <ph name="NETBIOS_PROTOCOL" />, щоб виявляти обмін файлами в мережі. - Якщо для цього правила вибрано значення true, функція використовуватиме протокол <ph name="NETBIOS_PROTOCOL" />, щоб виявляти обмін файлами в мережі. - Якщо для цього правила вибрано значення false, функція не використовуватиме протокол <ph name="NETBIOS_PROTOCOL" />, щоб виявляти обмін файлами в мережі. - Якщо це правило не налаштовано, його зможуть застосовувати лише користувачі, якими не керує адміністратор.</translation> +<translation id="4554841826517980623">Це правило визначає, чи функція мережевих файлообмінників у <ph name="PRODUCT_NAME" /> має використовувати <ph name="NETBIOS_PROTOCOL" />, щоб знаходити файлообмінники в мережі. + Якщо для цього правила вибрано значення true, функція використовуватиме протокол <ph name="NETBIOS_PROTOCOL" />, щоб знаходити файлообмінники в мережі. + Якщо для цього правила вибрано значення false, функція не використовуватиме протокол <ph name="NETBIOS_PROTOCOL" />, щоб знаходити файлообмінники в мережі. + Якщо це правило не налаштовано, описаний спосіб пошуку буде доступний лише користувачам, якими не керує адміністратор.</translation> <translation id="4555850956567117258">Вмикає віддалене підтвердження даних для користувача</translation> <translation id="4557134566541205630">URL-адреса сторінки нової вкладки пошукової системи за умовчанням</translation> <translation id="4567137030726189378">Дозволяє використання Інструментів розробника</translation> @@ -1453,6 +1477,13 @@ <translation id="5052081091120171147">Якщо це правило ввімкнено, історія веб-перегляду імпортується з поточного веб-переглядача за умовчанням. Якщо його ввімкнено, це правило також впливає на діалогове вікно імпортування. Якщо вимкнено, історія веб-перегляду не імпортується. Якщо це правило не встановлено, користувач отримує запит на імпортування або імпортування розпочинається автоматично.</translation> <translation id="5056708224511062314">Лупу вимкнено</translation> <translation id="5058573563327660283">Вибирати, які дані видалятимуться під час автоматичного очищення диска (більше не підтримується)</translation> +<translation id="5058771123777243130">Це правило визначає, чи повідомляти дані й час завантаження правила. + + Якщо це правило не налаштовано або для нього встановлено значення true, дані й час завантаження правила збираються. + Якщо для цього правила встановлено значення false, +дані й час завантаження правила не збираються. + + Це правило працює, лише коли ввімкнено розширення для звітування Chrome і хмарне керування.</translation> <translation id="5067143124345820993">Список користувачів, яким дозволено вхід</translation> <translation id="5068140065960598044">Правила використання хмарних служб у <ph name="PRODUCT_NAME" /> замінюють правила пристрою.</translation> <translation id="5085647276663819155">Вимкнути попередній перегляд версії для друку</translation> @@ -1555,6 +1586,7 @@ <translation id="5366977351895725771">Якщо для цього правила встановлено значення "false", цей користувач не зможе створювати контрольованих користувачів. Усі наявні контрольовані користувачі все ж будуть активні. Якщо для цього правила встановлено значення "true" або його не налаштовано, цей користувач зможе створювати контрольованих користувачів і керувати ними.</translation> +<translation id="5369937289900051171">Лише кольоровий друк</translation> <translation id="5370279767682621504">Увімкнути підтримку протоколу HTTP/0.9 для нестандартних портів</translation> <translation id="5378985487213287085">Дозволяє вказувати, чи можуть веб-сайти показувати сповіщення на робочому столі. Показ сповіщень на робочому столі можна дозволити за умовчанням, заборонити за умовчанням або отримувати запит, коли веб-сайт хоче показати сповіщення на робочому столі. Якщо це правило не встановлено, використовується правило "AskNotifications", але користувач може його змінити.</translation> <translation id="538108065117008131">Дозволити <ph name="PRODUCT_FRAME_NAME" /> обробляти перелічені типи вмісту.</translation> @@ -1575,6 +1607,7 @@ Якщо для правила вказано список ідентифікаторів методів введення, ці методи будуть доступні на екрані входу. Перший указаний метод буде вибрано за умовчанням. Коли рядок введення на екрані входу активний, разом із дозволеними цим правилом методами введення буде доступний останній метод введення, вибраний користувачем. Якщо правило не налаштовано, методи введення буде вибрано на основі мовного коду, який використовується на екрані входу. Недійсні ідентифікатори методів введення ігноруються.</translation> <translation id="5423001109873148185">Якщо це правило ввімкнено, пошукові системи імпортуються з поточного веб-переглядача за умовчанням. Якщо його ввімкнено, це правило також впливає на діалогове вікно імпортування. Якщо вимкнено, пошукова система за умовчанням не імпортується. Якщо це правило не встановлено, користувач отримує запит на імпортування або імпортування розпочинається автоматично.</translation> <translation id="5423197884968724595">Назва обмеження Android WebView:</translation> +<translation id="5424147596523390018">Дозволити всі режими кольорового друку</translation> <translation id="5442026853063570579">Це правило також керує доступом до Параметрів розробника Android. Якщо для нього встановлено значення DeveloperToolsDisallowed (значення 2), користувачі не матимуть доступу до Параметрів розробника. Якщо це правило не налаштовано або для нього встановлено інше значення, користувачі можуть отримувати доступ до Параметрів розробника, сім разів торкнувшись номера складання в додатку Налаштування Android.</translation> <translation id="5447306928176905178">Увімкнути повідомлення з інформацією про пам’ять (розмір динамічної пам’яті JavaScript) для сторінки (не рекомендується)</translation> <translation id="5457065417344056871">Увімкнути режим гостя у веб-переглядачі</translation> @@ -1641,6 +1674,7 @@ <translation id="5586942249556966598">Нічого не робити</translation> <translation id="5630352020869108293">Відновити останній сеанс</translation> <translation id="5645779841392247734">Дозволити файли cookie на цих сайтах</translation> +<translation id="5689430183304951538">Стандартний розмір сторінки друку</translation> <translation id="5693469654327063861">Дозволити перенесення даних</translation> <translation id="5694594914843889579">Якщо це правило має значення "true", зовнішня пам’ять буде недоступною в переглядачі файлів. @@ -1670,6 +1704,7 @@ Якщо це правило не налаштовано, використовується період часу за умовчанням. Значення правила має вказуватися в мілісекундах.</translation> +<translation id="5783009211970309878">Друкувати верхні й нижні колонтитули</translation> <translation id="5809728392451418079">Налаштувати відображуване ім’я для локальних облікових записів у пристрої</translation> <translation id="5814301096961727113">Налаштувати стан за умовчанням для голосових підказок на екрані входу</translation> <translation id="5815129011704381141">Автоматично перезавантажувати після оновлення</translation> @@ -1681,6 +1716,7 @@ Якщо це правило не встановлено, використовується каталог за умовчанням.</translation> <translation id="5826047473100157858">Указує, чи може користувач відкривати сторінки в режимі анонімного перегляду в <ph name="PRODUCT_NAME" />. Якщо вибрано "Увімкнено" або це правило не встановлено, сторінки можна відкривати в режимі анонімного перегляду. Якщо вибрано "Вимкнено", сторінки не можна відкривати в режимі анонімного перегляду. Якщо вибрано "Примусово", сторінки можна відкривати ЛИШЕ в режимі анонімного перегляду.</translation> +<translation id="582857022372205358">Увімкнути двосторонній друк за коротким краєм</translation> <translation id="583091600226586337"> Якщо це правило ввімкнено, перед завантаженням користувач має вказати, де зберігати кожний файл. Якщо це правило вимкнено, файли завантажуються одразу, і користувач не вказує, де їх зберігати. @@ -1701,7 +1737,7 @@ Якщо це правило не встановлено, голосові підказки вимикаються під час першої появи екрана входу. Користувачі можуть вмикати чи вимикати голосові підказки будь-коли, і такий вибір на екрані входу буде чинним для всіх користувачів.</translation> <translation id="5868414965372171132">Налаштування мережі на рівні користувача</translation> -<translation id="5879014913445067283">Керувати виявленням спільних мережевих файлів через <ph name="NETBIOS_NAME" /></translation> +<translation id="5879014913445067283">Керувати виявленням файлообмінників у мережі за допомогою <ph name="NETBIOS_NAME" /></translation> <translation id="5883015257301027298">Налаштування файлів cookie за умовчанням</translation> <translation id="5887414688706570295">Налаштовує префікс TalkGadget, який використовується хостами віддаленого доступу, і не дозволяє користувачам змінювати його. @@ -1716,6 +1752,7 @@ Якщо цей параметр вимкнено або не налаштовано, запити на автентифікацію розширення Gnubby не надсилаються.</translation> <translation id="5898486742390981550">Якщо на пристрої здійснено вхід у декілька облікових записів, працювати в додатках Android може лише основний користувач.</translation> +<translation id="5901427587865226597">Лише двосторонній друк</translation> <translation id="5906199912611534122">Дозволяє вмикати або вимикати обмеження пропускної спроможності мережі. Цей параметр впливає на користувачів та інтерфейс пристроїв. Якщо налаштувати його, обмеження застосовуватиметься, доки не буде змінено значення параметра. @@ -1823,6 +1860,7 @@ Значення правила вказується в мілісекундах. Значення мають бути меншими за період затримки через неактивність.</translation> <translation id="6097601282776163274">Увімкнути збір анонімних даних, захищених паролем URL-адрес</translation> +<translation id="6099853574908182288">Стандартні параметри кольорового друку</translation> <translation id="6111936128861357925">Дозволити грати в гру Dinosaur Easter Egg</translation> <translation id="6114416803310251055">не рекомендується</translation> <translation id="6133088669883929098">Дозволити всім сайтам генерувати ключі</translation> @@ -1835,6 +1873,7 @@ Якщо це правило не встановлено, для всіх сайтів буде застосовано загальне значення за умовчанням відповідно до правила "DefaultPluginsSetting" (якщо таке встановлено) або персоналізованих налаштувань користувача.</translation> <translation id="6190022522129724693">Налаштування спливаючих вікон за умовчанням</translation> +<translation id="6190367314942602985">Повідомляти ідентифікаційну інформацію користувачів</translation> <translation id="6197453924249895891">Надає розширенням доступ до корпоративних ключів. Ключі призначаються для корпоративного використання, якщо їх згенеровано за допомогою API chrome.platformKeys у керованому обліковому записі. Імпортовані або згенеровані іншим способом ключі не призначаються для корпоративного використання. @@ -1844,6 +1883,8 @@ За умовчанням розширення не може використовувати корпоративний ключ, якщо для параметра allowCorporateKeyUsage цього розширення вибрано значення "false". Розширення може використовувати будь-який корпоративний ключ платформи, щоб підписувати довільні дані, лише якщо параметр allowCorporateKeyUsage має значення "true". Цей дозвіл потрібно надавати, лише якщо розширення гарантує захист ключа від зловмисників.</translation> +<translation id="6208896993204286313">Повідомляти інформацію про правила <ph name="PRODUCT_NAME" /></translation> +<translation id="6210259502936598222">Повідомляти інформацію про ОС і версію <ph name="PRODUCT_NAME" /></translation> <translation id="6211428344788340116">Повідомляти про періоди активності пристрою. Якщо цей параметр має значення "true", зареєстровані пристрої повідомлятимуть про періоди активності користувача на пристрої. Якщо цей параметр не налаштовано або має значення "false", періоди активності пристрою не реєструватимуться та не повідомлятимуться.</translation> @@ -1857,6 +1898,7 @@ <translation id="6233173491898450179">Установити каталог для завантаження</translation> <translation id="6244210204546589761">URL-адреси для відкривання під час запуску</translation> <translation id="6258193603492867656">Указує, чи створене ім’я учасника сервера (SPN) за протоколом Kerberos має включати нестандартний порт. Якщо це налаштування ввімкнено та введено нестандартний порт (тобто не порт 80 або 443), порт включається в створене ім’я SPN Kerberos. Якщо це налаштування вимкнено чи не встановлено, у створене ім’я SPN Kerberos ніколи не включається порт.</translation> +<translation id="6261643884958898336">Повідомляти ідентифікаційну інформацію комп’ютера</translation> <translation id="6281043242780654992">Налаштовує правила для хостів для обміну повідомленнями з оригінальними додатками. Хости для обміну повідомленнями з оригінальними додатками, внесені в чорний список, забороняються, якщо їх не внесено в білий список.</translation> <translation id="6282799760374509080">Дозволити чи заборонити запис аудіо</translation> <translation id="6284362063448764300">TLS 1.1</translation> @@ -1887,6 +1929,7 @@ Якщо проксі-сервер визначатиметься автоматично, додатки Android матимуть доступ до URL-адреси сценарію "http://wpad/wpad.dat". Інші частини протоколу для автоматичного визначення проксі-сервера не використовуватимуться. Якщо використовувати сценарій проксі-сервера .pac, додатки Android матимуть доступ до URL-адреси сценарію.</translation> +<translation id="6430366557948788869">Розширення для звітування Chrome</translation> <translation id="6440051664870270040">Дозволити сайтам одночасно здійснювати навігацію та відкривати спливаючі вікна</translation> <translation id="6447948611083700881">Резервне копіювання та відновлення вимкнено</translation> <translation id="645425387487868471">Увімкнути примусовий вхід в обліковий запис у <ph name="PRODUCT_NAME" /></translation> @@ -1933,6 +1976,7 @@ <translation id="6628646143828354685">Дозволяє вказувати, чи можуть веб-сайти отримувати доступ до пристроїв Bluetooth поблизу. Доступ можна заборонити повністю або запитувати користувача щоразу, коли веб-сайт просить доступ до пристроїв Bluetooth поблизу. Якщо це правило не налаштовано, застосовується правило "3", і користувач зможе його змінити.</translation> +<translation id="663685822663765995">Обмежити кольоровий друк</translation> <translation id="6641981670621198190">Вимкнути підтримку API для 3D-графіки</translation> <translation id="6647965994887675196">Якщо для цього правила встановлено значення "true", можна створювати контрольованих користувачів і користуватися їхніми обліковими записами. @@ -1960,6 +2004,7 @@ Шаблони URL-адрес у цьому правилі не повинні суперечити адресам, налаштованим через WebUsbAskForUrls. Невідомо, яке з двох правил матиме перевагу, якщо URL-адреса співпадає з обома.</translation> <translation id="6689792153960219308">Повідомляти про стан апаратного забезпечення</translation> +<translation id="6698632841807204978">Увімкнути одноколірний друк</translation> <translation id="6699880231565102694">Вмикати двофакторну автентифікацію для хостів віддаленого доступу</translation> <translation id="6724842112053619797">Якщо ввімкнути цей параметр, налаштування з профілів <ph name="PRODUCT_NAME" /> (як-от закладки, дані автозаповнення, паролі тощо) також записуватимуться у файл у папці роумінгового профілю користувача або в місці, указаному адміністратором у правилі <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" />. Якщо ввімкнути це правило, вимкнеться синхронізація в хмарі. @@ -1999,6 +2044,12 @@ Це налаштування керує показом сторінок привітання, які допомагають користувачам увійти в <ph name="PRODUCT_NAME" />, вибрати його веб-переглядачем за умовчанням або іншим чином дізнатися про функції продукту.</translation> <translation id="6766216162565713893">Дозволити сайтам запитувати в користувача доступ до пристрою Bluetooth поблизу</translation> <translation id="6770454900105963262">Повідомляти інформацію про активні сеанси терміналу</translation> +<translation id="6773056206551814546">Це правило визначає, чи повідомляти інформацію, яка може використовуватися для ідентифікації комп’ютерів, як-от назву й мережеві адреси. + + Якщо це правило не налаштовано або для нього встановлено значення true, інформація, за якою можна ідентифікувати комп’ютери, збирається. + Якщо для цього правила встановлено значення false, інформація, за якою можна ідентифікувати комп’ютери, не збирається. + + Це правило працює, лише коли ввімкнено розширення для звітування Chrome і хмарне керування.</translation> <translation id="6786747875388722282">Розширення</translation> <translation id="6786967369487349613">Указати роумінговий каталог профілю</translation> <translation id="6810445994095397827">Блокувати JavaScript на цих сайтах</translation> @@ -2092,6 +2143,7 @@ </translation> <translation id="6922884955650325312">Блокувати плагін <ph name="FLASH_PLUGIN_NAME" /></translation> <translation id="6923366716660828830">Указує назву пошукової служби за умовчанням. Якщо залишено порожнім або не встановлено, використовується назва хосту, визначена URL-адресою пошуку. Це правило застосовується, лише коли ввімкнено правило "DefaultSearchProviderEnabled".</translation> +<translation id="6926703471186170050">Увімкнути двосторонній друк за довгим краєм</translation> <translation id="6931242315485576290">Вимкнути синхронізацію даних із Google</translation> <translation id="6936894225179401731">Визначає максимальну кількість одночасних під’єднань до проксі-сервера. @@ -2136,11 +2188,11 @@ <translation id="7053678646221257043">Якщо це правило ввімкнено, закладки імпортуються з поточного веб-переглядача за умовчанням. Якщо його ввімкнено, це правило також впливає на діалогове вікно імпортування. Якщо вимкнено, закладки не імпортуються. Якщо це правило не встановлено, користувач отримує запит на імпортування або імпортування розпочинається автоматично.</translation> <translation id="7063895219334505671">Дозволити спливаючі вікна на цих сайтах</translation> <translation id="706568410943497889"> - Якщо для правила встановлено значення true, служба <ph name="PRODUCT_NAME" /> може збирати журнали подій WebRTC із сервісів Google (як-от Google Meet) і завантажувати їх у Google. + Якщо для правила встановлено значення true, <ph name="PRODUCT_NAME" /> може збирати журнали подій WebRTC із сервісів Google (як-от Google Meet) і завантажувати їх у Google. Якщо для правила вибрано значення false або його не налаштовано, <ph name="PRODUCT_NAME" /> не може збирати й завантажувати такі журнали. - Ці журнали містять діагностичні дані, які допомагають вирішити проблеми з аудіо- й відеовикликами в Chrome, як-от час надсилання й отримання пакетів RTP та їх розмір, відгуки про перевантаження мережі й метадані про час і якість фреймів аудіо та відео. Аудіо- й відеовміст викликів не включається в журнали. + Ці журнали містять діагностичні дані, які допомагають вирішити проблеми з аудіо- й відеовикликами в Chrome, зокрема відомості про час надсилання й отримання пакетів RTP та їх розмір, відгуки про перевантаження мережі й метадані про тривалість і якість аудіофреймів та відеокадрів. Аудіо- й відеовміст викликів не включається в журнали. Збір цих даних у Chrome можуть активувати лише веб-сервіси Google, як-от Google Hangouts або Google Meet. @@ -2277,7 +2329,7 @@ <translation id="7336878834592315572">Зберігати файли cookie впродовж сеансу</translation> <translation id="7340034977315324840">Повідомляти про періоди активності пристрою</translation> <translation id="7343497214039883642">Файл конфігурації принтерів пристроїв підприємства</translation> -<translation id="7349338075015720646">Визначає список веб-сайтів, які встановлюються фоново, без дій із боку користувача. Користувач не може видалити або вимкнути їх. +<translation id="7349338075015720646">Визначає список веб-додатків, які встановлюються фоново, без дій із боку користувача. Користувач не може видалити або вимкнути їх. Кожен елемент списку правила – це об’єкт із двома частинами: url і launch_container. url – це URL-адреса веб-додатка для встановлення, а для launch_container потрібно вказати значення window або tab, щоб визначити, як веб-додаток відкриватиметься після встановлення. Коли launch_container опущено, додаток запускатиметься у вікні, якщо Chrome розпізнає його як прогресивний веб-додаток, а в іншому випадку – у вкладці.</translation> <translation id="7367028210010532881">Служба Безпечний перегляд показує сторінку застереження, коли користувачі переходять на сайти, які вважаються потенційно шкідливими. Якщо цей параметр увімкнено, користувачі не можуть переходити зі сторінки застереження на шкідливий сайт. @@ -2285,6 +2337,7 @@ Якщо цей параметр вимкнено або не налаштовано, користувачі можуть вибрати, чи переходити після показу застереження на потенційно шкідливий сайт. Відвідайте сторінку https://developers.google.com/safe-browsing, щоб дізнатися більше про Безпечний перегляд.</translation> +<translation id="737655323154569539">Обмежує розмір сторінки друку. Якщо це правило не налаштоване або порожнє, вважається, що воно не має обмежень.</translation> <translation id="7417728346887499628">Якщо це правило вимкнено, Очищення Chrome не скануватиме систему на наявність небажаного програмного забезпечення й не виконуватиме очищення. Можливість активувати Очищення Chrome вручну за допомогою chrome://settings вимкнено. Якщо це правило ввімкнено або не налаштовано, Очищення Chrome періодично скануватиме систему на наявність небажаного програмного забезпечення. Якщо таке буде знайдено, користувач отримає запит на його видалення. @@ -2354,6 +2407,8 @@ <translation id="7617319494457709698">Це правило визначає розширення, яким дозволено використовувати функцію <ph name="ENTERPRISE_PLATFORM_KEYS_API" /> <ph name="CHALLENGE_USER_KEY_FUNCTION" /> для віддаленого засвідчення. Щоб скористатись API, розширення потрібно додати в цей список. Якщо розширення немає в списку або список не створено, запити до API закінчуються помилкою.</translation> +<translation id="7618907117929117943">Відкочуватися до цільової версії та використовувати її, якщо версія ОС новіша. Під час відкочування можна перенести налаштування пристрою (зокрема, облікові дані мережі), а також пропустити перший запуск. Не робіть відкочування й не скасовуйте його, якщо це неможливо (наприклад, цільова версія не підтримує відновлення даних або така зміна несумісна). + Підтримується в <ph name="PRODUCT_OS_NAME" /> 70 і новіших версій. Це означає, що для клієнтів зі старішою версією відкочування вимкнено.</translation> <translation id="7625444193696794922">Указує версію випуску, з якою потрібно пов’язати цей пристрій.</translation> <translation id="7632724434767231364">Назва бібліотеки GSSAPI</translation> <translation id="7635471475589566552">Установлює мовний код програми в <ph name="PRODUCT_NAME" /> і не дозволяє користувачам змінювати його. Якщо це налаштування ввімкнено, <ph name="PRODUCT_NAME" /> використовує вказаний мовний код. Якщо встановлений мовний код не підтримується, замість нього використовується "en-US". Якщо це налаштування вимкнено чи не встановлено, <ph name="PRODUCT_NAME" /> використовує вказаний користувачем мовний код (якщо налаштовано), мовний код системи або вихідний мовний код "en-US".</translation> @@ -2547,6 +2602,7 @@ Якщо це налаштування ввімкнено або не налаштовано, функцією автозаповнення керує користувач. Завдяки цьому він зможе налаштовувати профілі автозаповнення та вмикати або вимикати функцію автозаповнення на власний розсуд.</translation> <translation id="8044493735196713914">Повідомляти про режим завантаження пристрою</translation> <translation id="8050080920415773384">Власний друк</translation> +<translation id="8053580360728293758">Замінює стандартні параметри кольорового друку. Якщо такий режим недоступний, це правило ігнорується.</translation> <translation id="8059164285174960932">URL-адреса, за якою клієнти віддаленого доступу мають отримати маркер автентифікації</translation> <translation id="8078366200175825572">Дає змогу налаштовувати список шаблонів URL-адрес, що визначають сайти, яким заборонено встановлювати файли cookie. @@ -2734,7 +2790,8 @@ Тут "версія" може означати точний номер (як-от "61.0.3163.120") або префікс версії (як-от "'61.0"). </translation> <translation id="8544375438507658205">Відтворення у форматі HTML за умовчанням для <ph name="PRODUCT_FRAME_NAME" /></translation> -<translation id="8544465954173828789">Синхронізувати SMS-повідомлення на телефоні з Chromebook.</translation> +<translation id="8544465954173828789">Дозволити синхронізацію SMS-повідомлень на телефоні з Chromebook.</translation> +<translation id="8548832052135586762">Налаштовує лише кольоровий, одноколірний або чорно-білий режим друку. Якщо це правило не налаштовано, вважається, що воно не має обмежень.</translation> <translation id="8549772397068118889">Попереджає про відвідування сайтів, які не входять у пакети вмісту</translation> <translation id="8566842294717252664">Ховати значок веб-магазину на сторінці нової вкладки та на панелі запуску додатків</translation> <translation id="8586528890725660268">Указує принтери, недоступні для користувачів. @@ -2771,11 +2828,11 @@ Якщо це правило не налаштовано, служба захисту паролів працюватиме лише для паролів Google. Цей параметр можна змінити.</translation> <translation id="8672321184841719703">Цільова версія автоматичного оновлення</translation> <translation id="867410340948518937">U2F (універсальний другий фактор)</translation> -<translation id="8682611302223077049">Дає змогу встановити період часу (у мілісекундах), протягом якого користувачі бачитимуть сповіщення про те, що потрібно перезапустити службу <ph name="PRODUCT_NAME" /> або перезавантажити пристрій <ph name="PRODUCT_OS_NAME" />, щоб застосувати оновлення, яке очікує на розгляд. +<translation id="8682611302223077049">Дає змогу встановити період часу (у мілісекундах), протягом якого користувачі бачитимуть сповіщення про те, що потрібно перезапустити <ph name="PRODUCT_NAME" /> або пристрій <ph name="PRODUCT_OS_NAME" />, щоб установити нове оновлення. - Протягом цього часу користувач регулярно отримуватиме сповіщення щодо необхідності оновлення. На пристроях <ph name="PRODUCT_OS_NAME" /> сповіщення щодо перезавантаження з’являтиметься на панелі завдань, коли буде виявлено оновлення. У веб-переглядачах <ph name="PRODUCT_NAME" /> змінюється меню додатків, щоб повідомити про необхідність перезапуску, коли минає третина часу для оновлення. Коли минає дві третини вказаного часу, сповіщення змінює колір, а потім ще раз, коли час закінчується. Додаткові сповіщення, які вмикає правило <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" />, працюють так само. + Протягом цього часу користувач регулярно отримуватиме сповіщення щодо необхідності оновлення. На пристроях <ph name="PRODUCT_OS_NAME" /> сповіщення щодо перезапуску з’являтиметься на панелі завдань, коли буде виявлено оновлення. У веб-переглядачах <ph name="PRODUCT_NAME" /> змінюється меню додатка, щоб повідомити про необхідність перезапуску, коли минає третина часу для оновлення. Сповіщення змінює колір, коли минає дві третини вказаного часу, а потім ще раз, коли час закінчується. Додаткові сповіщення, які вмикає правило <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" />, працюють так само. - Якщо час не налаштовано, використовується період за умовчанням – 345 600 000 мілісекунд (чотири дні) для пристроїв <ph name="PRODUCT_OS_NAME" /> і 604 800 000 мілісекунд (один тиждень) для служби <ph name="PRODUCT_NAME" />.</translation> + Якщо час не налаштовано, використовується період за умовчанням – 345 600 000 мілісекунд (чотири дні) для пристроїв <ph name="PRODUCT_OS_NAME" /> і 604 800 000 мілісекунд (один тиждень) для <ph name="PRODUCT_NAME" />.</translation> <translation id="8685024486845674965">Застереження про захист паролем активується під час повторного введення пароля</translation> <translation id="8693243869659262736">Використовувати вдубований клієнт DNS</translation> <translation id="8704831857353097849">Список вимкнених плагінів</translation> @@ -2836,6 +2893,7 @@ Якщо цей параметр не налаштовано, користувач може вирішувати, чи використовувати цю функцію.</translation> <translation id="8870318296973696995">Домашня сторінка</translation> +<translation id="8876188741456358123">Замінює стандартні параметри двостороннього друку. Якщо такий режим недоступний, це правило ігнорується.</translation> <translation id="8882006618241293596">Блокувати плагін <ph name="FLASH_PLUGIN_NAME" /> на цих сайтах</translation> <translation id="890403179930035128">Примусово вмикає мови перевірки правопису. Нерозпізнані мови в цьому списку ігноруються. @@ -2932,6 +2990,8 @@ <translation id="9084985621503260744">Визначати, чи дії з відео впливають на керування живленням</translation> <translation id="9088433379343318874">Увімкнути постачальника вмісту для контрольованих користувачів</translation> <translation id="9088444059179765143">Налаштувати метод автоматичного визначення часового поясу</translation> +<translation id="9094064873808699479">Відкочуватися до цільової версії та використовувати її, якщо версія ОС новіша. Якщо можливо, під час процесу відкочування спробуйте перенести налаштування пристрою (зокрема, облікові дані мережі), однак виконайте Powerwash, навіть якщо відновлення інформації неможливе (наприклад, цільова версія не підтримує його або така зміна несумісна). + Підтримується в <ph name="PRODUCT_OS_NAME" /> 70 і новіших версій. Це означає, що для клієнтів зі старішою версією відкочування вимкнено.</translation> <translation id="9096086085182305205">Список дозволених серверів для автентифікації</translation> <translation id="9098553063150791878">Правила для автентифікації HTTP</translation> <translation id="9105265795073104888">Додаткам Android доступні лише варіанти конфігурації проксі. Додатки Android можуть вибирати, чи використовувати проксі. Ви не можете вплинути на це.</translation> @@ -2969,9 +3029,9 @@ Якщо вибрано значення "true", <ph name="PRODUCT_OS_NAME" /> перезапускатиме пристрій, коли користувач намагатиметься його вимкнути. <ph name="PRODUCT_OS_NAME" /> замінює всі кнопки вимкнення в інтерфейсі на кнопки перезавантаження. Якщо користувач вимкне пристрій за допомогою кнопки живлення, пристрій не перезавантажиться, навіть якщо правило ввімкнено.</translation> <translation id="9152473318295429890">Вмикає контекстні пропозиції пов’язаних веб-сторінок</translation> <translation id="9158929520101169054">Дозволити паралельний вхід у веб-переглядачі</translation> -<translation id="9159126470527871268">Повідомляти користувачів, що потрібно перезапустити службу <ph name="PRODUCT_NAME" /> або перезавантажити <ph name="PRODUCT_OS_NAME" />, щоб застосувати оновлення, яке очікує на розгляд. +<translation id="9159126470527871268">Повідомляйте користувачів, що потрібно перезапустити <ph name="PRODUCT_NAME" /> або <ph name="PRODUCT_OS_NAME" />, щоб установити нове оновлення. - Це правило дає змогу надсилати користувачеві сповіщення щодо рекомендованого чи обов’язкового перезапуску веб-переглядача або перезавантаження пристрою. Якщо правило не налаштовано, служба <ph name="PRODUCT_NAME" /> повідомляє користувачеві про необхідність перезапуску за допомогою незначних змін у своєму меню, а <ph name="PRODUCT_OS_NAME" /> – через сповіщення на панелі завдань. Якщо для правила вибрано значення "Рекомендовано" (Recommended), користувач регулярно бачитиме застереження з рекомендацією перезапуску. Його можна закрити, щоб відкласти перезапуск. Якщо для правила вибрано значення "Обов’язково" (Required), користувач регулярно бачитиме застереження про те, що веб-переглядач примусово перезапуститься, щойно вказаний у сповіщенні період закінчиться. За умовчанням цей термін триває сім днів для служби <ph name="PRODUCT_NAME" /> і чотири дні для <ph name="PRODUCT_OS_NAME" />. Його можна налаштувати за допомогою правила <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. + Це правило дає змогу показувати користувачеві сповіщення щодо рекомендованого чи обов’язкового перезапуску веб-переглядача або пристрою. Якщо правило не налаштовано, <ph name="PRODUCT_NAME" /> повідомляє користувача про необхідність перезапуску за допомогою незначних змін у своєму меню, а <ph name="PRODUCT_OS_NAME" /> – через сповіщення на панелі завдань. Якщо для правила вибрано значення "Рекомендовано" (Recommended), користувач регулярно бачитиме застереження з рекомендацією перезапуску. Його можна закрити, щоб відкласти перезапуск. Якщо для правила вибрано значення "Обов’язково" (Required), користувач регулярно бачитиме застереження про те, що веб-переглядач примусово перезапуститься, щойно вказаний у сповіщенні період закінчиться. За умовчанням цей термін триває сім днів для <ph name="PRODUCT_NAME" /> і чотири дні для <ph name="PRODUCT_OS_NAME" />. Його можна налаштувати за допомогою правила <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. Після перезапуску сеанс користувача відновлюється.</translation> <translation id="9165792353046089850">Дозволяє вказувати, чи можуть веб-сайти отримувати доступ до підключених пристроїв USB. Його можна заблокувати повністю або запитувати користувача щоразу, коли веб-сайт просить про доступ до підключених пристроїв USB. @@ -2983,6 +3043,13 @@ <translation id="9187743794267626640">Вимикати підключення зовнішньої пам’яті</translation> <translation id="9197740283131855199">Відсоток, за яким масштабують затримку затемнення екрана, якщо користувач стає активним після затемнення</translation> <translation id="9200828125069750521">Параметри URL-адреси зображення, яка використовує метод POST</translation> +<translation id="920209539000507585">Примусово вмикає або вимикає верхні й нижні колонтитули у вікні друку. + + Якщо це правило не налаштовано, користувач може вибрати, чи друкувати верхні й нижні колонтитули. + + Якщо це правило має значення false, опцію "Верхні й нижні колонтитули" не вибрано у вікні попереднього перегляду друку, і користувачі не можуть змінити цей параметр. + + Якщо це правило має значення true, опцію "Верхні й нижні колонтитули" вибрано у вікні попереднього перегляду друку, і користувачі не можуть змінити цей параметр.</translation> <translation id="9210953373038593554">Налаштовує тип автентифікації для входу SAML. Якщо це правило не налаштовано або має значення Default (значення 0), процедура входу SAML визначається веб-переглядачем і залежить від інших факторів. За найтиповішим сценарієм автентифікація користувача й захист його кешованих даних здійснюються за допомогою введених вручну паролів. @@ -2990,6 +3057,9 @@ Якщо це правило має значення ClientCertificate (значення 1), для нових користувачів, які ввійшли через SAML, використовується автентифікація сертифікатом клієнта. Для таких користувачів не використовуються паролі, а їхні кешовані локальні дані захищені відповідними криптографічними ключами. Наприклад, цей параметр дає змогу налаштувати автентифікацію користувача через смарт-карти (зауважте, що додатки міжплатформного програмного забезпечення зі смарт-картою потрібно встановлювати за допомогою правила DeviceLoginScreenAppInstallList). Це правило стосується лише користувачів, які автентифікуються через SAML.</translation> +<translation id="9211439035693857287">Налаштування правил, які пов’язані з розширенням для звітування Chrome. + + Ці правила працюють лише тоді, коли ввімкнено розширення для звітування Chrome і хмарне керування.</translation> <translation id="9213347477683611358">Можна налаштувати фоновий малюнок пристрою, який відображається на екрані входу на пристрій. Щоб налаштувати це правило, потрібно вказати URL-адресу, з якої пристрій з ОС Chrome може завантажити фоновий малюнок і криптографічний хеш, який використовується для перевірки цілісності завантаження. Зображення має бути у форматі JPEG, а його розмір не може перевищувати 16 МБ. URL-адреса має бути доступною без автентифікації. Фоновий малюнок завантажується на пристрій і додається в кеш. Якщо URL-адреса або хеш зміниться, фоновий малюнок буде завантажено повторно. Правило потрібно визначати як рядок, що містить URL-адресу та хеш у форматі JSON, наприклад,
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb index 7e07c3e1..52a4fec 100644 --- a/components/policy/resources/policy_templates_vi.xtb +++ b/components/policy/resources/policy_templates_vi.xtb
@@ -353,7 +353,7 @@ <translation id="199764499252435679">Cho phép cập nhật thành phần trong <ph name="PRODUCT_NAME" /></translation> <translation id="2006530844219044261">Quản lý nguồn</translation> <translation id="201557587962247231">Tần suất tải lên báo cáo trạng thái thiết bị</translation> -<translation id="2017301949684549118">URL dùng để cài đặt tự động Ứng dụng web.</translation> +<translation id="2017301949684549118">URL của ứng dụng web cài đặt tự động.</translation> <translation id="2018836497795982119">Chỉ định khoảng thời gian tính bằng mili giây mà dịch vụ quản lý thiết bị được truy vấn về thông tin chính sách người dùng. Đặt chính sách này sẽ ghi đè giá trị mặc định là 3 giờ. Các giá trị hợp lệ dành cho chính sách này nằm trong khoảng từ 1800000 (30 phút) tới 86400000 (1 ngày). Mọi giá trị không nằm trong khoảng này sẽ được giới hạn ở mức tương ứng. Nếu nền tảng hỗ trợ thông báo chính sách, độ trễ làm mới sẽ được đặt thành 24 giờ vì thông báo chính sách được kỳ vọng sẽ buộc làm mới tự động bất cứ khi nào chính sách thay đổi. @@ -1099,7 +1099,7 @@ Mỗi mục nhập trong danh sách chứa một từ điển. Từ điển này phải bao gồm ID tiện ích trong trường 'extension-id' và URL cập nhật trong trường 'update-url'.</translation> <translation id="3874773863217952418">Bật tính năng Nhấn để tìm kiếm</translation> <translation id="3877517141460819966">Chế độ xác thực hai yếu tố tích hợp</translation> -<translation id="3879208481373875102">Định cấu hình danh sách Ứng dụng web bắt buộc cài đặt</translation> +<translation id="3879208481373875102">Định cấu hình danh sách Ứng dụng web buộc cài đặt</translation> <translation id="388237772682176890">Chính sách này không được dùng trong M53 nữa và bị xóa trong M54, vì hỗ trợ của SPDY/3.1 đã bị xóa. Không cho phép sử dụng giao thức SPDY trong <ph name="PRODUCT_NAME" />. @@ -2375,7 +2375,7 @@ <translation id="7343497214039883642">Tệp cấu hình máy dành cho in doanh nghiệp cho các thiết bị</translation> <translation id="7349338075015720646">Xác định danh sách các trang web được cài đặt tự động mà không cần sự can thiệp của người dùng và các trang web mà người dùng không thể gỡ cài đặt cũng như tắt. - Mỗi mục danh sách của chính sách này là một đối tượng chứa hai thành phần: "url" và "launch_container". "url" phải là URL của ứng dụng web cần cài đặt và "launch_container" phải là "cửa sổ" hoặc "tab" để xác định cách mở Ứng dụng web sau khi cài đặt. Khi thiếu phần "launch_container", ứng dụng sẽ chạy trong cửa sổ nếu Chrome cho rằng đây là Ứng dụng web tiến bộ, nếu không thì ứng dụng sẽ chạy trong tab.</translation> + Mỗi mục danh sách của chính sách này là một đối tượng chứa hai thành phần: "url" và "launch_container". "url" phải là URL của ứng dụng web cần cài đặt và "launch_container" phải là "cửa sổ" hoặc "tab" để xác định cách mở Ứng dụng web sau khi cài đặt. Khi thiếu phần "launch_container", ứng dụng sẽ chạy trong một cửa sổ nếu Chrome cho rằng đây là Ứng dụng web tiến bộ, nếu không thì ứng dụng sẽ chạy trong tab.</translation> <translation id="7367028210010532881">Dịch vụ Duyệt web an toàn hiển thị trang cảnh báo khi người dùng chuyển đến các trang web được gắn cờ là có thể độc hại. Việc bật mục cài đặt này sẽ ngăn người dùng vẫn tiếp tục truy cập vào trang web độc hại từ trang cảnh báo. Nếu bạn đã tắt hoặc chưa định cấu hình mục cài đặt này, thì người dùng sẽ có thể chọn tiếp tục truy cập vào trang web bị gắn cờ sau khi cảnh báo hiển thị. @@ -2871,9 +2871,9 @@ <translation id="867410340948518937">U2F (Hai yếu tố chung)</translation> <translation id="8682611302223077049">Cho phép đặt khoảng thời gian tính bằng mili giây mà người dùng nhận được thông báo phải chạy lại <ph name="PRODUCT_NAME" /> hoặc khởi động lại thiết bị chạy <ph name="PRODUCT_OS_NAME" /> để áp dụng bản cập nhật đang chờ xử lý. - Trong khoảng thời gian này, người dùng sẽ được nhắc lại nhiều lần về việc cần phải cập nhật. Đối với các thiết bị chạy <ph name="PRODUCT_OS_NAME" />, thông báo khởi động lại sẽ xuất hiện trong khay hệ thống khi phát hiện có bản nâng cấp. Đối với các trình duyệt <ph name="PRODUCT_NAME" />, menu ứng dụng sẽ thay đổi để cho thấy cần chạy lại sau khi hết một phần ba thời gian thông báo. Thông báo này sẽ đổi màu khi hết hai phần ba thời gian thông báo và đổi màu một lần nữa khi hết toàn bộ thời gian thông báo. Các thông báo bổ sung được bật theo chính sách <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> cũng tuân theo lịch biểu này. + Trong khoảng thời gian này, người dùng sẽ được nhắc lại nhiều lần về việc cần phải cập nhật. Đối với các thiết bị chạy <ph name="PRODUCT_OS_NAME" />, thông báo khởi động lại sẽ xuất hiện trong khay hệ thống khi phát hiện có bản nâng cấp. Đối với các trình duyệt <ph name="PRODUCT_NAME" />, menu ứng dụng sẽ thay đổi để cho thấy cần khởi động lại sau khi hết một phần ba thời gian thông báo. Thông báo này sẽ đổi màu khi hết hai phần ba thời gian thông báo và đổi màu một lần nữa khi hết toàn bộ thời gian thông báo. Các thông báo bổ sung được bật theo chính sách <ph name="RELAUNCH_NOTIFICATION_POLICY_NAME" /> cũng tuân theo trình tự này. - Nếu người dùng không đặt chính sách thì khoảng thời gian mặc định là 345600000 mili giây (bốn ngày) đối với thiết bị chạy <ph name="PRODUCT_OS_NAME" /> và 604800000 mili giây (một tuần) đối với <ph name="PRODUCT_NAME" />.</translation> + Nếu bạn không đặt chính sách thì khoảng thời gian mặc định là 345600000 mili giây (bốn ngày) đối với thiết bị chạy <ph name="PRODUCT_OS_NAME" /> và 604800000 mili giây (một tuần) đối với <ph name="PRODUCT_NAME" />.</translation> <translation id="8685024486845674965">Cảnh báo bảo vệ mật khẩu được kích hoạt bằng cách sử dụng lại mật khẩu</translation> <translation id="8693243869659262736">Sử dụng máy khách DNS tích hợp</translation> <translation id="8704831857353097849">Danh sách plugin bị tắt</translation> @@ -3084,7 +3084,7 @@ <translation id="9158929520101169054">Cho phép đăng nhập nhiều tài khoản trong trình duyệt</translation> <translation id="9159126470527871268">Thông báo cho người dùng biết phải chạy lại <ph name="PRODUCT_NAME" /> hoặc khởi động lại <ph name="PRODUCT_OS_NAME" /> để áp dụng bản cập nhật đang chờ xử lý. - Tùy chọn cài đặt chính sách này sẽ bật thông báo nhắc nhở người dùng rằng họ cần hoặc bắt buộc phải chạy lại trình duyệt hoặc khởi động lại thiết bị. Nếu người dùng không đặt chính sách này, <ph name="PRODUCT_NAME" /> sẽ cho người dùng biết rằng họ cần chạy lại thông qua các thay đổi nhỏ đối với menu của sản phẩm, trong khi <ph name="PRODUCT_OS_NAME" /> cho biết điều đó thông qua thông báo trong khay hệ thống. Nếu người dùng đặt chính sách thành 'Đề xuất', một cảnh báo lặp lại sẽ hiển thị cho người dùng biết rằng họ cần chạy lại. Người dùng có thể bỏ qua cảnh báo này để hoãn việc chạy lại. Nếu người dùng đặt chính sách thành 'Bắt buộc', một cảnh báo lặp lại sẽ hiển thị cho người dùng biết rằng họ bắt buộc phải chạy lại trình duyệt sau khi hết khoảng thời gian thông báo. Khoảng thời gian này mặc định là 7 ngày đối với <ph name="PRODUCT_NAME" /> và 4 ngày đối với <ph name="PRODUCT_OS_NAME" /> và có thể định cấu hình thông qua cài đặt chính sách <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. + Tùy chọn cài đặt chính sách này sẽ bật thông báo nhắc nhở người dùng rằng họ cần hoặc bắt buộc phải chạy lại trình duyệt hoặc khởi động lại thiết bị. Nếu bạn không đặt chính sách này, <ph name="PRODUCT_NAME" /> sẽ cho người dùng biết rằng họ cần chạy lại thông qua các thay đổi nhỏ đối với menu của sản phẩm, trong khi <ph name="PRODUCT_OS_NAME" /> cho biết điều đó thông qua thông báo trong khay hệ thống. Nếu bạn đặt chính sách thành 'Đề xuất', một cảnh báo lặp lại sẽ hiển thị cho người dùng biết rằng họ nên chạy lại. Người dùng có thể bỏ qua cảnh báo này để hoãn việc chạy lại. Nếu bạn đặt chính sách thành 'Bắt buộc', một cảnh báo lặp lại sẽ hiển thị cho người dùng biết rằng họ bắt buộc phải chạy lại trình duyệt sau khi hết khoảng thời gian thông báo. Khoảng thời gian này mặc định là 7 ngày đối với <ph name="PRODUCT_NAME" /> và 4 ngày đối với <ph name="PRODUCT_OS_NAME" /> và có thể định cấu hình thông qua phần cài đặt chính sách <ph name="RELAUNCH_NOTIFICATION_PERIOD_POLICY_NAME" />. Phiên của người dùng sẽ được khôi phục sau khi chạy lại/khởi động.</translation> <translation id="9165792353046089850">Cho phép bạn đặt liệu có cho phép trang web truy cập vào các thiết bị USB đã kết nối hay không. Quyền truy cập có thể bị chặn hoàn toàn hoặc người dùng có thể được hỏi mỗi khi trang web muốn truy cập vào các thiết bị USB đã kết nối.
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb index 6946452..d526404b 100644 --- a/components/policy/resources/policy_templates_zh-TW.xtb +++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -188,6 +188,7 @@ <translation id="1522425503138261032">允許網站追蹤使用者的實際位置</translation> <translation id="152657506688053119">預設搜尋的替代網址清單</translation> <translation id="1530812829012954197">一律在瀏覽器中顯示以下網址模式</translation> +<translation id="1541170838458414064">限制列印頁面大小</translation> <translation id="1553684822621013552">如果將這項政策設為 true,系統會為使用者啟用 ARC (需經過額外政策設定檢查 - 如果目前的 使用者工作階段已啟用暫時模式或多帳戶登入功能, @@ -363,6 +364,12 @@ <translation id="2082205219176343977">設定裝置的最低 Chrome 版本限制。</translation> <translation id="209586405398070749">穩定版</translation> <translation id="2098658257603918882">啟用使用量和當機相關資料的報告功能</translation> +<translation id="2098916259427011890">這項政策可控管系統是否要回報版本資訊,例如作業系統版本、作業系統平台、作業系統架構、<ph name="PRODUCT_NAME" /> 版本和 <ph name="PRODUCT_NAME" /> 頻道。 + + 如果將這項政策設為 True 或不予設定,系統會收集版本資訊。 + 如果將這項政策設為 False,系統就不會收集版本資訊。 + + 只有在 Chrome 資訊回報擴充功能和雲端管理服務皆已啟用的情況下,這項政策才有作用。</translation> <translation id="2111016292707172233">在 <ph name="PRODUCT_NAME" /> 的內容畫面中啟用「輕觸搜尋」功能。 如果你啟用這項設定,使用者即可使用「輕觸搜尋」功能,並可自行選擇開啟或關閉這項功能。 @@ -396,6 +403,8 @@ 如果未設定這項政策,則預設值為 0 度 (使用者可予以變更)。 在這種情況下,重新啟動時就不會重新套用 預設值。</translation> +<translation id="214901426630414675">限制使用雙面列印模式</translation> +<translation id="2149330464730004005">啟用彩色列印</translation> <translation id="2156132677421487971">設定「<ph name="PRODUCT_NAME" />」的各項政策。這項功能可讓使用者透過瀏覽器將分頁、網站或桌面內容傳送至遠端的螢幕和音響設備。</translation> <translation id="2166472654199325139">不要針對成人內容篩選網站。</translation> <translation id="2168397434410358693">在 AC 供電環境下執行時的閒置延遲時間</translation> @@ -585,6 +594,7 @@ <translation id="2529880111512635313">設定強制安裝的應用程式和擴充功能清單</translation> <translation id="253135976343875019">在 AC 供電環境下執行時的閒置警告延遲時間</translation> <translation id="2536525645274582300">使用者可決定是否要啟用 Google 定位服務</translation> +<translation id="2550593661567988768">僅限單面列印</translation> <translation id="2552966063069741410">時區</translation> <translation id="2562339630163277285">指定用於提供互動智慧搜尋結果的搜尋引擎網址。網址應包含 <ph name="SEARCH_TERM_MARKER" /> 字串,使用者輸入的查詢文字會取代這個字串。 @@ -712,9 +722,12 @@ 如果停用這項設定或未設定值,預覽列印會以最近使用的印表機做為預設目的地選擇。 如果啟用這項設定,預覽列印會使用作業系統預設印表機做為預設目的地選擇。</translation> +<translation id="2856674246949497058">如果作業系統比目標版本還新,則復原並維持在目標版本,並在作業過程中執行 Powerwash。</translation> <translation id="2872961005593481000">關閉</translation> +<translation id="2873651257716068683">覆寫預設列印頁面大小。如果設定的頁面大小不適用,系統會忽略這項政策。</translation> <translation id="2874209944580848064">支援 Android 裝置的 <ph name="PRODUCT_OS_NAME" />裝置注意事項:</translation> <translation id="2877225735001246144">在交涉 Kerberos 驗證時,停用 CNAME 查詢</translation> +<translation id="2892414556511568464">限制使用雙面列印模式。如未設定這項政策或將設定留空,系統會視為未設限制。</translation> <translation id="2893546967669465276">將系統記錄傳送到管理伺服器</translation> <translation id="2899002520262095963">Android 應用程式可以使用透過這項政策指定的網路設定和 CA 憑證,但無法存取部分設定選項。</translation> <translation id="290002216614278247">讓你可根據用戶端時間或當日用量配額鎖定使用者的工作階段。 @@ -802,6 +815,7 @@ 建議您讓伺服器改用 ECDHE 加密套件。如果無法使用 ECDHE 加密套件,請確定啟用的加密套件會使用 RSA 金鑰交換機制。</translation> <translation id="316778957754360075">我們已於 <ph name="PRODUCT_NAME" /> 版本 29 移除這項設定。如要設定機構代管的擴充功能/應用程式系列,建議你將代管 CRX 封裝檔的網站加入 ExtensionInstallSources 中,並在網頁上提供該封裝檔的直接下載連結。你可以透過 ExtensionInstallForcelist 政策建立該網頁專用的啟動器。</translation> +<translation id="3171369832001535378">裝置網路主機名稱範本</translation> <translation id="3185009703220253572">自第 <ph name="SINCE_VERSION" /> 版起</translation> <translation id="3187220842205194486">Android 應用程式無法存取企業金鑰 (這項政策對企業金鑰沒有影響)。</translation> <translation id="3201273385265130876">允許你指定 <ph name="PRODUCT_NAME" /> 使用的 Proxy 伺服器,並禁止使用者變更 Proxy 設定。 @@ -909,6 +923,7 @@ 如果設定這項政策,<ph name="PRODUCT_NAME" /> 嘗試自動註冊,並且為所有設定檔套用相關聯的雲端政策。 這項政策的值是可從 Google 管理控制台擷取的註冊憑證。</translation> <translation id="3496296378755072552">密碼管理員</translation> +<translation id="3502555714327823858">允許所有雙面列印模式</translation> <translation id="350443680860256679">設定 ARC</translation> <translation id="3504791027627803580">指定用來提供圖片搜尋的搜尋引擎網址。系統將使用 GET 方法傳送搜尋要求。如果設定 DefaultSearchProviderImageURLPostParams 政策,系統就會使用 POST 方法傳送圖片搜尋要求。 @@ -918,6 +933,7 @@ <translation id="350797926066071931">啟用翻譯</translation> <translation id="3512226956150568738">如果用戶端裝置型號在必須遷移至 Ext4 才能執行 ARC 之前已支援 ARC,且 ArcEnabled 政策設為 True,這個選項的行為會與 AskUser 相同 (值 3)。在所有其他情況下 (如果用戶端裝置型號之前不支援 ARC,或 ArcEnabled 政策設為 False),這個值會等同於 DisallowArc (值 0)。</translation> <translation id="3524204464536655762">不允許任何網站透過 WebUSB API 要求存取 USB 裝置</translation> +<translation id="3526752951628474302">僅限單色列印</translation> <translation id="3528000905991875314">啟用替代的錯誤網頁</translation> <translation id="3545457887306538845">讓你控制在哪些情況下可使用開發人員工具。 @@ -941,6 +957,7 @@ <translation id="3577251398714997599">含侵入式廣告的網站的廣告設定</translation> <translation id="3591584750136265240">設定登入驗證行為</translation> <translation id="3627678165642179114">啟用或停用拼字檢查網路服務</translation> +<translation id="3628480121685794414">啟用單面列印</translation> <translation id="3646859102161347133">設定螢幕放大鏡類型</translation> <translation id="3653237928288822292">預設搜尋引擎圖示</translation> <translation id="3660562134618097814">登入時移轉 SAML IdP Cookie</translation> @@ -1033,6 +1050,7 @@ 如果將政策設為 false,系統將不會回報資訊站工作階段資訊。 如果設為 true 或不予設定,則會回報資訊站工作階段資訊。</translation> +<translation id="3858658082795336534">預設使用雙面列印模式</translation> <translation id="3859780406608282662">在 <ph name="PRODUCT_OS_NAME" /> 中擷取變異版本種子時新增參數。 如果指定這項政策,系統在連結變異版本種子的擷取網址時,會加入「restrict」這個查詢參數。參數值即為這項政策中指定的值。 @@ -1139,6 +1157,12 @@ 這項政策可使用的設定值包括:「tls1.2」或「tls1.3」。設定後,<ph name="PRODUCT_NAME" /> 就不會使用高於指定版本的 SSL/TLS 版本。系統會忽略無法辨識的值。</translation> <translation id="4121350739760194865">阻止應用程式宣傳資訊在新分頁上顯示</translation> <translation id="412697421478384751">允許使用者設定強度不足的螢幕鎖定 PIN 碼</translation> +<translation id="4129183564590133854">這項政策可控管系統是否要回報能用於辨識使用者身分的資訊,例如 OS 登入資訊、<ph name="PRODUCT_NAME" /> 設定檔登入資訊、<ph name="PRODUCT_NAME" /> 設定檔名稱、<ph name="PRODUCT_NAME" /> 設定檔路徑以及 <ph name="PRODUCT_NAME" /> 執行檔路徑。 + + 如果將這項政策設為 True 或不予設定,系統會收集可用於辨識使用者身分的資訊。 + 如果將這項政策設為 False,系統就不會收集可用於辨識使用者身分的資訊。 + + 只有在 Chrome 資訊回報擴充功能和雲端管理服務皆已啟用的情況下,這項政策才有作用。</translation> <translation id="4138655880188755661">時間限制</translation> <translation id="4157003184375321727">回報作業系統和韌體版本</translation> <translation id="4157594634940419685">允許存取原生 CUPS 印表機</translation> @@ -1291,7 +1315,7 @@ <translation id="4554841826517980623">這項政策可控管是否要允許 <ph name="PRODUCT_NAME" />的網路檔案共用功能使用 <ph name="NETBIOS_PROTOCOL" /> 搜尋網路上的共用項目。 將這項政策設為 True 時,共用項目搜尋功能會使用 <ph name="NETBIOS_PROTOCOL" /> 通訊協定在網路上搜尋共用項目。 將這項政策設為 False 時,共用項目搜尋功能不會使用 <ph name="NETBIOS_PROTOCOL" /> 通訊協定搜尋共用項目。 - 如未設定這項政策,在預設情況下,系統會為受企業管理的使用者停用這項政策,並為未受管理的使用者啟用這項政策。</translation> + 如未設定這項政策,在預設情況下,系統會為受企業管理的使用者停用這項政策,而未受管理的使用者則預設為啟用這項政策。</translation> <translation id="4555850956567117258">為使用者啟用遠端認證機制</translation> <translation id="4557134566541205630">預設搜尋引擎新分頁網址</translation> <translation id="4567137030726189378">允許使用開發人員工具</translation> @@ -1438,6 +1462,11 @@ <translation id="5052081091120171147">如果啟用這項政策,則會強制從目前的預設瀏覽器匯入瀏覽記錄 (也會影響匯入對話方塊的選項)。如果停用這項政策,則不會匯入瀏覽記錄。如果未設定這項政策,系統會自動匯入瀏覽記錄,或詢問使用者是否要匯入瀏覽記錄。</translation> <translation id="5056708224511062314">已停用螢幕放大鏡</translation> <translation id="5058573563327660283">選取自動清理時用來釋出磁碟空間的策略 (已不適用)</translation> +<translation id="5058771123777243130">這項政策可控管系統是否要回報政策資料和政策擷取時間。 + + 如果將這項政策設為 True 或不予設定,系統會收集政策資料和政策擷取時間。 + 如果將這項政策設為 False,系統就不會收集政策資料和政策擷取時間。 + 只有在 Chrome 資訊回報擴充功能和雲端管理服務皆已啟用的情況下,這項政策才有作用。</translation> <translation id="5067143124345820993">登入使用者許可清單</translation> <translation id="5068140065960598044"><ph name="PRODUCT_NAME" /> 雲端政策覆寫裝置政策。</translation> <translation id="5085647276663819155">停用列印預覽</translation> @@ -1540,6 +1569,7 @@ <translation id="5366977351895725771">如果設為 False,這位使用者將無法建立受監督的使用者。目前如有任何受監督的使用者帳戶,則仍然可供存取。 如果設為 True 或不予設定,這位使用者即可建立並管理受監督的使用者。</translation> +<translation id="5369937289900051171">僅限彩色列印</translation> <translation id="5370279767682621504">在非預設通訊埠啟用 HTTP/0.9 支援功能</translation> <translation id="5378985487213287085">允許你設定是否要讓網站顯示桌面通知。你可以將網站預設為允許或禁止顯示桌面通知,也可以設為每次網站要顯示桌面通知時再詢問使用者。如果未設定這項政策,系統會使用「AskNotifications」,但使用者可以變更這項設定。</translation> <translation id="538108065117008131">允許 <ph name="PRODUCT_FRAME_NAME" /> 處理下列內容類型。</translation> @@ -1560,6 +1590,7 @@ 如果將這項政策設為輸入法識別碼清單,登入畫面即可顯示指定的輸入法。系統會預先選取第一個指定的輸入法。在特定使用者視窗的登入畫面中,除了這項政策指定的輸入法之外,還會提供使用者最後一次使用的輸入法。如果未設定這項政策,系統會根據登入畫面顯示的語言代碼提供登入畫面的輸入法。如果值不是有效的輸入法識別碼,則會遭到忽略。</translation> <translation id="5423001109873148185">如果啟用這項政策,則會強制從目前的預設瀏覽器匯入搜尋引擎,並影響匯入對話方塊。如果停用這項政策,則不會匯入搜尋引擎。如果未設定這項政策,系統會自動匯入搜尋引擎,或詢問使用者是否要匯入搜尋引擎。</translation> <translation id="5423197884968724595">Android WebView 限制名稱:</translation> +<translation id="5424147596523390018">允許所有色彩模式</translation> <translation id="5442026853063570579">這項政策也可以控制 Android 開發人員選項的存取權。如果將這項政策設為「DeveloperToolsDisallowed」(值 2),使用者將無法存取開發人員選項。如果將這項政策設為其他值或不予設定,使用者只要在 Android 設定應用程式中輕觸版本號碼七次,即可存取開發人員選項。</translation> <translation id="5447306928176905178">在網頁上回報記憶體資訊 (JavaScript 堆積大小) (已不適用)</translation> <translation id="5457065417344056871">在瀏覽器中啟用訪客模式</translation> @@ -1626,6 +1657,7 @@ <translation id="5586942249556966598">不要處理</translation> <translation id="5630352020869108293">還原上次工作階段</translation> <translation id="5645779841392247734">允許這些網站的 Cookie</translation> +<translation id="5689430183304951538">預設列印頁面大小</translation> <translation id="5693469654327063861">允許資料遷移</translation> <translation id="5694594914843889579">將這項政策設為 true 時,無法在檔案瀏覽器中存取外部儲存裝置。 @@ -1655,6 +1687,7 @@ 如果你未設定這項政策,系統會使用預設時間長度。 指定政策值時需以毫秒為單位。</translation> +<translation id="5783009211970309878">列印頁首和頁尾</translation> <translation id="5809728392451418079">設定裝置本機帳戶的顯示名稱</translation> <translation id="5814301096961727113">設定互動朗讀在登入畫面的預設狀態</translation> <translation id="5815129011704381141">更新完成後自動重新啟動</translation> @@ -1666,6 +1699,7 @@ 如未設定這項政策,系統會使用預設的設定檔目錄。</translation> <translation id="5826047473100157858">指定使用者是否可以在「<ph name="PRODUCT_NAME" />」中以無痕模式開啟網頁。如果選取的是 [啟用] 或未設定政策,網頁能以無痕模式開啟。如果選取的是 [停用],則網頁可能無法以無痕模式開啟。如果選取的是 [強制],系統只會以無痕模式開啟網頁。</translation> +<translation id="582857022372205358">啟用短邊雙面列印</translation> <translation id="583091600226586337"> 如果啟用這項政策,系統在下載檔案前一律會詢問使用者儲存位置。 如果停用這項政策,系統會立即開始下載檔案,而不會詢問使用者儲存位置。 @@ -1701,6 +1735,7 @@ 如果停用或不設定這項設定,系統將不會以 Proxy 處理 gnubby 驗證要求。</translation> <translation id="5898486742390981550">如有多位使用者同時登入,只有主要使用者可以使用 Android 應用程式。</translation> +<translation id="5901427587865226597">僅限雙面列印</translation> <translation id="5906199912611534122">允許啟用或停用網路節流功能。 所有使用者和裝置上的所有介面都會套用這項政策。設定後, 節流功能會持續運作,直到政策變更為停用節流功能為止。 @@ -1808,6 +1843,7 @@ 指定政策值時需以毫秒為單位。該值必須小於閒置延遲時間值。</translation> <translation id="6097601282776163274">啟用輸入網址匿名資料收集功能</translation> +<translation id="6099853574908182288">預設列印色彩模式</translation> <translation id="6111936128861357925">允許 Dinosaur Easter Egg Game (恐龍復活節彩蛋遊戲)</translation> <translation id="6114416803310251055">淘汰的</translation> <translation id="6133088669883929098">允許所有網站使用金鑰產生功能</translation> @@ -1820,6 +1856,7 @@ 如未設定這項政策,系統會從「DefaultPluginsSetting」政策 (如果有設定的話) 或使用者的個人設定,將通用預設值套用至所有網站。</translation> <translation id="6190022522129724693">預設彈出視視窗設定</translation> +<translation id="6190367314942602985">回報使用者身分識別資訊</translation> <translation id="6197453924249895891">將企業用金鑰的存取權授予給擴充功能。 在受管理的帳戶中使用 chrome.platformKeys API 產生的金鑰僅供企業使用,透過其他方法匯入或產生的金鑰則不限企業使用。 @@ -1829,6 +1866,8 @@ 在預設狀態下,擴充功能無法使用企業專用的金鑰 (相當於對該擴充功能將 allowCorporateKeyUsage 設為 False)。 只有在將擴充功能的 allowCorporateKeyUsage 設為 True 的情況下,擴充功能才能使用企業專用的平台金鑰簽署任意資料。這項權限只應授予信任的擴充功能,才能確保金鑰存取權安全無虞,不受駭客攻擊。</translation> +<translation id="6208896993204286313">回報 <ph name="PRODUCT_NAME" /> 政策資訊</translation> +<translation id="6210259502936598222">回報作業系統和 <ph name="PRODUCT_NAME" /> 版本資訊</translation> <translation id="6211428344788340116">回報裝置活動時間。 如果這項政策未設定或設為 True,註冊的裝置會回報使用者在裝置上活動的時段。如果設為 False,則不會記錄或回報裝置活動時間。</translation> @@ -1842,6 +1881,7 @@ <translation id="6233173491898450179">設定下載目錄</translation> <translation id="6244210204546589761">起始時開啟的網址</translation> <translation id="6258193603492867656">指定產生的 Kerberos SPN 是否應該包含非標準的通訊埠。如果你啟用這項設定並輸入非標準通訊埠 (例如 80 或 443 之外的通訊埠),那麼產生的 Kerberos SPN 就會包含該通訊埠。如果你停用或未調整這項設定,那麼不論在任何情況下,產生的 Kerberos SPN 都不會包含通訊埠。</translation> +<translation id="6261643884958898336">回報裝置識別資訊</translation> <translation id="6281043242780654992">設定內建訊息傳遞政策。如要允許列入黑名單的內建訊息傳遞主機,必須將其加入許可清單。</translation> <translation id="6282799760374509080">允許或拒絕擷取音訊</translation> <translation id="6284362063448764300">TLS 1.1</translation> @@ -1872,6 +1912,7 @@ 如果選擇自動偵測 Proxy 伺服器,系統會提供指令碼網址「http://wpad/wpad.dat」給 Android 應用程式 (不會使用 Proxy 自動偵測通訊協定的其他部分)。 如果選擇 .pac Proxy 指令碼,系統會提供該指令碼網址給 Android 應用程式。</translation> +<translation id="6430366557948788869">Chrome 資訊回報擴充功能</translation> <translation id="6440051664870270040">允許同時在多個網站中進行瀏覽及開啟彈出式視窗</translation> <translation id="6447948611083700881">備份與還原功能已停用</translation> <translation id="645425387487868471">啟用 <ph name="PRODUCT_NAME" /> 的強制登入功能</translation> @@ -1918,6 +1959,7 @@ <translation id="6628646143828354685">讓您設定是否允許網站存取附近的藍牙裝置。您可以完全禁止網站存取附近的藍牙裝置,也可以要求網站一律需要經過使用者同意才能存取附近的藍牙裝置。 如果未設定這項政策,系統會使用「3」,而使用者可以自行變更設定。</translation> +<translation id="663685822663765995">限制列印色彩模式</translation> <translation id="6641981670621198190">停止支援 3D 圖形 API</translation> <translation id="6647965994887675196">如果設為 True,即可建立並使用受監督的使用者。 @@ -1945,6 +1987,7 @@ 透過這項政策設定的網址模式與透過 WebUsbAskForUrls 設定的網址模式不可衝突,否則系統將無法判定應優先遵循哪一項政策。</translation> <translation id="6689792153960219308">回報硬體狀態</translation> +<translation id="6698632841807204978">啟用單色列印</translation> <translation id="6699880231565102694">為遠端存取主機啟用雙重驗證機制</translation> <translation id="6724842112053619797">如果啟用這項設定,系統會將儲存在 <ph name="PRODUCT_NAME" /> 設定檔中的設定 (例如書籤、自動填入資料、密碼等) 一併寫入儲存在漫遊使用者設定檔資料夾中的檔案,或是管理員透過 <ph name="ROAMING_PROFILE_LOCATION_POLICY_NAME" /> 政策指定的位置。啟用這項政策時,雲端同步處理功能會遭到停用: @@ -1984,6 +2027,12 @@ 這項設定將決定歡迎頁面顯示與否,歡迎頁面可協助使用者登入 <ph name="PRODUCT_NAME" />,並將其設為預設瀏覽器,或是讓使用者瞭解產品功能。</translation> <translation id="6766216162565713893">允許網站要求使用者授權存取附近的藍牙裝置</translation> <translation id="6770454900105963262">回報運作中資訊站工作階段相關資訊</translation> +<translation id="6773056206551814546">這項政策可控管系統是否要回報能用於辨識裝置的資訊,例如裝置名稱和網路位址。 + + 如果將這項政策設為 True 或不予設定,系統會收集可用於辨識裝置的資訊。 + 如果將這項政策設為 False,系統就不會收集可用於辨識裝置的資訊。 + + 只有在 Chrome 資訊回報擴充功能和雲端管理服務皆已啟用的情況下,這項政策才有作用。</translation> <translation id="6786747875388722282">擴充功能</translation> <translation id="6786967369487349613">設定漫遊設定檔目錄</translation> <translation id="6810445994095397827">封鎖這些網站的 JavaScript</translation> @@ -2083,6 +2132,7 @@ </translation> <translation id="6922884955650325312">封鎖 <ph name="FLASH_PLUGIN_NAME" /> 外掛程式</translation> <translation id="6923366716660828830">指定預設搜尋引擎名稱。如果名稱欄位留空或未設定,系統會使用搜尋網址指定的主機名稱。只有在啟用「DefaultSearchProviderEnabled」政策時,系統才會遵循這項政策。</translation> +<translation id="6926703471186170050">啟用長邊雙面列印</translation> <translation id="6931242315485576290">停用 Google 資料同步處理功能</translation> <translation id="6936894225179401731">指定 Proxy 伺服器的同時連線數量上限。 @@ -2277,6 +2327,7 @@ 如果停用這項設定或未進行設定,則使用者可以選擇在系統顯示警告之後,繼續前往遭檢舉的網站。 如要進一步瞭解安全瀏覽功能,請前往 https://developers.google.com/safe-browsing。</translation> +<translation id="737655323154569539">限制列印頁面大小。未設定這項政策或將設定留空,系統會視為未設限制。</translation> <translation id="7417728346887499628">如果停用這項政策,系統會禁止 Chrome 清理功能掃描系統中的垃圾軟體並執行清理作業。此外,使用者將無法透過 chrome://settings/cleanup 手動觸發 Chrome 清理功能。 如果啟用或未設定這項政策,Chrome 清理功能會定期掃描系統中的垃圾軟體,並且在找到垃圾軟體時詢問使用者是否要予以移除。此外,使用者也可以透過 chrome://settings 手動觸發 Chrome 清理功能。 @@ -2345,6 +2396,8 @@ <translation id="7617319494457709698">這項政策可讓你指定允許從遠端使用 <ph name="ENTERPRISE_PLATFORM_KEYS_API" /> 函式「<ph name="CHALLENGE_USER_KEY_FUNCTION" />」證明身分的擴充功能。只有加入這份清單的擴充功能可以使用該 API。 如果不是清單中的擴充功能,或是未設定清單,API 呼叫作業將會失敗,並傳回錯誤代碼。</translation> +<translation id="7618907117929117943">如果作業系統比目標版本還新,且版本復原後可以沿用裝置層級設定 (包括網路憑證),則復原並維持在目標版本,並在復原版本後略過 OOBE 流程。如果因故無法沿用裝置層級設定 (例如目標版本不支援版本復原功能或有變更與版本復原功能不相容),則不會復原版本,執行中的復原作業將遭到取消。 + 支援 <ph name="PRODUCT_OS_NAME" /> 70 以上版本。如果用戶端版本低於 70,則這個值代表版本復原功能已停用。</translation> <translation id="7625444193696794922">指定裝置的固定發佈頻道。</translation> <translation id="7632724434767231364">GSSAPI 資料庫名稱</translation> <translation id="7635471475589566552">設定「<ph name="PRODUCT_NAME" />」的應用程式語言代碼,並且禁止使用者變更語言代碼。如果你啟用這項設定,「<ph name="PRODUCT_NAME" />」就會使用指定的語言代碼。如果設定的語言代碼不受支援,就會改用「en-US」。如果停用或尚未調整這項設定,「<ph name="PRODUCT_NAME" />」就會使用使用者指定的偏好語言代碼 (如果已設定)、系統語言代碼或備用語言代碼「en-US」。</translation> @@ -2538,6 +2591,7 @@ 如果你啟用這項設定或未設定任何值,使用者就能自行管理「自動填入」功能。也就是說,使用者可以設定「自動填入」設定檔,並可自行決定是否要開啟「自動填入」功能。</translation> <translation id="8044493735196713914">回報裝置啟動模式</translation> <translation id="8050080920415773384">原生列印</translation> +<translation id="8053580360728293758">覆寫預設列印色彩模式。如果設定的模式不適用,系統會忽略這項政策。</translation> <translation id="8059164285174960932">遠端存取用戶端取得驗證憑證的來源網址</translation> <translation id="8078366200175825572">讓你設定網址模式清單,指定不可設定 Cookie 的網站。 @@ -2715,6 +2769,7 @@ 指定「版本」時,可以提供確切的版本號碼 (例如「61.0.3163.120」),也可以提供版本的前置字串 (例如「61.0」)。 </translation> <translation id="8544375438507658205">預設 <ph name="PRODUCT_FRAME_NAME" /> 的 HTML 轉譯器</translation> <translation id="8544465954173828789">允許將簡訊從手機同步至 Chromebook。</translation> +<translation id="8548832052135586762">設定僅限彩色列印、僅限單色列印,或是不限制色彩模式。如未設定這項政策,系統會視為未設限制。</translation> <translation id="8549772397068118889">瀏覽內容套件以外的網站時顯示警告</translation> <translation id="8566842294717252664">在新分頁和應用程式啟動畫面中隱藏線上應用程式商店</translation> <translation id="8586528890725660268">指定哪些印表機是禁止使用的。 @@ -2817,6 +2872,7 @@ 如果不指定這項設定,使用者則可自行決定是否要使用這項功能。</translation> <translation id="8870318296973696995">首頁</translation> +<translation id="8876188741456358123">覆寫預設的雙面列印模式。如果設定的模式不適用,系統會忽略這項政策。</translation> <translation id="8882006618241293596">禁止在這些網站上執行 <ph name="FLASH_PLUGIN_NAME" /> 外掛程式</translation> <translation id="890403179930035128">強制執行拼字檢查的語言。系統會忽略該清單中無法辨識的語言。 @@ -2899,6 +2955,8 @@ <translation id="9084985621503260744">指定會影響電源管理的視訊活動</translation> <translation id="9088433379343318874">啟用受監管的使用者內容提供者</translation> <translation id="9088444059179765143">設定自動偵測時區方式</translation> +<translation id="9094064873808699479">如果作業系統比目標版本還新,則復原並維持在目標版本。系統會在版本復原過程中盡可能嘗試沿用網路憑證等裝置層級設定,但即使因故無法保留這些資料 (例如目標版本不支援版本復原功能或有變更與版本復原功能不相容),系統仍會復原至目標版本,並執行完整的 Powerwash。 + 支援 <ph name="PRODUCT_OS_NAME" /> 70 以上版本。如果用戶端版本低於 70,則這個值代表版本復原功能已停用。</translation> <translation id="9096086085182305205">驗證伺服器許可清單</translation> <translation id="9098553063150791878">HTTP 驗證政策</translation> <translation id="9105265795073104888">只有一部分 Proxy 設定可供 Android 應用程式使用,Android 應用程式可以選擇是否使用。你無法強制 Android 應用程式使用 Proxy。</translation> @@ -2950,6 +3008,13 @@ <translation id="9187743794267626640">停用外部儲存裝置掛載功能</translation> <translation id="9197740283131855199">使用者在螢幕調暗後繼續使用裝置時的螢幕調暗時間延長百分比</translation> <translation id="9200828125069750521">使用 POST 的圖片網址參數</translation> +<translation id="920209539000507585">強制啟用或停用列印對話方塊中的「頁首及頁尾」選項 + + 如未設定這項政策,使用者可以自行決定是否列印頁首及頁尾。 + + 如果將這項政策設為 false,列印對話方塊中的「頁首及頁尾」選項會預設為停用,且使用者無法變更這項設定。 + + 如果將這項政策設為 true,列印對話方塊中的「頁首及頁尾」選項會預設為啟用,且使用者無法變更這項設定。</translation> <translation id="9210953373038593554">設定 SAML 登入的驗證類型。 如果未設定這項政策或使用預設設定 (值為 0),瀏覽器會依其他因素判斷是否要允許 SAML 登入行為。在最基本的情況下,如果是要驗證使用者和保護快取使用者資料,則判斷依據是使用者手動輸入的密碼。 @@ -2957,6 +3022,9 @@ 如果將這項政策設為 ClientCertificate (值為 1),則會依用戶端憑證驗證判斷是否要允許新使用者透過 SAML 登入。這類使用者不需要密碼,且其快取本機資料會受到對應加密金鑰的保護。舉例來說,如果使用這項設定,就能設定透過智慧型卡片驗證使用者 (請注意,你必須透過 DeviceLoginScreenAppInstallList 政策安裝智慧型卡片中介軟體應用程式)。 這項政策只會影響透過 SAML 進行驗證的使用者。</translation> +<translation id="9211439035693857287">設定與 Chrome 資訊回報擴充功能相關的政策。 + + 只有在 Chrome 資訊回報擴充功能和雲端管理服務皆已啟用的情況下,這些政策才有作用。</translation> <translation id="9213347477683611358">設定還沒有任何使用者登入裝置時,登入畫面顯示的裝置層級桌布圖片。如要設定這項政策,請指定 Chrome 作業系統裝置可下載桌布圖片的網址,以及用於驗證下載完整性的加密編譯雜湊值。圖片必須為 JPEG 格式,且大小不得超過 16MB。網址則必須可供直接存取,不必經過任何驗證。系統會下載並快取桌布圖片,每當網址或雜湊值有所變更即重新下載。 指定政策時,請使用 JSON 格式的字串來表示網址和雜湊值。範例如下:
diff --git a/components/policy_strings.grdp b/components/policy_strings.grdp index ca8ead00..4506f81 100644 --- a/components/policy_strings.grdp +++ b/components/policy_strings.grdp
@@ -434,8 +434,8 @@ <message name="IDS_POLICY_SOURCE_PLATFORM" desc="Indicates that the policy is obtained from the local OS."> Platform </message> - <message name="IDS_POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE" desc="Indicates that the policy is set programmatically because of an active public session (for Chrome OS only). It could have overridden other sources that set this policy."> - Public session override + <message name="IDS_POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE" desc="Indicates that the policy is set programmatically because of an active managed session (for Chrome OS only). It could have overridden other sources that set this policy."> + Managed session override </message> <message name="IDS_POLICY_RISK_TAG_FULL_ADMIN_ACCESS" desc="Title of a group/tag whose policies potentially allow the administrator to access all of a user's data."> Full Admin Access
diff --git a/components/previews/content/previews_hints.cc b/components/previews/content/previews_hints.cc index abbab13..69a0a6a8 100644 --- a/components/previews/content/previews_hints.cc +++ b/components/previews/content/previews_hints.cc
@@ -176,6 +176,8 @@ url_matcher::URLMatcherConditionSet::Vector all_conditions; std::set<std::string> seen_host_suffixes; + size_t total_resource_loading_hints_received = 0; + size_t total_page_patterns_with_resource_loading_hints_received = 0; // Process hint configuration. for (const auto hint : config.hints()) { // We only support host suffixes at the moment. Skip anything else. @@ -223,9 +225,37 @@ if (ShouldProcessPageHints() && !hint.page_hints().empty()) { UMA_HISTOGRAM_COUNTS("ResourceLoadingHints.PageHints.ProcessedCount", hint.page_hints().size()); - hints->initial_hints_.push_back(hint); + + for (const auto& page_hint : hint.page_hints()) { + for (const auto& optimization : page_hint.whitelisted_optimizations()) { + base::Optional<PreviewsType> previews_type = + ConvertProtoOptimizationTypeToPreviewsOptimizationType( + optimization.optimization_type()); + + if (!previews_type || + previews_type != PreviewsType::RESOURCE_LOADING_HINTS) { + continue; + } + total_page_patterns_with_resource_loading_hints_received++; + total_resource_loading_hints_received += + optimization.resource_loading_hints().size(); + } + } + + if (total_page_patterns_with_resource_loading_hints_received <= + previews::params::GetMaxPageHintsInMemoryThreshhold()) { + hints->initial_hints_.push_back(hint); + } } } + if (ShouldProcessPageHints()) { + UMA_HISTOGRAM_COUNTS_100000( + "ResourceLoadingHints.ResourceHints.TotalReceived", + total_resource_loading_hints_received); + UMA_HISTOGRAM_COUNTS_1000( + "ResourceLoadingHints.PageHints.TotalReceived", + total_page_patterns_with_resource_loading_hints_received); + } hints->url_matcher_.AddConditionSets(all_conditions); // Completed processing hints data without crashing so clear sentinel. @@ -238,6 +268,15 @@ } // static +std::unique_ptr<PreviewsHints> PreviewsHints::CreateForTesting( + std::unique_ptr<HostFilter> lite_page_redirect_blacklist) { + std::unique_ptr<PreviewsHints> previews_hints(new PreviewsHints()); + previews_hints->lite_page_redirect_blacklist_ = + std::move(lite_page_redirect_blacklist); + return previews_hints; +} + +// static const optimization_guide::proto::PageHint* PreviewsHints::FindPageHint( const GURL& document_url, const optimization_guide::proto::Hint& hint) { @@ -328,6 +367,22 @@ return false; } +bool PreviewsHints::IsBlacklisted(const GURL& url, PreviewsType type) { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + if (!url.has_host()) + return false; + + // Check large scale blacklists received from the server. + // (At some point, we may have blacklisting to check in HintCache as well.) + if (type == PreviewsType::LITE_PAGE_REDIRECT) { + if (lite_page_redirect_blacklist_) + return lite_page_redirect_blacklist_->ContainsHostSuffix(url); + } + + return false; +} + bool PreviewsHints::MaybeLoadOptimizationHints( const GURL& url, HintLoadedCallback callback) const {
diff --git a/components/previews/content/previews_hints.h b/components/previews/content/previews_hints.h index a562465..603633f 100644 --- a/components/previews/content/previews_hints.h +++ b/components/previews/content/previews_hints.h
@@ -14,6 +14,7 @@ #include "components/optimization_guide/proto/hints.pb.h" #include "components/previews/content/hint_cache.h" #include "components/previews/content/previews_hints.h" +#include "components/previews/core/host_filter.h" #include "components/previews/core/previews_user_data.h" #include "components/url_matcher/url_matcher.h" @@ -35,6 +36,9 @@ const optimization_guide::proto::Configuration& config, const optimization_guide::ComponentInfo& info); + static std::unique_ptr<PreviewsHints> CreateForTesting( + std::unique_ptr<HostFilter> lite_page_redirect_blacklist); + // Returns the matching PageHint for |document_url| if found in |hint|. // TODO(dougarnett): Consider moving to some hint_util file. static const optimization_guide::proto::PageHint* FindPageHint( @@ -52,6 +56,9 @@ PreviewsType type, int* out_inflation_percent); + // Whether the URL is blacklisted for the given previews type. + bool IsBlacklisted(const GURL& url, PreviewsType type); + // Returns whether |url| may have PageHints and triggers asynchronous load // of such hints are not currently available synchronously. |callback| is // called if any applicable hint data is loaded and available for |url|. @@ -76,6 +83,9 @@ std::vector<optimization_guide::proto::Hint> initial_hints_; + // Blacklist of host suffixes for LITE_PAGE_REDIRECT Previews. + std::unique_ptr<HostFilter> lite_page_redirect_blacklist_; + SEQUENCE_CHECKER(sequence_checker_); DISALLOW_COPY_AND_ASSIGN(PreviewsHints);
diff --git a/components/previews/content/previews_hints_unittest.cc b/components/previews/content/previews_hints_unittest.cc index 4924a42..d8eb8e20 100644 --- a/components/previews/content/previews_hints_unittest.cc +++ b/components/previews/content/previews_hints_unittest.cc
@@ -10,6 +10,19 @@ namespace previews { +class TestHostFilter : public previews::HostFilter { + public: + explicit TestHostFilter(std::string single_host_match) + : HostFilter(nullptr), single_host_match_(single_host_match) {} + + bool ContainsHostSuffix(const GURL& url) const override { + return single_host_match_ == url.host(); + } + + private: + std::string single_host_match_; +}; + // NOTE: most of the PreviewsHints tests are still included in the tests for // PreviewsOptimizationGuide. @@ -60,4 +73,17 @@ GURL("https://www.foo.org/bar/three.jpg"), hint1)); } +TEST(PreviewsHintsTest, IsBlacklisted) { + std::unique_ptr<PreviewsHints> previews_hints = + PreviewsHints::CreateForTesting( + std::make_unique<TestHostFilter>("black.com")); + + EXPECT_FALSE(previews_hints->IsBlacklisted(GURL("https://black.com/path"), + PreviewsType::LOFI)); + EXPECT_TRUE(previews_hints->IsBlacklisted(GURL("https://black.com/path"), + PreviewsType::LITE_PAGE_REDIRECT)); + EXPECT_FALSE(previews_hints->IsBlacklisted(GURL("https://nonblack.com"), + PreviewsType::LITE_PAGE_REDIRECT)); +} + } // namespace previews
diff --git a/components/previews/content/previews_optimization_guide.cc b/components/previews/content/previews_optimization_guide.cc index 8f11fe0..0ae87a2 100644 --- a/components/previews/content/previews_optimization_guide.cc +++ b/components/previews/content/previews_optimization_guide.cc
@@ -50,6 +50,15 @@ return true; } +bool PreviewsOptimizationGuide::IsBlacklisted(const net::URLRequest& request, + PreviewsType type) const { + DCHECK(io_task_runner_->BelongsToCurrentThread()); + if (!hints_) + return false; + + return hints_->IsBlacklisted(request.url(), type); +} + void PreviewsOptimizationGuide::OnLoadedHint( ResourceLoadingHintsCallback callback, const GURL& document_url,
diff --git a/components/previews/content/previews_optimization_guide.h b/components/previews/content/previews_optimization_guide.h index c456578..09cab92 100644 --- a/components/previews/content/previews_optimization_guide.h +++ b/components/previews/content/previews_optimization_guide.h
@@ -54,6 +54,11 @@ virtual bool IsWhitelisted(const net::URLRequest& request, PreviewsType type) const; + // Returns whether |type| is blacklisted for |request|. + // Virtual so it can be mocked in tests. + virtual bool IsBlacklisted(const net::URLRequest& request, + PreviewsType type) const; + // Returns whether |request| may have associated optimization hints // (specifically, PageHints). If so, but the hints are not available // synchronously, this method will request that they be loaded (from disk or
diff --git a/components/previews/content/previews_optimization_guide_unittest.cc b/components/previews/content/previews_optimization_guide_unittest.cc index 31464c3..e75b705 100644 --- a/components/previews/content/previews_optimization_guide_unittest.cc +++ b/components/previews/content/previews_optimization_guide_unittest.cc
@@ -13,6 +13,7 @@ #include "base/macros.h" #include "base/optional.h" #include "base/run_loop.h" +#include "base/strings/string_number_conversions.h" #include "base/test/gtest_util.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/scoped_feature_list.h" @@ -117,7 +118,16 @@ void DoExperimentFlagTest(base::Optional<std::string> experiment_name, bool expect_enabled); - void InitializeResourceLoadingHints(); + // This is a helper function for initializing fixed number of ResourceLoading + // hints. + void InitializeFixedCountResourceLoadingHints(); + + // This is a helper function for initializing multiple ResourceLoading hints. + // The generated hint proto contains hints for |key_count| keys. + // |page_patterns_per_key| page patterns are specified per key. + // For each page pattern, 2 resource loading hints are specified in the proto. + void InitializeMultipleResourceLoadingHints(size_t key_count, + size_t page_patterns_per_key); private: base::test::ScopedTaskEnvironment scoped_task_environment_; @@ -598,8 +608,7 @@ EXPECT_FALSE(guide()->IsWhitelisted(*request5, PreviewsType::NOSCRIPT)); } -// This is a helper function for initializing some ResourceLoading hints. -void PreviewsOptimizationGuideTest::InitializeResourceLoadingHints() { +void PreviewsOptimizationGuideTest::InitializeFixedCountResourceLoadingHints() { optimization_guide::proto::Configuration config; optimization_guide::proto::Hint* hint1 = config.add_hints(); hint1->set_key("somedomain.org"); @@ -630,6 +639,51 @@ resource_loading_hint2->set_loading_optimization_type( optimization_guide::proto::LOADING_BLOCK_RESOURCE); resource_loading_hint2->set_resource_pattern("football_cruft.js"); + + optimization_guide::proto::ResourceLoadingHint* resource_loading_hint3 = + optimization2->add_resource_loading_hints(); + resource_loading_hint3->set_loading_optimization_type( + optimization_guide::proto::LOADING_BLOCK_RESOURCE); + resource_loading_hint3->set_resource_pattern("barball_cruft.js"); + ProcessHints(config, "2.0.0"); + + RunUntilIdle(); +} + +void PreviewsOptimizationGuideTest::InitializeMultipleResourceLoadingHints( + size_t key_count, + size_t page_patterns_per_key) { + optimization_guide::proto::Configuration config; + + for (size_t key_index = 0; key_index < key_count; ++key_index) { + optimization_guide::proto::Hint* hint = config.add_hints(); + hint->set_key("somedomain" + base::NumberToString(key_index) + ".org"); + hint->set_key_representation(optimization_guide::proto::HOST_SUFFIX); + + for (size_t page_pattern_index = 0; + page_pattern_index < page_patterns_per_key; ++page_pattern_index) { + // Page hint for "/news/" + optimization_guide::proto::PageHint* page_hint = hint->add_page_hints(); + page_hint->set_page_pattern("/news/" + + base::NumberToString(page_pattern_index)); + optimization_guide::proto::Optimization* optimization1 = + page_hint->add_whitelisted_optimizations(); + optimization1->set_optimization_type( + optimization_guide::proto::RESOURCE_LOADING); + + optimization_guide::proto::ResourceLoadingHint* resource_loading_hint_1 = + optimization1->add_resource_loading_hints(); + resource_loading_hint_1->set_loading_optimization_type( + optimization_guide::proto::LOADING_BLOCK_RESOURCE); + resource_loading_hint_1->set_resource_pattern("news_cruft_1.js"); + + optimization_guide::proto::ResourceLoadingHint* resource_loading_hint_2 = + optimization1->add_resource_loading_hints(); + resource_loading_hint_2->set_loading_optimization_type( + optimization_guide::proto::LOADING_BLOCK_RESOURCE); + resource_loading_hint_2->set_resource_pattern("news_cruft_2.js"); + } + } ProcessHints(config, "2.0.0"); RunUntilIdle(); @@ -640,7 +694,7 @@ base::test::ScopedFeatureList scoped_list; scoped_list.InitAndEnableFeature(features::kResourceLoadingHints); - InitializeResourceLoadingHints(); + InitializeFixedCountResourceLoadingHints(); EXPECT_TRUE(guide()->MaybeLoadOptimizationHints( *CreateRequestWithURL(GURL("https://somedomain.org/")), @@ -657,6 +711,10 @@ RunUntilIdle(); histogram_tester.ExpectUniqueSample( "ResourceLoadingHints.PageHints.ProcessedCount", 2, 1); + histogram_tester.ExpectUniqueSample( + "ResourceLoadingHints.ResourceHints.TotalReceived", 3, 1); + histogram_tester.ExpectUniqueSample( + "ResourceLoadingHints.PageHints.TotalReceived", 2, 1); // Verify loaded hint data for www.somedomain.org EXPECT_EQ(GURL("https://www.somedomain.org/news/football"), @@ -678,6 +736,132 @@ PreviewsType::RESOURCE_LOADING_HINTS)); } +// Test that optimization hints with multiple page patterns is processed +// correctly. +TEST_F(PreviewsOptimizationGuideTest, + LoadManyResourceLoadingOptimizationHints) { + base::HistogramTester histogram_tester; + base::test::ScopedFeatureList scoped_list; + scoped_list.InitAndEnableFeature(features::kResourceLoadingHints); + + const size_t key_count = 20; + const size_t page_patterns_per_key = 25; + + ASSERT_EQ(previews::params::GetMaxPageHintsInMemoryThreshhold(), + key_count * page_patterns_per_key); + + // Count of page patterns is within the threshold. + ASSERT_LE(key_count * page_patterns_per_key, + previews::params::GetMaxPageHintsInMemoryThreshhold()); + + InitializeMultipleResourceLoadingHints(key_count, page_patterns_per_key); + + EXPECT_TRUE(guide()->MaybeLoadOptimizationHints( + *CreateRequestWithURL(GURL("https://somedomain0.org/")), + base::DoNothing())); + EXPECT_TRUE(guide()->MaybeLoadOptimizationHints( + *CreateRequestWithURL(GURL("https://www.somedomain0.org/news0/football")), + base::BindOnce( + &PreviewsOptimizationGuideTest::MaybeLoadOptimizationHintsCallback, + base::Unretained(this)))); + EXPECT_TRUE(guide()->MaybeLoadOptimizationHints( + *CreateRequestWithURL( + GURL("https://www.somedomain0.org/news499/football")), + base::BindOnce( + &PreviewsOptimizationGuideTest::MaybeLoadOptimizationHintsCallback, + base::Unretained(this)))); + EXPECT_TRUE(guide()->MaybeLoadOptimizationHints( + *CreateRequestWithURL( + GURL("https://www.somedomain0.org/news500/football")), + base::BindOnce( + &PreviewsOptimizationGuideTest::MaybeLoadOptimizationHintsCallback, + base::Unretained(this)))); + + EXPECT_TRUE(guide()->MaybeLoadOptimizationHints( + *CreateRequestWithURL(GURL("https://somedomain19.org/")), + base::DoNothing())); + EXPECT_FALSE(guide()->MaybeLoadOptimizationHints( + *CreateRequestWithURL(GURL("https://somedomain20.org/")), + base::DoNothing())); + EXPECT_FALSE(guide()->MaybeLoadOptimizationHints( + *CreateRequestWithURL(GURL("https://www.unknown.com")), + base::DoNothing())); + + RunUntilIdle(); + histogram_tester.ExpectUniqueSample( + "ResourceLoadingHints.PageHints.ProcessedCount", page_patterns_per_key, + key_count); + histogram_tester.ExpectUniqueSample( + "ResourceLoadingHints.ResourceHints.TotalReceived", + key_count * page_patterns_per_key * 2, 1); + histogram_tester.ExpectUniqueSample( + "ResourceLoadingHints.PageHints.TotalReceived", + key_count * page_patterns_per_key, 1); +} + +// Test that only up to GetMaxPageHintsInMemoryThreshhold() page hints +// are loaded to the memory. +TEST_F(PreviewsOptimizationGuideTest, + LoadTooManyResourceLoadingOptimizationHints) { + base::HistogramTester histogram_tester; + base::test::ScopedFeatureList scoped_list; + scoped_list.InitAndEnableFeature(features::kResourceLoadingHints); + + const size_t key_count = 21; + const size_t page_patterns_per_key = 25; + + ASSERT_EQ(previews::params::GetMaxPageHintsInMemoryThreshhold(), + 20u * page_patterns_per_key); + + // Provide more page patterns than the threshold. + ASSERT_GT(key_count * page_patterns_per_key, + previews::params::GetMaxPageHintsInMemoryThreshhold()); + + InitializeMultipleResourceLoadingHints(key_count, page_patterns_per_key); + + EXPECT_TRUE(guide()->MaybeLoadOptimizationHints( + *CreateRequestWithURL(GURL("https://somedomain0.org/")), + base::DoNothing())); + EXPECT_TRUE(guide()->MaybeLoadOptimizationHints( + *CreateRequestWithURL(GURL("https://www.somedomain0.org/news0/football")), + base::BindOnce( + &PreviewsOptimizationGuideTest::MaybeLoadOptimizationHintsCallback, + base::Unretained(this)))); + + EXPECT_TRUE(guide()->MaybeLoadOptimizationHints( + *CreateRequestWithURL(GURL("https://somedomain19.org/")), + base::DoNothing())); + EXPECT_TRUE(guide()->MaybeLoadOptimizationHints( + *CreateRequestWithURL( + GURL("https://www.somedomain19.org/news0/football")), + base::BindOnce( + &PreviewsOptimizationGuideTest::MaybeLoadOptimizationHintsCallback, + base::Unretained(this)))); + + // The last page pattern should be dropped since it exceeds the threshold + // count. + EXPECT_FALSE(guide()->MaybeLoadOptimizationHints( + *CreateRequestWithURL(GURL("https://somedomain20.org/")), + base::DoNothing())); + EXPECT_FALSE(guide()->MaybeLoadOptimizationHints( + *CreateRequestWithURL( + GURL("https://www.somedomain20.org/news0/football")), + base::BindOnce( + &PreviewsOptimizationGuideTest::MaybeLoadOptimizationHintsCallback, + base::Unretained(this)))); + + RunUntilIdle(); + histogram_tester.ExpectUniqueSample( + "ResourceLoadingHints.PageHints.ProcessedCount", page_patterns_per_key, + key_count); + histogram_tester.ExpectUniqueSample( + "ResourceLoadingHints.ResourceHints.TotalReceived", + key_count * page_patterns_per_key * 2, 1); + histogram_tester.ExpectUniqueSample( + "ResourceLoadingHints.PageHints.TotalReceived", + key_count * page_patterns_per_key, 1); +} + TEST_F(PreviewsOptimizationGuideTest, MaybeLoadOptimizationHintsWithoutEnabledPageHintsFeature) { // Without PageHints-oriented feature enabled, never see @@ -685,7 +869,7 @@ base::test::ScopedFeatureList scoped_list; scoped_list.InitAndDisableFeature(features::kResourceLoadingHints); - InitializeResourceLoadingHints(); + InitializeFixedCountResourceLoadingHints(); EXPECT_FALSE(guide()->MaybeLoadOptimizationHints( *CreateRequestWithURL(GURL("https://www.somedomain.org")),
diff --git a/components/previews/core/BUILD.gn b/components/previews/core/BUILD.gn index 7001c42..628e078 100644 --- a/components/previews/core/BUILD.gn +++ b/components/previews/core/BUILD.gn
@@ -6,6 +6,8 @@ sources = [ "bloom_filter.cc", "bloom_filter.h", + "host_filter.cc", + "host_filter.h", "previews_black_list.cc", "previews_black_list.h", "previews_decider.h", @@ -55,6 +57,7 @@ testonly = true sources = [ "bloom_filter_unittest.cc", + "host_filter_unittest.cc", "previews_black_list_unittest.cc", "previews_experiments_unittest.cc", "previews_logger_unittest.cc",
diff --git a/components/previews/core/host_filter.cc b/components/previews/core/host_filter.cc new file mode 100644 index 0000000..8a9bcaf --- /dev/null +++ b/components/previews/core/host_filter.cc
@@ -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. + +#include "components/previews/core/host_filter.h" + +#include <string> + +namespace previews { + +// Maximum number of suffixes to check per url. +const int kMaxSuffixCount = 5; + +// Realistic minimum length of a host suffix. +const int kMinHostSuffix = 6; // eg., abc.tv + +HostFilter::HostFilter(std::unique_ptr<BloomFilter> bloom_filter) + : bloom_filter_(std::move(bloom_filter)) {} + +HostFilter::~HostFilter() {} + +bool HostFilter::ContainsHostSuffix(const GURL& url) const { + DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + + // First check full host name. + if (bloom_filter_->Contains(url.host())) + return true; + + // Now check host suffixes from shortest to longest but skipping the + // root domain (eg, skipping "com", "org", "in", "uk"). + std::string full_host(url.host()); + int suffix_count = 1; + auto left_pos = full_host.find_last_of('.'); // root domain position + while ((left_pos = full_host.find_last_of('.', left_pos - 1)) != + std::string::npos && + suffix_count < kMaxSuffixCount) { + if (full_host.length() - left_pos > kMinHostSuffix) { + std::string suffix = full_host.substr(left_pos + 1); + suffix_count++; + if (bloom_filter_->Contains(suffix)) + return true; + } + } + return false; +} + +} // namespace previews
diff --git a/components/previews/core/host_filter.h b/components/previews/core/host_filter.h new file mode 100644 index 0000000..3b0ec94 --- /dev/null +++ b/components/previews/core/host_filter.h
@@ -0,0 +1,51 @@ +// 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 COMPONENTS_PREVIEWS_CORE_HOST_FILTER_H_ +#define COMPONENTS_PREVIEWS_CORE_HOST_FILTER_H_ + +#include "base/macros.h" +#include "base/sequence_checker.h" +#include "components/previews/core/bloom_filter.h" +#include "url/gurl.h" + +namespace previews { + +// HostFilter is a simple Host filter for keeping track of a set of strings +// that are represented by a Bloom filter. +// +// TODO(dougarnett): consider moving this and BloomFilter under +// components/blacklist/. +class HostFilter { + public: + explicit HostFilter(std::unique_ptr<BloomFilter> bloom_filter); + + virtual ~HostFilter(); + + // Returns whether this filter contains a host suffix for the host part + // of |url|. It will check at most 5 host suffixes and it may ignore simple + // top level domain matches (such as "com" or "co.in"). + // + // A host suffix is comprised of domain name level elements (vs. characters). + // For example, "server1.www.company.co.in" has the following suffixes that + // would be checked for membership: + // "server1.www.company.co.in" + // "www.company.co.in" + // "company.co.in" + // This method will return true if any of those suffixes are present. + // + // Virtual for testing. + virtual bool ContainsHostSuffix(const GURL& url) const; + + private: + std::unique_ptr<BloomFilter> bloom_filter_; + + SEQUENCE_CHECKER(sequence_checker_); + + DISALLOW_COPY_AND_ASSIGN(HostFilter); +}; + +} // namespace previews + +#endif // COMPONENTS_PREVIEWS_CORE_BLOOM_FILTER_H_
diff --git a/components/previews/core/host_filter_unittest.cc b/components/previews/core/host_filter_unittest.cc new file mode 100644 index 0000000..8d8abaf --- /dev/null +++ b/components/previews/core/host_filter_unittest.cc
@@ -0,0 +1,65 @@ +// 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 "components/previews/core/host_filter.h" + +#include "base/macros.h" +#include "components/previews/core/bloom_filter.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "url/gurl.h" + +namespace previews { + +namespace { + +std::unique_ptr<BloomFilter> CreateBloomFilter() { + ByteVector data(1024, 0); + std::unique_ptr<BloomFilter> filter = std::make_unique<BloomFilter>( + 8191 /* num_bits */, data, 7 /* num_hash_functions */); + return filter; +} + +TEST(HostFilterTest, TestContainsHostSuffix) { + std::unique_ptr<BloomFilter> bloom_filter(CreateBloomFilter()); + bloom_filter->Add("fooco.co.uk"); + HostFilter host_filter(std::move(bloom_filter)); + EXPECT_TRUE( + host_filter.ContainsHostSuffix(GURL("http://shopping.fooco.co.uk"))); + EXPECT_TRUE(host_filter.ContainsHostSuffix( + GURL("https://shopping.fooco.co.uk/somepath"))); + EXPECT_TRUE(host_filter.ContainsHostSuffix(GURL("https://fooco.co.uk"))); + EXPECT_FALSE(host_filter.ContainsHostSuffix(GURL("https://nonfooco.co.uk"))); +} + +TEST(HostFilterTest, TestContainsHostSuffixMaxSuffix) { + std::unique_ptr<BloomFilter> bloom_filter(CreateBloomFilter()); + bloom_filter->Add("one.two.three.four.co.uk"); + bloom_filter->Add("one.two.three.four.five.co.uk"); + HostFilter host_filter(std::move(bloom_filter)); + EXPECT_TRUE(host_filter.ContainsHostSuffix( + GURL("http://host.one.two.three.four.co.uk"))); + EXPECT_FALSE(host_filter.ContainsHostSuffix( + GURL("http://host.one.two.three.four.five.co.uk"))); + + // Note: full host will match even if more than 5 elements. + EXPECT_TRUE(host_filter.ContainsHostSuffix( + GURL("http://one.two.three.four.five.co.uk"))); +} + +TEST(HostFilterTest, TestContainsHostSuffixMinSuffix) { + std::unique_ptr<BloomFilter> bloom_filter(CreateBloomFilter()); + bloom_filter->Add("abc.tv"); + bloom_filter->Add("xy.tv"); + HostFilter host_filter(std::move(bloom_filter)); + EXPECT_TRUE(host_filter.ContainsHostSuffix(GURL("https://abc.tv"))); + EXPECT_TRUE(host_filter.ContainsHostSuffix(GURL("https://host.abc.tv"))); + EXPECT_FALSE(host_filter.ContainsHostSuffix(GURL("https://host.xy.tv"))); + + // Note: full host will match even if less than min size. + EXPECT_TRUE(host_filter.ContainsHostSuffix(GURL("https://xy.tv"))); +} + +} // namespace + +} // namespace previews
diff --git a/components/previews/core/previews_experiments.cc b/components/previews/core/previews_experiments.cc index eaa6d602..f2e924e2 100644 --- a/components/previews/core/previews_experiments.cc +++ b/components/previews/core/previews_experiments.cc
@@ -245,6 +245,12 @@ kVersion, 0); } +size_t GetMaxPageHintsInMemoryThreshhold() { + return GetFieldTrialParamByFeatureAsInt(features::kResourceLoadingHints, + "max_page_hints_in_memory_threshold", + 500); +} + bool IsOptimizationHintsEnabled() { return base::FeatureList::IsEnabled(features::kOptimizationHints); }
diff --git a/components/previews/core/previews_experiments.h b/components/previews/core/previews_experiments.h index 8efc4ea7..0419fe14 100644 --- a/components/previews/core/previews_experiments.h +++ b/components/previews/core/previews_experiments.h
@@ -128,6 +128,9 @@ int NoScriptPreviewsVersion(); int ResourceLoadingHintsVersion(); +// The maximum number of page hints that should be loaded to memory. +size_t GetMaxPageHintsInMemoryThreshhold(); + // Whether server optimization hints are enabled. bool IsOptimizationHintsEnabled();
diff --git a/components/proxy_config/ios/proxy_service_factory.cc b/components/proxy_config/ios/proxy_service_factory.cc index 784c276..ac86e82 100644 --- a/components/proxy_config/ios/proxy_service_factory.cc +++ b/components/proxy_config/ios/proxy_service_factory.cc
@@ -8,7 +8,9 @@ #include <memory> +#include "base/task/post_task.h" #include "components/proxy_config/pref_proxy_config_tracker_impl.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/proxy_resolution/proxy_config_service.h" #include "net/proxy_resolution/proxy_resolution_service.h" @@ -18,7 +20,7 @@ ProxyServiceFactory::CreateProxyConfigService(PrefProxyConfigTracker* tracker) { std::unique_ptr<net::ProxyConfigService> base_service( net::ProxyResolutionService::CreateSystemProxyConfigService( - web::WebThread::GetTaskRunnerForThread(web::WebThread::IO))); + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO}))); return tracker->CreateTrackingProxyConfigService(std::move(base_service)); } @@ -29,7 +31,7 @@ PrefService* local_state_prefs) { return std::make_unique<PrefProxyConfigTrackerImpl>( browser_state_prefs, - web::WebThread::GetTaskRunnerForThread(web::WebThread::IO)); + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO})); } // static @@ -38,7 +40,7 @@ PrefService* local_state_prefs) { return std::make_unique<PrefProxyConfigTrackerImpl>( local_state_prefs, - web::WebThread::GetTaskRunnerForThread(web::WebThread::IO)); + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO})); } // static
diff --git a/components/safe_browsing/features.cc b/components/safe_browsing/features.cc index 878f4a6e..fd6063a 100644 --- a/components/safe_browsing/features.cc +++ b/components/safe_browsing/features.cc
@@ -66,7 +66,7 @@ } kExperimentalFeatures[]{ {&kAdSamplerTriggerFeature, false}, {&kAdvancedProtectionStatusFeature, true}, - {&kBillingInterstitial, false}, + {&kBillingInterstitial, true}, {&kCheckByURLLoaderThrottle, true}, {&kForceEnableResetPasswordWebUI, true}, {&kInspectDownloadedRarFiles, true},
diff --git a/components/security_interstitials/OWNERS b/components/security_interstitials/OWNERS index 05e145f..acac5ef 100644 --- a/components/security_interstitials/OWNERS +++ b/components/security_interstitials/OWNERS
@@ -1,3 +1,4 @@ +carlosil@chromium.org estark@chromium.org felt@chromium.org mattm@chromium.org
diff --git a/components/ssl_errors/OWNERS b/components/ssl_errors/OWNERS index c2e298f..8921a14 100644 --- a/components/ssl_errors/OWNERS +++ b/components/ssl_errors/OWNERS
@@ -1,4 +1,5 @@ agl@chromium.org +carlosil@chromium.org estark@chromium.org felt@chromium.org meacer@chromium.org
diff --git a/components/startup_metric_utils/browser/startup_metric_utils.cc b/components/startup_metric_utils/browser/startup_metric_utils.cc index eb66bbdd..65d62350 100644 --- a/components/startup_metric_utils/browser/startup_metric_utils.cc +++ b/components/startup_metric_utils/browser/startup_metric_utils.cc
@@ -22,7 +22,7 @@ #include "base/threading/platform_thread.h" #include "base/trace_event/trace_event.h" #include "build/build_config.h" -#include "components/metrics/call_stack_profile_builder.h" +#include "components/metrics/legacy_call_stack_profile_builder.h" #include "components/prefs/pref_registry_simple.h" #include "components/prefs/pref_service.h" #include "components/startup_metric_utils/browser/pref_names.h" @@ -579,8 +579,8 @@ RecordHardFaultHistogram(); // Record timing of the browser message-loop start time. - metrics::CallStackProfileBuilder::SetProcessMilestone( - metrics::CallStackProfileBuilder::MAIN_LOOP_START); + metrics::LegacyCallStackProfileBuilder::SetProcessMilestone( + metrics::LegacyCallStackProfileBuilder::MAIN_LOOP_START); if (!is_first_run && !g_process_creation_ticks.is_null()) { UMA_HISTOGRAM_AND_TRACE_WITH_TEMPERATURE_AND_SAME_VERSION_COUNT( UMA_HISTOGRAM_LONG_TIMES_100, "Startup.BrowserMessageLoopStartTime", @@ -702,8 +702,8 @@ if (!ShouldLogStartupHistogram()) return; - metrics::CallStackProfileBuilder::SetProcessMilestone( - metrics::CallStackProfileBuilder::FIRST_NONEMPTY_PAINT); + metrics::LegacyCallStackProfileBuilder::SetProcessMilestone( + metrics::LegacyCallStackProfileBuilder::FIRST_NONEMPTY_PAINT); UMA_HISTOGRAM_AND_TRACE_WITH_TEMPERATURE_AND_SAME_VERSION_COUNT( UMA_HISTOGRAM_LONG_TIMES_100, "Startup.FirstWebContents.NonEmptyPaint2", g_process_creation_ticks, now); @@ -727,8 +727,8 @@ if (!ShouldLogStartupHistogram()) return; - metrics::CallStackProfileBuilder::SetProcessMilestone( - metrics::CallStackProfileBuilder::MAIN_NAVIGATION_START); + metrics::LegacyCallStackProfileBuilder::SetProcessMilestone( + metrics::LegacyCallStackProfileBuilder::MAIN_NAVIGATION_START); UMA_HISTOGRAM_AND_TRACE_WITH_TEMPERATURE_AND_SAME_VERSION_COUNT( UMA_HISTOGRAM_LONG_TIMES_100, "Startup.FirstWebContents.MainNavigationStart", g_process_creation_ticks, @@ -758,8 +758,8 @@ if (!ShouldLogStartupHistogram()) return; - metrics::CallStackProfileBuilder::SetProcessMilestone( - metrics::CallStackProfileBuilder::MAIN_NAVIGATION_FINISHED); + metrics::LegacyCallStackProfileBuilder::SetProcessMilestone( + metrics::LegacyCallStackProfileBuilder::MAIN_NAVIGATION_FINISHED); UMA_HISTOGRAM_AND_TRACE_WITH_TEMPERATURE_AND_SAME_VERSION_COUNT( UMA_HISTOGRAM_LONG_TIMES_100, "Startup.FirstWebContents.MainNavigationFinished",
diff --git a/components/strings/components_chromium_strings_ml.xtb b/components/strings/components_chromium_strings_ml.xtb index 1bb1af50..0c1110d 100644 --- a/components/strings/components_chromium_strings_ml.xtb +++ b/components/strings/components_chromium_strings_ml.xtb
@@ -6,7 +6,7 @@ <translation id="275588974610408078">Chromium-ത്തിൽ ക്രാഷ് റിപ്പോർട്ടിംഗ് ലഭ്യമല്ല.</translation> <translation id="3064346599913645280">നിങ്ങൾ സുരക്ഷിതമായ ഒരു Chromium പേജാണ് കാണുന്നത്</translation> <translation id="3550966579244642892">Chromium OS, അതിന്റെ പ്രാരംഭ സജ്ജീകരണം പൂർത്തിയാക്കിയിട്ടില്ല.</translation> -<translation id="4365115785552740256">Chromium നിർമ്മിച്ചത് <ph name="BEGIN_LINK_CHROMIUM" />Chromium<ph name="END_LINK_CHROMIUM" /> ഓപ്പൺ സോഴ്സ് പ്രോജക്റ്റും മറ്റ് <ph name="BEGIN_LINK_OSS" />ഓപ്പൺ സോഴ്സ് സോഫ്റ്റ്വെയറും<ph name="END_LINK_OSS" /> ഉപയോഗിച്ചാകാം.</translation> +<translation id="4365115785552740256">Chromium സാധ്യമായത് <ph name="BEGIN_LINK_CHROMIUM" />Chromium<ph name="END_LINK_CHROMIUM" /> ഓപ്പൺ സോഴ്സ് പ്രോജക്റ്റും മറ്റ് <ph name="BEGIN_LINK_OSS" />ഓപ്പൺ സോഴ്സ് സോഫ്റ്റ്വെയറും<ph name="END_LINK_OSS" /> ഉപയോഗിച്ചാണ്</translation> <translation id="4559775032954821361">Chromium മെനു > <ph name="SETTINGS_TITLE" /> >
diff --git a/components/strings/components_google_chrome_strings_ml.xtb b/components/strings/components_google_chrome_strings_ml.xtb index 95fd96d..21cddbb6 100644 --- a/components/strings/components_google_chrome_strings_ml.xtb +++ b/components/strings/components_google_chrome_strings_ml.xtb
@@ -4,7 +4,7 @@ <translation id="1016765312371154165">Chrome ശരിയായി ഷട്ട്ഡൗൺ ചെയ്തിട്ടില്ല.</translation> <translation id="130631256467250065">നിങ്ങൾ അടുത്ത തവണ ഉപകരണം പുനരാരംഭിക്കുമ്പോൾ മാറ്റങ്ങൾ പ്രാബല്യത്തിൽ വരും.</translation> <translation id="2147651015520127414">ഈ വെബ്സൈറ്റിന്റെ സർട്ടിഫിക്കറ്റ് <ph name="ISSUER" /> നൽകിയതാണെന്ന് Chrome പരിശോധിച്ചുറപ്പിച്ചു.</translation> -<translation id="2874156562296220396">Google Chrome <ph name="BEGIN_LINK_CHROMIUM" />ക്രോമിയം<ph name="END_LINK_CHROMIUM" /> ഓപ്പണ് സോഴ്സ് പ്രോജക്ടും മറ്റ് <ph name="BEGIN_LINK_OSS" />ഓപ്പണ് സോഴ്സ് സോഫ്റ്റ്വെയറും<ph name="END_LINK_OSS" /> ഉപയോഗിച്ച് നിര്മ്മിച്ചതാണ്.</translation> +<translation id="2874156562296220396">Google Chrome <ph name="BEGIN_LINK_CHROMIUM" />Chromium<ph name="END_LINK_CHROMIUM" /> ഓപ്പണ് സോഴ്സ് പ്രോജക്ടും മറ്റ് <ph name="BEGIN_LINK_OSS" />ഓപ്പണ് സോഴ്സ് സോഫ്റ്റ്വെയറും<ph name="END_LINK_OSS" /> ഉപയോഗിച്ച് സാധ്യമാക്കിയതാണ്.</translation> <translation id="3140883423282498090">നിങ്ങളുടെ മാറ്റങ്ങൾ അടുത്ത തവണ Google Chrome പുനഃസമാരംഭിക്കുമ്പോൾ പ്രാബല്യത്തിൽ വരും.</translation> <translation id="3444832043240812445">നിങ്ങള് <ph name="BEGIN_LINK" />ക്രാഷ് റിപ്പോര്ട്ടിംഗ് പ്രാപ്തമാക്കുകയാണെങ്കില്<ph name="END_LINK" /> നിങ്ങളുടെ സമീപകാല ക്രാഷുകളിലെ വിവരങ്ങള് മാത്രം ഈ പേജ് കാണിക്കുന്നു.</translation> <translation id="3875312571075912821">നിങ്ങളുടെ ഫയർവാളിലെയോ ആന്റിവൈറസ് ക്രമീകരണത്തിലെയോ നെറ്റ്വർക്ക് ആക്സസ്സ്
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb index 955cf637..294bab1 100644 --- a/components/strings/components_strings_am.xtb +++ b/components/strings/components_strings_am.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">ይህ አገልጋይ <ph name="DOMAIN" /> መሆኑን ሊያረጋግጥ አልቻለም፤ የደህንነት እውቅና ማረጋገጫው በኮምፒውተርዎ ስርዓተ ክወና የሚታመን አይደለም። ይሄ በተሳሳተ አወቃቀር ወይም አንድ አጥቂ ግንኙነትዎን በመጥለፉ የተከሰተ ሊሆን ይችላል።</translation> <translation id="1151972924205500581">የይለፍ ቃል ያስፈልጋል</translation> <translation id="1152921474424827756">የ<ph name="URL" /> <ph name="BEGIN_LINK" />የተሸጎጠ ቅጂ<ph name="END_LINK" /> ይድረሱ</translation> +<translation id="1156303062776767266">አካባቢያዊ ወይም የተጋራ ፋይል እየተመለከቱ ነው</translation> <translation id="1158211211994409885"><ph name="HOST_NAME" /> ሳይታሰብ ግንኙነቱን ዘግቷል።</translation> <translation id="1161325031994447685">ከWi-Fi ጋር ዳግም በማገናኘት</translation> <translation id="1165039591588034296">ስህተት</translation> @@ -533,6 +534,7 @@ <translation id="4592951414987517459">ወደ የእርስዎ <ph name="DOMAIN" /> ግንኙነት ዘመናዊ የምስጠራ ጥቅል በመጠቀም ተመስጥሯል።</translation> <translation id="4594403342090139922">&ሰርዝን ቀልብስ</translation> <translation id="4619615317237390068">ከሌሎች መሣሪያዎች የመጡ ትሮች</translation> +<translation id="4646534391647090355">አሁን ወደዚያ ውሰደኝ</translation> <translation id="4668929960204016307">,</translation> <translation id="467662567472608290">ይህ አገልጋይ <ph name="DOMAIN" /> መሆኑን ሊያረጋግጥ አልቻለም፤ የደህንነት እውቅና ማረጋገጫው ስህተቶች አሉበት። ይሄ በተሳሳተ አወቃቀር ወይም አንድ አጥቂ ግንኙነትዎን በመጥለፉ የተከሰተ ሊሆን ይችላል።</translation> <translation id="4690462567478992370">ልክ ያልሆነ የእውቅና ማረጋገጫ መጠቀም አቁም</translation> @@ -579,6 +581,7 @@ <translation id="4958444002117714549">ዝርዝሩን ዘርጋ</translation> <translation id="4974590756084640048">ማስጠንቀቂያዎችን ዳግም አንቃ</translation> <translation id="4988217478422488391">ለነገሮች መስመር ላይ ለመክፈል ይበልጥ የፈጠነ ያደርገዋል</translation> +<translation id="4989163558385430922">ሁሉንም ይመልከቱ</translation> <translation id="4989809363548539747">ይህ ተሰኪ አይደገፍም</translation> <translation id="5002932099480077015">የነቃ እንደሆነ Chrome ለበለጠ ፈጣን ቅጽ አሞላል ሲባል በዚህ መሳሪያ ላይ ያለው የካርድዎን ቅጂ ያከማቻል።</translation> <translation id="5018422839182700155">ይህን ገጽ መክፈት አልተቻለም</translation> @@ -723,6 +726,7 @@ <translation id="5922853866070715753">በቃ ሊያልቅ ነው</translation> <translation id="5939518447894949180">ዳግም አስጀምር</translation> <translation id="5951495562196540101">በሸማች መለያ መመዝገብ አይቻልም (የጥቅል ፈቃድ ይገኛል)።</translation> +<translation id="5966151627327109289">ከአብዛኛዎቹ ጣቢያዎች ዘግቶ ያስወጣዎታል። ከ<ph name="SITE" /> እና ሌሎች አንዳንድ ጣቢያዎች የመጣ ጥበቃ የሚደረግለት የይዘት መዳረሻ ሊያጡ ይችላሉ።</translation> <translation id="5967592137238574583">የዕውቂያ መረጃን ያርትዑ</translation> <translation id="5967867314010545767">ከታሪክ አስወግድ</translation> <translation id="5975083100439434680">አሳንስ</translation> @@ -744,6 +748,7 @@ <translation id="6071091556643036997">የመመሪያው አይነት ልክ ያልሆነ ነው።</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{በመላ መሣሪያዎች ላይ ይበልጥ ፈጥነው ተመዝግበው ለመውጣት ይህ ካርድ በGoogle መለያዎ ላይ ይቀመጣል።}one{በመላ መሣሪያዎች ላይ ይበልጥ ፈጥነው ተመዝግበው ለመውጣት እነዚህ ካርዶች በGoogle መለያዎ ላይ ይቀመጣሉ።}other{በመላ መሣሪያዎች ላይ ይበልጥ ፈጥነው ተመዝግበው ለመውጣት እነዚህ ካርዶች በGoogle መለያዎ ላይ ይቀመጣሉ።}}</translation> <translation id="6080696365213338172">በአስተዳዳሪ የቀረበ የእውቅና ማረጋገጫ በመጠቀም ይዘት ደርሰዋል። ለ<ph name="DOMAIN" /> የሚያቀርቡት ውሂብ በአስተዳዳሪዎ ሊያዝ ይችላል።</translation> +<translation id="6096619198407627433">ከአብዛኛዎቹ ጣቢያዎች ዘግተው ያስወጣዎታል። ከእርስዎ የGoogle መለያ ዘግተው እንዲወጡ አይደረጉም። የ<ph name="SITE" /> እና የአንዳንድ ሌሎች ጣቢያዎች የተጠበቀ ይዘት መዳረሻ ሊያጡ ይችላሉ።</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 የይለፍ ቃል (የተሰመረ)}one{# የይለፍ ቃሎች (የተሰመሩ)}other{# የይለፍ ቃሎች (የተሰመሩ)}}</translation> <translation id="6146055958333702838">ማናቸውም ገመዶችን ይፈትሹና እየተጠቀሙ ሊሆኑ የሚችሏቸውን ማንኛውም ራውተሮች፣ @@ -815,6 +820,7 @@ <translation id="6710594484020273272"><የፍለጋ ቃል ይተይቡ></translation> <translation id="6711464428925977395">በተኪ አገልጋዩ ላይ የሆነ ችግር አለ ወይም አድራሻው ትክክል አይደለም።</translation> <translation id="674375294223700098">ያልታወቀ የአገልጋይ እውቅና ማረጋገጫ ስህተት።</translation> +<translation id="6744009308914054259">ግንኙነትን እየተጠባበቁ ሳሉ የመስመር ውጪ ጽሑፎችን ለማንበብ ውርዶችን መጎብኘት ይችላሉ።</translation> <translation id="6753269504797312559">የመምሪያ እሴት</translation> <translation id="6757797048963528358">የእርስዎ መሣሪያ ተኝቷል።</translation> <translation id="6778737459546443941">የእርስዎ ወላጅ ገና አላጸደቁትም</translation> @@ -845,6 +851,7 @@ <translation id="6965978654500191972">መሣሪያ</translation> <translation id="6970216967273061347">ወረዳ</translation> <translation id="6973656660372572881">ሁለቱም ቋሚ ተኪ አገልጋዮች እና የ.pac ስክሪፕት ዩአርኤል ተገልጸዋል።</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">ድምጸ-ከል አድርግ (ነባሪ)</translation> <translation id="6984479912851154518">በውጫዊ ማከማቻ በኩል ለማጫወት ከግል ሁነታ በመውጣት ላይ። ይቀጥል?</translation> <translation id="6989763994942163495">የላቁ ቅንብሮችን አሳይ...</translation> @@ -911,6 +918,7 @@ <translation id="7416351320495623771">የይለፍ ቃላትን ያስተዳድሩ...</translation> <translation id="7419106976560586862">የመገለጫ ዱካ</translation> <translation id="7437289804838430631">የእውቂያ መረጃ አክል</translation> +<translation id="7440140511386898319">ከመስመር ውጪ ሆነው ሳለ ያስሱ</translation> <translation id="7441627299479586546">የተሳሳተ የመምሪያ ርዕሰ ጉዳይ</translation> <translation id="7444046173054089907">ይህ ጣቢያ ታግዷል</translation> <translation id="7445762425076701745">የተገናኙት የአገልጋይ ማንነት ሙሉ ለሙሉ ሊረጋገጥ አልቻለም። ስሙ በአውታረ መረብዎ ውስጥ ብቻ ልክ ከሆነ አገልጋይ ጋር ነው የተገናኙት፣ እና ባለቤትነቱ በውጫዊ የእውቅና ማረጋገጫ ሊረጋገጥ አይችልም። አንዳንድ የእውቅና ማረጋገጫ ባለስልጣናት ይሁን ብለው ለእነዚህ ስሞች የእውቅና ማረጋገጫዎች መስጠታቸው የማይቀር እንደመሆኑ መጠን፣ ከአጥቂ ሳይሆን ከታሰበው ድር ጣቢያ ጋር መገናኘትዎን የሚረጋገጥበት ምንም መንገድ የለም።</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb index a931a43..fe06208 100644 --- a/components/strings/components_strings_ar.xtb +++ b/components/strings/components_strings_ar.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">هذا الخادم لم يتمكن من إثبات أن ذلك <ph name="DOMAIN" />؛ بل إنه شهادة أمان غير موثقة من خلال نظام تشغيل الكمبيوتر. وربما يكون السبب في ذلك خطأ في التكوين أو مهاجمًا يعترض الاتصال.</translation> <translation id="1151972924205500581">كلمة المرور مطلوبة</translation> <translation id="1152921474424827756">الدخول إلى <ph name="BEGIN_LINK" />النسخة المخزنة مؤقتًا<ph name="END_LINK" /> من <ph name="URL" /></translation> +<translation id="1156303062776767266">أنت تعرض ملفًا محليًا أو مشتركًا.</translation> <translation id="1158211211994409885">أغلق <ph name="HOST_NAME" /> الاتصال على نحو غير متوقع.</translation> <translation id="1161325031994447685">إعادة الاتصال بـ Wi-Fi</translation> <translation id="1165039591588034296">خطأ</translation> @@ -534,6 +535,7 @@ <translation id="4592951414987517459">يتم ترميز اتصالك بالنطاق <ph name="DOMAIN" /> باستخدام مجموعة تشفير حديثة.</translation> <translation id="4594403342090139922">تراجع عن الحذ&ف</translation> <translation id="4619615317237390068">علامات التبويب من الأجهزة الأخرى</translation> +<translation id="4646534391647090355">الانتقال إلى ذلك الآن</translation> <translation id="4668929960204016307">،</translation> <translation id="467662567472608290">هذا الخادم لم يتمكن من إثبات أن ذلك <ph name="DOMAIN" />؛ بل إنه شهادة أمان تحتوي على أخطاء. وربما يكون السبب في ذلك خطأ في التكوين أو مهاجمًا يعترض اتصالك.</translation> <translation id="4690462567478992370">التوقف عن استخدام شهادة غير صالحة</translation> @@ -580,6 +582,7 @@ <translation id="4958444002117714549">توسيع القائمة</translation> <translation id="4974590756084640048">إعادة تفعيل التحذيرات</translation> <translation id="4988217478422488391">دفع ثمن المشتريات على الإنترنت بشكلِ أسرع</translation> +<translation id="4989163558385430922">عرض الكل</translation> <translation id="4989809363548539747">هذا المكوِّن الإضافي غير مدعوم</translation> <translation id="5002932099480077015">إذا تم التمكين، سيخزن Chrome نسخة من بطاقتك على هذا الجهاز لملء النموذج بشكل أسرع.</translation> <translation id="5018422839182700155">يتعذّر فتح هذه الصفحة</translation> @@ -723,7 +726,8 @@ <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 قيد الاستخدام}zero{# قيد الاستخدام}two{# قيد الاستخدام}few{# قيد الاستخدام}many{# قيد الاستخدام}other{# قيد الاستخدام}}</translation> <translation id="5922853866070715753">أوشكْت على الانتهاء.</translation> <translation id="5939518447894949180">إعادة</translation> -<translation id="5951495562196540101">لا يمكن التسجيل في حساب المستهلك (الترخيص المجمّع متوفّر).</translation> +<translation id="5951495562196540101">لا يمكن التسجيل باستخدام حساب المستهلك (الترخيص المجمّع متوفّر).</translation> +<translation id="5966151627327109289">يُسجَّل خروجك من معظم المواقع الإلكترونية. وقد تفقد إمكانية الوصول إلى محتوى محمي من <ph name="SITE" /> وبعض المواقع الإلكترونية الأخرى.</translation> <translation id="5967592137238574583">تعديل معلومات الاتصال</translation> <translation id="5967867314010545767">إزالة من السجل</translation> <translation id="5975083100439434680">تصغير</translation> @@ -745,6 +749,7 @@ <translation id="6071091556643036997">نوع السياسة غير صالح.</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{سيتم حفظ هذه البطاقة في حسابك على Google للدفع بشكلٍ أسرع على جميع الأجهزة.}zero{سيتم حفظ هذه البطاقات في حسابك على Google للدفع بشكلٍ أسرع على جميع الأجهزة.}two{سيتم حفظ هاتين البطاقتين في حسابك على Google للدفع بشكلٍ أسرع على جميع الأجهزة.}few{سيتم حفظ هذه البطاقات في حسابك على Google للدفع بشكلٍ أسرع على جميع الأجهزة.}many{سيتم حفظ هذه البطاقات في حسابك على Google للدفع بشكلٍ أسرع على جميع الأجهزة.}other{سيتم حفظ هذه البطاقات في حسابك على Google للدفع بشكلٍ أسرع على جميع الأجهزة.}}</translation> <translation id="6080696365213338172">لقد دخلت إلى المحتوى باستخدام شهادة وفرها المشرف. ويمكن أن يعترض المشرف طريق البيانات التي تقدمها إلى <ph name="DOMAIN" />.</translation> +<translation id="6096619198407627433">يُسجَّل خروجك من معظم المواقع الإلكترونية. ولن يُسجَّل خروجك من حسابك على Google. قد تفقد إمكانية الوصول إلى محتوى محمي من <ph name="SITE" /> وبعض المواقع الإلكترونية الأخرى.</translation> <translation id="610911394827799129">قد يتضمن حسابك على Google نماذج أخرى من سجل التصفح على <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation> <translation id="6144381551823904650">{COUNT,plural, =0{بدون}=1{ كلمة مرور واحدة (تمت مزامنتها)}two{كلمتا مرور (#) (تمت مزامنتهما)}few{# كلمات مرور (تمت مزامنتها)}many{# كلمة مرور (تمت مزامنتها)}other{# كلمة مرور (تمت مزامنتها)}}</translation> <translation id="6146055958333702838">تحقق من أي كابلات وأعد تشغيل أي أجهزة توجيه أو أجهزة مودم أو أجهزة شبكة @@ -816,6 +821,7 @@ <translation id="6710594484020273272"><إدخال عبارة البحث></translation> <translation id="6711464428925977395">هناك خطأ ما في الخادم الوكيل، أو العنوان غير صحيح.</translation> <translation id="674375294223700098">حدث خطأ غير معروف في شهادة الخادم.</translation> +<translation id="6744009308914054259">أثناء انتظار اتصال، يمكنك الانتقال إلى "التنزيلات" للاطِّلاع على المقالات بلا اتصال بالإنترنت.</translation> <translation id="6753269504797312559">قيمة السياسة</translation> <translation id="6757797048963528358">خضع جهازك إلى وضع السكون.</translation> <translation id="6778737459546443941">لم يوافق عليه والداك حتى الآن</translation> @@ -846,6 +852,7 @@ <translation id="6965978654500191972">جهاز</translation> <translation id="6970216967273061347">المنطقة</translation> <translation id="6973656660372572881">تم تحديد كل من الخوادم الوكيلة الثابتة وعنوان URL للنص البرمجي pac.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">كتم الصوت (تلقائي)</translation> <translation id="6984479912851154518">ستتم مغادرة وضع التصفّح المتخفي للدفع عبر تطبيق خارجي. هل تريد المتابعة؟</translation> <translation id="6989763994942163495">عرض الإعدادات المتقدمة...</translation> @@ -912,6 +919,7 @@ <translation id="7416351320495623771">إدارة كلمات المرور…</translation> <translation id="7419106976560586862">مسار الملف الشخصي</translation> <translation id="7437289804838430631">إضافة معلومات الاتصال</translation> +<translation id="7440140511386898319">الاستكشاف أثناء عدم الاتصال بالإنترنت</translation> <translation id="7441627299479586546">موضوع السياسة غير صحيح</translation> <translation id="7444046173054089907">تم حظر هذا الموقع</translation> <translation id="7445762425076701745">لا يمكن التحقق بصورة كاملة من صحة هوية الخادم الذي تتصل به. فأنت متصل بخادم باستخدام اسم صالح فقط ضمن شبكتك، والذي لن يتمكن المرجع المصدق الخارجي من التحقق من ملكيته. وحيث إن بعض المراجع المصدقة تُصدر الشهادات لهذه الأسماء على أي حال، فليست هناك طريقة للتأكد من أنك متصل بموقع الويب المقصود وليس بأحد المهاجمين.</translation> @@ -1130,7 +1138,7 @@ <translation id="8952525071319348207">أدخل تاريخ انتهاء الصلاحية ورمز التحقق من البطاقة (CVC) لـ <ph name="CREDIT_CARD" /> لتحديث تفاصيل بطاقتك. وبعد التأكيد، ستتم مشاركة تفاصيل البطاقة من حساب دفعات Google مع هذا الموقع.</translation> <translation id="8957210676456822347">تفويض المدخل المقيد</translation> <translation id="8971063699422889582">انتهت صلاحية شهادة الخادم.</translation> -<translation id="8975012916872825179">تضمين معلومات مثل أرقام الهواتف وعناوين البريد الإلكتروني وعناوين الشحن</translation> +<translation id="8975012916872825179">يتضمن معلومات مثل أرقام الهواتف وعناوين البريد الإلكتروني وعناوين الشحن.</translation> <translation id="8978053250194585037">رصد التصفح الآمن من Google عن وجود <ph name="BEGIN_LINK" />تصيّد احتيالي<ph name="END_LINK" /> مؤخرًا على موقع <ph name="SITE" />، إذ تتظاهر مواقع التصيد الاحتيالي بكونها مواقع ويب أخرى لخداعك.</translation> <translation id="8983003182662520383">طرق الدفع والعناوين باستخدام Google Pay</translation> <translation id="8987927404178983737">شهر</translation> @@ -1179,7 +1187,7 @@ <translation id="935608979562296692">محو النموذج</translation> <translation id="939736085109172342">مجلد جديد</translation> <translation id="951104842009476243">بطاقات السحب الآلي وبطاقات الدفع المسبق المقبولة</translation> -<translation id="962484866189421427">قد يحاول هذا المحتوى تثبيت تطبيقات مضللة تدعي أنها شيء آخر أو تجمع بيانات قد تُستخدم لتتبعك. <ph name="BEGIN_LINK" />العرض على أي حال<ph name="END_LINK" /></translation> +<translation id="962484866189421427">قد يحاول هذا المحتوى تثبيت تطبيقات مضللة تظهر كبرامج أخرى أو تجمع بيانات قد تُستخدم لتتبعك. <ph name="BEGIN_LINK" />العرض على أي حال<ph name="END_LINK" /></translation> <translation id="969892804517981540">البنية الرسمية</translation> <translation id="973773823069644502">إضافة عنوان التسليم للمستخدم</translation> <translation id="975560348586398090">{COUNT,plural, =0{بدون}=1{عنصر واحد}two{عنصران (#)}few{# عناصر}many{# عنصرًا}other{# عنصر}}</translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb index e968af5..da29107 100644 --- a/components/strings/components_strings_bg.xtb +++ b/components/strings/components_strings_bg.xtb
@@ -846,6 +846,7 @@ <translation id="6965978654500191972">Устройство</translation> <translation id="6970216967273061347">Окръг</translation> <translation id="6973656660372572881">Посочени са както фиксирани прокси сървъри, така и URL адрес на скрипт във формат .pac.</translation> +<translation id="6979158407327259162">Google Диск</translation> <translation id="6979440798594660689">Заглушаване (стандартно)</translation> <translation id="6984479912851154518">Ще напуснете режима на частно сърфиране, за да платите във външно приложение. Искате ли да продължите?</translation> <translation id="6989763994942163495">Показване на разширените настройки...</translation>
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb index 7179605..da4b4b2 100644 --- a/components/strings/components_strings_bn.xtb +++ b/components/strings/components_strings_bn.xtb
@@ -645,7 +645,7 @@ <translation id="536296301121032821">নীতি সেটিংস সংরক্ষণ করতে ব্যর্থ হয়েছে</translation> <translation id="5371425731340848620">কার্ড আপডেট করুন</translation> <translation id="5377026284221673050">"আপনার ঘড়ি লেটে চলছে" অথবা "আপনার ঘড়ি ফাস্ট আছে" অথবা "<span class="error-code">NET::ERR_CERT_DATE_INVALID</span>"</translation> -<translation id="5384855140246857529">সমস্ত ডিভাইসে আপনার কার্ড ব্যবহার করতে, সিঙ্ক চালু করুন।</translation> +<translation id="5384855140246857529">সমস্ত ডিভাইসে আপনার কার্ড ব্যবহার করতে, সাইন ইন করে সিঙ্ক চালু করুন।</translation> <translation id="5386426401304769735">এই সাইটের শংসাপত্র শৃঙ্খলে SHA-1 ব্যবহার করে স্বাক্ষর করা একটি শংসাপত্র রয়েছে।</translation> <translation id="5387961145478138773">আপনার পছন্দের Google অ্যাপগুলিতে দ্রুত অ্যাক্সেস পান</translation> <translation id="540969355065856584">এই সার্ভার প্রমাণ করতে পারেনি যে এটি <ph name="DOMAIN" />; এর নিরাপত্তা শংসাপত্র এই সময়ে বৈধ নয়। কোনো ভুল কনফিগারেশনের কারণে অথবা কোনো আক্রমণকারী আপনার সংযোগ মাঝপথে আটকে দিচ্ছে বলে এমনটা হতে পারে।</translation> @@ -846,6 +846,7 @@ <translation id="6965978654500191972">ডিভাইস</translation> <translation id="6970216967273061347">জেলা</translation> <translation id="6973656660372572881">স্থির প্রক্সি সার্ভার এবং .pac স্ক্রিপ্ট URL-এর উভয়ই নির্দিষ্ট আছে৷</translation> +<translation id="6979158407327259162">Google ড্রাইভ</translation> <translation id="6979440798594660689">মিউট (ডিফল্ট)</translation> <translation id="6984479912851154518">এক্সটার্নাল অ্যাপ্লিকেশনের মাধ্যমে পেমেন্ট করার জন্য ব্যক্তিগত মোড থেকে বেরিয়ে যাচ্ছে। চালিয়ে যেতে চান?</translation> <translation id="6989763994942163495">উন্নত সেটিংস দেখান ...</translation> @@ -867,7 +868,7 @@ <translation id="7153549335910886479">{PAYMENT_METHOD,plural, =0{<ph name="PAYMENT_METHOD_PREVIEW" />}=1{<ph name="PAYMENT_METHOD_PREVIEW" /> এবং আরও <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />টি}one{<ph name="PAYMENT_METHOD_PREVIEW" /> এবং আরও <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />টি}other{<ph name="PAYMENT_METHOD_PREVIEW" /> এবং আরও <ph name="NUMBER_OF_ADDITIONAL_PAYMENT_METHODS" />টি}}</translation> <translation id="717330890047184534">Gaia আইডি:</translation> <translation id="7175401108899573750">{SHIPPING_OPTIONS,plural, =0{<ph name="SHIPPING_OPTION_PREVIEW" />}=1{<ph name="SHIPPING_OPTION_PREVIEW" /> এবং আরও <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />টি}one{<ph name="SHIPPING_OPTION_PREVIEW" /> এবং আরও <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />টি}other{<ph name="SHIPPING_OPTION_PREVIEW" /> এবং আরও <ph name="NUMBER_OF_ADDITIONAL_SHIPPING_OPTIONS" />টি}}</translation> -<translation id="7179323680825933600">পেমেন্টের পদ্ধতিগুলি পূরণ করে সেভ করুন</translation> +<translation id="7179323680825933600">পেমেন্টের পদ্ধতিগুলি সেভ করুন এবং আপনা-আপনি পূরণ করুন</translation> <translation id="7180611975245234373">রিফ্রেশ করুন</translation> <translation id="7182878459783632708">কোন নীতি সেট করা নেই</translation> <translation id="7186367841673660872">এই পৃষ্ঠাটি<ph name="ORIGINAL_LANGUAGE" />থেকে<ph name="LANGUAGE_LANGUAGE" />তে অনুবাদ করা হয়েছে</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb index a5cdea2..a0d53db 100644 --- a/components/strings/components_strings_ca.xtb +++ b/components/strings/components_strings_ca.xtb
@@ -846,6 +846,7 @@ <translation id="6965978654500191972">Dispositiu</translation> <translation id="6970216967273061347">Districte</translation> <translation id="6973656660372572881">S'especifiquen tant els servidors intermediaris fixos com un URL d'script .pac.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Silencia (opció predeterminada)</translation> <translation id="6984479912851154518">Per pagar amb una aplicació externa sortiràs del mode privat. Vols continuar?</translation> <translation id="6989763994942163495">Mostra la configuració avançada...</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb index 5e2246c..9a0b9dc8 100644 --- a/components/strings/components_strings_cs.xtb +++ b/components/strings/components_strings_cs.xtb
@@ -841,6 +841,7 @@ <translation id="6965978654500191972">Zařízení</translation> <translation id="6970216967273061347">Obvod</translation> <translation id="6973656660372572881">Určeny jsou pevně dané servery proxy i adresa URL skriptu PAC.</translation> +<translation id="6979158407327259162">Disk Google</translation> <translation id="6979440798594660689">Ztlumit (výchozí)</translation> <translation id="6984479912851154518">Chystáte se opustit soukromý režim, abyste mohli zaplatit v externí aplikaci. Chcete pokračovat?</translation> <translation id="6989763994942163495">Zobrazit rozšířená nastavení...</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb index ff769551..d4484de 100644 --- a/components/strings/components_strings_da.xtb +++ b/components/strings/components_strings_da.xtb
@@ -723,7 +723,7 @@ <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 i brug}one{# i brug}other{# i brug}}</translation> <translation id="5922853866070715753">Næsten færdig</translation> <translation id="5939518447894949180">Nulstil</translation> -<translation id="5951495562196540101">Det er ikke muligt at tilmelde sig med en forbrugerkonto (pakket licens er tilgængelig).</translation> +<translation id="5951495562196540101">Det er ikke muligt at tilmelde sig med en forbrugerkonto (mulighed for tilknyttet licens ).</translation> <translation id="5967592137238574583">Rediger kontaktoplysninger</translation> <translation id="5967867314010545767">Fjern fra historik</translation> <translation id="5975083100439434680">Zoom ud</translation> @@ -846,6 +846,7 @@ <translation id="6965978654500191972">Enhed</translation> <translation id="6970216967273061347">Distrikt</translation> <translation id="6973656660372572881">Både faste proxyservere og en webadresse for .pac-script angives.</translation> +<translation id="6979158407327259162">Google Drev</translation> <translation id="6979440798594660689">Slå lyden fra (standard)</translation> <translation id="6984479912851154518">Du forlader privat tilstand for at betale via en ekstern app. Vil du fortsætte?</translation> <translation id="6989763994942163495">Vis avancerede indstillinger...</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb index b3638eda..f6098b2 100644 --- a/components/strings/components_strings_de.xtb +++ b/components/strings/components_strings_de.xtb
@@ -845,6 +845,7 @@ <translation id="6965978654500191972">Gerät</translation> <translation id="6970216967273061347">Bezirk</translation> <translation id="6973656660372572881">Sowohl feste Proxyserver als auch eine PAC-Skript-URL sind festgelegt.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Stummschalten (Standard)</translation> <translation id="6984479912851154518">Der private Modus wird beendet, um über eine externe Anwendung zu zahlen. Weiter?</translation> <translation id="6989763994942163495">Erweiterte Einstellungen anzeigen</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb index 734088d..20c451d 100644 --- a/components/strings/components_strings_el.xtb +++ b/components/strings/components_strings_el.xtb
@@ -847,6 +847,7 @@ <translation id="6965978654500191972">Συσκευή</translation> <translation id="6970216967273061347">Περιοχή</translation> <translation id="6973656660372572881">Καθορίζονται τόσο οι σταθεροί διακομιστές μεσολάβησης όσο και μια διεύθυνση URL σεναρίου .pac.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Σίγαση (προεπιλογή)</translation> <translation id="6984479912851154518">Αποχώρηση από την κατάσταση ιδιωτικής περιήγησης για πληρωμή μέσω εξωτερικής εφαρμογής. Συνέχεια;</translation> <translation id="6989763994942163495">Εμφάνιση σύνθετων ρυθμίσεων…</translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb index f7b4eef..97f5b9e 100644 --- a/components/strings/components_strings_en-GB.xtb +++ b/components/strings/components_strings_en-GB.xtb
@@ -852,6 +852,7 @@ <translation id="6965978654500191972">Device</translation> <translation id="6970216967273061347">District</translation> <translation id="6973656660372572881">Both fixed proxy servers and a .pac script URL are specified.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Mute (default)</translation> <translation id="6984479912851154518">Leaving private mode to pay via an external application. Continue?</translation> <translation id="6989763994942163495">+ Show advanced settings</translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb index f176a1fc..ab845d8 100644 --- a/components/strings/components_strings_es-419.xtb +++ b/components/strings/components_strings_es-419.xtb
@@ -847,6 +847,7 @@ <translation id="6965978654500191972">Dispositivo</translation> <translation id="6970216967273061347">Distrito</translation> <translation id="6973656660372572881">Se especifican servidores proxy fijos y URL de secuencias de comandos .pac.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Silenciar (predeterminado)</translation> <translation id="6984479912851154518">Saldrás del modo privado para pagar mediante una aplicación externa. ¿Deseas continuar?</translation> <translation id="6989763994942163495">Mostrar configuración avanzada...</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb index 530401f5..978348c5 100644 --- a/components/strings/components_strings_es.xtb +++ b/components/strings/components_strings_es.xtb
@@ -16,7 +16,7 @@ <translation id="1074497978438210769">No es seguro</translation> <translation id="1080116354587839789">Se ajusta al ancho</translation> <translation id="1088860948719068836">Añade el nombre de la tarjeta</translation> -<translation id="1103523840287552314">Traducir siempre el <ph name="LANGUAGE" /></translation> +<translation id="1103523840287552314">Traducir siempre del <ph name="LANGUAGE" /></translation> <translation id="1107591249535594099">Si se selecciona, Chrome almacenará una copia de tu tarjeta en este dispositivo para completar formularios más rápidamente.</translation> <translation id="1110994991967754504">Seleccionar permiso de <ph name="PERMISSION_NAME" /></translation> <translation id="1111153019813902504">Marcadores visitados recientemente</translation> @@ -846,6 +846,7 @@ <translation id="6965978654500191972">Dispositivo</translation> <translation id="6970216967273061347">Distrito</translation> <translation id="6973656660372572881">Se especifican tanto servidores proxy fijos como una URL de secuencia de comandos .pac.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Silenciar (predeterminado)</translation> <translation id="6984479912851154518">Saldrás del modo privado para hacer un pago en una aplicación externa. ¿Quieres continuar?</translation> <translation id="6989763994942163495">Mostrar configuración avanzada...</translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb index 14c9b8c87..5f1471b 100644 --- a/components/strings/components_strings_et.xtb +++ b/components/strings/components_strings_et.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">Server ei suutnud tõestada, et see on domeen <ph name="DOMAIN" />, arvuti operatsioonisüsteem ei usalda selle turvasertifikaati. Selle põhjuseks võib olla vale seadistus või ründaja, kes on sekkunud teie ühendusse.</translation> <translation id="1151972924205500581">Parool on nõutav</translation> <translation id="1152921474424827756">Hankige juurdepääs aadressi <ph name="URL" /> <ph name="BEGIN_LINK" />vahemällu salvestatud koopiale<ph name="END_LINK" /></translation> +<translation id="1156303062776767266">Vaatate kohalikku või jagatud faili</translation> <translation id="1158211211994409885">Host <ph name="HOST_NAME" /> sulges ootamatult ühenduse.</translation> <translation id="1161325031994447685">Ühendage uuesti WiFi-ga</translation> <translation id="1165039591588034296">Viga</translation> @@ -534,6 +535,7 @@ <translation id="4592951414987517459">Teie ühendus domeeniga <ph name="DOMAIN" /> on krüpteeritud tänapäevase šifreerimiskomplektiga.</translation> <translation id="4594403342090139922">&Võta kustutamine tagasi</translation> <translation id="4619615317237390068">Muudest seadmetest pärinevad vahelehed</translation> +<translation id="4646534391647090355">Vii mind kohe sinna</translation> <translation id="4668929960204016307">,</translation> <translation id="467662567472608290">Server ei suutnud tõestada, et see on domeen <ph name="DOMAIN" />, selle turvasertifikaat sisaldab vigu. Selle põhjuseks võib olla vale seadistus või ründaja, kes on sekkunud teie ühendusse.</translation> <translation id="4690462567478992370">Lõpeta kehtetu sertifikaadi kasutamine</translation> @@ -580,6 +582,7 @@ <translation id="4958444002117714549">Laienda loendit</translation> <translation id="4974590756084640048">Luba hoiatused uuesti</translation> <translation id="4988217478422488391">Võimaldab veebis kiiremini maksta</translation> +<translation id="4989163558385430922">Kuva kõik</translation> <translation id="4989809363548539747">Seda pistikprogrammi ei toetata</translation> <translation id="5002932099480077015">Kui see on lubatud, salvestab Chrome teie kaardi koopia vormide kiiremini täitmiseks sellesse seadmesse.</translation> <translation id="5018422839182700155">Seda lehte ei saa avada</translation> @@ -724,6 +727,7 @@ <translation id="5922853866070715753">Peaaegu valmis</translation> <translation id="5939518447894949180">Lähtesta</translation> <translation id="5951495562196540101">Tarbijakontoga ei saa registreeruda (paketipõhine litsents on saadaval).</translation> +<translation id="5966151627327109289">Logib teid enamikult saitidelt välja. Võite kaotada juurdepääsu saidi <ph name="SITE" /> ja mõne muu saidi kaitstud sisule.</translation> <translation id="5967592137238574583">Kontaktteabe muutmine</translation> <translation id="5967867314010545767">Eemalda ajaloost</translation> <translation id="5975083100439434680">Suumib välja</translation> @@ -745,6 +749,7 @@ <translation id="6071091556643036997">Reegli tüüp on sobimatu.</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{See kaart salvestatakse teie Google'i kontole, et saaksite kõigis seadmetes kiiremini ostude eest tasuda.}other{Need kaardid salvestatakse teie Google'i kontole, et saaksite kõigis seadmetes kiiremini ostude eest tasuda.}}</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="6096619198407627433">Logib teid enamikult saitidelt välja. Google'i kontolt teid välja ei logita. Võite kaotada juurdepääsu saidi <ph name="SITE" /> ja mõne muu saidi kaitstud sisule.</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> <translation id="6146055958333702838">Kontrollige kaableid ning taaskäivitage kõik ruuterid, modemid ja muud @@ -816,6 +821,7 @@ <translation id="6710594484020273272"><Sisestage otsingutermin></translation> <translation id="6711464428925977395">Puhverserveriga on midagi valesti või aadress on vale.</translation> <translation id="674375294223700098">Serveri sertifikaadi tundmatu viga.</translation> +<translation id="6744009308914054259">Ühenduse loomise ajal võite avada jaotise Allalaadimised ja lugeda võrguühenduseta artikleid.</translation> <translation id="6753269504797312559">Reegli väärtus</translation> <translation id="6757797048963528358">Teie seade lülitus unerežiimile.</translation> <translation id="6778737459546443941">Vanem ei ole seda veel kinnitanud</translation> @@ -846,6 +852,7 @@ <translation id="6965978654500191972">Seade</translation> <translation id="6970216967273061347">Ringkond</translation> <translation id="6973656660372572881">Määratud on nii fikseeritud puhverserverid kui ka pac-skriptiga URL.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Vaigista (vaikeseade)</translation> <translation id="6984479912851154518">Väljute privaatsest režiimist, et välise rakenduse kaudu maksta. Kas soovite jätkata?</translation> <translation id="6989763994942163495">Kuva täpsemad seaded ...</translation> @@ -912,6 +919,7 @@ <translation id="7416351320495623771">Halda paroole …</translation> <translation id="7419106976560586862">Profiili tee</translation> <translation id="7437289804838430631">Lisa kontaktteave</translation> +<translation id="7440140511386898319">Uurige võrguühenduseta sisu</translation> <translation id="7441627299479586546">Reegli objekt on vale</translation> <translation id="7444046173054089907">See sait on blokeeritud</translation> <translation id="7445762425076701745">Serveri identiteeti, millega olete ühenduses, ei saa täielikult valideerida. Olete ühenduses serveriga nime abil, mis kehtib ainult teie võrgus, mistõttu ei saa väline sertifitseerimisorgan selle omandiõigust valideerida. Kuna mõni sertifitseerimisorgan väljastab sertifikaate hoolimata nende nimedest, puudub igasugune võimalus tagada, et olete ühenduses soovitud veebisaidi, mitte ründajaga.</translation> @@ -1178,7 +1186,7 @@ <translation id="935608979562296692">TÜHJENDA VORM</translation> <translation id="939736085109172342">Uus kaust</translation> <translation id="951104842009476243">Aktsepteeritavad ettemakstud ja deebetkaardid</translation> -<translation id="962484866189421427">Sisu võib üritada installida petlikke rakendusi, mis esinevad millegi muuna või koguda andmeid, mida saab kasutada teie jälgimiseks. <ph name="BEGIN_LINK" />Kuva siiski<ph name="END_LINK" /></translation> +<translation id="962484866189421427">Sisu võib üritada installida petturlikke rakendusi, mis esinevad millegi muuna või koguvad andmeid, mida saab kasutada teie jälgimiseks. <ph name="BEGIN_LINK" />Kuva siiski<ph name="END_LINK" /></translation> <translation id="969892804517981540">Ametlik järk</translation> <translation id="973773823069644502">Lisage kohaletoimetamisaadress</translation> <translation id="975560348586398090">{COUNT,plural, =0{Ühtegi}=1{1 üksus}other{# üksust}}</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb index c9c2a370..ada9a90d 100644 --- a/components/strings/components_strings_fa.xtb +++ b/components/strings/components_strings_fa.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">این سرور نتوانست اثبات کند که این <ph name="DOMAIN" /> است؛ گواهی امنیتی آن مورداعتماد سیستم عامل رایانه شما نیست. ممکن است علت این موضوع پیکربندی اشتباه باشد یا مهاجی اتصال شما را قطع کرده است.</translation> <translation id="1151972924205500581">گذرواژه ضروری است</translation> <translation id="1152921474424827756">دسترسی به یک <ph name="BEGIN_LINK" />نسخه ذخیره شده در حافظه پنهان<ph name="END_LINK" /> از <ph name="URL" /></translation> +<translation id="1156303062776767266">شما فایلی محلی یا همرسانیشده را مشاهده میکنید</translation> <translation id="1158211211994409885"><ph name="HOST_NAME" /> بهطور غیرمنتظرهای اتصال را قطع کرد.</translation> <translation id="1161325031994447685">اتصال مجدد به Wi-Fi</translation> <translation id="1165039591588034296">خطا</translation> @@ -534,6 +535,7 @@ <translation id="4592951414987517459">اتصال شما به <ph name="DOMAIN" /> با استفاده از یک مجموعه رمز مدرن، رمزگذاری شده است.</translation> <translation id="4594403342090139922">&واگرد حذف</translation> <translation id="4619615317237390068">برگهها از دستگاههای دیگر</translation> +<translation id="4646534391647090355">اکنون من را به آنجا ببر</translation> <translation id="4668929960204016307">،</translation> <translation id="467662567472608290">این سرور نتوانست اثبات کند که این <ph name="DOMAIN" /> است؛ گواهی امنیتی آن خطاهایی دارد. ممکن است علت این موضوع پیکربندی اشتباه باشد یا مهاجمی اتصال شما را قطع کرده است.</translation> <translation id="4690462567478992370">توقف استفاده از گواهینامه نامعتبر</translation> @@ -580,6 +582,7 @@ <translation id="4958444002117714549">بزرگ کردن فهرست</translation> <translation id="4974590756084640048">فعال کردن مجدد اخطارها</translation> <translation id="4988217478422488391">کمک میکند پرداختهای آنلاین سریعتر انجام شود</translation> +<translation id="4989163558385430922">دیدن همه</translation> <translation id="4989809363548539747">این افزایه پشتیبانی نمیشود</translation> <translation id="5002932099480077015">اگر فعال شود، Chrome یک کپی از کارت شما را برای پرکردن سریعتر فرم در این دستگاه ذخیره میکند.</translation> <translation id="5018422839182700155">این صفحه نمیتواند باز شود</translation> @@ -724,6 +727,7 @@ <translation id="5922853866070715753">تقريباً تمام است</translation> <translation id="5939518447894949180">بازنشانی</translation> <translation id="5951495562196540101">نمیتوان با حساب مصرفکننده ثبتنام کرد (مجوز بستهبندی دردسترس است).</translation> +<translation id="5966151627327109289">شما را از سیستم اکثر سایتها خارج میکند. ممکن است دسترسی به محتوای محافظتشده <ph name="SITE" /> یا برخی سایتهای دیگر را از دست بدهید.</translation> <translation id="5967592137238574583">ویرایش اطلاعات تماس</translation> <translation id="5967867314010545767">حذف از سابقه</translation> <translation id="5975083100439434680">کوچک نمایی</translation> @@ -745,6 +749,7 @@ <translation id="6071091556643036997">نوع خطمشی نامعتبر است.</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{برای پرداخت سریعتر در همه دستگاهها، این کارت در حساب Google شما ذخیره میشود.}one{برای پرداخت سریعتر در همه دستگاهها، این کارتها در حساب Google شما ذخیره میشود.}other{برای پرداخت سریعتر در همه دستگاهها، این کارتها در حساب Google شما ذخیره میشود.}}</translation> <translation id="6080696365213338172">شما با استفاده از گواهی ارائه شده توسط سرپرست سیستم به محتوا دسترسی پیدا کردهاید. دادههایی که به <ph name="DOMAIN" /> ارائه میکنید ممکن است توسط سرپرست سیستم رهگیری شوند.</translation> +<translation id="6096619198407627433">شما را از سیستم اکثر سایتها خارج میکند. از سیستم حساب Google خود خارج نمیشوید. ممکن است دسترسی به محتوای محافظتشده <ph name="SITE" /> یا برخی سایتهای دیگر را از دست بدهید.</translation> <translation id="610911394827799129">ممکن است حساب Google شما اشکال دیگری از سابقه مرور در <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> داشته باشد</translation> <translation id="6144381551823904650">{COUNT,plural, =0{هیچکدام}=1{۱ گذرواژه (همگامسازیشده)}one{# گذرواژه (همگامسازیشده)}other{# گذرواژه (همگامسازیشده)}}</translation> <translation id="6146055958333702838">همه کابلها را بررسی کنید و همه رهیابها، مودمها، یا دیگر دستگاههای @@ -816,6 +821,7 @@ <translation id="6710594484020273272"><عبارت جستجو را تایپ کنید></translation> <translation id="6711464428925977395">مشکلی در سرور پروکسی وجود دارد یا این آدرس درست نیست.</translation> <translation id="674375294223700098">خطای ناشناس گواهی سرور.</translation> +<translation id="6744009308914054259">وقتی درانتظار اتصال هستید، میتوانید برای خواندن مقالههای آفلاین، «بارگیریها» را مشاهده کنید.</translation> <translation id="6753269504797312559">مقدار خطمشی</translation> <translation id="6757797048963528358">دستگاهتان به خواب رفته است.</translation> <translation id="6778737459546443941">والدینتان هنوز این سایت را تأیید نکردهاند</translation> @@ -846,6 +852,7 @@ <translation id="6965978654500191972">دستگاه</translation> <translation id="6970216967273061347">حوزه</translation> <translation id="6973656660372572881">هم سرورهای پروکسی ثابت و هم آدرس اسکریپت pac. مشخص شدهاند.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">بیصدا (پیشفرض)</translation> <translation id="6984479912851154518">درحال خروج از حالت ناشناس، برای پرداخت ازطریق برنامهای خارجی. ادامه میدهید؟</translation> <translation id="6989763994942163495">نمایش تنظیمات پیشرفته ...</translation> @@ -912,6 +919,7 @@ <translation id="7416351320495623771">مدیریت گذرواژهها…</translation> <translation id="7419106976560586862">مسیر نمایه</translation> <translation id="7437289804838430631">افرودن اطلاعات تماس</translation> +<translation id="7440140511386898319">کاوش درحالت آفلاین</translation> <translation id="7441627299479586546">موضوع خطمشی اشتباه است</translation> <translation id="7444046173054089907">این سایت مسدود شده است</translation> <translation id="7445762425076701745">هویت سروری که به آن متصل شدهاید بهطور کامل راستیآزمایی نمیشود. با استفاده از نامی به سرور متصل شدهاید که فقط در شبکه شما معتبر است و ارائه دهنده مجوز خارجی قادر به راستیآزمایی مالکیت آن نیست. به دلیل آنکه برخی از ارائه دهندگان مجوز بدون توجه به هر موردی، مجوزهایی را برای این نامها ارائه میکنند، روشی برای اطمینان از این امر وجود ندارد که آیا شما به سایت موردنظر خود متصل شدهاید یا یک سایت مضر.</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb index 1ecd20e..462cf853 100644 --- a/components/strings/components_strings_fi.xtb +++ b/components/strings/components_strings_fi.xtb
@@ -847,6 +847,7 @@ <translation id="6965978654500191972">Laite</translation> <translation id="6970216967273061347">Alue</translation> <translation id="6973656660372572881">Sekä kiinteät välityspalvelimet että .pac-URL-osoite on määritetty.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Mykistä (oletus)</translation> <translation id="6984479912851154518">Yksityinen tila suljetaan, jotta voit tehdä maksun ulkoisella sovelluksella. Haluatko jatkaa?</translation> <translation id="6989763994942163495">Näytä lisäasetukset...</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb index 0a351d5..97c00cba 100644 --- a/components/strings/components_strings_fil.xtb +++ b/components/strings/components_strings_fil.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">Hindi mapatunayan ng server na ito na ito ay <ph name="DOMAIN" />; hindi pinagkakatiwalaan ng operating system ng iyong computer ang certificate ng seguridad nito. Maaaring dulot ito ng maling configuration o isang umaatake na hinahadlangan ang iyong koneksyon.</translation> <translation id="1151972924205500581">Kinakailangan ang password</translation> <translation id="1152921474424827756">Mag-access ng <ph name="BEGIN_LINK" />naka-cache na kopya<ph name="END_LINK" /> ng <ph name="URL" /></translation> +<translation id="1156303062776767266">Tumitingin ka ng lokal o nakabahaging file</translation> <translation id="1158211211994409885">Pinutol ng <ph name="HOST_NAME" /> ang koneksyon nang hindi inaasahan.</translation> <translation id="1161325031994447685">Muling kumonekta sa Wi-Fi</translation> <translation id="1165039591588034296">Error</translation> @@ -534,6 +535,7 @@ <translation id="4592951414987517459">Naka-encrypt ang iyong koneksyon sa <ph name="DOMAIN" /> gamit ang isang makabagong cipher suite.</translation> <translation id="4594403342090139922">&I-undo ang Pagtanggal</translation> <translation id="4619615317237390068">Mga tab mula sa iba pang mga device</translation> +<translation id="4646534391647090355">Dalhin na ako roon</translation> <translation id="4668929960204016307">,</translation> <translation id="467662567472608290">Hindi mapatunayan ng server na ito na ito ay <ph name="DOMAIN" />; naglalaman ng mga error ang certificate ng seguridad nito. Maaaring dulot ito ng maling configuration o isang umaatake na hinahadlangan ang iyong koneksyon.</translation> <translation id="4690462567478992370">Ihinto ang paggamit ng di-wastong certificate</translation> @@ -580,6 +582,7 @@ <translation id="4958444002117714549">Palawakin ang listahan</translation> <translation id="4974590756084640048">Muling i-enable ang mga babala</translation> <translation id="4988217478422488391">Mas pinapabilis ang pagbabayad para sa mga bagay online</translation> +<translation id="4989163558385430922">Tingnan lahat</translation> <translation id="4989809363548539747">Hindi sinusuportahan ang plugin na ito</translation> <translation id="5002932099480077015">Kung naka-enable, mag-iimbak ang Chrome ng kopya ng iyong card sa device na ito para sa mas mabilis na pagsagot sa form.</translation> <translation id="5018422839182700155">Hindi mabuksan ang page na ito</translation> @@ -724,6 +727,7 @@ <translation id="5922853866070715753">Malapit nang matapos</translation> <translation id="5939518447894949180">I-reset</translation> <translation id="5951495562196540101">Hindi maka-enroll gamit ang account ng consumer (may available na naka-package na lisensya).</translation> +<translation id="5966151627327109289">Sina-sign out ka sa karamihang site. Maaari kang mawalan ng access sa pinoprotektahang content mula sa <ph name="SITE" /> at iba pang site.</translation> <translation id="5967592137238574583">I-edit ang Impormasyon ng Contact</translation> <translation id="5967867314010545767">Alisin sa history</translation> <translation id="5975083100439434680">Mag-zoom out</translation> @@ -745,6 +749,7 @@ <translation id="6071091556643036997">Invalid ang uri ng patakaran.</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{Mase-save ang card na ito sa iyong Google Account para sa mas mabilis na pag-check out sa lahat ng device.}one{Mase-save ang mga card na ito sa iyong Google Account para sa mas mabilis na pag-check out sa lahat ng device.}other{Mase-save ang mga card na ito sa iyong Google Account para sa mas mabilis na pag-check out sa lahat ng device.}}</translation> <translation id="6080696365213338172">Nag-access ka ng nilalaman gamit ang isang certificate na ibinigay ng administrator. Maaaring harangin ng iyong administrator ang data na ibibigay mo sa <ph name="DOMAIN" />.</translation> +<translation id="6096619198407627433">Sina-sign out ka sa karamihang site. Hindi ka masa-sign out sa iyong Google Account. Maaari kang mawalan ng access sa pinoprotektahang content mula sa <ph name="SITE" /> at iba pang site.</translation> <translation id="610911394827799129">Maaaring may iba pang anyo ng history ng pag-browse ang iyong Google Account sa <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation> <translation id="6144381551823904650">{COUNT,plural, =0{Wala}=1{1 password (naka-sync)}one{# password (naka-sync)}other{# na password (naka-sync)}}</translation> <translation id="6146055958333702838">Tingnan ang anumang mga kable at i-reboot ang anumang mga router, modem o iba @@ -816,6 +821,7 @@ <translation id="6710594484020273272"><I-type ang termino para sa paghahanap></translation> <translation id="6711464428925977395">May problema sa proxy server, o mali ang address.</translation> <translation id="674375294223700098">Hindi alam na error sa certificate ng server</translation> +<translation id="6744009308914054259">Habang naghihintay ng koneksyon, maaari mong bisitahin ang Mga Download para magbasa ng mga offline na artikulo.</translation> <translation id="6753269504797312559">Halaga ng patakaran</translation> <translation id="6757797048963528358">Nag-sleep ang iyong device.</translation> <translation id="6778737459546443941">Hindi pa ito inaaprubahan ng iyong magulang</translation> @@ -846,6 +852,7 @@ <translation id="6965978654500191972">Device</translation> <translation id="6970216967273061347">Distrito</translation> <translation id="6973656660372572881">Tinukoy ang parehong mga hindi nababagong proxy server at isang .pac script URL.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">I-mute (default)</translation> <translation id="6984479912851154518">Aalis sa pribadong mode para magbayad sa pamamagitan ng external na application. Magpatuloy?</translation> <translation id="6989763994942163495">Ipakita ang mga advanced na setting...</translation> @@ -912,6 +919,7 @@ <translation id="7416351320495623771">Pamahalaan ang Mga Password...</translation> <translation id="7419106976560586862">Path ng Profile</translation> <translation id="7437289804838430631">Magdagdag ng Impormasyon ng Contact</translation> +<translation id="7440140511386898319">Mag-explore habang offline</translation> <translation id="7441627299479586546">Maling paksa ng patakaran</translation> <translation id="7444046173054089907">Naka-block ang site na ito</translation> <translation id="7445762425076701745">Hindi ganap na mapatunayan ang pagkakakilanlan ng server na konektado ka. Konektado ka sa server gamit ang pangalan na angkop lamang sa loob ng iyong network, na walang paraan ang panglabas na certificate authority na patunayan ang pagmamay-ari. Dahil magbibigay ang ilang kinauukulan sa certificate para sa mga pangalang ito, walang paraan upang matiyak na konektado ka sa nilayong website at hindi isang umaatake.</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb index f4268dad..32a5f665 100644 --- a/components/strings/components_strings_fr.xtb +++ b/components/strings/components_strings_fr.xtb
@@ -723,7 +723,7 @@ <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 en cours d'utilisation}one{# en cours d'utilisation}other{# en cours d'utilisation}}</translation> <translation id="5922853866070715753">Vous avez presque terminé !</translation> <translation id="5939518447894949180">Réinitialiser</translation> -<translation id="5951495562196540101">Impossible d'enregistrer votre appareil avec un compte personnel (licence empaquetée disponible).</translation> +<translation id="5951495562196540101">Impossible d'enregistrer votre appareil avec un compte personnel (licence associée disponible).</translation> <translation id="5967592137238574583">Modifier les coordonnées</translation> <translation id="5967867314010545767">Supprimer de l'historique</translation> <translation id="5975083100439434680">Zoom arrière</translation> @@ -846,6 +846,7 @@ <translation id="6965978654500191972">Périphérique</translation> <translation id="6970216967273061347">District</translation> <translation id="6973656660372572881">Les serveurs proxy déterminés et une URL de script .pac sont spécifiés tous les deux.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Coupé (par défaut)</translation> <translation id="6984479912851154518">En payant via une application externe, vous allez quitter le mode privé. Voulez-vous continuer ?</translation> <translation id="6989763994942163495">Afficher les paramètres avancés…</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb index 50d193dc..e864b8c 100644 --- a/components/strings/components_strings_gu.xtb +++ b/components/strings/components_strings_gu.xtb
@@ -416,7 +416,7 @@ <translation id="3778403066972421603">શું તમે આ કાર્ડને તમારા Google એકાઉન્ટ અને આ ડિવાઇસ પર સાચવવા માગો છો?</translation> <translation id="3783418713923659662">Mastercard</translation> <translation id="3787705759683870569"><ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /> માં સમાપ્ત થાય છે</translation> -<translation id="3807873520724684969">નુકસાનકારક કન્ટેન્ટ બ્લૉક કર્યુ.</translation> +<translation id="3807873520724684969">નુકસાનકારક કન્ટેન્ટ બ્લૉક કર્યું.</translation> <translation id="382518646247711829">જો તમે કોઈ પ્રોક્સી સર્વરનો ઉપયોગ કરો છો...</translation> <translation id="3828924085048779000">ખાલી પાસફ્રેઝને અનુમતિ નથી. </translation> <translation id="385051799172605136">પાછળ</translation> @@ -834,6 +834,7 @@ <translation id="6965978654500191972">ઉપકરણ</translation> <translation id="6970216967273061347">જીલ્લો</translation> <translation id="6973656660372572881">નિયત પ્રોક્સી સર્વર્સ અને .pac script URL બન્નેનો ઉલ્લેખ કરેલો છે.</translation> +<translation id="6979158407327259162">Google ડ્રાઇવ</translation> <translation id="6984479912851154518">બાહ્ય ઍપ્લિકેશન મારફતે ચુકવણી કરવા માટે ખાનગી મોડ છોડી રહ્યાં છીએ. ચાલુ રાખવું છે?</translation> <translation id="6989763994942163495">વિગતવાર સેટિંગ્સ બતાવો...</translation> <translation id="7012363358306927923">China UnionPay</translation> @@ -948,7 +949,7 @@ <translation id="7716147886133743102">વ્યવસ્થાપક દ્વારા અવરોધિત કરેલ છે</translation> <translation id="7716424297397655342">કૅશમાંથી આ સાઇટ લોડ કરી શકાતી નથી</translation> <translation id="7723047071702270851">કાર્ડમાં ફેરફાર કરો</translation> -<translation id="774634243536837715">જોખમકારક કન્ટેન્ટ બ્લૉક કર્યુ.</translation> +<translation id="774634243536837715">જોખમકારક કન્ટેન્ટ બ્લૉક કર્યું.</translation> <translation id="7752995774971033316">બિનસંચાલિત</translation> <translation id="7755287808199759310">તમારા માટે તમારા માતાપિતા તેને અનાવરોધિત કરી શકે છે</translation> <translation id="7758069387465995638">ફાયરવોલ અથવા એન્ટિવાયરસ સોફ્ટવેર એ કનેક્શન અવરોધિત કર્યું હોઈ શકે છે.</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb index 2cf4030..d268c50 100644 --- a/components/strings/components_strings_hi.xtb +++ b/components/strings/components_strings_hi.xtb
@@ -346,7 +346,7 @@ <translation id="3305707030755673451">आपका डेटा आपके समन्वयन पासफ़्रेज़ के साथ <ph name="TIME" /> को एन्क्रिप्ट किया गया था. समन्वयन शुरू करने के लिए इसे डालें.</translation> <translation id="3320021301628644560">बिलिंग पता जोड़ें</translation> <translation id="3338095232262050444">सुरक्षित</translation> -<translation id="3345135638360864351">इस साइट को ऐक्सेस करने का आपका अनुरोध <ph name="NAME" /> को नहीं भेजा जा सका. कृपया पुन: प्रयास करें.</translation> +<translation id="3345135638360864351">इस साइट को एक्सेस करने का आपका अनुरोध <ph name="NAME" /> को नहीं भेजा जा सका. कृपया फिर से कोशिश करें.</translation> <translation id="3355823806454867987">प्रॉक्सी सेटिंग बदलें...</translation> <translation id="3361596688432910856">Chrome नीचे दी गई जानकारी को <ph name="BEGIN_EMPHASIS" />सेव नहीं करेगा<ph name="END_EMPHASIS" />: <ph name="BEGIN_LIST" /> @@ -623,11 +623,11 @@ <ph name="BEGIN_LIST" /> <ph name="LIST_ITEM" /><ph name="BEGIN_BOLD" />शुरू करें<ph name="END_BOLD" /> पर क्लिक करें, इसके बाद <ph name="BEGIN_BOLD" />"स्थानीय सेवाएं देखें"<ph name="END_BOLD" /> को खोजें और चुनें - <ph name="LIST_ITEM" /><ph name="BEGIN_BOLD" />VisualDiscovery<ph name="END_BOLD" /> चुनें - <ph name="LIST_ITEM" /><ph name="BEGIN_BOLD" />स्टार्टअप प्रकार<ph name="END_BOLD" /> में <ph name="BEGIN_BOLD" />बंद किया गया<ph name="END_BOLD" /> चुनें + <ph name="LIST_ITEM" /><ph name="BEGIN_BOLD" />VisualDiscovery<ph name="END_BOLD" />चुनें + <ph name="LIST_ITEM" /><ph name="BEGIN_BOLD" />स्टार्टअप प्रकार<ph name="END_BOLD" /> में <ph name="BEGIN_BOLD" />बंद किया गया<ph name="END_BOLD" />चुनें <ph name="LIST_ITEM" /><ph name="BEGIN_BOLD" />सेवा स्थिति<ph name="END_BOLD" /> में <ph name="BEGIN_BOLD" />रोकें<ph name="END_BOLD" /> पर क्लिक करें <ph name="LIST_ITEM" /><ph name="BEGIN_BOLD" />लागू करें<ph name="END_BOLD" /> पर क्लिक करें, फिर <ph name="BEGIN_BOLD" />ठीक है<ph name="END_BOLD" /> पर क्लिक करें - <ph name="LIST_ITEM" />अपने कंप्यूटर से सॉफ़्टवेयर को हमेशा के लिए हटाने का तरीका जानने के लिए <ph name="BEGIN_LEARN_MORE_LINK" />Chrome सहायता केंद्र<ph name="END_LEARN_MORE_LINK" /> पर जाएं + <ph name="LIST_ITEM" />अपने कंप्यूटर से सॉफ़्टवेयर को हमेशा के लिए हटाने का तरीका जानने के लिए <ph name="BEGIN_LEARN_MORE_LINK" />सहायता केंद्र<ph name="END_LEARN_MORE_LINK" />पर जाएं <ph name="END_LIST" /></translation> <translation id="5285570108065881030">सेव किए गए सभी पासवर्ड दिखाएं</translation> <translation id="5287240709317226393">कुकी दिखाएं</translation> @@ -659,7 +659,7 @@ <translation id="5470861586879999274">&संपादित करना फिर से करें</translation> <translation id="5481076368049295676">यह सामग्री आपके डिवाइस पर ऐसा खतरनाक सॉफ़्टवेयर इंस्टॉल करने की कोशिश कर सकती है जो आपकी जानकारी चुरा सकता है या उसे हटा सकता है. <ph name="BEGIN_LINK" />फिर भी दिखाएं<ph name="END_LINK" /></translation> <translation id="54817484435770891">मान्य पता जोड़ें</translation> -<translation id="5490432419156082418">पते, और भी बहुत कुछ</translation> +<translation id="5490432419156082418">पते वगैरह</translation> <translation id="5492298309214877701">किसी कंपनी, संगठन या स्कूल के इंट्रानेट पर इस साइट का URL एक बाहरी वेबसाइट जैसा है. <ph name="LINE_BREAK" /> अपने सिस्टम एडमिन से संपर्क करने की कोशिश करें.</translation> @@ -846,6 +846,7 @@ <translation id="6965978654500191972">डिवाइस</translation> <translation id="6970216967273061347">जिला</translation> <translation id="6973656660372572881">फ़िक्स्ड प्रॉक्सी सर्वर और .pac स्क्रिप्ट URL दोनों ही बताए गए हैं.</translation> +<translation id="6979158407327259162">Google डिस्क</translation> <translation id="6979440798594660689">म्यूट करें (डिफ़ॉल्ट)</translation> <translation id="6984479912851154518">किसी बाहरी ऐप्लिकेशन के ज़रिए भुगतान करने के लिए 'निजी' मोड छोड़ रहे हैं. जारी रखना चाहते हैं?</translation> <translation id="6989763994942163495">अतिरिक्त सेटिंग दिखाएं...</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb index 7c6eef2..ae49556b 100644 --- a/components/strings/components_strings_hr.xtb +++ b/components/strings/components_strings_hr.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">Poslužitelj nije mogao dokazati da je <ph name="DOMAIN" />; operativni sustav vašeg računala smatra da njegov sigurnosni certifikat nije pouzdan. To može biti uzrokovano pogrešnom konfiguracijom ili napadom na vašu vezu.</translation> <translation id="1151972924205500581">Potrebna je zaporka</translation> <translation id="1152921474424827756">Pristupite <ph name="BEGIN_LINK" />predmemoriranoj kopiji<ph name="END_LINK" /> stranice <ph name="URL" /></translation> +<translation id="1156303062776767266">Gledate lokalnu ili dijeljenu datoteku</translation> <translation id="1158211211994409885">Host <ph name="HOST_NAME" /> neočekivano je prekinuo vezu.</translation> <translation id="1161325031994447685">Ponovo se povežite s Wi-Fi mrežom</translation> <translation id="1165039591588034296">Pogreška</translation> @@ -533,6 +534,7 @@ <translation id="4592951414987517459">Vaša veza s domenom <ph name="DOMAIN" /> kriptirana je modernim kriptografskim paketom.</translation> <translation id="4594403342090139922">&Poništi brisanje</translation> <translation id="4619615317237390068">Kartice s drugih uređaja</translation> +<translation id="4646534391647090355">Otvori odmah</translation> <translation id="4668929960204016307">,</translation> <translation id="467662567472608290">Poslužitelj nije mogao dokazati da je <ph name="DOMAIN" />; njegov sigurnosni certifikat sadrži pogreške. To može biti uzrokovano pogrešnom konfiguracijom ili napadom na vašu vezu.</translation> <translation id="4690462567478992370">Prestani upotrebljavati nevažeći certifikat</translation> @@ -579,6 +581,7 @@ <translation id="4958444002117714549">Proširi popis</translation> <translation id="4974590756084640048">Ponovo omogući upozorenja</translation> <translation id="4988217478422488391">Ubrzava plaćanje online</translation> +<translation id="4989163558385430922">Prikaži sve</translation> <translation id="4989809363548539747">Taj dodatak nije podržan</translation> <translation id="5002932099480077015">Ako je to omogućeno, Chrome će pohraniti kopiju vaše kartice na ovom uređaju radi bržeg ispunjavanja obrazaca.</translation> <translation id="5018422839182700155">Stranica se ne može otvoriti</translation> @@ -723,6 +726,7 @@ <translation id="5922853866070715753">Skoro gotovo</translation> <translation id="5939518447894949180">Ponovno postavi</translation> <translation id="5951495562196540101">Prijava s računom potrošača nije moguća (dostupna je paketna licenca).</translation> +<translation id="5966151627327109289">Odjavit ćete se s većine web-lokacija. Možda ćete izgubiti pristup zaštićenom sadržaju s web-lokacije <ph name="SITE" /> i nekih drugih web-lokacija.</translation> <translation id="5967592137238574583">Uredite podatke za kontakt</translation> <translation id="5967867314010545767">Ukloni iz povijesti</translation> <translation id="5975083100439434680">Smanji</translation> @@ -744,6 +748,7 @@ <translation id="6071091556643036997">Vrsta pravila nije važeća.</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{Ova kartica spremit će se na vaš Google račun radi brže provjere među uređajima.}one{Ove kartice spremit će se na vaš Google račun radi brže provjere među uređajima.}few{Ove kartice spremit će se na vaš Google račun radi brže provjere među uređajima.}other{Ove kartice spremit će se na vaš Google račun radi brže provjere među uređajima.}}</translation> <translation id="6080696365213338172">Pristupili ste sadržaju pomoću certifikata koji je izdao administrator. Administrator može presresti podatke koje dostavljate domeni <ph name="DOMAIN" />.</translation> +<translation id="6096619198407627433">Odjavit ćete se s većine web-lokacija, ali se nećete odjaviti s Google računa. Možda ćete izgubiti pristup zaštićenom sadržaju s web-lokacije <ph name="SITE" /> i nekih drugih web-lokacija.</translation> <translation id="610911394827799129">Na vašem Google računu možda postoje drugi oblici povijesti pregledavanja na stranici <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation> <translation id="6144381551823904650">{COUNT,plural, =0{Nijedna}=1{1 zaporka (sinkronizirana)}one{# zaporka (sinkronizirana)}few{# zaporke (sinkronizirane)}other{# zaporki (sinkroniziranih)}}</translation> <translation id="6146055958333702838">Provjerite kabele i ponovo pokrenite usmjerivače, modeme ili druge mrežne @@ -815,6 +820,7 @@ <translation id="6710594484020273272"><Upišite pojam za pretraživanje></translation> <translation id="6711464428925977395">Nešto nije u redu s proxy poslužiteljem ili adresa nije točna.</translation> <translation id="674375294223700098">Nepoznata pogreška certifikata poslužitelja</translation> +<translation id="6744009308914054259">Dok čekate vezu, možete otvoriti Preuzimanja i čitati offline članke.</translation> <translation id="6753269504797312559">Vrijednost pravila</translation> <translation id="6757797048963528358">Uređaj je u stanju mirovanja.</translation> <translation id="6778737459546443941">Roditelj je još nije odobrio</translation> @@ -845,6 +851,7 @@ <translation id="6965978654500191972">Uređaj</translation> <translation id="6970216967273061347">Distrikt</translation> <translation id="6973656660372572881">Određeni su fiksni proxy poslužitelji i URL .pac skripte.</translation> +<translation id="6979158407327259162">Google disk</translation> <translation id="6979440798594660689">Bez zvuka (zadano)</translation> <translation id="6984479912851154518">Napuštate privatni način rada da biste platili putem vanjske aplikacije. Želite li nastaviti?</translation> <translation id="6989763994942163495">Pokaži napredne postavke...</translation> @@ -911,6 +918,7 @@ <translation id="7416351320495623771">Upravljaj zaporkama…</translation> <translation id="7419106976560586862">Putanja profila</translation> <translation id="7437289804838430631">Dodajte podatke za kontakt</translation> +<translation id="7440140511386898319">Istraživanje dok ste offline</translation> <translation id="7441627299479586546">Pogrešan predmet pravila</translation> <translation id="7444046173054089907">Ova je web-lokacija blokirana</translation> <translation id="7445762425076701745">Identitet poslužitelja s kojim ste se povezali ne može se u potpunosti potvrditi. Povezali ste se s poslužiteljem upotrebom imena koje je valjano samo unutar vaše mreže, a za koje vanjsko tijelo za izdavanje certifikata nikako ne može potvrditi vlasništvo. Budući da postoje tijela za izdavanje certifikata koja će izdati certifikat za ta imena bez obzira na sve, nema načina da budete sigurni da ste povezani sa željenom web-lokacijom, a ne s napadačem.</translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb index e9b5e24..c0ffe373 100644 --- a/components/strings/components_strings_hu.xtb +++ b/components/strings/components_strings_hu.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">A szerver nem tudta bizonyítani, hogy valóban a(z) <ph name="DOMAIN" /> domainbe tartozik; biztonsági tanúsítványa az Ön számítógépének operációs rendszere szerint nem megbízható. Ennek oka lehet konfigurációs hiba, vagy hogy egy támadó eltérítette az Ön kapcsolódását.</translation> <translation id="1151972924205500581">Jelszó szükséges</translation> <translation id="1152921474424827756">A(z) <ph name="URL" /> egy <ph name="BEGIN_LINK" />tárolt változatának<ph name="END_LINK" /> megtekintése</translation> +<translation id="1156303062776767266">Helyi vagy megosztott fájlt tekint meg</translation> <translation id="1158211211994409885">A(z) <ph name="HOST_NAME" /> váratlanul megszakította a kapcsolatot.</translation> <translation id="1161325031994447685">Újracsatlakozás Wi-Fi-hálózathoz</translation> <translation id="1165039591588034296">Hiba</translation> @@ -532,6 +533,7 @@ <translation id="4592951414987517459">A(z) <ph name="DOMAIN" /> domainnel való kapcsolata modern kriptográfiával van titkosítva.</translation> <translation id="4594403342090139922">&Törlés visszavonása</translation> <translation id="4619615317237390068">Más eszközök lapjai</translation> +<translation id="4646534391647090355">Megnézem most</translation> <translation id="4668929960204016307">,</translation> <translation id="467662567472608290">A szerver nem tudta bizonyítani, hogy valóban a(z) <ph name="DOMAIN" /> domainbe tartozik; biztonsági tanúsítványa hibákat tartalmaz. Ennek oka lehet konfigurációs hiba, vagy hogy egy támadó eltérítette az Ön kapcsolódását.</translation> <translation id="4690462567478992370">Érvénytelen tanúsítvány használatának befejezése</translation> @@ -578,6 +580,7 @@ <translation id="4958444002117714549">Lista részletes nézete</translation> <translation id="4974590756084640048">Figyelmeztetések újbóli engedélyezése</translation> <translation id="4988217478422488391">Meggyorsítja az internetes vásárlást</translation> +<translation id="4989163558385430922">Összes megtekintése</translation> <translation id="4989809363548539747">Ez a beépülő modul nem támogatott</translation> <translation id="5002932099480077015">Ha engedélyezi, a Chrome megőrzi a kártya másolatát ezen az eszközön a gyorsabb űrlapkitöltés érdekében.</translation> <translation id="5018422839182700155">Nem lehet megnyitni az oldalt</translation> @@ -722,6 +725,7 @@ <translation id="5922853866070715753">Majdnem kész</translation> <translation id="5939518447894949180">Visszaállítás</translation> <translation id="5951495562196540101">Fogyasztói fiókkal nem lehet regisztrálni (a csomaghoz tartozik licenc is).</translation> +<translation id="5966151627327109289">A rendszer a legtöbb webhelyről kijelentkezteti Önt. Elveszítheti hozzáférését a(z) <ph name="SITE" /> és más webhelyek védett tartalmaihoz.</translation> <translation id="5967592137238574583">Kapcsolattartási adatok szerkesztése</translation> <translation id="5967867314010545767">Eltávolítás az előzmények közül</translation> <translation id="5975083100439434680">Kicsinyítés</translation> @@ -743,6 +747,7 @@ <translation id="6071091556643036997">A házirend típusa érvénytelen.</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{Ezt a kártyát a rendszer elmenti az Ön Google-fiókjába, hogy gyorsabban fizethessen minden eszközén.}other{Ezeket a kártyákat a rendszer elmenti az Ön Google-fiókjába, hogy gyorsabban fizethessen minden eszközén.}}</translation> <translation id="6080696365213338172">A tartalmat egy rendszergazda által biztosított tanúsítványon keresztül érte el. A(z) <ph name="DOMAIN" /> számára megadott adatok a rendszergazda számára is elérhetők.</translation> +<translation id="6096619198407627433">A rendszer a legtöbb webhelyről kijelentkezteti Önt, de Google-fiókjából nem. Elveszítheti hozzáférését a(z) <ph name="SITE" /> és más webhelyek védett tartalmaihoz.</translation> <translation id="610911394827799129">Előfordulhat, hogy a böngészési előzmények más formái még megtalálhatók Google-fiókjában a <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> webhelyen</translation> <translation id="6144381551823904650">{COUNT,plural, =0{Nincs}=1{1 jelszó (szinkronizálva)}other{# jelszó (szinkronizálva)}}</translation> <translation id="6146055958333702838">Ellenőrizze a kábeleket, majd indítsa újra a routert, modemet vagy más @@ -814,6 +819,7 @@ <translation id="6710594484020273272"><Írja be a keresési kifejezést></translation> <translation id="6711464428925977395">Valami gond van a proxyszerverrel, vagy a cím nem megfelelő.</translation> <translation id="674375294223700098">Ismeretlen szervertanúsítvány-hiba.</translation> +<translation id="6744009308914054259">Miközben kapcsolatra vár, a Letöltések között elolvashatja az offline cikkeket.</translation> <translation id="6753269504797312559">Házirend értéke</translation> <translation id="6757797048963528358">Eszköze alvó üzemmódba váltott.</translation> <translation id="6778737459546443941">A szülő még nem hagyta jóvá</translation> @@ -844,6 +850,7 @@ <translation id="6965978654500191972">Készülék</translation> <translation id="6970216967273061347">Kerület</translation> <translation id="6973656660372572881">Mindkét fix proxyszerver és egy .Pac típusú szkript URL-címe meg van adva.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Némítás (alapértelmezett)</translation> <translation id="6984479912851154518">Elhagyja a privát módot külső alkalmazással történő fizetéshez. Folytatja?</translation> <translation id="6989763994942163495">Speciális beállítások megjelenítése...</translation> @@ -910,6 +917,7 @@ <translation id="7416351320495623771">Jelszavak kezelése…</translation> <translation id="7419106976560586862">Profil elérési útja</translation> <translation id="7437289804838430631">Kapcsolatfelvételi adatok hozzáadása</translation> +<translation id="7440140511386898319">Felfedezés offline állapotban</translation> <translation id="7441627299479586546">Az irányelv tárgya nem megfelelő</translation> <translation id="7444046173054089907">Ez a webhely le van tiltva</translation> <translation id="7445762425076701745">Nem sikerült teljesen ellenőrizni a szerver azonosságát, amelyhez kapcsolódik. Egy olyan névvel kapcsolódik a szerverhez, amelynek tulajdonjogát egy külső tanúsítványkibocsátó nem ellenőrizheti. Mivel egyes tanúsítványkibocsátók figyelmen kívül hagyják ezeket a neveket, így semmi nem biztosítja, hogy a kívánt webhelyhez kapcsolódik, és nem egy támadó webhelyhez.</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb index dc5454d..0cb3397 100644 --- a/components/strings/components_strings_id.xtb +++ b/components/strings/components_strings_id.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">Server ini tidak dapat membuktikan bahwa ini adalah <ph name="DOMAIN" />; sertifikat keamanannya tidak dipercaya oleh sistem operasi komputer Anda. Hal ini dapat disebabkan oleh kesalahan konfigurasi atau penyerang memotong sambungan Anda.</translation> <translation id="1151972924205500581">Sandi wajib ada</translation> <translation id="1152921474424827756">Akses <ph name="BEGIN_LINK" />salinan yang disimpan dalam cache<ph name="END_LINK" /> dari <ph name="URL" /></translation> +<translation id="1156303062776767266">Anda melihat file lokal atau bersama</translation> <translation id="1158211211994409885"><ph name="HOST_NAME" /> tiba-tiba menutup sambungan.</translation> <translation id="1161325031994447685">Menyambungkan ulang ke Wi-Fi</translation> <translation id="1165039591588034296">Kesalahan</translation> @@ -534,6 +535,7 @@ <translation id="4592951414987517459">Sambungan Anda ke <ph name="DOMAIN" /> dienkripsi menggunakan cipher suite modern.</translation> <translation id="4594403342090139922">&Urungkan Penghapusan</translation> <translation id="4619615317237390068">Tab dari perangkat lain</translation> +<translation id="4646534391647090355">Langsung buka sekarang</translation> <translation id="4668929960204016307">,</translation> <translation id="467662567472608290">Server ini tidak dapat membuktikan bahwa ini adalah <ph name="DOMAIN" />; sertifikat keamanannya berisi kesalahan. Hal ini dapat disebabkan oleh kesalahan konfigurasi atau penyerang memotong sambungan Anda.</translation> <translation id="4690462567478992370">Berhenti menggunakan sertifikat yang tidak valid</translation> @@ -580,6 +582,7 @@ <translation id="4958444002117714549">Luaskan daftar</translation> <translation id="4974590756084640048">Aktifkan kembali peringatan</translation> <translation id="4988217478422488391">Membuat pembayaran item secara online jadi lebih cepat</translation> +<translation id="4989163558385430922">Lihat semua</translation> <translation id="4989809363548539747">Plugin ini tidak didukung</translation> <translation id="5002932099480077015">Jika diaktifkan, Chrome akan menyimpan salinan kartu Anda di perangkat ini untuk pengisian formulir yang lebih cepat.</translation> <translation id="5018422839182700155">Tidak dapat membuka halaman ini</translation> @@ -724,6 +727,7 @@ <translation id="5922853866070715753">Hampir selesai</translation> <translation id="5939518447894949180">Setel ulang</translation> <translation id="5951495562196540101">Tidak dapat mendaftar dengan akun konsumen (tersedia paket lisensi).</translation> +<translation id="5966151627327109289">Membuat Anda logout dari sebagian besar situs. Anda dapat kehilangan akses ke konten yang dilindungi dari <ph name="SITE" /> dan beberapa situs lain.</translation> <translation id="5967592137238574583">Edit Info Kontak</translation> <translation id="5967867314010545767">Hapus dari histori</translation> <translation id="5975083100439434680">Perkecil</translation> @@ -745,6 +749,7 @@ <translation id="6071091556643036997">Jenis kebijakan tidak valid.</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{Kartu ini akan disimpan ke Akun Google Anda untuk mempercepat proses pembayaran di semua perangkat.}other{Kartu-kartu ini akan disimpan ke Akun Google Anda untuk mempercepat proses pembayaran di semua perangkat.}}</translation> <translation id="6080696365213338172">Anda telah mengakses konten menggunakan sertifikat yang diberikan oleh administrator. Data yang diberikan ke <ph name="DOMAIN" /> dapat dicegat oleh administrator Anda.</translation> +<translation id="6096619198407627433">Membuat Anda logout dari sebagian besar situs. Anda tidak akan logout dari Akun Google. Anda dapat kehilangan akses ke konten yang dilindungi dari <ph name="SITE" /> dan beberapa situs lain.</translation> <translation id="610911394827799129">Akun Google Anda mungkin memiliki bentuk histori browsing lainnya di <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation> <translation id="6144381551823904650">{COUNT,plural, =0{Tidak ada}=1{1 sandi (disinkronkan)}other{# sandi (disinkronkan)}}</translation> <translation id="6146055958333702838">Periksa semua kabel dan boot ulang router, modem, atau perangkat @@ -816,6 +821,7 @@ <translation id="6710594484020273272"><Ketik istilah penelusuran></translation> <translation id="6711464428925977395">Ada yang salah dengan server proxy, atau alamat tidak benar.</translation> <translation id="674375294223700098">Kesalahan sertifikat server tidak dikenal.</translation> +<translation id="6744009308914054259">Sambil menunggu sambungan, Anda dapat mengunjungi Hasil Download untuk membaca artikel secara offline.</translation> <translation id="6753269504797312559">Nilai kebijakan</translation> <translation id="6757797048963528358">Perangkat Anda sedang dalam mode tidur.</translation> <translation id="6778737459546443941">Orang tuamu belum menyetujuinya</translation> @@ -846,6 +852,7 @@ <translation id="6965978654500191972">Perangkat</translation> <translation id="6970216967273061347">Distrik</translation> <translation id="6973656660372572881">Server proxy tetap dan URL skrip .pac telah ditentukan.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Matikan (default)</translation> <translation id="6984479912851154518">Keluar dari mode rahasia untuk membayar melalui aplikasi eksternal. Lanjutkan?</translation> <translation id="6989763994942163495">Tampilkan setelan lanjutan...</translation> @@ -910,6 +917,7 @@ <translation id="7416351320495623771">Kelola Sandi...</translation> <translation id="7419106976560586862">Jalur Profil</translation> <translation id="7437289804838430631">Tambahkan Info Kontak</translation> +<translation id="7440140511386898319">Jelajahi saat offline</translation> <translation id="7441627299479586546">Subjek kebijakan salah</translation> <translation id="7444046173054089907">Situs ini diblokir</translation> <translation id="7445762425076701745">Identitas server yang Anda sambungkan tidak dapat divalidasi sepenuhnya. Anda terhubung ke server menggunakan nama yang hanya valid dalam jaringan Anda, yang mana otoritas sertifikat eksternal sama sekali tidak dapat memvalidasi kepemilikannya. Karena sejumlah otoritas sertifikat akan tetap menerbitkan sertifikat untuk nama tersebut, tidak dapat dipastikan apakah Anda akan tersambung ke situs web yang dimaksudkan dan bahwa tidak akan ada penyerang.</translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb index d31e5790..3893e3d 100644 --- a/components/strings/components_strings_it.xtb +++ b/components/strings/components_strings_it.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">Questo server non è riuscito a dimostrare che si tratta di <ph name="DOMAIN" />; il relativo certificato di sicurezza non è considerato attendibile dal sistema operativo del computer. Il problema potrebbe essere dovuto a un'errata configurazione o a un malintenzionato che intercetta la connessione.</translation> <translation id="1151972924205500581">Password obbligatoria</translation> <translation id="1152921474424827756">Accedi a una <ph name="BEGIN_LINK" />copia memorizzata nella cache<ph name="END_LINK" /> di <ph name="URL" /></translation> +<translation id="1156303062776767266">È visualizzato un file locale o condiviso</translation> <translation id="1158211211994409885"><ph name="HOST_NAME" /> ha chiuso in modo imprevisto la connessione.</translation> <translation id="1161325031994447685">Riconnessione alla rete Wi-Fi</translation> <translation id="1165039591588034296">Errore</translation> @@ -531,6 +532,7 @@ <translation id="4592951414987517459">La connessione a <ph name="DOMAIN" /> è criptata tramite un pacchetto di crittografia moderno.</translation> <translation id="4594403342090139922">&Annulla eliminazione</translation> <translation id="4619615317237390068">Schede di altri dispositivi</translation> +<translation id="4646534391647090355">Vai subito</translation> <translation id="4668929960204016307">,</translation> <translation id="467662567472608290">Questo server non è riuscito a dimostrare che si tratta di <ph name="DOMAIN" />; il relativo certificato di sicurezza contiene errori. Il problema potrebbe essere dovuto a un'errata configurazione o a un malintenzionato che intercetta la connessione.</translation> <translation id="4690462567478992370">Interrompi l'utilizzo di un certificato non valido</translation> @@ -577,6 +579,7 @@ <translation id="4958444002117714549">Espandi elenco</translation> <translation id="4974590756084640048">Riattiva avvisi</translation> <translation id="4988217478422488391">Velocizza il pagamento per gli acquisti online</translation> +<translation id="4989163558385430922">Mostra tutto</translation> <translation id="4989809363548539747">Questo plug-in non è supportato</translation> <translation id="5002932099480077015">Se questa opzione viene attivata, Chrome memorizza una copia della carta sul dispositivo per velocizzare la compilazione dei moduli.</translation> <translation id="5018422839182700155">Impossibile aprire questa pagina</translation> @@ -720,7 +723,8 @@ <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 in uso}other{# in uso}}</translation> <translation id="5922853866070715753">Hai quasi finito.</translation> <translation id="5939518447894949180">Ripristina</translation> -<translation id="5951495562196540101">Impossibile effettuare la registrazione con l'account consumer (è disponibile la licenza in pacchetto).</translation> +<translation id="5951495562196540101">Impossibile effettuare la registrazione con l'account consumer (è disponibile la licenza inclusa).</translation> +<translation id="5966151627327109289">Uscirai dalla maggior parte dei siti. Potresti non riuscire più ad accedere ai contenuti protetti del sito <ph name="SITE" /> e di altri siti.</translation> <translation id="5967592137238574583">Modifica informazioni di contatto</translation> <translation id="5967867314010545767">Rimuovi da cronologia</translation> <translation id="5975083100439434680">Diminuisci lo zoom</translation> @@ -742,6 +746,7 @@ <translation id="6071091556643036997">Il tipo di norma non è valido.</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{ Questa carta verrà salvata nel tuo Account Google per un pagamento più rapido su tutti i dispositivi.}other{ Queste carte verranno salvate nel tuo Account Google per un pagamento più rapido su tutti i dispositivi.}}</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="6096619198407627433">Uscirai dalla maggior parte dei siti, ma non dal tuo Account Google. Potresti non riuscire più ad accedere ai contenuti protetti del sito <ph name="SITE" /> e di altri siti.</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> <translation id="6146055958333702838">Controlla eventuali cavi e riavvia eventuali router, modem o altri dispositivi di rete in uso.</translation> @@ -812,6 +817,7 @@ <translation id="6710594484020273272"><Digita un termine di ricerca></translation> <translation id="6711464428925977395">Si è verificato un problema con il server proxy oppure l'indirizzo non è corretto.</translation> <translation id="674375294223700098">Errore sconosciuto del certificato del server.</translation> +<translation id="6744009308914054259">In attesa di una connessione, puoi visitare la pagina Download per leggere gli articoli offline.</translation> <translation id="6753269504797312559">Valore norma</translation> <translation id="6757797048963528358">Il dispositivo è entrato in modalità sospensione.</translation> <translation id="6778737459546443941">Il tuo genitore non ha ancora approvato la richiesta</translation> @@ -842,6 +848,7 @@ <translation id="6965978654500191972">Dispositivo</translation> <translation id="6970216967273061347">Distretto</translation> <translation id="6973656660372572881">Sono stati specificati sia i server proxy fissi che un URL script .pac.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Disattivazione audio (impostazione predefinita)</translation> <translation id="6984479912851154518">Per procedere al pagamento tramite un'applicazione esterna, uscirai dalla modalità di navigazione privata. Vuoi continuare?</translation> <translation id="6989763994942163495">Mostra impostazioni avanzate...</translation> @@ -908,6 +915,7 @@ <translation id="7416351320495623771">Gestisci password…</translation> <translation id="7419106976560586862">Percorso profilo</translation> <translation id="7437289804838430631">Aggiungi informazioni di contatto</translation> +<translation id="7440140511386898319">Esplora offline</translation> <translation id="7441627299479586546">Oggetto del criterio errato</translation> <translation id="7444046173054089907">Questo sito è bloccato</translation> <translation id="7445762425076701745">Impossibile convalidare completamente l'identità del server a cui sei collegato. Sei collegato a un server con un nome valido soltanto nella tua rete, di cui un'autorità di certificazione esterna non può convalidare in alcun modo la proprietà. Poiché alcune autorità di certificazione emettono comunque certificati per questi nomi, non è in alcun modo possibile garantire che tu sia collegato al sito web desiderato anziché a un sito dannoso.</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb index 0f06d70..7552206 100644 --- a/components/strings/components_strings_iw.xtb +++ b/components/strings/components_strings_iw.xtb
@@ -728,7 +728,7 @@ <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{אחד נמצא בשימוש}two{שניים נמצאים בשימוש}many{# נמצאים בשימוש}other{# נמצאים בשימוש}}</translation> <translation id="5922853866070715753">עוד רגע מסיימים</translation> <translation id="5939518447894949180">אפס</translation> -<translation id="5951495562196540101">אי אפשר להירשם באמצעות חשבון פרטי (יש חבילת רישיון זמינה).</translation> +<translation id="5951495562196540101">אי אפשר להירשם באמצעות חשבון פרטי (יש רישיון משויך זמין).</translation> <translation id="5967592137238574583">עריכת הפרטים ליצירת קשר</translation> <translation id="5967867314010545767">הסר מההיסטוריה</translation> <translation id="5975083100439434680">התרחק</translation> @@ -851,6 +851,7 @@ <translation id="6965978654500191972">התקן</translation> <translation id="6970216967273061347">מחוז</translation> <translation id="6973656660372572881">צוינו שרתי Proxy קבועים וכתובת אתר של הסקריפט מסוג .Pac</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">השתקה (ברירת מחדל)</translation> <translation id="6984479912851154518">בחרת לצאת ממצב פרטי כדי לשלם באמצעות אפליקציה חיצונית. להמשיך?</translation> <translation id="6989763994942163495">הצג הגדרות מתקדמות...</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb index 921fe4f..72dcb661 100644 --- a/components/strings/components_strings_ja.xtb +++ b/components/strings/components_strings_ja.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">このサーバーが <ph name="DOMAIN" /> であることを確認できませんでした。このサーバーのセキュリティ証明書は、ご使用のパソコンのオペレーティング システムによって信頼されているものではありません。原因としては、不適切な設定や、悪意のあるユーザーによる接続妨害が考えられます。</translation> <translation id="1151972924205500581">パスワードを入力してください</translation> <translation id="1152921474424827756"><ph name="URL" /> の<ph name="BEGIN_LINK" />キャッシュ コピー<ph name="END_LINK" />にアクセスします</translation> +<translation id="1156303062776767266">ローカル ファイルまたは共有ファイルを表示しています</translation> <translation id="1158211211994409885"><ph name="HOST_NAME" /> により途中で接続が切断されました。</translation> <translation id="1161325031994447685">Wi-Fi に再度接続する</translation> <translation id="1165039591588034296">エラー</translation> @@ -534,6 +535,7 @@ <translation id="4592951414987517459"><ph name="DOMAIN" /> への接続は新しい暗号スイートにより暗号化されています。</translation> <translation id="4594403342090139922">削除の取り消し(&U)</translation> <translation id="4619615317237390068">他のデバイスからのタブ</translation> +<translation id="4646534391647090355">今すぐ表示</translation> <translation id="4668929960204016307">,</translation> <translation id="467662567472608290">このサーバーが <ph name="DOMAIN" /> であることを確認できませんでした。このサーバーのセキュリティ証明書にはエラーがあります。原因としては、不適切な設定や、悪意のあるユーザーによる接続妨害が考えられます。</translation> <translation id="4690462567478992370">無効な証明書の使用をやめる</translation> @@ -580,6 +582,7 @@ <translation id="4958444002117714549">リストを展開する</translation> <translation id="4974590756084640048">警告を再度有効にする</translation> <translation id="4988217478422488391">オンライン決済をすばやく行うことができます</translation> +<translation id="4989163558385430922">すべて表示</translation> <translation id="4989809363548539747">このプラグインはサポートされていません</translation> <translation id="5002932099480077015">有効にすると、Chrome ではこの端末にカードのコピーが保存されます。これにより、フォームにすばやく入力できるようになります。</translation> <translation id="5018422839182700155">このページを開けません</translation> @@ -724,6 +727,7 @@ <translation id="5922853866070715753">ほぼ完了です</translation> <translation id="5939518447894949180">リセット</translation> <translation id="5951495562196540101">一般ユーザー向けアカウントでは登録できません(ライセンス パッケージが利用可能です)。</translation> +<translation id="5966151627327109289">ほとんどのサイトからログアウトします。<ph name="SITE" /> と他の一部のサイトで、保護されたコンテンツにアクセスできなくなる可能性があります。</translation> <translation id="5967592137238574583">連絡先情報の編集</translation> <translation id="5967867314010545767">履歴から削除</translation> <translation id="5975083100439434680">縮小する</translation> @@ -745,6 +749,7 @@ <translation id="6071091556643036997">ポリシーのタイプが無効です。</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{このカードは Google アカウントに保存されます。以降は他の端末でもスピーディにお支払い手続きが可能です。}other{これらのカードは Google アカウントに保存されます。以降は他の端末でもスピーディにお支払い手続きが可能です。}}</translation> <translation id="6080696365213338172">管理者が提供する証明書を使用してコンテンツにアクセスしています。<ph name="DOMAIN" /> に提供するデータは管理者によって傍受される可能性があります。</translation> +<translation id="6096619198407627433">ほとんどのサイトからログアウトします。Google アカウントへのログイン状態は維持されます。<ph name="SITE" /> と他の一部のサイトで、保護されたコンテンツにアクセスできなくなる可能性があります。</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> <translation id="6146055958333702838">ケーブルを確認し、使用しているネットワーク デバイス(ルーター、モデムなど)を @@ -816,6 +821,7 @@ <translation id="6710594484020273272"><検索キーワードを入力></translation> <translation id="6711464428925977395">プロキシ サーバーに問題がある、またはアドレスが正しくありません。</translation> <translation id="674375294223700098">不明なサーバー証明書エラー</translation> +<translation id="6744009308914054259">接続するまでの間、[ダウンロード] に移動してオフラインで記事を読むことができます。</translation> <translation id="6753269504797312559">ポリシーの値</translation> <translation id="6757797048963528358">デバイスがスリープ状態です。</translation> <translation id="6778737459546443941">保護者がまだサイトを開くことを許可していません</translation> @@ -846,6 +852,7 @@ <translation id="6965978654500191972">デバイス</translation> <translation id="6970216967273061347">地区</translation> <translation id="6973656660372572881">固定プロキシ サーバーと .pac スクリプト URL の両方が指定されています。</translation> +<translation id="6979158407327259162">Google ドライブ</translation> <translation id="6979440798594660689">ミュート(デフォルト)</translation> <translation id="6984479912851154518">外部アプリケーションでのお支払い処理に進むため、プライベート モードを解除します。続行しますか?</translation> <translation id="6989763994942163495">詳細設定を表示...</translation> @@ -912,6 +919,7 @@ <translation id="7416351320495623771">パスワードを管理…</translation> <translation id="7419106976560586862">プロフィール パス</translation> <translation id="7437289804838430631">連絡先情報を追加</translation> +<translation id="7440140511386898319">オフラインで利用できるコンテンツ</translation> <translation id="7441627299479586546">ポリシーの対象が間違っています</translation> <translation id="7444046173054089907">このサイトはブロックされています</translation> <translation id="7445762425076701745">接続してるサーバーの身元について、十分な検証ができません。接続しているサーバーは、そのネットワーク内でのみ有効な名前を使用しており、外部認証局がその所有権を検証する方法はありません。こうした名前で証明書を発行する認証局もあるので、接続先が意図したウェブサイトか、悪意のあるユーザーのサイトかは確認できません。</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb index 8f5f7ba..5aba4f2 100644 --- a/components/strings/components_strings_kn.xtb +++ b/components/strings/components_strings_kn.xtb
@@ -131,7 +131,7 @@ <translation id="1753706481035618306">ಪುಟ ಸಂಖ್ಯೆ</translation> <translation id="1763864636252898013">ಈ ಸರ್ವರ್ <ph name="DOMAIN" /> ಆಗಿದೆ ಎಂಬುದನ್ನು ಸಾಬೀತುಪಡಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ; ಅದರ ಸುರಕ್ಷತಾ ಪ್ರಮಾಣಪತ್ರವು ನಿಮ್ಮ ಸಾಧನದ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಂ ಪ್ರಕಾರ ವಿಶ್ವಾಸಾರ್ಹವಾಗಿಲ್ಲ. ಇದು ತಪ್ಪು ಕಾನ್ಫಿಗರೇಶನ್ನಿಂದ ಅಥವಾ ಆಕ್ರಮಣಕಾರರು ನಿಮ್ಮ ಸಂಪರ್ಕದಲ್ಲಿ ಒಳನುಸುಳಿರುವುದರಿಂದ ಆಗಿರಬಹುದು.</translation> <translation id="1768211456781949159"><ph name="BEGIN_LINK" />Windows ನೆಟ್ವರ್ಕ್ ಡಯಾಗ್ನಾಸ್ಟಿಕ್ಸ್ ರನ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ<ph name="END_LINK" />.</translation> -<translation id="1783075131180517613">ದಯವಿಟ್ಟು ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ನವೀಕರಿಸಿ.</translation> +<translation id="1783075131180517613">ದಯವಿಟ್ಟು ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಿ.</translation> <translation id="1787142507584202372">ನಿಮ್ಮ ತೆರೆಯಲಾದ ಟ್ಯಾಬ್ಗಳು ಇಲ್ಲಿ ಗೋಚರಿಸುತ್ತದೆ</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">ಕಾರ್ಡ್ಹೋಲ್ಡರ್ ಹೆಸರು</translation> @@ -142,7 +142,7 @@ <translation id="1840414022444569775">ಈ ಕಾರ್ಡ್ ಸಂಖ್ಯೆಯನ್ನು ಈಗಾಗಲೇ ಬಳಸಲಾಗಿದೆ</translation> <translation id="1842969606798536927">ಪಾವತಿಸಿ</translation> <translation id="1871208020102129563">.pac ಸ್ಕ್ರಿಪ್ಟ್ URL ಅಲ್ಲದೆ, ನಿಗಧಿತ ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ಗಳನ್ನು ಬಳಸಲು ಪ್ರಾಕ್ಸಿಯನ್ನು ಹೊಂದಿಸಲಾಗಿದೆ.</translation> -<translation id="1871284979644508959">ಅಗತ್ಯ ಕ್ಷೇತ್ರ</translation> +<translation id="1871284979644508959">ಅಗತ್ಯವಿರುವ ಕ್ಷೇತ್ರ</translation> <translation id="1874765382782611674">ಸ್ವೀಕೃತ ಡೆಬಿಟ್ ಕಾರ್ಡ್ಗಳು</translation> <translation id="187918866476621466">ಆರಂಭಿಕ ಪುಟಗಳನ್ನು ತೆರೆಯಿರಿ</translation> <translation id="1883255238294161206">ಪಟ್ಟಿಯನ್ನು ಸಂಕುಚಿಸಿ</translation> @@ -422,7 +422,7 @@ <translation id="382518646247711829">ನೀವು ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಬಳಸಿದರೆ...</translation> <translation id="3828924085048779000">ಖಾಲಿ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ.</translation> <translation id="385051799172605136">ಹಿಂದೆ</translation> -<translation id="3858027520442213535">ದಿನಾಂಕ ಮತ್ತು ಸಮಯವನ್ನು ನವೀಕರಿಸಿ</translation> +<translation id="3858027520442213535">ದಿನಾಂಕ ಮತ್ತು ಸಮಯವನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಿ</translation> <translation id="3884278016824448484">ಸಂಘರ್ಷಗೊಳ್ಳುತ್ತಿರುವ ಸಾಧನ ಗುರುತಿಸುವಿಕೆ</translation> <translation id="3885155851504623709">ಪಾರಿಷ್</translation> <translation id="3886446263141354045">ಈ ಸೈಟ್ಗೆ ಪ್ರವೇಶಿಸುವ ನಿಮ್ಮ ವಿನಂತಿಯನ್ನು <ph name="NAME" /> ಅವರಿಗೆ ಕಳುಹಿಸಲಾಗಿದೆ</translation> @@ -474,8 +474,8 @@ <li><code>http://</code> ನಿಂದ ಪ್ರಾರಂಭವಾಗುವ ಯಾವುದೇ ವೆಬ್ಸೈಟ್ಗೆ ಹೋಗಿ, ಉದಾಹರಣೆಗೆ <a href="http://example.com" target="_blank">http://example.com</a>.</li> <li>ಸೈನ್-ಇನ್ ಪುಟವು ತೆರೆದುಕೊಂಡಾಗ, ಇಂಟರ್ನೆಟ್ ಬಳಸಲು ಸೈನ್-ಇನ್ ಮಾಡಿ.</li> </ol> - <h4>ಹಂತ 2: ಪುಟವನ್ನು ಅದೃಶ್ಯ ಮೋಡ್ನಲ್ಲಿ ತೆರೆಯಿರಿ (ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ಮಾತ್ರ)</h4> - <p>ನೀವು ಅದೃಶ್ಯ ವಿಂಡೋದಲ್ಲಿ ಭೇಟಿ ನೀಡುತ್ತಿದ್ದ ಪುಟವನ್ನು ತೆರೆಯಿರಿ.</p> + <h4>ಹಂತ 2: ಪುಟವನ್ನು ಅಜ್ಞಾತ ಮೋಡ್ನಲ್ಲಿ ತೆರೆಯಿರಿ (ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ಮಾತ್ರ)</h4> + <p>ನೀವು ಅಜ್ಞಾತ ವಿಂಡೋದಲ್ಲಿ ಭೇಟಿ ನೀಡುತ್ತಿದ್ದ ಪುಟವನ್ನು ತೆರೆಯಿರಿ.</p> <p>ಪುಟವು ತೆರೆದುಕೊಂಡರೆ, Chrome ವಿಸ್ತರಣೆಯು ಸರಿಯಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತಿಲ್ಲ ಎಂದು ಅರ್ಥ. ದೋಷವನ್ನು ಪರಿಹರಿಸಲು, ವಿಸ್ತರಣೆಯನ್ನು ಆಫ್ ಮಾಡಿ.</p> <h4>ಹಂತ 3: ನಿಮ್ಮ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಿ</h4> <p>ನಿಮ್ಮ ಸಾಧನವು ಅಪ್ಡೇಟ್ ಆಗಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.</p> @@ -814,7 +814,7 @@ <translation id="6757797048963528358">ನಿಮ್ಮ ಸಾಧನವು ನಿದ್ರಾವಸ್ಥೆಗೆ ಹೋಗಿದೆ.</translation> <translation id="6778737459546443941">ನಿಮ್ಮ ಪೋಷಕರು ಇನ್ನೂ ಇದನ್ನು ಅಂಗೀಕರಿಸಿಲ್ಲ</translation> <translation id="679355240208270552">ಡೀಫಾಲ್ಟ್ ಹುಡುಕಾಟವನ್ನು ನೀತಿಯ ಮೂಲಕ ಸಕ್ರಿಯಗೊಳಿಸದ ಕಾರಣ ನಿರ್ಲಕ್ಷಿಸಲಾಗಿದೆ.</translation> -<translation id="681021252041861472">ಅಗತ್ಯ ಕ್ಷೇತ್ರ</translation> +<translation id="681021252041861472">ಅಗತ್ಯವಿರುವ ಕ್ಷೇತ್ರ</translation> <translation id="6810899417690483278">ಕಸ್ಟಮೈಸೇಶನ್ ಐಡಿ</translation> <translation id="6824266427216888781">ಪ್ರದೇಶಗಳ ಡೇಟಾವನ್ನು ಲೋಡ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ</translation> <translation id="6825578344716086703">ನೀವು <ph name="DOMAIN" /> ಅನ್ನು ತಲುಪಲು ಪ್ರಯತ್ನಿಸಿದಿರಿ, ಆದರೆ ದುರ್ಬಲ ಸಹಿ ಅಲ್ಗಾರಿದಮ್ (SHA-1 ಅದರಂತೆ) ಬಳಸಿಕೊಂಡು ಸಹಿ ಮಾಡಿದ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಸರ್ವರ್ ಒದಗಿಸಿದೆ. ಇದರರ್ಥ ಸರ್ವರ್ ಒದಗಿಸಿದ ಸುರಕ್ಷತೆ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಖೋಟಾ ತಯಾರಿಸಿರಬಹುದು, ಮತ್ತು ನೀವು ನಿರೀಕ್ಷಿಸಿದ ಸರ್ವರ್ ಅದಾಗಿರದೇ ಇರಬಹುದು (ನೀವು ದಾಳಿಕೋರರೊಂದಿಗೆ ಸಂವಹನ ಮಾಡುತ್ತಿರಬಹುದು).</translation> @@ -840,6 +840,7 @@ <translation id="6965978654500191972">ಸಾಧನ</translation> <translation id="6970216967273061347">ಜಿಲ್ಲೆ</translation> <translation id="6973656660372572881">ಹೊಂದಿಸಿದ ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ಗಳು ಮತ್ತು .pac ಸ್ಕ್ರಿಪ್ಟ್ URL ಎರಡನ್ನೂ ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿದೆ.</translation> +<translation id="6979158407327259162">Google ಡ್ರೈವ್</translation> <translation id="6979440798594660689">ಮ್ಯೂಟ್ (ಡಿಫಾಲ್ಟ್)</translation> <translation id="6984479912851154518">ಬಾಹ್ಯ ಆ್ಯಪ್ ಮೂಲಕ ಪಾವತಿಸಲು ಖಾಸಗಿ ಮೋಡ್ ತೊರೆಯಲಾಗುತ್ತಿದೆ. ಮುಂದುವರಿಸುವುದೇ?</translation> <translation id="6989763994942163495">ಸುಧಾರಿತ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ತೋರಿಸು...</translation> @@ -885,7 +886,7 @@ <translation id="7320336641823683070">ಸಂಪರ್ಕ ಸಹಾಯ</translation> <translation id="7334320624316649418">&ಮರುಕ್ರಮಗೊಳಿಸುವುದನ್ನು ಮತ್ತೆಮಾಡು</translation> <translation id="733923710415886693">ಪ್ರಮಾಣಪತ್ರ ಪಾರದರ್ಶಕತೆಯ ಮೂಲಕ ಸರ್ವರ್ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಬಹಿರಂಗಪಡಿಸಲಾಗಿಲ್ಲ.</translation> -<translation id="7353601530677266744">ಆದೇಶ ಸಾಲು</translation> +<translation id="7353601530677266744">ಕಮಾಂಡ್ ಸಾಲು</translation> <translation id="7365061714576910172">Linux ಅನ್ನು ರಫ್ತು ಮಾಡಿ</translation> <translation id="7372973238305370288">ಹುಡುಕಾಟ ಫಲಿತಾಂಶ</translation> <translation id="7377249249140280793"><ph name="RELATIVE_DATE" /> - <ph name="FULL_DATE" /></translation> @@ -1018,7 +1019,7 @@ <translation id="8184538546369750125">ಜಾಗತಿಕ ಡಿಫಾಲ್ಟ್ ಬಳಸಿ (ಅನುಮತಿಸಿ)</translation> <translation id="8191494405820426728"><ph name="CRASH_LOCAL_ID" /> ಸ್ಥಳೀಯ ಕ್ರ್ಯಾಶ್ ಐಡಿ</translation> <translation id="8194797478851900357">&ಸರಿಸುವುದನ್ನು ರದ್ದುಗೊಳಿಸು</translation> -<translation id="8201077131113104583">"<ph name="EXTENSION_ID" />" ID ಜೊತೆಗಿನ ವಿಸ್ತರಣೆಗೆ ಅಮಾನ್ಯವಾದ ಅಪ್ಡೇಟ್ URL.</translation> +<translation id="8201077131113104583">"<ph name="EXTENSION_ID" />" ಜೊತೆಗಿನ ವಿಸ್ತರಣೆಗೆ ಅಮಾನ್ಯವಾದ ಅಪ್ಡೇಟ್ URL.</translation> <translation id="8202097416529803614">ಆರ್ಡರ್ ಸಾರಾಂಶ</translation> <translation id="8205463626947051446">ಈ ಸೈಟ್ ಸಾಮಾನ್ಯವಾಗಿ ಅತಿಕ್ರಮಣಕಾರಿಯಾಗಿರುವ ಜಾಹೀರಾತುಗಳನ್ನು ತೋರಿಸುತ್ತದೆ</translation> <translation id="8211406090763984747">ಸಂಪರ್ಕ ಸುರಕ್ಷಿತವಾಗಿದೆ</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb index 6eb4340d..43eb0db76 100644 --- a/components/strings/components_strings_ko.xtb +++ b/components/strings/components_strings_ko.xtb
@@ -846,6 +846,7 @@ <translation id="6965978654500191972">기기</translation> <translation id="6970216967273061347">구</translation> <translation id="6973656660372572881">고정 프록시 서버와 .pac 스크립트 URL이 모두 지정되어 있습니다.</translation> +<translation id="6979158407327259162">Google 드라이브</translation> <translation id="6979440798594660689">음소거(기본값)</translation> <translation id="6984479912851154518">시크릿 모드를 종료하고 외부 애플리케이션에서 결제합니다. 계속하시겠습니까?</translation> <translation id="6989763994942163495">고급 설정 표시</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb index 30bbb2e..200062d1 100644 --- a/components/strings/components_strings_lt.xtb +++ b/components/strings/components_strings_lt.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">Šiam serveriui nepavyko patvirtinti, kad tai yra <ph name="DOMAIN" />; jo saugos sertifikatas nėra patikimas kompiuterio operacinei sistemai. Taip gali nutikti dėl netinkamos konfigūracijos ar dėl ryšį pertraukusio užgrobėjo.</translation> <translation id="1151972924205500581">Būtinas slaptažodis</translation> <translation id="1152921474424827756">Pasiekite <ph name="BEGIN_LINK" />talpykloje saugomą <ph name="URL" /> kopiją<ph name="END_LINK" /></translation> +<translation id="1156303062776767266">Peržiūrite vietinį arba bendrinamą failą</translation> <translation id="1158211211994409885"><ph name="HOST_NAME" /> netikėtai nutraukė ryšį.</translation> <translation id="1161325031994447685">Iš naujo prisijungti prie „Wi-Fi“</translation> <translation id="1165039591588034296">Klaida</translation> @@ -535,6 +536,7 @@ <translation id="4592951414987517459">Ryšys su <ph name="DOMAIN" /> užšifruotas naudojant modernų šifravimo paketą.</translation> <translation id="4594403342090139922">&Anuliuoti ištrynimą</translation> <translation id="4619615317237390068">Skirtukai iš kitų įrenginių</translation> +<translation id="4646534391647090355">Eiti dabar</translation> <translation id="4668929960204016307">,</translation> <translation id="467662567472608290">Šiam serveriui nepavyko patvirtinti, kad tai yra <ph name="DOMAIN" />; jo saugos sertifikate yra klaidų. Taip gali nutikti dėl netinkamos konfigūracijos ar dėl ryšį pertraukusio užgrobėjo.</translation> <translation id="4690462567478992370">Nebenaudoti negaliojančio sertifikato</translation> @@ -581,6 +583,7 @@ <translation id="4958444002117714549">Išskleisti sąrašą</translation> <translation id="4974590756084640048">Iš naujo įgalinti įspėjimus</translation> <translation id="4988217478422488391">Padeda greičiau sumokėti internete</translation> +<translation id="4989163558385430922">Žr. viską</translation> <translation id="4989809363548539747">Šis papildinys nepalaikomas</translation> <translation id="5002932099480077015">Jei šis nustatymas įgalintas, „Chrome“ saugos kortelės kopiją šiame įrenginyje, kad būtų galima greičiau užpildyti formas.</translation> <translation id="5018422839182700155">Negalima atidaryti šio puslapio</translation> @@ -725,6 +728,7 @@ <translation id="5922853866070715753">Beveik atlikta</translation> <translation id="5939518447894949180">Nustatyti iš naujo</translation> <translation id="5951495562196540101">Nepavyko prisiregistruoti su kliento paskyra (galima įsigyti licencijos paketą).</translation> +<translation id="5966151627327109289">Būsite atjungti nuo daugelio svetainių. Galite prarasti prieigą prie saugomo turinio iš <ph name="SITE" /> ir kelių kitų svetainių.</translation> <translation id="5967592137238574583">Kontaktinės informacijos redagavimas</translation> <translation id="5967867314010545767">Pašalinti iš istorijos</translation> <translation id="5975083100439434680">Tolinti</translation> @@ -746,6 +750,7 @@ <translation id="6071091556643036997">Politikos tipas netinkamas.</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{Ši kortelė bus išsaugota „Google“ paskyroje, kad galėtumėte greičiau apdoroti mokėjimą naudodami įrenginius.}one{Šios kortelės bus išsaugotos „Google“ paskyroje, kad galėtumėte greičiau apdoroti mokėjimą naudodami įrenginius.}few{Šios kortelės bus išsaugotos „Google“ paskyroje, kad galėtumėte greičiau apdoroti mokėjimą naudodami įrenginius.}many{Šios kortelės bus išsaugotos „Google“ paskyroje, kad galėtumėte greičiau apdoroti mokėjimą naudodami įrenginius.}other{Šios kortelės bus išsaugotos „Google“ paskyroje, kad galėtumėte greičiau apdoroti mokėjimą naudodami įrenginius.}}</translation> <translation id="6080696365213338172">Pasiekėte turinį naudodami administratoriaus pateiktą sertifikatą. Duomenys, kuriuos pateikiate <ph name="DOMAIN" />, gali būti perimti administratoriaus.</translation> +<translation id="6096619198407627433">Būsite atjungti nuo daugelio svetainių. Nebūsite atjungti nuo „Google“ paskyros. Galite prarasti prieigą prie saugomo turinio iš <ph name="SITE" /> ir kelių kitų svetainių.</translation> <translation id="610911394827799129">„Google“ paskyroje gali būti kito tipo naršymo istorijos, kuri pasiekiama adresu <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="6144381551823904650">{COUNT,plural, =0{Nėra}=1{1 slaptažodis (sinchronizuotas)}one{# slaptažodis (sinchronizuotas)}few{# slaptažodžiai (sinchronizuoti)}many{# slaptažodžio (sinchronizuota)}other{# slaptažodžių (sinchronizuota)}}</translation> <translation id="6146055958333702838">Patikrinkite laidus ir iš naujo paleiskite maršruto parinktuvus, modemus ar kitus @@ -817,6 +822,7 @@ <translation id="6710594484020273272"><Įveskite paieškos terminą></translation> <translation id="6711464428925977395">Kažkas negerai su tarpiniu serveriu arba adresas netinkamas.</translation> <translation id="674375294223700098">Nežinoma serverio sertifikato klaida.</translation> +<translation id="6744009308914054259">Laukdami ryšio galite apsilankyti skiltyje „Atsisiuntimai“ ir perskaityti neprisijungus pasiekiamus straipsnius.</translation> <translation id="6753269504797312559">Politikos vertė</translation> <translation id="6757797048963528358">Įjungta įrenginio miego būsena.</translation> <translation id="6778737459546443941">Jūsų tėtis ar mama dar jos nepatvirtino</translation> @@ -847,6 +853,7 @@ <translation id="6965978654500191972">Įrenginys</translation> <translation id="6970216967273061347">Rajonas</translation> <translation id="6973656660372572881">Nurodyti fiksuoti įgaliotieji serveriai ir .pac scenarijaus URL.</translation> +<translation id="6979158407327259162">„Google“ diskas</translation> <translation id="6979440798594660689">Nutildyti (numatytasis)</translation> <translation id="6984479912851154518">Išjungiate privatų režimą, kad galėtumėte sumokėti naudodami išorinę programą. Tęsti?</translation> <translation id="6989763994942163495">Rodyti išplėstinius nustatymus...</translation> @@ -913,6 +920,7 @@ <translation id="7416351320495623771">Tvarkyti slaptažodžius…</translation> <translation id="7419106976560586862">Profilio kelias</translation> <translation id="7437289804838430631">Pridėti kontaktinę informaciją</translation> +<translation id="7440140511386898319">Naršymas neprisijungus</translation> <translation id="7441627299479586546">Netinkamas politikos objektas</translation> <translation id="7444046173054089907">Ši svetainė užblokuota</translation> <translation id="7445762425076701745">Nepavyksta visiškai patvirtinti serverio, prie kurio esate prisijungę, tapatybės. Prie serverio esate prisijungę naudodami tik tinklui galiojantį vardą, kurio nuosavybės teisių išorinė sertifikatą išduodanti institucija negali patvirtinti. Nors kai kurios sertifikatus išduodančios institucijos vis tiek išduos sertifikatus pagal šiuos vardus, niekaip nebus galima užtikrinti, kad būsite prisijungę prie numatytos svetainės, o ne prie užpuolėjo.</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb index 7d4dacf..87e8f22 100644 --- a/components/strings/components_strings_lv.xtb +++ b/components/strings/components_strings_lv.xtb
@@ -845,6 +845,7 @@ <translation id="6965978654500191972">Ierīce</translation> <translation id="6970216967273061347">Rajons</translation> <translation id="6973656660372572881">Ir norādīti gan fiksēti starpniekserveri, gan .pac skripta URL.</translation> +<translation id="6979158407327259162">Google disks</translation> <translation id="6979440798594660689">Izslēgt skaņu (noklusējums)</translation> <translation id="6984479912851154518">Ja maksāšanai tiks izmantota ārējā lietojumprogramma, tiks aizvērts privātais režīms. Vai turpināt?</translation> <translation id="6989763994942163495">Rādīt papildu iestatījumus...</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb index 68ee0f9..7e2b421 100644 --- a/components/strings/components_strings_ml.xtb +++ b/components/strings/components_strings_ml.xtb
@@ -114,7 +114,7 @@ <translation id="1656489000284462475">പിക്കപ്പ്</translation> <translation id="1662550410081243962">പേയ്മെന്റ് രീതികൾ സംരക്ഷിച്ച് സ്വമേധയാ പൂരിപ്പിക്കുക</translation> <translation id="1663943134801823270">കാർഡുകളും വിലാസങ്ങളും Chrome-ൽ നിന്നുള്ളതാണ്. നിങ്ങൾക്ക് അവ <ph name="BEGIN_LINK" />ക്രമീകരണത്തിൽ<ph name="END_LINK" /> മാനേജുചെയ്യാം.</translation> -<translation id="1676269943528358898">നിങ്ങളുടെ വിവരങ്ങൾ പരിരക്ഷിക്കാൻ സാധാരണയായി <ph name="SITE" />, എൻക്രിപ്ഷൻ ഉപയോഗിക്കുന്നു. ഇപ്പോൾ <ph name="SITE" /> സൈറ്റിലേക്ക് കണക്റ്റുചെയ്യാൻ Google Chrome ശ്രമിച്ചപ്പോൾ, അസാധാരണമായതും തെറ്റായതുമായ ക്രെഡൻഷ്യലുകൾ വെബ്സൈറ്റ് തിരികെ അയച്ചു. ഒരു ആക്രമണകാരി, <ph name="SITE" /> എന്നതായി ഭാവിക്കാൻ ശ്രമിക്കുമ്പോഴോ Wi-Fi സൈൻ ഇൻ സ്ക്രീൻ, കണക്ഷനെ തടസ്സപ്പെടുത്തുമ്പോഴോ ആണ് ഇങ്ങനെ സംഭവിക്കാനിടയുള്ളത്. ഏതെങ്കിലും ഡാറ്റ കൈമാറുന്നതിനുമുമ്പ് Google Chrome കണക്ഷൻ അവസാനിപ്പിച്ചതിനാൽ, നിങ്ങളുടെ വിവരങ്ങൾ തുടർന്നും സുരക്ഷിതമായിരിക്കും.</translation> +<translation id="1676269943528358898">നിങ്ങളുടെ വിവരങ്ങൾ പരിരക്ഷിക്കാൻ സാധാരണയായി <ph name="SITE" />, എൻക്രിപ്ഷൻ ഉപയോഗിക്കുന്നു. ഇപ്പോൾ <ph name="SITE" /> സൈറ്റിലേക്ക് കണക്റ്റ് ചെയ്യാൻ Google Chrome ശ്രമിച്ചപ്പോൾ, അസാധാരണമായതും തെറ്റായതുമായ ക്രെഡൻഷ്യലുകൾ വെബ്സൈറ്റ് തിരികെ അയച്ചു. ഒരു ആക്രമണകാരി, <ph name="SITE" /> എന്നതായി ഭാവിക്കാൻ ശ്രമിക്കുമ്പോഴോ Wi-Fi സൈൻ ഇൻ സ്ക്രീൻ, കണക്ഷനെ തടസ്സപ്പെടുത്തുമ്പോഴോ ആണ് ഇങ്ങനെ സംഭവിക്കാനിടയുള്ളത്. ഏതെങ്കിലും ഡാറ്റ കൈമാറുന്നതിനുമുമ്പ് Google Chrome കണക്ഷൻ അവസാനിപ്പിച്ചതിനാൽ, നിങ്ങളുടെ വിവരങ്ങൾ തുടർന്നും സുരക്ഷിതമായിരിക്കും.</translation> <translation id="168841957122794586">സെർവർ സർട്ടിഫിക്കറ്റിൽ ഒരു ദുർബലമായ ഗൂഢഭാഷ കീ ഉൾപ്പെടുന്നു.</translation> <translation id="1697532407822776718">എല്ലാം സജ്ജമായിക്കഴിഞ്ഞു!</translation> <translation id="1706954506755087368">{1,plural, =1{ഈ സെർവറിന് ഇത് <ph name="DOMAIN" /> ആണെന്ന് തെളിയിക്കാനായില്ല; അതിന്റെ സുരക്ഷാ സർട്ടിഫിക്കറ്റ് ഇന്നലെ മുതൽ സാധുവല്ല. തെറ്റായ കോൺഫിഗറേഷൻ കാരണമോ ഒരു ആക്രമണകാരി നിങ്ങളുടെ കണക്ഷനെ തടസ്സപ്പെടുത്തുന്നത് കൊണ്ടോ ആയിരിക്കാം ഇത് സംഭവിച്ചത്.}other{ഈ സെർവറിന് ഇത് <ph name="DOMAIN" /> ആണെന്ന് തെളിയിക്കാനായില്ല; അതിന്റെ സുരക്ഷാ സർട്ടിഫിക്കറ്റ് # ദിവസം മുതൽ സാധുവായിരിക്കില്ല. തെറ്റായ കോൺഫിഗറേഷൻ കാരണമോ ഒരു ആക്രമണകാരി നിങ്ങളുടെ കണക്ഷനെ തടസ്സപ്പെടുത്തുന്നത് കൊണ്ടോ ആയിരിക്കാം ഇത് സംഭവിച്ചത്.}}</translation> @@ -136,7 +136,7 @@ <translation id="1787142507584202372">നിങ്ങൾ നിലവിൽ തുറന്നിട്ടുള്ള ടാബുകൾ ഇവിടെ ദൃശ്യമാകും</translation> <translation id="1791429645902722292">Google Smart Lock</translation> <translation id="1803264062614276815">കാർഡ് ഉടമയുടെ പേര്</translation> -<translation id="1821930232296380041">അഭ്യർത്ഥന അല്ലെങ്കിൽ അഭ്യർത്ഥന പാരാമീറ്ററുകൾ അസാധുവാണ്</translation> +<translation id="1821930232296380041">അസാധുവായ അഭ്യർത്ഥന അല്ലെങ്കിൽ അഭ്യർത്ഥനാ പാരാമീറ്ററുകൾ</translation> <translation id="1826516787628120939">പരിശോധിക്കുന്നു</translation> <translation id="1834321415901700177">ഈ സൈറ്റിൽ ദോഷകരമായ പ്രോഗ്രാമുകൾ അടങ്ങിയിരിക്കുന്നു</translation> <translation id="1839551713262164453">നയ മൂല്യങ്ങളുടെ സാധൂകരണം പിശകുകളോടെ പരാജയപ്പെട്ടു</translation> @@ -223,19 +223,19 @@ <translation id="2463739503403862330">പൂരിപ്പിക്കുക</translation> <translation id="2465655957518002998">ഡെലിവറി രീതി തിരഞ്ഞെടുക്കുക</translation> <translation id="2467694685043708798"><ph name="BEGIN_LINK" />നെറ്റ്വർക്ക് ഡയഗണോസ്റ്റിക്സ് റൺ ചെയ്യുന്നു<ph name="END_LINK" /></translation> -<translation id="2479410451996844060">തിരയൽ URL അസാധുവാണ്.</translation> +<translation id="2479410451996844060">അസാധുവായ തിരയൽ URL.</translation> <translation id="2482878487686419369">വിജ്ഞാപനങ്ങള്</translation> <translation id="2491120439723279231">സെര്വറിന്റെ സര്ട്ടിഫിക്കറ്റില് പിശകുകള് അടങ്ങിയിരിക്കുന്നു.</translation> <translation id="2495083838625180221">JSON പാഴ്സർ</translation> <translation id="2495093607237746763">പരിശോധിച്ചെങ്കിൽ, വേഗത്തിൽ ഫോം പൂരിപ്പിക്കാൻ Chromium ഈ ഉപകരണത്തിൽ നിങ്ങളുടെ കാർഡിന്റെ ഒരു പകർപ്പ് സൂക്ഷിക്കും.</translation> <translation id="2498091847651709837">പുതിയ കാർഡ് സ്കാൻ ചെയ്യുക</translation> -<translation id="2501278716633472235">പിന്നിലേക്ക് പോകുക</translation> +<translation id="2501278716633472235">പിന്നോട്ട് പോകുക</translation> <translation id="2503184589641749290">ഡെബിറ്റ് കാർഡുകളും പ്രീപെയ്ഡ് കാർഡുകളും സ്വീകരിക്കുന്നു</translation> <translation id="2515629240566999685">നിങ്ങളുടെ ഏരിയയിലെ സിഗ്നൽ പരിശോധിക്കുന്നു</translation> <translation id="2524461107774643265">കൂടുതൽ വിവരങ്ങൾ ചേർക്കുക</translation> <translation id="2536110899380797252">വിലാസം ചേർക്കുക</translation> <translation id="2539524384386349900">കണ്ടെത്തുക</translation> -<translation id="255002559098805027"><ph name="HOST_NAME" />, അസാധുവായ ഒരു പ്രതികരണം അയച്ചു.</translation> +<translation id="255002559098805027"><ph name="HOST_NAME" /> അസാധുവായ ഒരു പ്രതികരണം അയച്ചു.</translation> <translation id="2556876185419854533">&എഡിറ്റുചെയ്യുന്നത് പഴയപടിയാക്കുക</translation> <translation id="2586657967955657006">ക്ലിപ്പ്ബോർഡ്</translation> <translation id="2587730715158995865"><ph name="ARTICLE_PUBLISHER" /> എന്നയാളുടെ ലേഖനം. ഇതും മറ്റ് <ph name="OTHER_ARTICLE_COUNT" /> ലേഖനങ്ങളും വായിക്കുക.</translation> @@ -319,7 +319,7 @@ <translation id="3154506275960390542">സുരക്ഷിതമായി സമർപ്പിക്കാൻ സാധിക്കാത്ത ഒരു ഫോം ഈ പേജിൽ ഉണ്ട്. അയയ്ക്കുന്ന സമയത്ത് നിങ്ങളുടെ ഡാറ്റ മറ്റുള്ളവര്ക്ക് കാണാനാകും, അല്ലെങ്കിൽ സെർവറിലേക്ക് എത്തും മുമ്പ് ഒരു അക്രമിക്ക് പരിഷ്ക്കരിക്കാൻ കഴിയും.</translation> <translation id="3157931365184549694">പുനഃസ്ഥാപിക്കുക</translation> <translation id="3162559335345991374">നിങ്ങൾ ഉപയോഗിക്കുന്ന Wi-Fi അതിന്റെ ലോഗിൻ പേജ് സന്ദർശിക്കാൻ നിങ്ങളോട് ആവശ്യപ്പെടാം.</translation> -<translation id="3167968892399408617">അദൃശ്യ ടാബുകളിൽ നിങ്ങൾ കാണുന്ന പേജുകൾ, ആൾമാറാട്ട ടാബുകൾ എല്ലാം അടച്ചതിനുശേഷം ബ്രൗസർ ചരിത്രത്തിലോ കുക്കി സ്റ്റോറിലോ തിരയൽ ചരിത്രത്തിലോ ഉണ്ടാകില്ല. നിങ്ങൾ ഡൗൺലോഡ് ചെയ്യുന്ന ഫയലുകളോ സൃഷ്ടിക്കുന്ന ബുക്ക്മാർക്കുകളോ എല്ലാം സൂക്ഷിക്കും.</translation> +<translation id="3167968892399408617">അദൃശ്യ ടാബുകളിൽ നിങ്ങൾ കാണുന്ന പേജുകൾ, അദൃശ്യ ടാബുകൾ എല്ലാം അടച്ചതിനുശേഷം ബ്രൗസർ ചരിത്രത്തിലോ കുക്കി സ്റ്റോറിലോ തിരയൽ ചരിത്രത്തിലോ ഉണ്ടാകില്ല. നിങ്ങൾ ഡൗൺലോഡ് ചെയ്യുന്ന ഫയലുകളോ സൃഷ്ടിക്കുന്ന ബുക്ക്മാർക്കുകളോ എല്ലാം സൂക്ഷിക്കും.</translation> <translation id="3169472444629675720">Discover</translation> <translation id="3174168572213147020">ഐലന്ഡ്</translation> <translation id="3176929007561373547">പ്രോക്സി സെർവർ പ്രവർത്തിക്കുന്നുവെന്ന് ഉറപ്പാക്കാൻ @@ -684,7 +684,7 @@ <translation id="5610807607761827392">നിങ്ങൾക്ക് <ph name="BEGIN_LINK" />ക്രമീകരണത്തിൽ<ph name="END_LINK" /> കാർഡുകളും വിലാസങ്ങളും മാനേജുചെയ്യാം.</translation> <translation id="5617949217645503996"><ph name="HOST_NAME" />, നിരവധി തവണ നിങ്ങളെ റീഡയറക്ടുചെയ്തു.</translation> <translation id="5629630648637658800">നയ ക്രമീകരണങ്ങൾ ലോഡുചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു</translation> -<translation id="5631439013527180824">ഉപകരണ മാനേജുമെന്റ് ടോക്കൺ അസാധുവാണ്</translation> +<translation id="5631439013527180824">അസാധുവായ ഉപകരണ മാനേജ്മെന്റ് ടോക്കൺ</translation> <translation id="5633066919399395251"><ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> എന്ന സൈറ്റിലെ നിലവിലുള്ള ആക്രമികൾ നിങ്ങളുടെ വിവരങ്ങൾ മോഷ്ടിക്കാനോ ഇല്ലാതാക്കാനോ ഇടയുള്ള (ഉദാഹരണത്തിന്, ഫോട്ടോകൾ, പാസ്വേഡുകൾ, സന്ദേശങ്ങൾ, ക്രെഡിറ്റ് കാർഡുകൾ എന്നിവ) അപകടകരമായ പ്രോഗ്രാമുകൾ കമ്പ്യൂട്ടറിൽ ഇൻസ്റ്റാൾ ചെയ്യാൻ ശ്രമിച്ചേക്കാം. <ph name="BEGIN_LEARN_MORE_LINK" />കൂടുതലറിയുക<ph name="END_LEARN_MORE_LINK" /></translation> <translation id="563324245173044180">തെറ്റിദ്ധരിപ്പിക്കുന്ന ഉള്ളടക്കം ബ്ലോക്കുചെയ്തു.</translation> <translation id="5659593005791499971">ഇമെയില്</translation> @@ -762,7 +762,7 @@ <translation id="625755898061068298">നിങ്ങൾ ഈ സൈറ്റിന്റെ സുരക്ഷാ മുന്നറിയിപ്പുകൾ പ്രവർത്തനരഹിതമാക്കാൻ തീരുമാനിച്ചു.</translation> <translation id="6259156558325130047">&പുനഃക്രമീകരിക്കുന്നത് വീണ്ടും ചെയ്യുക</translation> <translation id="6263376278284652872"><ph name="DOMAIN" /> ബുക്ക്മാർക്കുകൾ</translation> -<translation id="6264485186158353794">സുരക്ഷയിലേക്ക്</translation> +<translation id="6264485186158353794">തിരികെ സുരക്ഷയിലേക്ക്</translation> <translation id="6276112860590028508">നിങ്ങളുടെ വായന പട്ടികയിൽ നിന്നുള്ള പേജുകൾ ഇവിടെ ദൃശൃമാകും</translation> <translation id="627746635834430766">അടുത്ത പ്രാവശ്യം വേഗത്തിൽ പണമടയ്ക്കാൻ, നിങ്ങളുടെ Google അക്കൗണ്ടിൽ ഈ കാർഡും ബില്ലിംഗ് വിലാസവും സംരക്ഷിക്കുക.</translation> <translation id="6280223929691119688">ഈ വിലാസത്തിലേക്ക് ഡെലിവറി ചെയ്യാൻ കഴിയില്ല. മറ്റൊരു വിലാസം തിരഞ്ഞെടുക്കുക.</translation> @@ -845,6 +845,7 @@ <translation id="6965978654500191972">ഉപാധി</translation> <translation id="6970216967273061347">ജില്ല</translation> <translation id="6973656660372572881">സ്ഥിരമായ പ്രോക്സി സെർവറുകളും ഒരു സ്ക്രിപ്റ്റ് URL-ഉം വ്യക്തമാക്കിയിരിക്കുന്നു.</translation> +<translation id="6979158407327259162">Google ഡ്രൈവ്</translation> <translation id="6979440798594660689">മ്യൂട്ട് ചെയ്യുക (ഡിഫോൾട്ട്)</translation> <translation id="6984479912851154518">ഒരു എക്സ്റ്റേണൽ അപ്ലിക്കേഷൻ വഴി പണമടയ്ക്കുന്നതിന് വേണ്ടി സ്വകാര്യ മോഡ് വിടുന്നു. തുടരണോ?</translation> <translation id="6989763994942163495">വിപുലമായ ക്രമീകരണങ്ങൾ കാണിക്കുക...</translation> @@ -1022,7 +1023,7 @@ <translation id="8184538546369750125">ഗ്ലോബൽ ഡിഫോൾട്ട് ഉപയോഗിക്കുക (അനുവദിക്കുക)</translation> <translation id="8191494405820426728">ലോക്കൽ ക്രാഷ് ഐഡി <ph name="CRASH_LOCAL_ID" /></translation> <translation id="8194797478851900357">&നീക്കുന്നത് പഴയപടിയാക്കുക</translation> -<translation id="8201077131113104583">"<ph name="EXTENSION_ID" />" എന്ന ഐഡിയുള്ള വിപുലീകരണത്തിന്റെ അപ്ഡേറ്റ് URL അസാധുവാണ്.</translation> +<translation id="8201077131113104583">"<ph name="EXTENSION_ID" />" എന്ന ഐഡിയുള്ള വിപുലീകരണത്തിന്റെ അസാധുവായ അപ്ഡേറ്റ് URL.</translation> <translation id="8202097416529803614">ഓർഡർ സംഗ്രഹം</translation> <translation id="8205463626947051446">അനാവശ്യമായ പരസ്യങ്ങൾ സൈറ്റ് കാണിക്കാൻ സാധ്യതയുണ്ട്</translation> <translation id="8211406090763984747">കണക്ഷൻ സുരക്ഷിതമാണ്</translation> @@ -1151,7 +1152,7 @@ <translation id="9076283476770535406">ഇതിൽ മുതിർന്നവർക്കുള്ള ഉള്ളടക്കം ഉണ്ടായിരിക്കാം</translation> <translation id="9078964945751709336">കൂടുതൽ വിവരങ്ങൾ ആവശ്യമാണ്</translation> <translation id="9080712759204168376">ഓർഡർ സംഗ്രഹം</translation> -<translation id="9103872766612412690">നിങ്ങളുടെ വിവരങ്ങൾ പരിരക്ഷിക്കാൻ സാധാരണയായി <ph name="SITE" />, എൻക്രിപ്ഷൻ ഉപയോഗിക്കുന്നു. ഇപ്പോൾ <ph name="SITE" /> സൈറ്റിലേക്ക് കണക്റ്റുചെയ്യാൻ Chromium ശ്രമിച്ചപ്പോൾ, അസാധാരണമായതും തെറ്റായതുമായ ക്രെഡൻഷ്യലുകൾ വെബ്സൈറ്റ് തിരികെ അയച്ചു. ഒരു ആക്രമണകാരി <ph name="SITE" /> എന്നതായി ഭാവിക്കാൻ ശ്രമിക്കുമ്പോഴോ Wi-Fi സൈൻ ഇൻ സ്ക്രീൻ, കണക്ഷനെ തടസ്സപ്പെടുത്തുമ്പോഴോ ആണ് ഇങ്ങനെ സംഭവിക്കാനിടയുള്ളത്. ഏതെങ്കിലും ഡാറ്റ കൈമാറുന്നതിനുമുമ്പ് Chromium കണക്ഷൻ അവസാനിപ്പിച്ചതിനാൽ, നിങ്ങളുടെ വിവരങ്ങൾ തുടർന്നും സുരക്ഷിതമായിരിക്കും.</translation> +<translation id="9103872766612412690">നിങ്ങളുടെ വിവരങ്ങൾ പരിരക്ഷിക്കാൻ സാധാരണയായി <ph name="SITE" />, എൻക്രിപ്ഷൻ ഉപയോഗിക്കുന്നു. ഇത്തവണ <ph name="SITE" />, സൈറ്റിലേക്ക് കണക്റ്റ് ചെയ്യാൻ Chromium ശ്രമിച്ചപ്പോൾ, അസാധാരണമായതും തെറ്റായതുമായ ക്രെഡൻഷ്യലുകൾ വെബ്സൈറ്റ് തിരികെ അയച്ചു. ഒരു ആക്രമണകാരി <ph name="SITE" /> എന്നതായി ഭാവിക്കാൻ ശ്രമിക്കുമ്പോഴോ Wi-Fi സൈൻ ഇൻ സ്ക്രീൻ, കണക്ഷനെ തടസ്സപ്പെടുത്തുമ്പോഴോ ആണ് ഇങ്ങനെ സംഭവിക്കാനിടയുള്ളത്. ഏതെങ്കിലും ഡാറ്റ കൈമാറുന്നതിനുമുമ്പ് Chromium കണക്ഷൻ അവസാനിപ്പിച്ചതിനാൽ, നിങ്ങളുടെ വിവരങ്ങൾ തുടർന്നും സുരക്ഷിതമായിരിക്കും.</translation> <translation id="9106062320799175032">ബില്ലിംഗ് വിലാസം ചേർക്കുക</translation> <translation id="910908805481542201">ഇത് പരിഹരിക്കാൻ എന്നെ സഹായിക്കുക</translation> <translation id="9114524666733003316">കാർഡ് സ്ഥിരീകരിക്കുന്നു...</translation> @@ -1166,7 +1167,7 @@ <translation id="9169664750068251925">ഈ സൈറ്റിൽ എല്ലായ്പ്പോഴും തടയുക</translation> <translation id="9170848237812810038">&പൂര്വാവസ്ഥയിലാക്കുക</translation> <translation id="9171296965991013597">ആപ്പ് വിടണോ?</translation> -<translation id="917450738466192189">സെര്വറിന്റെ സര്ട്ടിഫിക്കറ്റ് അസാധുവാണ്.</translation> +<translation id="917450738466192189">സെർവറിന്റെ സർട്ടിഫിക്കറ്റ് അസാധുവാണ്.</translation> <translation id="9183425211371246419"><ph name="HOST_NAME" /> പിന്തുണയ്ക്കാത്ത ഒരു പ്രോട്ടോക്കോളാണ് ഉപയോഗിക്കുന്നത്.</translation> <translation id="9205078245616868884">നിങ്ങളുടെ സമന്വയ പാസ്ഫ്രെയ്സ് ഉപയോഗിച്ച് ഡാറ്റ എൻക്രിപ്റ്റുചെയ്തു. സമന്വയം ആരംഭിക്കുന്നതിന് ഇത് നൽകുക.</translation> <translation id="9207861905230894330">ലേഖനം ചേർക്കുന്നത് പരാജയപ്പെട്ടു.</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb index 5863fb2..7e45184 100644 --- a/components/strings/components_strings_mr.xtb +++ b/components/strings/components_strings_mr.xtb
@@ -847,6 +847,7 @@ <translation id="6965978654500191972">डिव्हाइस</translation> <translation id="6970216967273061347">जिल्हा</translation> <translation id="6973656660372572881">निश्चित प्रॉक्सी सर्व्हर आणि .pac स्क्रिप्ट URL निर्दिष्ट करण्यात आले आहेत.</translation> +<translation id="6979158407327259162">Google ड्राइव्ह</translation> <translation id="6979440798594660689">निःशब्द करा (डीफॉल्ट)</translation> <translation id="6984479912851154518">बाह्य अॅप्लिकेशनने पैसे भरण्यासाठी खाजगी मोड सोडत आहे. सुरू ठेवायचे का?</translation> <translation id="6989763994942163495">प्रगत सेटिंग्ज दर्शवा...</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb index c36f1b0a..6b5e516 100644 --- a/components/strings/components_strings_ms.xtb +++ b/components/strings/components_strings_ms.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">Pelayan ini tidak dapat membuktikan bahawa domainnya ialah <ph name="DOMAIN" />; sijil keselamatannya tidak dipercayai oleh sistem pengendalian komputer anda. Ini mungkin disebabkan oleh kesilapan konfigurasi atau penyerang yang memintasi sambungan anda.</translation> <translation id="1151972924205500581">Kata laluan diperlukan</translation> <translation id="1152921474424827756">Akses <ph name="BEGIN_LINK" />salinan cache<ph name="END_LINK" /> <ph name="URL" /></translation> +<translation id="1156303062776767266">Anda sedang melihat fail setempat atau yang dikongsi</translation> <translation id="1158211211994409885"><ph name="HOST_NAME" /> menutup sambungan tanpa di jangka.</translation> <translation id="1161325031994447685">Menyambung semula kepada Wi-Fi</translation> <translation id="1165039591588034296">Ralat</translation> @@ -535,6 +536,7 @@ <translation id="4592951414987517459">Sambungan anda ke <ph name="DOMAIN" /> disulitkan menggunakan suit sifer moden.</translation> <translation id="4594403342090139922">&Buat asal Pemadaman</translation> <translation id="4619615317237390068">Tab daripada peranti lain</translation> +<translation id="4646534391647090355">Bawa saya ke sana sekarang</translation> <translation id="4668929960204016307">,</translation> <translation id="467662567472608290">Pelayan ini tidak dapat membuktikan bahawa domainnya ialah <ph name="DOMAIN" />; sijil keselamatannya mengandungi ralat. Ini mungkin disebabkan oleh kesilapan konfigurasi atau penyerang yang memintas sambungan anda.</translation> <translation id="4690462567478992370">Berhenti menggunakan sijil tidak sah</translation> @@ -581,6 +583,7 @@ <translation id="4958444002117714549">Kembangkan senarai</translation> <translation id="4974590756084640048">Dayakan semula amaran</translation> <translation id="4988217478422488391">Pembayaran lebih pantas untuk pembelian dalam talian</translation> +<translation id="4989163558385430922">Lihat semua</translation> <translation id="4989809363548539747">Pemalam ini tidak disokong</translation> <translation id="5002932099480077015">Jika didayakan, Chrome akan menyimpan salinan kad anda pada peranti ini untuk pengisian borang yang lebih cepat.</translation> <translation id="5018422839182700155">Tidak dapat membuka halaman ini</translation> @@ -725,6 +728,7 @@ <translation id="5922853866070715753">Hampir selesai</translation> <translation id="5939518447894949180">Tetapkan semula</translation> <translation id="5951495562196540101">Tidak dapat mendaftar dengan akaun pengguna (lesen berpakej tersedia).</translation> +<translation id="5966151627327109289">Log keluar daripada kebanyakan tapak. Anda mungkin kehilangan akses kepada kandungan yang dilindungi daripada <ph name="SITE" /> dan beberapa tapak lain.</translation> <translation id="5967592137238574583">Edit Maklumat Hubungan</translation> <translation id="5967867314010545767">Buang daripada sejarah</translation> <translation id="5975083100439434680">Zum keluar</translation> @@ -746,6 +750,7 @@ <translation id="6071091556643036997">Jenis dasar tidak sah.</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{Kad ini akan disimpan ke Akaun Google anda untuk mempercepat proses pembayaran pada semua peranti.}other{Kad ini akan disimpan ke Akaun Google anda untuk mempercepat proses pembayaran pada semua peranti.}}</translation> <translation id="6080696365213338172">Anda telah mengakses kandungan menggunakan perakuan yang disediakan oleh pentadbir. Data yang anda berikan kepada <ph name="DOMAIN" /> boleh dipintas oleh pentadbir anda.</translation> +<translation id="6096619198407627433">Log anda keluar daripada kebanyakan tapak. Anda tidak akan log keluar daripada Akaun Google anda. Anda mungkin kehilangan akses kepada kandungan yang dilindungi daripada <ph name="SITE" /> dan beberapa tapak lain.</translation> <translation id="610911394827799129">Akaun Google anda mungkin mempunyai bentuk sejarah penyemakan imbas yang lain di <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="6144381551823904650">{COUNT,plural, =0{Tiada}=1{1 kata laluan (disegerakkan)}other{# kata laluan (disegerakkan)}}</translation> <translation id="6146055958333702838">Periksa mana-mana kabel dan but semula mana-mana penghala, modem atau peranti @@ -817,6 +822,7 @@ <translation id="6710594484020273272"><Taip istilah carian></translation> <translation id="6711464428925977395">Ada sesuatu yang tidak kena dengan pelayan proksi atau alamat tidak betul.</translation> <translation id="674375294223700098">Ralat sijil pelayan tidak diketahui.</translation> +<translation id="6744009308914054259">Sementara menunggu sambungan, anda boleh melawati Muat turun untuk membaca artikel luar talian.</translation> <translation id="6753269504797312559">Nilai dasar</translation> <translation id="6757797048963528358">Peranti anda tidak aktif.</translation> <translation id="6778737459546443941">Ibu bapa anda belum meluluskannya</translation> @@ -847,6 +853,7 @@ <translation id="6965978654500191972">Peranti</translation> <translation id="6970216967273061347">Daerah</translation> <translation id="6973656660372572881">Pelayan proksi tetap dan juga URL skrip .pac tidak ditetapkan.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Redam (lalai)</translation> <translation id="6984479912851154518">Meninggalkan mod peribadi untuk membayar melalui aplikasi luar. Teruskan?</translation> <translation id="6989763994942163495">Paparkan tetapan lanjutan...</translation> @@ -913,6 +920,7 @@ <translation id="7416351320495623771">Urus Kata Laluan…</translation> <translation id="7419106976560586862">Laluan Profil</translation> <translation id="7437289804838430631">Tambahkan Maklumat Hubungan</translation> +<translation id="7440140511386898319">Teroka semasa di luar talian</translation> <translation id="7441627299479586546">Subjek dasar salah</translation> <translation id="7444046173054089907">Tapak ini disekat</translation> <translation id="7445762425076701745">Identiti pelayan yang disambungkan kepada anda tidak dapat disahkan sepenuhnya. Anda disambungkan ke pelayan menggunakan nama yang sah dalam rangkaian anda sahaja, apabila pihak berkuasa sijil luaran tiada cara untuk mengesahkan pemilikan. Oleh kerana beberapa pihak berkuasa sijil juga akan terus mengeluarkan sijil untuk nama ini, tiada cara untuk memastikan anda disambungkan ke tapak web yang diingini dan bukannya penyerang.</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb index 1b8a9d19..2f20e21 100644 --- a/components/strings/components_strings_nl.xtb +++ b/components/strings/components_strings_nl.xtb
@@ -841,6 +841,7 @@ <translation id="6965978654500191972">Apparaat</translation> <translation id="6970216967273061347">District</translation> <translation id="6973656660372572881">Zowel vaste proxyservers als een pac-script-URL worden gespecificeerd.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Dempen (standaard)</translation> <translation id="6984479912851154518">Je verlaat de privémodus om te betalen via een externe app. Doorgaan?</translation> <translation id="6989763994942163495">Geavanceerde instellingen weergeven...</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb index 4790066d..12e3a6e 100644 --- a/components/strings/components_strings_no.xtb +++ b/components/strings/components_strings_no.xtb
@@ -846,6 +846,7 @@ <translation id="6965978654500191972">Enhet</translation> <translation id="6970216967273061347">Område</translation> <translation id="6973656660372572881">Både statiske proxytjenere og en .pac-skriptnettadresse er angitt.</translation> +<translation id="6979158407327259162">Google Disk</translation> <translation id="6979440798594660689">Kutt lyden (standard)</translation> <translation id="6984479912851154518">Går ut av privatmodus for å betale via en ekstern app. Vil du fortsette?</translation> <translation id="6989763994942163495">Vis avanserte innstillinger</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb index 608d21b..dac1fd2 100644 --- a/components/strings/components_strings_pl.xtb +++ b/components/strings/components_strings_pl.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">Ten serwer nie mógł udowodnić, że należy do <ph name="DOMAIN" />. Jego certyfikat bezpieczeństwa nie jest zaufany w systemie operacyjnym tego komputera. Może to być spowodowane błędną konfiguracją lub przechwyceniem połączenia przez atakującego.</translation> <translation id="1151972924205500581">Wymagane hasło</translation> <translation id="1152921474424827756">Przejdź do <ph name="BEGIN_LINK" />kopii<ph name="END_LINK" /> <ph name="URL" /> w pamięci podręcznej</translation> +<translation id="1156303062776767266">Przeglądasz plik lokalny lub udostępniony</translation> <translation id="1158211211994409885">Serwer <ph name="HOST_NAME" /> nieoczekiwanie zakończył połączenie.</translation> <translation id="1161325031994447685">Ponownie połącz się z Wi-Fi</translation> <translation id="1165039591588034296">Błąd</translation> @@ -534,6 +535,7 @@ <translation id="4592951414987517459">Połączenie z <ph name="DOMAIN" /> jest szyfrowane przy użyciu nowoczesnego zestawu szyfrów.</translation> <translation id="4594403342090139922">&Cofnij usunięcie</translation> <translation id="4619615317237390068">Karty z innych urządzeń</translation> +<translation id="4646534391647090355">Otwórz tę stronę</translation> <translation id="4668929960204016307">,</translation> <translation id="467662567472608290">Ten serwer nie mógł udowodnić, że należy do <ph name="DOMAIN" />. Jego certyfikat bezpieczeństwa ma błędy. Może to być spowodowane błędną konfiguracją lub przechwyceniem połączenia przez atakującego.</translation> <translation id="4690462567478992370">Przestań używać nieprawidłowego certyfikatu</translation> @@ -580,6 +582,7 @@ <translation id="4958444002117714549">Rozwiń listę</translation> <translation id="4974590756084640048">Ponownie włącz ostrzeżenia</translation> <translation id="4988217478422488391">Przyspiesza płatności online</translation> +<translation id="4989163558385430922">Pokaż wszystko</translation> <translation id="4989809363548539747">Ta wtyczka nie jest obsługiwana</translation> <translation id="5002932099480077015">Jeśli włączysz tę opcję, Chrome zapisze kopię Twojej karty na tym urządzeniu, by umożliwić Ci szybsze wypełnianie formularzy.</translation> <translation id="5018422839182700155">Nie można otworzyć tej strony</translation> @@ -723,7 +726,8 @@ <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{W użyciu: 1}few{W użyciu: #}many{W użyciu: #}other{W użyciu: #}}</translation> <translation id="5922853866070715753">Prawie gotowe</translation> <translation id="5939518447894949180">Resetuj</translation> -<translation id="5951495562196540101">Nie można zarejestrować się przy użyciu konta klienta (dostępna jest licencja w pakiecie).</translation> +<translation id="5951495562196540101">Nie można zarejestrować się przy użyciu konta klienta (w pakiecie dostępna jest licencja).</translation> +<translation id="5966151627327109289">Wylogowuje z większości stron internetowych. Możesz stracić dostęp do treści chronionych na <ph name="SITE" /> i na niektórych innych stronach.</translation> <translation id="5967592137238574583">Edytuj dane kontaktowe</translation> <translation id="5967867314010545767">Usuń z historii</translation> <translation id="5975083100439434680">Pomniejsz</translation> @@ -745,6 +749,7 @@ <translation id="6071091556643036997">Typ zasady jest nieprawidłowy.</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{Ta karta zostanie zapisana na Twoim koncie Google, by umożliwić Ci szybsze płacenie na wszystkich urządzeniach.}few{Te karty zostaną zapisane na Twoim koncie Google, by umożliwić Ci szybsze płacenie na wszystkich urządzeniach.}many{Te karty zostaną zapisane na Twoim koncie Google, by umożliwić Ci szybsze płacenie na wszystkich urządzeniach.}other{Te karty zostaną zapisane na Twoim koncie Google, by umożliwić Ci szybsze płacenie na wszystkich urządzeniach.}}</translation> <translation id="6080696365213338172">Masz dostęp do treści dzięki certyfikatowi dostarczonemu przez administratora. Administrator może odczytać dane, jakie udostępnisz w <ph name="DOMAIN" />.</translation> +<translation id="6096619198407627433">Wylogowuje z większości stron internetowych. Nie wyloguje Cię z konta Google. Możesz stracić dostęp do treści chronionych na <ph name="SITE" /> i na niektórych innych stronach</translation> <translation id="610911394827799129">Inne rodzaje historii przeglądania mogą być nadal dostępne na Twoim koncie Google na <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation> <translation id="6144381551823904650">{COUNT,plural, =0{Brak}=1{1 hasło (synchronizowane)}few{# hasła (synchronizowane)}many{# haseł (synchronizowanych)}other{# hasła (synchronizowanego)}}</translation> <translation id="6146055958333702838">Sprawdź wszystkie kable i uruchom ponownie wszelkie używane routery, modemy @@ -816,6 +821,7 @@ <translation id="6710594484020273272"><Wpisz wyszukiwane słowa></translation> <translation id="6711464428925977395">Serwer proxy działa nieprawidłowo albo adres jest błędny.</translation> <translation id="674375294223700098">Nieznany błąd certyfikatu serwera.</translation> +<translation id="6744009308914054259">Dopóki nie masz połączenia, możesz poczytać artykuły offline z folderu Pobrane.</translation> <translation id="6753269504797312559">Wartość zasady</translation> <translation id="6757797048963528358">Twoje urządzenie przeszło w tryb uśpienia.</translation> <translation id="6778737459546443941">Twój rodzic jeszcze na to nie zezwolił</translation> @@ -846,6 +852,7 @@ <translation id="6965978654500191972">Urządzenie</translation> <translation id="6970216967273061347">Okręg</translation> <translation id="6973656660372572881">Określono zarówno stałe serwery proxy, jak i URL skryptu PAC.</translation> +<translation id="6979158407327259162">Dysk Google</translation> <translation id="6979440798594660689">Wycisz (domyślnie)</translation> <translation id="6984479912851154518">Opuszczasz tryb prywatny, by zapłacić w zewnętrznej aplikacji. Kontynuować?</translation> <translation id="6989763994942163495">Pokaż ustawienia zaawansowane...</translation> @@ -912,6 +919,7 @@ <translation id="7416351320495623771">Zarządzaj hasłami…</translation> <translation id="7419106976560586862">Ścieżka profilu</translation> <translation id="7437289804838430631">Dodaj dane kontaktowe</translation> +<translation id="7440140511386898319">Przeglądaj offline</translation> <translation id="7441627299479586546">Nieprawidłowy podmiot zasady</translation> <translation id="7444046173054089907">Ta strona jest zablokowana</translation> <translation id="7445762425076701745">Nie można w pełni zweryfikować tożsamości serwera, z którym nawiązano połączenie. Nawiązano połączenie z serwerem przy użyciu nazwy obowiązującej jedynie w Twojej sieci i której własności zewnętrzny urząd certyfikacji nie jest w stanie zweryfikować. Niektóre urzędy certyfikacji wydają certyfikaty dla takich nazw bez względu na to, że nie można upewnić się, iż nawiązano połączenie z witryną, z którą zamierzano, a nie z intruzem.</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb index adf144c..86d7b6f 100644 --- a/components/strings/components_strings_pt-BR.xtb +++ b/components/strings/components_strings_pt-BR.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">Este servidor não conseguiu provar que é <ph name="DOMAIN" />. O certificado de segurança não é confiável para o sistema operacional do seu computador. Isso pode ser causado por uma configuração incorreta ou pela interceptação da sua conexão por um invasor.</translation> <translation id="1151972924205500581">Senha obrigatória</translation> <translation id="1152921474424827756">Acessar uma <ph name="BEGIN_LINK" />cópia em cache<ph name="END_LINK" /> de <ph name="URL" /></translation> +<translation id="1156303062776767266">Você está vendo um arquivo local ou compartilhado</translation> <translation id="1158211211994409885"><ph name="HOST_NAME" /> encerrou a conexão inesperadamente.</translation> <translation id="1161325031994447685">Conectar-se à rede Wi-Fi novamente</translation> <translation id="1165039591588034296">Erro</translation> @@ -534,6 +535,7 @@ <translation id="4592951414987517459">Sua conexão com <ph name="DOMAIN" /> foi criptografada usando um pacote de criptografia moderno.</translation> <translation id="4594403342090139922">&Desfazer exclusão</translation> <translation id="4619615317237390068">Guias de outros dispositivos</translation> +<translation id="4646534391647090355">Acessar agora</translation> <translation id="4668929960204016307">,</translation> <translation id="467662567472608290">Este servidor não conseguiu provar que é <ph name="DOMAIN" />. O certificado de segurança contém erros. Isso pode ser causado por uma configuração incorreta ou pela interceptação da sua conexão por um invasor.</translation> <translation id="4690462567478992370">Suspender o uso de um certificado inválido</translation> @@ -580,6 +582,7 @@ <translation id="4958444002117714549">Expandir lista</translation> <translation id="4974590756084640048">Reativar avisos</translation> <translation id="4988217478422488391">Agiliza os pagamentos on-line</translation> +<translation id="4989163558385430922">Ver tudo</translation> <translation id="4989809363548539747">Este plug-in não é compatível</translation> <translation id="5002932099480077015">Se ativado, o Chrome armazenará uma cópia do seu cartão neste dispositivo para preencher formulários mais rapidamente.</translation> <translation id="5018422839182700155">Não é possível abrir essa página</translation> @@ -724,6 +727,7 @@ <translation id="5922853866070715753">Quase pronto</translation> <translation id="5939518447894949180">Redefinir</translation> <translation id="5951495562196540101">Não é possível fazer a inscrição com a conta pessoal (pacote de licença disponível).</translation> +<translation id="5966151627327109289">Desconecta você da maioria dos sites. É possível que você perca o acesso a conteúdos protegidos de <ph name="SITE" /> e de alguns outros sites.</translation> <translation id="5967592137238574583">Edite as Informações de Contato</translation> <translation id="5967867314010545767">Remover do histórico</translation> <translation id="5975083100439434680">Diminuir zoom</translation> @@ -745,6 +749,7 @@ <translation id="6071091556643036997">O tipo de política é inválido.</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{Este cartão será salvo na sua Conta do Google para agilizar os pagamentos nos dispositivos.}one{Este cartão será salvo na sua Conta do Google para agilizar os pagamentos nos dispositivos.}other{Estes cartões serão salvos na sua Conta do Google para agilizar os pagamentos nos dispositivos.}}</translation> <translation id="6080696365213338172">Você acessou conteúdo usando um certificado fornecido pelo administrador. Os dados fornecidos a <ph name="DOMAIN" /> podem ser interceptados por seu administrador.</translation> +<translation id="6096619198407627433">Desconecta você da maioria dos sites, mas não da sua Conta do Google. É possível que você perca o acesso a conteúdos protegidos de <ph name="SITE" /> e de alguns outros sites.</translation> <translation id="610911394827799129">Sua Conta do Google pode ter outras formas de histórico de navegação em <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation> <translation id="6144381551823904650">{COUNT,plural, =0{Nenhuma}=1{1 senha (sincronizada)}one{# senha (sincronizada)}other{# senhas (sincronizadas)}}</translation> <translation id="6146055958333702838">Verifique todos os cabos e reinicie todos os roteadores, modens ou outros @@ -816,6 +821,7 @@ <translation id="6710594484020273272"><Digitar termo de pesquisa></translation> <translation id="6711464428925977395">Há algo errado com o servidor proxy, ou o endereço está incorreto.</translation> <translation id="674375294223700098">Erro, certificado de servidor desconhecido.</translation> +<translation id="6744009308914054259">Enquanto espera por uma conexão, acesse "Downloads" para ler artigos off-line.</translation> <translation id="6753269504797312559">Valor da política</translation> <translation id="6757797048963528358">O dispositivo entrou em modo de suspensão.</translation> <translation id="6778737459546443941">Seu responsável ainda não o aprovou</translation> @@ -846,6 +852,7 @@ <translation id="6965978654500191972">Dispositivo</translation> <translation id="6970216967273061347">Distrito</translation> <translation id="6973656660372572881">Ambos os servidores proxy fixo e um URL de script .pac foram especificados.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Desativar som (padrão)</translation> <translation id="6984479912851154518">Saindo do modo privado para fazer um pagamento com um aplicativo externo. Continuar?</translation> <translation id="6989763994942163495">Mostrar configurações avançadas...</translation> @@ -912,6 +919,7 @@ <translation id="7416351320495623771">Gerenciar senhas…</translation> <translation id="7419106976560586862">Caminho de perfil</translation> <translation id="7437289804838430631">Adicionar Informações de Contato</translation> +<translation id="7440140511386898319">Ver conteúdo enquanto estiver off-line</translation> <translation id="7441627299479586546">Assunto da política incorreto</translation> <translation id="7444046173054089907">Este site está bloqueado</translation> <translation id="7445762425076701745">A identidade do servidor ao qual você está conectado não pode ser validada completamente. Você está conectado ao servidor com um nome válido somente na sua rede e que, portanto, uma autoridade de certificação externa não consegue validar a propriedade. Como algumas autoridades de certificação emitem certificados para esses nomes mesmo assim, não é possível garantir que você esteja conectado ao site que gostaria e não a um invasor.</translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb index 1e33f6a4..e6f8cd4 100644 --- a/components/strings/components_strings_pt-PT.xtb +++ b/components/strings/components_strings_pt-PT.xtb
@@ -723,7 +723,7 @@ <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 em utilização}other{# em utilização}}</translation> <translation id="5922853866070715753">Estamos quase a terminar</translation> <translation id="5939518447894949180">Repor</translation> -<translation id="5951495562196540101">Não é possível inscrever com conta de consumidor (licença em pacote disponível).</translation> +<translation id="5951495562196540101">Não é possível inscrever-se com conta de consumidor (licença incluída disponível).</translation> <translation id="5967592137238574583">Editar informações de contacto</translation> <translation id="5967867314010545767">Remover do histórico</translation> <translation id="5975083100439434680">Reduzir</translation> @@ -846,6 +846,7 @@ <translation id="6965978654500191972">Dispositivo</translation> <translation id="6970216967273061347">Distrito</translation> <translation id="6973656660372572881">Foram especificados servidores proxy fixos e um URL de script .pac.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Desativar som (predefinição)</translation> <translation id="6984479912851154518">Está a sair do modo privado para pagar através de uma aplicação externa. Pretende continuar?</translation> <translation id="6989763994942163495">Mostrar definições avançadas...</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb index 36fbb3b..0434fc32 100644 --- a/components/strings/components_strings_ro.xtb +++ b/components/strings/components_strings_ro.xtb
@@ -846,6 +846,7 @@ <translation id="6965978654500191972">Dispozitiv</translation> <translation id="6970216967273061347">Județ</translation> <translation id="6973656660372572881">Sunt specificate atât servere proxy fixe, cât și o adresă URL pentru scripturi .pac.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Dezactivează sunetul (prestabilit)</translation> <translation id="6984479912851154518">Vei părăsi modul privat pentru a plăti folosind o aplicație externă. Continui?</translation> <translation id="6989763994942163495">Afișează setările avansate...</translation> @@ -1179,7 +1180,7 @@ <translation id="935608979562296692">GOLEȘTE FORMULARUL</translation> <translation id="939736085109172342">Dosar nou</translation> <translation id="951104842009476243">Carduri de debit și preplătite acceptate</translation> -<translation id="962484866189421427">Acest conținut poate încerca să instaleze aplicații înșelătoare care pretind a fi altceva sau culeg date care pot fi folosite pentru a te urmări. <ph name="BEGIN_LINK" />Afișează oricum<ph name="END_LINK" /></translation> +<translation id="962484866189421427">Acest conținut poate încerca să instaleze aplicații înșelătoare care pretind a fi altceva sau colectează date care pot fi folosite pentru a te urmări. <ph name="BEGIN_LINK" />Afișează oricum<ph name="END_LINK" /></translation> <translation id="969892804517981540">Versiune oficială</translation> <translation id="973773823069644502">Adaugă o adresă de livrare</translation> <translation id="975560348586398090">{COUNT,plural, =0{Niciunul}=1{1 element}few{# elemente}other{# de elemente}}</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb index a25a54f..ded65711 100644 --- a/components/strings/components_strings_ru.xtb +++ b/components/strings/components_strings_ru.xtb
@@ -845,6 +845,7 @@ <translation id="6965978654500191972">Устройство</translation> <translation id="6970216967273061347">Район</translation> <translation id="6973656660372572881">Указаны как фиксированные прокси-серверы, так и URL PAC-скриптов.</translation> +<translation id="6979158407327259162">Google Диск</translation> <translation id="6979440798594660689">Без звука (по умолчанию)</translation> <translation id="6984479912851154518">Вы выйдете из режима инкогнито, чтобы произвести оплату во внешнем приложении. Продолжить?</translation> <translation id="6989763994942163495">Показать дополнительные настройки</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb index 749580c..7a2d4d1 100644 --- a/components/strings/components_strings_sk.xtb +++ b/components/strings/components_strings_sk.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">Server nedokáže overiť, či ide o doménu <ph name="DOMAIN" />, operačný systém vášho počítača nedôveruje jej bezpečnostnému certifikátu. Môže to byť spôsobené nesprávnou konfiguráciou alebo tým, že vaše pripojenie zachytil útočník.</translation> <translation id="1151972924205500581">Vyžaduje sa heslo</translation> <translation id="1152921474424827756">Prístup ku <ph name="BEGIN_LINK" />kópii vo vyrovnávacej pamäti<ph name="END_LINK" /> stránky <ph name="URL" /></translation> +<translation id="1156303062776767266">Prezeráte si miestny alebo zdieľaný súbor</translation> <translation id="1158211211994409885">Hostiteľský web <ph name="HOST_NAME" /> neočakávane ukončil pripojenie.</translation> <translation id="1161325031994447685">Znovu sa pripojiť k sieti Wi‑Fi</translation> <translation id="1165039591588034296">Chyba</translation> @@ -530,6 +531,7 @@ <translation id="4592951414987517459">Vaše pripojenie k doméne <ph name="DOMAIN" /> je šifrované pomocou modernej šifrovacej súpravy.</translation> <translation id="4594403342090139922">&Vrátiť späť odstránenie</translation> <translation id="4619615317237390068">Karty z iných zariadení</translation> +<translation id="4646534391647090355">Prejsť do daného umiestnenia</translation> <translation id="4668929960204016307">,</translation> <translation id="467662567472608290">Server nedokáže overiť, či ide o doménu <ph name="DOMAIN" />, jej bezpečnostný certifikát obsahuje chyby. Môže to byť spôsobené nesprávnou konfiguráciou alebo tým, že vaše pripojenie zachytil útočník.</translation> <translation id="4690462567478992370">Nepoužívať neplatné certifikáty</translation> @@ -576,6 +578,7 @@ <translation id="4958444002117714549">Rozbaliť zoznam</translation> <translation id="4974590756084640048">Opätovne aktivovať upozornenia</translation> <translation id="4988217478422488391">Urýchľuje online platby</translation> +<translation id="4989163558385430922">Zobraziť všetko</translation> <translation id="4989809363548539747">Tento doplnok nie je podporovaný</translation> <translation id="5002932099480077015">Ak túto možnosť povolíte, Chrome bude uchovávať kópiu vašej karty na tomto zariadení na účely rýchlejšieho dopĺňania formulárov.</translation> <translation id="5018422839182700155">Táto stránka sa nedá otvoriť</translation> @@ -720,6 +723,7 @@ <translation id="5922853866070715753">Takmer dokončené</translation> <translation id="5939518447894949180">Resetovať</translation> <translation id="5951495562196540101">Nemôžete sa zaregistrovať spotrebiteľským účtom (k dispozícii je licencia v balíčku).</translation> +<translation id="5966151627327109289">Odhlási vás z väčšiny webov. Môžete stratiť prístup k chránenému obsahu z webu <ph name="SITE" /> a niektorých ďalších webov.</translation> <translation id="5967592137238574583">Úprava kontaktných informácií</translation> <translation id="5967867314010545767">Odstrániť z histórie</translation> <translation id="5975083100439434680">Oddialiť</translation> @@ -741,6 +745,7 @@ <translation id="6071091556643036997">Tento typ pravidiel je neplatný.</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{Táto karta bude uložená do vášho účtu Google na zrýchlenie platieb v zariadeniach.}few{Tieto karty budú uložené do vášho účtu Google na zrýchlenie platieb v zariadeniach.}many{Tieto karty budú uložené do vášho účtu Google na zrýchlenie platieb v zariadeniach.}other{Tieto karty budú uložené do vášho účtu Google na zrýchlenie platieb v zariadeniach.}}</translation> <translation id="6080696365213338172">K obsahu ste pristúpili pomocou certifikátu, ktorý poskytol správca. Údaje, ktoré poskytnete doméne <ph name="DOMAIN" /> môžu byť zachytené správcom.</translation> +<translation id="6096619198407627433">Odhlási vás z väčšiny webov, ale nie z účtu Google. Môžete stratiť prístup k chránenému obsahu z webu <ph name="SITE" /> a niektorých ďalších webov.</translation> <translation id="610911394827799129">Váš účet Google môže mať ďalšie formy histórie prehliadania na adrese <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation> <translation id="6144381551823904650">{COUNT,plural, =0{Žiadne}=1{1 heslo (synchronizované)}few{# heslá (synchronizované)}many{# hesla (synchronizované)}other{# hesiel (synchronizované)}}</translation> <translation id="6146055958333702838">Skontrolujte všetky káble a reštartujte všetky používané smerovače, modemy alebo iné sieťové zariadenia.</translation> @@ -811,6 +816,7 @@ <translation id="6710594484020273272"><Zadajte hľadaný výraz></translation> <translation id="6711464428925977395">Vyskytol sa problém s proxy serverom alebo je adresa nesprávna.</translation> <translation id="674375294223700098">Neznáma chyba spôsobená certifikátom servera.</translation> +<translation id="6744009308914054259">Zatiaľ čo čakáte na pripojenie, môžete prejsť do priečinka stiahnutých súborov a prečítať si články v režime offline.</translation> <translation id="6753269504797312559">Hodnota pravidla</translation> <translation id="6757797048963528358">Vaše zariadenie prešlo do režimu spánku.</translation> <translation id="6778737459546443941">Váš rodič to zatiaľ neschválil</translation> @@ -841,6 +847,7 @@ <translation id="6965978654500191972">Zariadenie</translation> <translation id="6970216967273061347">Obvod</translation> <translation id="6973656660372572881">Určené sú pevne dané servery proxy aj skript PAC webovej adresy.</translation> +<translation id="6979158407327259162">Disk Google</translation> <translation id="6979440798594660689">Ignorovať (predvolené)</translation> <translation id="6984479912851154518">Ak zaplatíte pomocou externej aplikácie, opustíte režim inkognito. Chcete pokračovať?</translation> <translation id="6989763994942163495">Zobraziť rozšírené nastavenia...</translation> @@ -907,6 +914,7 @@ <translation id="7416351320495623771">Spravovať heslá…</translation> <translation id="7419106976560586862">Cesta profilu</translation> <translation id="7437289804838430631">Pridať kontaktné informácie</translation> +<translation id="7440140511386898319">Prieskum v režime offline</translation> <translation id="7441627299479586546">Chybný predmet pravidla</translation> <translation id="7444046173054089907">Tento web je blokovaný</translation> <translation id="7445762425076701745">Identita servera, ku ktorému ste pripojení, sa nedá úplne overiť. Ste pripojení k serveru, ktorý používa názov platný iba v rámci vašej siete. Externá certifikačná autorita nemôže vlastníctvo názvu nijakým spôsobom overiť. Niektoré certifikačné autority však vydajú certifikát aj pre takéto názvy, a preto sa nedá zaručiť, že ste pripojení k požadovaným webovým stránkam a nie k stránkam útočníka.</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb index 5b5aac0a..07d7272b 100644 --- a/components/strings/components_strings_sl.xtb +++ b/components/strings/components_strings_sl.xtb
@@ -579,7 +579,7 @@ <translation id="495170559598752135">Dejanja</translation> <translation id="4958444002117714549">Razširi seznam</translation> <translation id="4974590756084640048">Vnovično omogočanje opozoril</translation> -<translation id="4988217478422488391">Hitrejše plačevanje stvari v spletu</translation> +<translation id="4988217478422488391">Hitrejše plačevanje v spletu</translation> <translation id="4989809363548539747">Ta vtičnik ni podprt</translation> <translation id="5002932099480077015">Če je to omogočeno, Chrome shrani kopijo kartice v tej napravi zaradi hitrejšega izpolnjevanja obrazcev.</translation> <translation id="5018422839182700155">Te strani ni mogoče odpreti</translation> @@ -723,7 +723,7 @@ <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 v uporabi}one{# v uporabi}two{# v uporabi}few{# v uporabi}other{# v uporabi}}</translation> <translation id="5922853866070715753">Skoraj končano</translation> <translation id="5939518447894949180">Ponastavi</translation> -<translation id="5951495562196540101">S potrošniškim računom se ni mogoče včlaniti (na voljo je zapakirana licenca).</translation> +<translation id="5951495562196540101">S potrošniškim računom se ni mogoče včlaniti (na voljo je pridružena licenca).</translation> <translation id="5967592137238574583">Urejanje podatkov o stiku</translation> <translation id="5967867314010545767">Odstrani iz zgodovine</translation> <translation id="5975083100439434680">Pomanjšaj</translation> @@ -846,6 +846,7 @@ <translation id="6965978654500191972">Naprava</translation> <translation id="6970216967273061347">Okraj</translation> <translation id="6973656660372572881">Določeni so stalni strežniki proxy in URL skripta .pac.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Izklop zvoka (privzeto)</translation> <translation id="6984479912851154518">Zaradi plačila v zunanji aplikaciji boste zapustili zasebni način. Želite nadaljevati?</translation> <translation id="6989763994942163495">Prikaži dodatne nastavitve ...</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb index ef3bd838..afe304ff 100644 --- a/components/strings/components_strings_sr.xtb +++ b/components/strings/components_strings_sr.xtb
@@ -845,6 +845,7 @@ <translation id="6965978654500191972">Уређај</translation> <translation id="6970216967273061347">Дистрикт</translation> <translation id="6973656660372572881">Наведени су и фиксни прокси сервери и URL адреса .pac скрипте.</translation> +<translation id="6979158407327259162">Google диск</translation> <translation id="6979440798594660689">Искључен (подразумевано)</translation> <translation id="6984479912851154518">Напустићете режим приватног прегледања да бисте платили у спољној апликацији. Желите ли да наставите?</translation> <translation id="6989763994942163495">Прикажи напредна подешавања...</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb index 6bba468..3a0b40a2 100644 --- a/components/strings/components_strings_sv.xtb +++ b/components/strings/components_strings_sv.xtb
@@ -846,6 +846,7 @@ <translation id="6965978654500191972">Enhet</translation> <translation id="6970216967273061347">Distrikt</translation> <translation id="6973656660372572881">Både fasta proxyservrar och en webbadress för PAC-skript anges.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Ljud av (standard)</translation> <translation id="6984479912851154518">Om du betalar i en extern app sker inte det i privat läge. Vill du fortsätta?</translation> <translation id="6989763994942163495">Visa avancerade inställningar ...</translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb index e94452d..5efea3ff 100644 --- a/components/strings/components_strings_sw.xtb +++ b/components/strings/components_strings_sw.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">Seva hii haikuweza kuthibitisha kuwa ni <ph name="DOMAIN" />; cheti chake cha usalama hakiaminiwi na mfumo wa uendeshaji wa kompyuta yako. Hii inaweza kusababishwa na usanidi usiofaa au mvamizi kuingilia muunganisho wako.</translation> <translation id="1151972924205500581">Nenosiri linahitajika</translation> <translation id="1152921474424827756">Fikia <ph name="BEGIN_LINK" />nakala iliyowekwa kwenye akiba<ph name="END_LINK" /> ya <ph name="URL" /></translation> +<translation id="1156303062776767266">Unaangalia faili ya mfumo au iliyoshirikiwa</translation> <translation id="1158211211994409885"><ph name="HOST_NAME" /> imefunga muunganisho bila kutarajiwa.</translation> <translation id="1161325031994447685">Kuunganisha tena kwenye Wi-Fi</translation> <translation id="1165039591588034296">Hitilafu</translation> @@ -534,6 +535,7 @@ <translation id="4592951414987517459">Muunganisho wako kwenye <ph name="DOMAIN" /> umesimbwa kwa njia fiche kwa kutumia mipangilio ya kriptografia ya kisasa.</translation> <translation id="4594403342090139922">Tendua Kufuta</translation> <translation id="4619615317237390068">Vichupo kutoka kwenye vifaa vingine</translation> +<translation id="4646534391647090355">Nipeleke kwenye sehemu hiyo sasa</translation> <translation id="4668929960204016307">,</translation> <translation id="467662567472608290">Seva hii haikuweza kuthibitisha kuwa ni <ph name="DOMAIN" />; cheti chake cha usalama kina hitilafu. Hii inaweza kusababishwa na usanidi usiofaa au mvamizi kuingilia muunganisho wako.</translation> <translation id="4690462567478992370">Acha kutumia cheti kisicho sahihi</translation> @@ -580,6 +582,7 @@ <translation id="4958444002117714549">Panua orodha</translation> <translation id="4974590756084640048">Onyesha maonyo tena</translation> <translation id="4988217478422488391">Huharakisha mchakato wa kulipia bidhaa mtandoani</translation> +<translation id="4989163558385430922">Angalia vyote</translation> <translation id="4989809363548539747">Programu-jalizi hii haitumiki</translation> <translation id="5002932099480077015">Ikiwashwa, Chrome itahifadhi nakala ya kadi yako kwenye kifaa hiki kwa ajili ya kujaza fomu haraka zaidi.</translation> <translation id="5018422839182700155">Ukurasa huu haufunguki</translation> @@ -723,7 +726,8 @@ <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{1 kinatumika}other{ # vinatumika}}</translation> <translation id="5922853866070715753">Unakaribia kumaliza</translation> <translation id="5939518447894949180">Weka upya</translation> -<translation id="5951495562196540101">Huwezi kujiandikisha ukitumia akaunti ya mteja (leseni ya bidhaa iliyofungashwa inapatikana).</translation> +<translation id="5951495562196540101">Huwezi kujiandikisha ukitumia akaunti ya mteja (ina leseni ya kifurushi).</translation> +<translation id="5966151627327109289">Itakuondoa kwenye akaunti ya tovuti nyingi. Huenda utapoteza idhini ya kufikia maudhui yanayolindwa kwenye <ph name="SITE" /> na tovuti nyingine.</translation> <translation id="5967592137238574583">Badilisha Maelezo ya Mawasiliano</translation> <translation id="5967867314010545767">Ondoa kwenye historia</translation> <translation id="5975083100439434680">Fifiza</translation> @@ -745,6 +749,7 @@ <translation id="6071091556643036997">Aina ya sera si sahihi.</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{Tutahifadhi kadi hii kwenye Akaunti yako ya Google ili uweze kuifikia kwa haraka katika vifaa vyote.}other{Tutahifadhi kadi hizi kwenye Akaunti yako ya Google ili uweze kuzifikia kwa haraka katika vifaa vyote.}}</translation> <translation id="6080696365213338172">Umefikia maudhui kwa kutumia cheti kilichotolewa cha msimamizi. Data unayotoa katika <ph name="DOMAIN" /> inaweza kuzuiliwa na msimamizi wako.</translation> +<translation id="6096619198407627433">Itakuondoa kwenye akaunti za tovuti nyingi. Hutaondolewa kwenye Akaunti ya Google. Huenda utapoteza idhini ya kufikia maudhui yaliyolindwa kwenye <ph name="SITE" /> na tovuti nyingine.</translation> <translation id="610911394827799129">Huenda Akaunti yako ya Google ina aina nyingine za historia ya kuvinjari katika <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> <translation id="6144381551823904650">{COUNT,plural, =0{Hamna}=1{Nenosiri 1 (limesawazishwa)}other{Manenosiri # (yamesawazishwa)}}</translation> <translation id="6146055958333702838">Angalia kebo zozote na uwashe tena kisambaza data, modemu, au vifaa vingine vyovyote vya @@ -816,6 +821,7 @@ <translation id="6710594484020273272"><Andika neno unalotaka kutafuta></translation> <translation id="6711464428925977395">Kuna hitilafu katika seva mbadala, au anwani siyo sahihi.</translation> <translation id="674375294223700098">Hitilafu isiyojulikana ya cheti cha seva.</translation> +<translation id="6744009308914054259">Wakati unasubiri muunganisho, unaweza kutembelea Vipakuliwa ili usome makala yaliyo nje ya mtandao.</translation> <translation id="6753269504797312559">Thamani ya sera</translation> <translation id="6757797048963528358">Kifaa chako kiko katika hali tuli.</translation> <translation id="6778737459546443941">Mzazi wako bado hajaiidhinisha</translation> @@ -846,6 +852,7 @@ <translation id="6965978654500191972">Kifaa</translation> <translation id="6970216967273061347">Wilaya</translation> <translation id="6973656660372572881">Seva zote za proksi thabiti na URL ya hati ya .pac zimebainishwa.</translation> +<translation id="6979158407327259162">Hifadhi ya Google</translation> <translation id="6979440798594660689">Zima (chaguomsingi)</translation> <translation id="6984479912851154518">Unafunga hali ya faragha ili ulipe kupitia programu ya nje. Ungependa kuendelea?</translation> <translation id="6989763994942163495">Onyesha mipangilio ya kina...</translation> @@ -910,6 +917,7 @@ <translation id="7416351320495623771">Dhibiti Manenosiri…</translation> <translation id="7419106976560586862">Kijia cha Maelezo mafupi</translation> <translation id="7437289804838430631">Ongeza Maelezo ya Mawasiliano</translation> +<translation id="7440140511386898319">Gundua ukiwa nje ya mtandao</translation> <translation id="7441627299479586546">Kichwa cha sera kisichofaa</translation> <translation id="7444046173054089907">Tovuti hii imezuiwa</translation> <translation id="7445762425076701745">Utambulisho wa seva ambayo umejiunga kwayo hauwezi kuhalalishwa kikamilifu. Umeunganishwa kwenye seva kwa kutumia jina ambalo ni halali tu katika mtandao wako, ambalo mamlaka ya cheti cha nje hayana njia ya kuhalalisha umiliki wake. Kama baadhi ya mamlaka ya cheti yatatoa vyeti vya majina haya bila kujali, hakuna njia ya kuhakikisha umeunganishwa kwenye tovuti inayohitajika na sio mshambulizi.</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb index c3b66f6..866a798 100644 --- a/components/strings/components_strings_ta.xtb +++ b/components/strings/components_strings_ta.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">இது <ph name="DOMAIN" /> தான் என்பதை இந்தச் சேவையகம் உறுதிப்படுத்தவில்லை; இதன் பாதுகாப்புச் சான்றிதழை உங்கள் கணினியின் இயக்க முறைமை நம்பவில்லை. இது தவறான உள்ளமைவால் ஏற்பட்டிருக்கலாம் அல்லது தீங்கிழைப்பவர் உங்கள் இணைப்பில் குறுக்கிட்டிருக்கலாம்.</translation> <translation id="1151972924205500581">கடவுச்சொல் தேவை</translation> <translation id="1152921474424827756"><ph name="URL" /> இன் <ph name="BEGIN_LINK" />உருவாக்கத்திற்கான தற்காலிகச் சேமிப்பு நகலை<ph name="END_LINK" /> அணுகவும்</translation> +<translation id="1156303062776767266">அகக் கோப்பு அல்லது பகிரப்பட்ட கோப்பைப் பார்க்கிறீர்கள்</translation> <translation id="1158211211994409885"><ph name="HOST_NAME" /> எதிர்பாராத விதமாக இணைப்பை நிறுத்தியது.</translation> <translation id="1161325031994447685">வைஃபையுடன் மீண்டும் இணைத்தல்</translation> <translation id="1165039591588034296">பிழை</translation> @@ -378,7 +379,7 @@ <translation id="3528171143076753409">சேவையகச் சான்றிதழ் நம்பப்படவில்லை.</translation> <translation id="3530944546672790857">{COUNT,plural, =0{ஒத்திசைத்த சாதனங்களில் குறைந்தது 1 உருப்படி உள்ளது}=1{1 உருப்படி (ஒத்திசைத்த சாதனங்களில் இதற்கு மேல் உள்ளன)}other{# உருப்படிகள் (ஒத்திசைத்த சாதனங்களில் இதற்கு மேல் உள்ளன)}}</translation> <translation id="3539171420378717834">இந்தக் கார்டின் பிரதியை சாதனத்தில் சேமி</translation> -<translation id="3549644494707163724">உங்கள் சொந்த ஒத்திசைவு கடவுச்சொற்றொடர் மூலம் எல்லா தரவையும் என்க்ரிப்ட் செய்யவும்</translation> +<translation id="3549644494707163724">உங்கள் சொந்த ஒத்திசைவுக் கடவுச்சொற்றொடர் மூலம் எல்லா தரவையும் என்க்ரிப்ட் செய்யும்</translation> <translation id="3556433843310711081">உங்களுக்காக, தளத்தின் தடுப்பை உங்கள் நிர்வாகி நீக்க முடியும்</translation> <translation id="3566021033012934673">உங்கள் இணைப்பு தனிப்பட்டது அல்ல</translation> <translation id="3574305903863751447"><ph name="CITY" />, <ph name="STATE" /> <ph name="COUNTRY" /></translation> @@ -531,6 +532,7 @@ <translation id="4592951414987517459">நவீன சைபர் சூட்டைப் பயன்படுத்தி <ph name="DOMAIN" /> உடனான உங்கள் இணைப்பு என்க்ரிப்ட் செய்யப்பட்டது.</translation> <translation id="4594403342090139922">&நீக்குதலைச் செயல்தவிர்</translation> <translation id="4619615317237390068">பிற சாதனங்களின் தாவல்கள்</translation> +<translation id="4646534391647090355">இப்போது என்னை அங்கு அழைத்துச் செல்</translation> <translation id="4668929960204016307">,</translation> <translation id="467662567472608290">இது <ph name="DOMAIN" /> தான் என்பதை இந்தச் சேவையகம் உறுதிப்படுத்தவில்லை; இதன் பாதுகாப்புச் சான்றிதழில் பிழைகள் உள்ளன. இது தவறான உள்ளமைவால் ஏற்பட்டிருக்கலாம் அல்லது தீங்கிழைப்பவர் உங்கள் இணைப்பில் குறுக்கிட்டிருக்கலாம்.</translation> <translation id="4690462567478992370">தவறான சான்றிதழைப் பயன்படுத்துவதை நிறுத்து</translation> @@ -577,6 +579,7 @@ <translation id="4958444002117714549">பட்டியலை விரி</translation> <translation id="4974590756084640048">எச்சரிக்கைகளை மீண்டும் இயக்கு</translation> <translation id="4988217478422488391">ஆன்லைனில் விரைவாகக் கட்டணங்களைச் செலுத்தலாம்</translation> +<translation id="4989163558385430922">எல்லாம் காட்டு</translation> <translation id="4989809363548539747">இந்தச் செருகுநிரல் ஆதரிக்கப்படவில்லை</translation> <translation id="5002932099480077015">இயக்கப்பட்டால், விரைவாகப் படிவத்தை நிரப்ப உங்கள் கார்டின் நகலை இச்சாதனத்தில் Chrome சேமித்து வைக்கும்.</translation> <translation id="5018422839182700155">பக்கத்தைத் திறக்க முடியவில்லை</translation> @@ -601,14 +604,14 @@ <translation id="5121084798328133320">உறுதிசெய்த பின்னர், உங்கள் Google Payments கணக்கிலிருக்கும் கார்டு விவரங்கள் இந்தத் தளத்துடன் பகிரப்படும்.</translation> <translation id="5128122789703661928">இந்தப் பெயரைக் கொண்ட அமர்வானது நீக்குவதற்குத் தகுதியானதல்ல.</translation> <translation id="5135404736266831032">முகவரிகளை நிர்வகி...</translation> -<translation id="5141240743006678641">ஒத்திசைக்கப்பட்ட கடவுச்சொற்களை உங்கள் Google நற்சான்றுகள் மூலம் என்க்ரிப்ட் செய்யவும்</translation> +<translation id="5141240743006678641">ஒத்திசைக்கப்பட்ட கடவுச்சொற்களை உங்கள் Google அனுமதிச் சான்றுகள் மூலம் என்க்ரிப்ட் செய்யும்</translation> <translation id="5145883236150621069">கொள்கைப் பதிலில் பிழைக் குறியீடு உள்ளது</translation> <translation id="5159010409087891077">புதிய மறைநிலைச் சாளரத்தில் பக்கத்தைத் திறக்கவும் (⇧⌘N)</translation> <translation id="5169827969064885044">உங்கள் நிறுவனத்தின் கணக்கிற்கான அணுகலை நீங்கள் இழக்கக்கூடும் அல்லது அடையாளத் திருட்டை எதிர்கொள்ளக்கூடும். இப்போதே உங்கள் கடவுச்சொல்லை மாற்றும்படி Chrome பரிந்துரைக்கிறது.</translation> <translation id="5171045022955879922">தேடுக அல்லது URL-ஐத் தட்டச்சு செய்க</translation> <translation id="5172758083709347301">இயந்திரம்</translation> <translation id="5179510805599951267"><ph name="ORIGINAL_LANGUAGE" /> இல் இல்லையா? இந்தப் பிழையை தெரிவிக்கவும்</translation> -<translation id="5190835502935405962">புக்மார்க்குகள் பட்டி</translation> +<translation id="5190835502935405962">புக்மார்க் பட்டி</translation> <translation id="5201306358585911203">இந்தப் பக்கத்திலுள்ள உட்பொதிக்கப்பட்ட பக்கம் தெரிவிப்பது:</translation> <translation id="5205222826937269299">பெயர் தேவை</translation> <translation id="5215116848420601511">Google Payவைப் பயன்படுத்தும் கட்டண முறைகளும் முகவரிகளும்</translation> @@ -721,6 +724,7 @@ <translation id="5922853866070715753">கிட்டத்தட்ட முடிந்துவிட்டது</translation> <translation id="5939518447894949180">மீட்டமை</translation> <translation id="5951495562196540101">நுகர்வோர் கணக்கில் பதிவுசெய்ய முடியவில்லை (தொகுக்கப்பட்ட உரிமம் உள்ளது).</translation> +<translation id="5966151627327109289">பெரும்பாலான தளங்களிலிருந்து உங்களை வெளியேற்றும். <ph name="SITE" /> மற்றும் சில தளங்களின் பாதுகாக்கப்பட்ட உள்ளடக்கத்திற்கான அணுகலை நீங்கள் இழக்கக்கூடும்.</translation> <translation id="5967592137238574583">தொடர்புத் தகவலைத் திருத்தவும்</translation> <translation id="5967867314010545767">வரலாற்றிலிருந்து அகற்று</translation> <translation id="5975083100439434680">சிறிதாக்கு</translation> @@ -742,6 +746,7 @@ <translation id="6071091556643036997">கொள்கை வகை செல்லுபடியாகவில்லை.</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{சாதனங்களில் வேகமாகச் செக் அவுட் செய்வதற்காக, இந்தக் கார்டு உங்கள் Google கணக்கில் சேமிக்கப்படும்.}other{சாதனங்களில் வேகமாகச் செக் அவுட் செய்வதற்காக, இந்தக் கார்டுகள் உங்கள் Google கணக்கில் சேமிக்கப்படும்.}}</translation> <translation id="6080696365213338172">நிர்வாகி வழங்கிய சான்றிதழைப் பயன்படுத்தி உள்ளடக்கத்தை அணுகியுள்ளீர்கள். <ph name="DOMAIN" /> க்கு நீங்கள் வழங்கிய தரவானது உங்கள் நிர்வாகியால் இடைமறிக்கப்படலாம்.</translation> +<translation id="6096619198407627433">பெரும்பாலான தளங்களிலிருந்து உங்களை வெளியேற்றும். உங்கள் Google கணக்கிலிருந்து வெளியேற்றப்பட மாட்டீர்கள். <ph name="SITE" /> மற்றும் சில தளங்களின் பாதுகாக்கப்பட்ட உள்ளடக்கத்திற்கான அணுகலை நீங்கள் இழக்கக்கூடும்.</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> <translation id="6146055958333702838">கேபிள்களைச் சரிபார்த்து, நீங்கள் பயன்படுத்தக்கூடிய ரூட்டர்கள், மோடம்கள் அல்லது பிற நெட்வொர்க் சாதனங்களை மறுபடி தொடங்கவும்.</translation> @@ -812,6 +817,7 @@ <translation id="6710594484020273272"><தேடல் வார்த்தையை உள்ளிடுக></translation> <translation id="6711464428925977395">ப்ராக்ஸி சர்வரில் ஏதோ தவறு உள்ளது அல்லது முகவரி தவறாக உள்ளது.</translation> <translation id="674375294223700098">தெரியாத சேவையகச் சான்றிதழ் பிழை.</translation> +<translation id="6744009308914054259">இணைப்புக்காகக் காத்திருக்கும்போது ஆஃப்லைன் கட்டுரைகளைப் படிக்க, ‘பதிவிறக்கங்கள்’ என்பதைப் பார்க்கவும்.</translation> <translation id="6753269504797312559">கொள்கை மதிப்பு</translation> <translation id="6757797048963528358">உங்கள் சாதனம் உறக்கநிலைக்குச் சென்றது.</translation> <translation id="6778737459546443941">இன்னும் உங்கள் பெற்றோர் அனுமதிக்கவில்லை</translation> @@ -842,6 +848,7 @@ <translation id="6965978654500191972">சாதனம்</translation> <translation id="6970216967273061347">மாவட்டம்</translation> <translation id="6973656660372572881">நிலையான ப்ராக்ஸி சேவையகங்களும் .pac ஸ்கிரிப்ட் URL ஆகிய இரண்டும் குறிப்பிடப்பட்டுள்ளது.</translation> +<translation id="6979158407327259162">Google இயக்ககம்</translation> <translation id="6979440798594660689">முடக்கு (இயல்பு)</translation> <translation id="6984479912851154518">மூன்றாம் தரப்பு ஆப்ஸின் மூலம் பணத்தைச் செலுத்த, மறைநிலையிலிருந்து வெளியேறுகிறது. தொடரவா?</translation> <translation id="6989763994942163495">மேம்பட்ட அமைப்புகளைக் காண்பி...</translation> @@ -908,6 +915,7 @@ <translation id="7416351320495623771">கடவுச்சொற்களை நிர்வகி…</translation> <translation id="7419106976560586862">சுயவிவரப் பாதை</translation> <translation id="7437289804838430631">தொடர்புத் தகவலைச் சேர்</translation> +<translation id="7440140511386898319">ஆஃப்லைன் உள்ளடக்கப் பட்டியல்</translation> <translation id="7441627299479586546">தவறான கொள்கைத் தலைப்பு</translation> <translation id="7444046173054089907">இந்தத் தளம் தடுக்கப்பட்டது</translation> <translation id="7445762425076701745">நீங்கள் இணைந்துள்ள சேவையகத்தின் அடையாளத்தை முழுமையாகச் சரிபார்க்க முடியவில்லை. உங்கள் நெட்வொர்க்கில் மட்டுமே செல்லுபடியாகும் பெயரைப் பயன்படுத்தி சேவையகத்துடன் இணைந்துள்ளீர்கள். இதன் உரிமையை ஒரு வெளிப்புற சான்றிதழ் மையம் உறுதிப்படுத்த முடியாது. சில சான்றிதழ் மையங்கள், இந்தப் பெயர்களுக்கும் சான்றிதழ்களை வழங்கும் என்பதால், நீங்கள் நினைத்த வலைப்பக்கத்துடனே இணைந்துள்ளீர்கள் என்பதையும் ஏதேனும் மோசடி தளத்துடன் இணையவில்லை என்பதையும் உறுதிப்படுத்த எந்த வழியும் இல்லை.</translation> @@ -967,7 +975,7 @@ <translation id="7758069387465995638">தீச்சுவர் அல்லது வைரஸ்தடுப்பு மென்பொருள் உங்கள் இணைப்பைத் தடுத்திருக்கலாம்.</translation> <translation id="7759163816903619567">காட்சி டொமைன்:</translation> <translation id="7761701407923456692">சேவையகச் சான்றிதழ் URL உடன் பொருந்தவில்லை.</translation> -<translation id="7763386264682878361">பேமெண்ட் மேனிஃபெஸ்ட் பாகுபடுத்தி</translation> +<translation id="7763386264682878361">பேமெண்ட் மெனிஃபெஸ்ட் பாகுபடுத்தி</translation> <translation id="7764225426217299476">முகவரியைச் சேர்</translation> <translation id="777702478322588152">ப்ரீஃபெக்சர்</translation> <translation id="7791543448312431591">சேர்</translation> @@ -1175,7 +1183,7 @@ <translation id="935608979562296692">படிவத்தை அழி</translation> <translation id="939736085109172342">புதிய கோப்புறை</translation> <translation id="951104842009476243">ஏற்கப்படும் டெபிட் மற்றும் ப்ரீபெய்டு கார்டுகள்</translation> -<translation id="962484866189421427">இந்த உள்ளடக்கம், வேறொரு பிரபல ஆப்ஸ் போல தோற்றமளிக்கக்கூடிய அல்லது உங்களை ட்ராக் செய்யப் பயன்படுத்தக்கூடிய தரவைச் சேகரிக்கும் போலியான ஆப்ஸை நிறுவ முயலலாம். <ph name="BEGIN_LINK" />பரவாயில்லை, பக்கத்தைக் காட்டு<ph name="END_LINK" /></translation> +<translation id="962484866189421427">இந்த உள்ளடக்கம், வேறொரு பிரபல ஆப்ஸ் போலத் தோற்றமளிக்கக்கூடிய அல்லது உங்களைக் கண்காணிக்கப் பயன்படுத்தக்கூடிய தரவைச் சேகரிக்கும் போலியான ஆப்ஸை நிறுவ முயலலாம். <ph name="BEGIN_LINK" />பரவாயில்லை, பக்கத்தைக் காட்டு<ph name="END_LINK" /></translation> <translation id="969892804517981540">அதிகாரப்பூர்வ கட்டமைப்பு</translation> <translation id="973773823069644502">டெலிவரி முகவரியைச் சேர்</translation> <translation id="975560348586398090">{COUNT,plural, =0{ஏதுமில்லை}=1{1 உருப்படி}other{# உருப்படிகள்}}</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb index 9830511e..eb4587e7 100644 --- a/components/strings/components_strings_te.xtb +++ b/components/strings/components_strings_te.xtb
@@ -579,7 +579,7 @@ <translation id="495170559598752135">చర్యలు</translation> <translation id="4958444002117714549">జాబితాను విస్తరించు</translation> <translation id="4974590756084640048">హెచ్చరికలను మళ్లీ ప్రారంభించు</translation> -<translation id="4988217478422488391">అంశాల కోసం ఆన్లైన్లో చెల్లించడం వేగవంతం చేస్తుంది</translation> +<translation id="4988217478422488391">వస్తువుల కొనుగోళ్ల విషయంలో ఆన్లైన్లో చెల్లించడం వేగవంతం చేస్తుంది</translation> <translation id="4989809363548539747">ఈ ప్లగిన్కు మద్దతు లేదు</translation> <translation id="5002932099480077015">ప్రారంభిస్తే, వేగవంతమైన ఫారమ్ పూరింపు కోసం Chrome ఈ పరికరంలో మీ కార్డ్ కాపీని నిల్వ చేస్తుంది.</translation> <translation id="5018422839182700155">ఈ పేజీని తెరవడం సాధ్యపడదు</translation> @@ -846,6 +846,7 @@ <translation id="6965978654500191972">పరికరం</translation> <translation id="6970216967273061347">జిల్లా</translation> <translation id="6973656660372572881">రెండు స్థిర ప్రాక్సీ సర్వర్లు మరియు ఒక .pac స్క్రిప్ట్ URL పేర్కొనబడ్డాయి.</translation> +<translation id="6979158407327259162">Google డిస్క్</translation> <translation id="6979440798594660689">మ్యూట్ (డిఫాల్ట్)</translation> <translation id="6984479912851154518">బాహ్య అప్లికేషన్ ద్వారా చెల్లించడానికి ప్రైవేట్ మోడ్ నుండి నిష్క్రమిస్తోంది. కొనసాగించాలా?</translation> <translation id="6989763994942163495">అధునాతన సెట్టింగ్లను చూపించు...</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb index eb3a968..159b0c5 100644 --- a/components/strings/components_strings_th.xtb +++ b/components/strings/components_strings_th.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">เซิร์ฟเวอร์นี้ไม่สามารถพิสูจน์ได้ว่าเป็น <ph name="DOMAIN" /> เพราะระบบปฏิบัติการของคอมพิวเตอร์ของคุณไม่เชื่อถือใบรับรองความปลอดภัย โดยอาจเกิดจากการกำหนดค่าผิดหรือผู้บุกรุกที่ขัดขวางการเชื่อมต่อของคุณ</translation> <translation id="1151972924205500581">ต้องมีรหัสผ่าน</translation> <translation id="1152921474424827756">เข้าถึง<ph name="BEGIN_LINK" />สำเนาแคช<ph name="END_LINK" />ของ <ph name="URL" /></translation> +<translation id="1156303062776767266">คุณกำลังดูไฟล์ในเครื่องหรือไฟล์ที่แชร์</translation> <translation id="1158211211994409885"><ph name="HOST_NAME" /> ปิดการเชื่อมต่อโดยไม่คาดคิด</translation> <translation id="1161325031994447685">เชื่อมต่อ Wi-Fi ใหม่</translation> <translation id="1165039591588034296">ข้อผิดพลาด</translation> @@ -534,6 +535,7 @@ <translation id="4592951414987517459">มีการเข้ารหัสการเชื่อมต่อของคุณกับ <ph name="DOMAIN" /> ด้วยชุดการเข้ารหัสที่ทันสมัย</translation> <translation id="4594403342090139922">&เลิกทำการนำออก</translation> <translation id="4619615317237390068">แท็บจากอุปกรณ์อื่นๆ</translation> +<translation id="4646534391647090355">พาฉันไปที่นั่นเลย</translation> <translation id="4668929960204016307">,</translation> <translation id="467662567472608290">เซิร์ฟเวอร์นี้ไม่สามารถพิสูจน์ได้ว่าเป็น <ph name="DOMAIN" /> เพราะใบรับรองความปลอดภัยมีข้อผิดพลาด โดยอาจเกิดจากการกำหนดค่าผิดหรือผู้บุกรุกที่ขัดขวางการเชื่อมต่อของคุณ</translation> <translation id="4690462567478992370">หยุดใช้ใบรับรองที่ไม่ถูกต้อง</translation> @@ -580,6 +582,7 @@ <translation id="4958444002117714549">ขยายรายการ</translation> <translation id="4974590756084640048">เปิดใช้คำเตือนอีกครั้ง</translation> <translation id="4988217478422488391">ช่วยให้ชำระเงินออนไลน์ได้เร็วขึ้น</translation> +<translation id="4989163558385430922">ดูทั้งหมด</translation> <translation id="4989809363548539747">ไม่รองรับปลั๊กอินนี้</translation> <translation id="5002932099480077015">หากเปิดใช้ Chrome จะเก็บสำเนาการ์ดของคุณในอุปกรณ์นี้เพื่อให้การกรอกฟอร์มทำได้เร็วขึ้น</translation> <translation id="5018422839182700155">ไม่สามารถเปิดหน้านี้</translation> @@ -724,6 +727,7 @@ <translation id="5922853866070715753">เกือบเสร็จแล้ว</translation> <translation id="5939518447894949180">รีเซ็ต</translation> <translation id="5951495562196540101">ลงทะเบียนด้วยบัญชีผู้ใช้ทั่วไปไม่ได้ (มีใบอนุญาตแบบแพ็กเกจ)</translation> +<translation id="5966151627327109289">นำคุณออกจากระบบของเว็บไซต์ส่วนใหญ่ คุณอาจสูญเสียสิทธิ์เข้าถึงเนื้อหาที่มีการคุ้มครองจาก <ph name="SITE" /> และเว็บไซต์อื่นๆ บางเว็บ</translation> <translation id="5967592137238574583">แก้ไขข้อมูลติดต่อ</translation> <translation id="5967867314010545767">ลบจากประวัติการเข้าชม</translation> <translation id="5975083100439434680">ย่อ</translation> @@ -745,6 +749,7 @@ <translation id="6071091556643036997">ประเภทนโยบายไม่ถูกต้อง</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{ระบบจะบันทึกบัตรใบนี้ลงในบัญชี Google ของคุณเพื่อการชำระเงินที่เร็วขึ้นในอุปกรณ์ทุกเครื่อง}other{ระบบจะบันทึกบัตรเหล่านี้ลงในบัญชี Google ของคุณเพื่อการชำระเงินที่เร็วขึ้นในอุปกรณ์ทุกเครื่อง}}</translation> <translation id="6080696365213338172">คุณเข้าถึงเนื้อหาโดยใช้ใบรับรองที่ผู้ดูแลระบบออกให้ ข้อมูลที่คุณให้กับ <ph name="DOMAIN" /> อาจถูกสกัดกั้นโดยผู้ดูแลระบบ</translation> +<translation id="6096619198407627433">นำคุณออกจากระบบของเว็บไซต์ส่วนใหญ่ แต่คุณจะไม่ออกจากระบบบัญชี Google คุณอาจสูญเสียสิทธิ์เข้าถึงเนื้อหาที่มีการคุ้มครองจาก <ph name="SITE" /> และเว็บไซต์อื่นๆ บางเว็บ</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> <translation id="6146055958333702838">ตรวจสายเคเบิลและรีบูตเราเตอร์ โมเด็ม หรืออุปกรณ์เครือข่ายอื่น @@ -816,6 +821,7 @@ <translation id="6710594484020273272"><พิมพ์ข้อความค้นหา></translation> <translation id="6711464428925977395">พร็อกซีเซิร์ฟเวอร์ผิดปกติหรือที่อยู่ไม่ถูกต้อง</translation> <translation id="674375294223700098">ข้อผิดพลาดใบรับรองของเซิร์ฟเวอร์ที่ไม่รู้จัก</translation> +<translation id="6744009308914054259">ระหว่างที่รอการเชื่อมต่อ คุณไปที่หน้า "ดาวน์โหลด" เพื่ออ่านบทความออฟไลน์ได้</translation> <translation id="6753269504797312559">ค่านโยบาย</translation> <translation id="6757797048963528358">อุปกรณ์ของคุณเข้าสู่โหมดสลีปแล้ว</translation> <translation id="6778737459546443941">ผู้ปกครองยังไม่ได้อนุมัติเว็บไซต์นี้</translation> @@ -846,6 +852,7 @@ <translation id="6965978654500191972">อุปกรณ์</translation> <translation id="6970216967273061347">เขต</translation> <translation id="6973656660372572881">มีการระบุทั้งพร็อกซีเซิร์ฟเวอร์แบบคงที่และ URL สคริปต์ .pac ไว้</translation> +<translation id="6979158407327259162">Google ไดรฟ์</translation> <translation id="6979440798594660689">ปิดเสียง (ค่าเริ่มต้น)</translation> <translation id="6984479912851154518">ออกจากโหมดส่วนตัวเพื่อชำระเงินผ่านแอปพลิเคชันภายนอก ดำเนินการต่อไหม</translation> <translation id="6989763994942163495">แสดงการตั้งค่าขั้นสูง...</translation> @@ -912,6 +919,7 @@ <translation id="7416351320495623771">จัดการรหัสผ่าน…</translation> <translation id="7419106976560586862">เส้นทางโปรไฟล์</translation> <translation id="7437289804838430631">เพิ่มข้อมูลติดต่อ</translation> +<translation id="7440140511386898319">สำรวจขณะที่ออฟไลน์</translation> <translation id="7441627299479586546">หัวเรื่องนโยบายไม่ถูกต้อง</translation> <translation id="7444046173054089907">เว็บไซต์นี้ถูกบล็อก</translation> <translation id="7445762425076701745">ไม่สามารถตรวจสอบความถูกต้องของข้อมูลประจำตัวของเซิร์ฟเวอร์ที่คุณเชื่อมต่ออยู่ได้ทั้งหมด คุณกำลังเชื่อมต่อกับเซิร์ฟเวอร์ที่ใช้ชื่อที่ใช้ได้เฉพาะในเครือข่ายของคุณ ซึ่งผู้ออกใบรับรองภายนอกไม่สามารถตรวจสอบการเป็นเจ้าของได้ เนื่องจากผู้ออกใบรับรองบางรายจะยังคงออกใบรับรองให้กับชื่อเหล่านี้อยู่ คุณจึงไม่มีทางมั่นใจได้ว่ากำลังเชื่อมต่อกับเว็บไซต์ที่คุณต้องการดูโดยไม่ใช่ผู้โจมตี</translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb index fe6735ac..14b80c6 100644 --- a/components/strings/components_strings_tr.xtb +++ b/components/strings/components_strings_tr.xtb
@@ -846,6 +846,7 @@ <translation id="6965978654500191972">Cihaz</translation> <translation id="6970216967273061347">Bölge</translation> <translation id="6973656660372572881">Hem sabit proxy sunucular hem de bir .pac komut dosyası URL'si belirtildi.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Sesi kapat (varsayılan)</translation> <translation id="6984479912851154518">Harici bir uygulama üzerinden ödeme gerçekleştirmek için gizli moddan çıkılacak. Devam edilsin mi?</translation> <translation id="6989763994942163495">Gelişmiş ayarları göster...</translation> @@ -1179,7 +1180,7 @@ <translation id="935608979562296692">FORMU TEMİZLE</translation> <translation id="939736085109172342">Yeni klasör</translation> <translation id="951104842009476243">Kabul Edilen Banka ve Ön Ödemeli Kartlar</translation> -<translation id="962484866189421427">Bu içerik başka bir şeyi taklit eden aldatıcı uygulamalar yükleyebilir veya sizi izlemek için kullanılabilecek veriler toplayabilirler. <ph name="BEGIN_LINK" />Yine de göster<ph name="END_LINK" /></translation> +<translation id="962484866189421427">Bu içerik başka bir şeyi taklit eden aldatıcı uygulamalar yükleyebilir veya sizi izlemek için kullanılabilecek veriler toplayabilir. <ph name="BEGIN_LINK" />Yine de göster<ph name="END_LINK" /></translation> <translation id="969892804517981540">Resmi Derleme</translation> <translation id="973773823069644502">Teslimat Adresi Ekle</translation> <translation id="975560348586398090">{COUNT,plural, =0{Yok}=1{1 öğe}other{# öğe}}</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb index b470164..0c377df0 100644 --- a/components/strings/components_strings_uk.xtb +++ b/components/strings/components_strings_uk.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">Цей сервер не зміг довести, що він – домен <ph name="DOMAIN" />. Операційна система вашого комп’ютера не вважає його сертифікат безпеки надійним. Імовірні причини: неправильна конфігурація або хтось намагається перехопити ваше з’єднання.</translation> <translation id="1151972924205500581">Потрібен пароль</translation> <translation id="1152921474424827756">Відкрийте <ph name="BEGIN_LINK" />кешовану копію<ph name="END_LINK" /> <ph name="URL" /></translation> +<translation id="1156303062776767266">Ви переглядаєте локальний або спільний файл</translation> <translation id="1158211211994409885">Хост <ph name="HOST_NAME" /> неочікувано розірвав з’єднання.</translation> <translation id="1161325031994447685">знову під’єднати пристрій до мережі Wi-Fi</translation> <translation id="1165039591588034296">Помилка</translation> @@ -422,7 +423,7 @@ <translation id="3778403066972421603">Зберегти дані картки у вашому обліковому записі Google і на цьому пристрої?</translation> <translation id="3783418713923659662">Mastercard</translation> <translation id="3787705759683870569">Діє до <ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation> -<translation id="3807873520724684969">Шкідливий вміст заблоковано.</translation> +<translation id="3807873520724684969">Заблоковано шкідливий вміст.</translation> <translation id="382518646247711829">Якщо ви використовуєте проксі-сервер…</translation> <translation id="3828924085048779000">Порожня парольна фраза заборонена.</translation> <translation id="385051799172605136">Назад</translation> @@ -534,6 +535,7 @@ <translation id="4592951414987517459">З’єднання з доменом <ph name="DOMAIN" /> шифрується за допомогою сучасного набору шифрів.</translation> <translation id="4594403342090139922">&Відмінити видалення</translation> <translation id="4619615317237390068">Вкладки з інших пристроїв</translation> +<translation id="4646534391647090355">Перейти зараз</translation> <translation id="4668929960204016307">,</translation> <translation id="467662567472608290">Цей сервер не зміг довести, що він – домен <ph name="DOMAIN" />. Його сертифікат безпеки містить помилки. Імовірні причини: неправильна конфігурація або хтось намагається перехопити ваше з’єднання.</translation> <translation id="4690462567478992370">Припинити використання недійсного сертифіката</translation> @@ -579,7 +581,8 @@ <translation id="495170559598752135">Дії</translation> <translation id="4958444002117714549">Розгорнути список</translation> <translation id="4974590756084640048">Показувати застереження</translation> -<translation id="4988217478422488391">Пришвидшує оплату в Інтернеті</translation> +<translation id="4988217478422488391">Ви зможете швидше оплачувати покупки в Інтернеті</translation> +<translation id="4989163558385430922">Показати все</translation> <translation id="4989809363548539747">Цей плагін не підтримується</translation> <translation id="5002932099480077015">Коли цю функцію ввімкнено, Chrome зберігає копію даних вашої картки на пристрої, щоб ви могли швидше заповнювати форми.</translation> <translation id="5018422839182700155">Не вдається відкрити цю сторінку</translation> @@ -723,7 +726,8 @@ <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Використовується 1 файл}one{Використовується # файл}few{Використовуються # файли}many{Використовуються # файлів}other{Використовуються # файлу}}</translation> <translation id="5922853866070715753">Майже готово</translation> <translation id="5939518447894949180">Скинути</translation> -<translation id="5951495562196540101">Не вдається зареєструватися за допомогою особистого облікового запису користувача (доступна пакетна ліцензія).</translation> +<translation id="5951495562196540101">Не вдається зареєструватися за допомогою особистого облікового запису користувача (ліцензію отримано в комплекті з пристроєм).</translation> +<translation id="5966151627327109289">Ви вийдете з більшості сайтів. Ви можете втратити доступ до захищеного вмісту на <ph name="SITE" /> і деяких інших сайтах.</translation> <translation id="5967592137238574583">Змініть контактну інформацію</translation> <translation id="5967867314010545767">Видалити з історії</translation> <translation id="5975083100439434680">Зменшити масштаб</translation> @@ -745,6 +749,7 @@ <translation id="6071091556643036997">Це правило недійсне.</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{Цю картку буде збережено в обліковому записі Google для швидшої оплати на різних пристроях.}one{Ці картки буде збережено в обліковому записі Google для швидшої оплати на різних пристроях.}few{Ці картки буде збережено в обліковому записі Google для швидшої оплати на різних пристроях.}many{Ці картки буде збережено в обліковому записі Google для швидшої оплати на різних пристроях.}other{Ці картки буде збережено в обліковому записі Google для швидшої оплати на різних пристроях.}}</translation> <translation id="6080696365213338172">Ви отримали доступ до вмісту, використовуючи наданий адміністратором сертифікат. Адміністратор може перехоплювати дані, які ви надасте домену <ph name="DOMAIN" />.</translation> +<translation id="6096619198407627433">Ви вийдете з більшості сайтів, але не з облікового запису Google. Ви можете втратити доступ до захищеного вмісту на <ph name="SITE" /> і деяких інших сайтах.</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 пароль (синхронізовано)}one{# пароль (синхронізовано)}few{# паролі (синхронізовано)}many{# паролів (синхронізовано)}other{# пароля (синхронізовано)}}</translation> <translation id="6146055958333702838">Перевірте всі кабелі та перезавантажте всі маршрутизатори, модеми чи інші мережеві @@ -816,6 +821,7 @@ <translation id="6710594484020273272"><Введіть пошуковий термін></translation> <translation id="6711464428925977395">Помилка проксі-сервера або неправильна адреса.</translation> <translation id="674375294223700098">Помилка "Невідомий сертифікат сервера".</translation> +<translation id="6744009308914054259">Очікуючи на з’єднання, можете перейти в папку "Завантаження" й переглянути статті, доступні в режимі офлайн.</translation> <translation id="6753269504797312559">Значення правила</translation> <translation id="6757797048963528358">Ваш пристрій перейшов у режим сну.</translation> <translation id="6778737459546443941">Батьки ще не схвалили його</translation> @@ -846,6 +852,7 @@ <translation id="6965978654500191972">Пристрій</translation> <translation id="6970216967273061347">Район або округ</translation> <translation id="6973656660372572881">Указано фіксовані проксі-сервери та URL-адреса сценарію .pac.</translation> +<translation id="6979158407327259162">Диск Google</translation> <translation id="6979440798594660689">Без звуку (за умовчанням)</translation> <translation id="6984479912851154518">Щоб оплатити в зовнішньому додатку, ви вийдете з приватного режиму. Продовжити?</translation> <translation id="6989763994942163495">Показати розширені налаштування...</translation> @@ -912,6 +919,7 @@ <translation id="7416351320495623771">Керувати паролями…</translation> <translation id="7419106976560586862">Шлях до профілю</translation> <translation id="7437289804838430631">Додати контактну інформацію</translation> +<translation id="7440140511386898319">Перегляд у режимі офлайн</translation> <translation id="7441627299479586546">Неправильна тема правила</translation> <translation id="7444046173054089907">Цей сайт заблоковано</translation> <translation id="7445762425076701745">Ідентифікацію сервера, з яким ви з'єднані, не можна повністю підтвердити. Ви з'єднані із сервером за допомогою імені, дійсного лише у вашій мережі, і зовнішній центр сертифікації не має способів підтвердити право власності на це ім'я. Хоча деякі центри сертифікації, попри все, видають сертифікати на такі імена, неможливо цілком упевнитися, що ви з'єднані з безпечним сайтом, а не зі зловмисником.</translation> @@ -1130,7 +1138,7 @@ <translation id="8952525071319348207">Введіть термін дії та код CVC картки <ph name="CREDIT_CARD" />, щоб оновити її дані. Щойно ви підтвердите дані картки з облікового запису Google Payments, цей сайт отримає доступ до них.</translation> <translation id="8957210676456822347">Авторизація приєднаного порталу</translation> <translation id="8971063699422889582">Термін дії сертифіката сервера завершився.</translation> -<translation id="8975012916872825179">Зокрема така інформація, як номери телефонів, електронні адреси й адреси доставки</translation> +<translation id="8975012916872825179">Номери телефонів, електронні адреси, адреси доставки тощо</translation> <translation id="8978053250194585037">Функція безпечного перегляду від Google нещодавно <ph name="BEGIN_LINK" />виявила фішинг<ph name="END_LINK" /> на сайті <ph name="SITE" />. Фішингові сайти видають себе за інші сайти, щоб ошукати вас.</translation> <translation id="8983003182662520383">Способи оплати й адреси, пов’язані з Google Pay</translation> <translation id="8987927404178983737">Місяць</translation> @@ -1179,7 +1187,7 @@ <translation id="935608979562296692">ОЧИСТИТИ ФОРМУ</translation> <translation id="939736085109172342">Нова папка</translation> <translation id="951104842009476243">Дебетові та передплачені картки, які приймаються до оплати</translation> -<translation id="962484866189421427">Ця сторінка може спробувати встановити оманливі додатки, які видають себе за інший вміст або збирають дані для відстеження вашої активності. <ph name="BEGIN_LINK" />Усе одно показати<ph name="END_LINK" /></translation> +<translation id="962484866189421427">Ця сторінка може намагатися встановлювати оманливі додатки, які видають себе за інший вміст, або збирати дані для відстеження ваших дій. <ph name="BEGIN_LINK" />Усе одно показати<ph name="END_LINK" /></translation> <translation id="969892804517981540">Розробка</translation> <translation id="973773823069644502">Додати адресу доставки</translation> <translation id="975560348586398090">{COUNT,plural, =0{Немає}=1{1 запис}one{# запис}few{# записи}many{# записів}other{# запису}}</translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb index d8392a71..f7a343d 100644 --- a/components/strings/components_strings_vi.xtb +++ b/components/strings/components_strings_vi.xtb
@@ -579,7 +579,7 @@ <translation id="495170559598752135">Tác vụ</translation> <translation id="4958444002117714549">Mở rộng danh sách</translation> <translation id="4974590756084640048">Bật lại cảnh báo</translation> -<translation id="4988217478422488391">Giúp bạn thanh toán trực tuyến nhanh hơn</translation> +<translation id="4988217478422488391">Thanh toán trực tuyến nhanh hơn</translation> <translation id="4989809363548539747">Plugin này không được hỗ trợ</translation> <translation id="5002932099480077015">Nếu được bật, Chrome sẽ lưu trữ bản sao thẻ của bạn trên thiết bị này để điền vào biểu mẫu nhanh hơn.</translation> <translation id="5018422839182700155">Không thể mở trang này</translation> @@ -723,7 +723,7 @@ <translation id="5920262536204764679">{NUM_COOKIES,plural, =1{Đang sử dụng 1 cookie}other{Đang sử dụng # cookie}}</translation> <translation id="5922853866070715753">Sắp hoàn tất</translation> <translation id="5939518447894949180">Đặt lại</translation> -<translation id="5951495562196540101">Không thể đăng ký bằng tài khoản người dùng thông thường (giấy phép theo gói có sẵn).</translation> +<translation id="5951495562196540101">Không thể đăng ký bằng tài khoản người dùng thông thường (có sẵn giấy phép theo gói).</translation> <translation id="5967592137238574583">Chỉnh sửa thông tin liên hệ</translation> <translation id="5967867314010545767">Xóa khỏi lịch sử</translation> <translation id="5975083100439434680">Thu nhỏ</translation> @@ -846,6 +846,7 @@ <translation id="6965978654500191972">Thiết bị</translation> <translation id="6970216967273061347">Quận</translation> <translation id="6973656660372572881">Cả hai máy chủ proxy cố định và URL tập lệnh .pac đều được chỉ định.</translation> +<translation id="6979158407327259162">Google Drive</translation> <translation id="6979440798594660689">Tắt tiếng (mặc định)</translation> <translation id="6984479912851154518">Đang rời khỏi chế độ riêng tư để thanh toán qua một ứng dụng bên ngoài. Bạn có muốn tiếp tục không?</translation> <translation id="6989763994942163495">Hiển thị cài đặt nâng cao...</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb index 257fc256..c124c63 100644 --- a/components/strings/components_strings_zh-CN.xtb +++ b/components/strings/components_strings_zh-CN.xtb
@@ -842,6 +842,7 @@ <translation id="6965978654500191972">设备</translation> <translation id="6970216967273061347">区</translation> <translation id="6973656660372572881">固定代理服务器和 .pac 脚本网址均已指定。</translation> +<translation id="6979158407327259162">Google 云端硬盘</translation> <translation id="6979440798594660689">静音(默认)</translation> <translation id="6984479912851154518">即将退出无痕模式,以便通过外部应用付款。要继续吗?</translation> <translation id="6989763994942163495">显示高级设置...</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb index 3516cb3..e203b54 100644 --- a/components/strings/components_strings_zh-TW.xtb +++ b/components/strings/components_strings_zh-TW.xtb
@@ -27,6 +27,7 @@ <translation id="1150979032973867961">伺服器無法證明其屬於 <ph name="DOMAIN" /> 網域;其安全性憑證未取得你電腦作業系統的信任。這可能是因為設定錯誤,或有攻擊者攔截你的連線所致。</translation> <translation id="1151972924205500581">請輸入密碼</translation> <translation id="1152921474424827756">存取 <ph name="URL" /> 的<ph name="BEGIN_LINK" />頁庫存檔副本<ph name="END_LINK" /></translation> +<translation id="1156303062776767266">目前顯示的是本機檔案或共用檔案</translation> <translation id="1158211211994409885"><ph name="HOST_NAME" /> 意外中斷連線。</translation> <translation id="1161325031994447685">重新連線至 Wi-Fi 網路</translation> <translation id="1165039591588034296">錯誤</translation> @@ -534,6 +535,7 @@ <translation id="4592951414987517459">您的 <ph name="DOMAIN" /> 連線使用新型加密套件進行加密。</translation> <translation id="4594403342090139922">復原刪除(&U)</translation> <translation id="4619615317237390068">在其他裝置上開啟的分頁</translation> +<translation id="4646534391647090355">立即前往下載中心</translation> <translation id="4668929960204016307">,</translation> <translation id="467662567472608290">伺服器無法證明其屬於 <ph name="DOMAIN" /> 網域;其安全性憑證含有錯誤。這可能是因為設定錯誤,或有攻擊者攔截你的連線所致。</translation> <translation id="4690462567478992370">停止使用無效的憑證</translation> @@ -580,6 +582,7 @@ <translation id="4958444002117714549">展開清單</translation> <translation id="4974590756084640048">重新啟用警告功能</translation> <translation id="4988217478422488391">加快線上付款流程</translation> +<translation id="4989163558385430922">查看全部</translation> <translation id="4989809363548539747">這是不支援的外掛程式</translation> <translation id="5002932099480077015">啟用後,Chrome 會將您的信用卡複本儲存在這個裝置上,以加快表單填寫速度。</translation> <translation id="5018422839182700155">無法開啟這個網頁</translation> @@ -724,6 +727,7 @@ <translation id="5922853866070715753">即將完成</translation> <translation id="5939518447894949180">重設</translation> <translation id="5951495562196540101">無法透過個人帳戶註冊 (有封裝授權)。</translation> +<translation id="5966151627327109289">你會從大多數網站登出,且可能無法再存取 <ph name="SITE" /> 和其他網站上的受保護內容。</translation> <translation id="5967592137238574583">編輯聯絡資訊</translation> <translation id="5967867314010545767">從記錄中移除</translation> <translation id="5975083100439434680">縮小</translation> @@ -745,6 +749,7 @@ <translation id="6071091556643036997">政策類型無效。</translation> <translation id="6078024795140153212">{NUM_CARDS,plural, =1{系統會將這張卡片儲存至你的 Google 帳戶,讓你在不同裝置上都能享受便捷的結帳體驗。}other{系統會將這些卡片儲存至你的 Google 帳戶,讓你在不同裝置上都能享受便捷的結帳體驗。}}</translation> <translation id="6080696365213338172">你使用了管理員提供的憑證存取內容,因此管理員可攔截你傳送至「<ph name="DOMAIN" />」的資料。</translation> +<translation id="6096619198407627433">你會從大多數網站登出,但不會因此登出 Google 帳戶。你可能無法再存取 <ph name="SITE" /> 和其他網站上的受保護內容。</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> <translation id="6146055958333702838">檢查您的網路線是否穩固連接。重新啟動您可能正在使用的任何路由器、 @@ -816,6 +821,7 @@ <translation id="6710594484020273272"><輸入搜尋字詞></translation> <translation id="6711464428925977395">Proxy 伺服器發生錯誤,或是位址不正確。</translation> <translation id="674375294223700098">不明的伺服器憑證錯誤。</translation> +<translation id="6744009308914054259">等待連線的同時,你可以前往「下載」頁面閱讀離線文章。</translation> <translation id="6753269504797312559">政策值</translation> <translation id="6757797048963528358">您的裝置已進入睡眠模式。</translation> <translation id="6778737459546443941">你的家長尚未核准這個網站</translation> @@ -846,6 +852,7 @@ <translation id="6965978654500191972">裝置</translation> <translation id="6970216967273061347">區</translation> <translation id="6973656660372572881">已指定固定的 Proxy 伺服器和 .pac 指令碼網址。</translation> +<translation id="6979158407327259162">Google 雲端硬碟</translation> <translation id="6979440798594660689">靜音 (預設)</translation> <translation id="6984479912851154518">即將離開私密模式,改為使用外部應用程式付款,要繼續嗎?</translation> <translation id="6989763994942163495">顯示進階設定...</translation> @@ -912,6 +919,7 @@ <translation id="7416351320495623771">管理密碼…</translation> <translation id="7419106976560586862">設定檔路徑</translation> <translation id="7437289804838430631">新增聯絡資訊</translation> +<translation id="7440140511386898319">探索可供離線檢視的內容</translation> <translation id="7441627299479586546">政策主體有誤</translation> <translation id="7444046173054089907">這個網站遭到封鎖</translation> <translation id="7445762425076701745">你所連線的伺服器身分無法完全驗證,該伺服器所使用的名稱僅在你的網路中有效,無法驗證外部憑證授權單位的擁有權。即使某些憑證授權單位會核發這些憑證,不過無法就此確保你所連上的網站是正確的,而不會遭到網路攻擊。</translation>
diff --git a/components/subresource_filter/content/DEPS b/components/subresource_filter/content/DEPS index 7acefe07..6fa6163 100644 --- a/components/subresource_filter/content/DEPS +++ b/components/subresource_filter/content/DEPS
@@ -3,6 +3,7 @@ "+content/public/common", "+ipc", "+services/network/public/cpp", + "+third_party/blink/public/common", ] specific_include_rules = {
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc index 07894e8..f8d9c15 100644 --- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc +++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.cc
@@ -38,6 +38,7 @@ VerifiedRulesetDealer::Handle* dealer_handle, content::WebContents* web_contents) : content::WebContentsObserver(web_contents), + binding_(web_contents, this), scoped_observer_(this), dealer_handle_(dealer_handle), client_(client), @@ -170,7 +171,7 @@ // this navigation's activation state. if (filter) { base::OnceClosure disallowed_callback(base::BindOnce( - &ContentSubresourceFilterThrottleManager::MaybeCallFirstDisallowedLoad, + &ContentSubresourceFilterThrottleManager::MaybeShowNotification, weak_ptr_factory_.GetWeakPtr())); filter->set_first_disallowed_load_callback(std::move(disallowed_callback)); activated_frame_hosts_[frame_host] = std::move(filter); @@ -198,19 +199,7 @@ const IPC::Message& message, content::RenderFrameHost* render_frame_host) { bool handled = true; - - IPC_BEGIN_MESSAGE_MAP_WITH_PARAM(ContentSubresourceFilterThrottleManager, - message, render_frame_host) - IPC_MESSAGE_HANDLER(SubresourceFilterHostMsg_FrameIsAdSubframe, - OnFrameIsAdSubframe) - IPC_MESSAGE_UNHANDLED(handled = false) - IPC_END_MESSAGE_MAP() - if (handled) - return true; - IPC_BEGIN_MESSAGE_MAP(ContentSubresourceFilterThrottleManager, message) - IPC_MESSAGE_HANDLER(SubresourceFilterHostMsg_DidDisallowFirstSubresource, - MaybeCallFirstDisallowedLoad) IPC_MESSAGE_HANDLER(SubresourceFilterHostMsg_DocumentLoadStatistics, OnDocumentLoadStatistics) IPC_MESSAGE_UNHANDLED(handled = false) @@ -360,7 +349,7 @@ return nullptr; } -void ContentSubresourceFilterThrottleManager::MaybeCallFirstDisallowedLoad() { +void ContentSubresourceFilterThrottleManager::MaybeShowNotification() { if (current_committed_load_has_notified_disallowed_load_) return; @@ -406,6 +395,14 @@ ->NotifyAdSubframeDetected(render_frame_host); } +void ContentSubresourceFilterThrottleManager::DidDisallowFirstSubresource() { + MaybeShowNotification(); +} + +void ContentSubresourceFilterThrottleManager::FrameIsAdSubframe() { + OnFrameIsAdSubframe(binding_.GetCurrentTargetFrame()); +} + void ContentSubresourceFilterThrottleManager::MaybeActivateSubframeSpecialUrls( content::NavigationHandle* navigation_handle) { if (navigation_handle->IsInMainFrame())
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h index 2499288..9837d07 100644 --- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h +++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager.h
@@ -19,6 +19,8 @@ #include "components/subresource_filter/content/browser/verified_ruleset_dealer.h" #include "components/subresource_filter/core/common/activation_decision.h" #include "components/subresource_filter/core/common/activation_state.h" +#include "components/subresource_filter/mojom/subresource_filter.mojom.h" +#include "content/public/browser/web_contents_binding_set.h" #include "content/public/browser/web_contents_observer.h" namespace content { @@ -51,6 +53,7 @@ // navgation, and has veto power for frame activation. class ContentSubresourceFilterThrottleManager : public content::WebContentsObserver, + public mojom::SubresourceFilterHost, public SubresourceFilterObserver, public SubframeNavigationFilteringThrottle::Delegate { public: @@ -128,9 +131,9 @@ AsyncDocumentSubresourceFilter* GetParentFrameFilter( content::NavigationHandle* child_frame_navigation); - // Calls OnFirstSubresourceLoadDisallowed on the Delegate at most once per - // committed, non-same-page navigation in the main frame. - void MaybeCallFirstDisallowedLoad(); + // Calls ShowNotification on |client_| at most once per committed, + // non-same-page navigation in the main frame. + void MaybeShowNotification(); VerifiedRuleset::Handle* EnsureRulesetHandle(); void DestroyRulesetHandleIfNoLongerUsed(); @@ -141,6 +144,10 @@ // a new process its RenderHost will be told that it's an ad. void OnFrameIsAdSubframe(content::RenderFrameHost* render_frame_host); + // mojom::SubresourceFilterHost: + void DidDisallowFirstSubresource() override; + void FrameIsAdSubframe() override; + // Adds the navigation's RenderFrameHost to activated_frame_hosts_ if it is a // special navigation which did not go through navigation throttles and its // parent frame is activated as well. The filter for these frames is set @@ -171,6 +178,8 @@ // OOPIF) std::set<content::RenderFrameHost*> ad_frames_; + content::WebContentsFrameBindingSet<mojom::SubresourceFilterHost> binding_; + ScopedObserver<SubresourceFilterObserverManager, SubresourceFilterObserver> scoped_observer_;
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager_unittest.cc b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager_unittest.cc index c2a5e90..6e7e4fa 100644 --- a/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager_unittest.cc +++ b/components/subresource_filter/content/browser/content_subresource_filter_throttle_manager_unittest.cc
@@ -941,10 +941,7 @@ // Simulate the previous navigation sending an IPC that a load was disallowed. // This could happen e.g. for cross-process navigations, which have no // ordering guarantees. - throttle_manager()->OnMessageReceived( - SubresourceFilterHostMsg_DidDisallowFirstSubresource( - main_rfh()->GetRoutingID()), - main_rfh()); + throttle_manager()->DidDisallowFirstSubresource(); EXPECT_EQ(0, disallowed_notification_count()); }
diff --git a/components/subresource_filter/content/common/subresource_filter_messages.h b/components/subresource_filter/content/common/subresource_filter_messages.h index 2ea678d2..0882c330 100644 --- a/components/subresource_filter/content/common/subresource_filter_messages.h +++ b/components/subresource_filter/content/common/subresource_filter_messages.h
@@ -68,11 +68,6 @@ // Messages sent from the renderer to the browser. // ---------------------------------------------------------------------------- -// Sent to the browser the first time a subresource load is disallowed for the -// most recently commited document load in a frame. It is used to trigger a -// UI prompt to inform the user and allow them to turn off filtering. -IPC_MESSAGE_ROUTED0(SubresourceFilterHostMsg_DidDisallowFirstSubresource) - // This is sent to a RenderFrameHost in the browser when a document load is // finished, just before the DidFinishLoad message, and contains statistics // collected by the DocumentSubresourceFilter up until that point: the number of @@ -81,9 +76,3 @@ // if performance measurements were disabled for the load. IPC_MESSAGE_ROUTED1(SubresourceFilterHostMsg_DocumentLoadStatistics, subresource_filter::DocumentLoadStatistics /* statistics */) - -// Sent to the browser when a RenderFrame is created and is tagged as an ad -// subframe. The browser keeps track of this in case the frame later changes -// processes, at which point it will inform the new RenderFrame that it has been -// tagged as an ad via SubresourceFilterMsg_ActivateForNextCommittedLoad. -IPC_MESSAGE_ROUTED0(SubresourceFilterHostMsg_FrameIsAdSubframe)
diff --git a/components/subresource_filter/content/renderer/subresource_filter_agent.cc b/components/subresource_filter/content/renderer/subresource_filter_agent.cc index 4b8996a45..c18d2b4c 100644 --- a/components/subresource_filter/content/renderer/subresource_filter_agent.cc +++ b/components/subresource_filter/content/renderer/subresource_filter_agent.cc
@@ -25,6 +25,7 @@ #include "content/public/common/url_constants.h" #include "content/public/renderer/render_frame.h" #include "ipc/ipc_message.h" +#include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h" #include "third_party/blink/public/platform/web_worker_fetch_context.h" #include "third_party/blink/public/web/web_document.h" #include "third_party/blink/public/web/web_document_loader.h" @@ -66,8 +67,7 @@ void SubresourceFilterAgent:: SignalFirstSubresourceDisallowedForCommittedLoad() { - render_frame()->Send(new SubresourceFilterHostMsg_DidDisallowFirstSubresource( - render_frame()->GetRoutingID())); + GetSubresourceFilterHost()->DidDisallowFirstSubresource(); } void SubresourceFilterAgent::SendDocumentLoadStatistics( @@ -77,8 +77,7 @@ } void SubresourceFilterAgent::SendFrameIsAdSubframe() { - render_frame()->Send(new SubresourceFilterHostMsg_FrameIsAdSubframe( - render_frame()->GetRoutingID())); + GetSubresourceFilterHost()->FrameIsAdSubframe(); } bool SubresourceFilterAgent::IsAdSubframe() { @@ -173,6 +172,15 @@ ActivationState(mojom::ActivationLevel::kDisabled); } +const mojom::SubresourceFilterHostAssociatedPtr& +SubresourceFilterAgent::GetSubresourceFilterHost() { + if (!subresource_filter_host_) { + render_frame()->GetRemoteAssociatedInterfaces()->GetInterface( + &subresource_filter_host_); + } + return subresource_filter_host_; +} + void SubresourceFilterAgent::OnDestruct() { delete this; }
diff --git a/components/subresource_filter/content/renderer/subresource_filter_agent.h b/components/subresource_filter/content/renderer/subresource_filter_agent.h index 71fa98a..2e1b2da 100644 --- a/components/subresource_filter/content/renderer/subresource_filter_agent.h +++ b/components/subresource_filter/content/renderer/subresource_filter_agent.h
@@ -11,6 +11,7 @@ #include "base/memory/weak_ptr.h" #include "components/subresource_filter/content/renderer/ad_resource_tracker.h" #include "components/subresource_filter/core/common/activation_state.h" +#include "components/subresource_filter/mojom/subresource_filter.mojom.h" #include "content/public/renderer/render_frame_observer.h" #include "content/public/renderer/render_frame_observer_tracker.h" #include "url/gurl.h" @@ -83,6 +84,8 @@ void RecordHistogramsOnLoadFinished(); void ResetInfoForNextCommit(); + const mojom::SubresourceFilterHostAssociatedPtr& GetSubresourceFilterHost(); + // content::RenderFrameObserver: void OnDestruct() override; void DidCreateNewDocument() override; @@ -101,6 +104,10 @@ // Tracks all ad resource observers. std::unique_ptr<AdResourceTracker> ad_resource_tracker_; + // Use associated interface to make sure mojo messages are ordered with regard + // to legacy IPC messages. + mojom::SubresourceFilterHostAssociatedPtr subresource_filter_host_; + // If a document has been created for this frame before. The first document // for a new local subframe should be about:blank. bool first_document_ = true;
diff --git a/components/subresource_filter/mojom/subresource_filter.mojom b/components/subresource_filter/mojom/subresource_filter.mojom index b3edc65..2df1a86b 100644 --- a/components/subresource_filter/mojom/subresource_filter.mojom +++ b/components/subresource_filter/mojom/subresource_filter.mojom
@@ -9,3 +9,17 @@ kDryRun, kEnabled }; + +interface SubresourceFilterHost { + // Sent to the browser the first time a subresource load is disallowed for the + // most recently committed document load in a frame. It is used to trigger a + // UI prompt to inform the user and allow them to turn off filtering. + DidDisallowFirstSubresource(); + + // Sent to the browser when a RenderFrame is created and is tagged as an ad + // subframe. The browser keeps track of this in case the frame later changes + // processes, at which point it will inform the new RenderFrame that it has + // been tagged as an ad via SubresourceFilterMsg_ActivateForNextCommittedLoad, + // at ReadyToCommitNavigation time. + FrameIsAdSubframe(); +};
diff --git a/components/sync/engine/net/http_bridge.cc b/components/sync/engine/net/http_bridge.cc index d8471c0..9ccf058 100644 --- a/components/sync/engine/net/http_bridge.cc +++ b/components/sync/engine/net/http_bridge.cc
@@ -317,6 +317,10 @@ RecordSyncRequestContentLengthHistograms(request_to_send.size(), request_content_.size()); + // Sync relies on HTTP errors being detectable (and distinct from + // net/connection errors). + url_loader->SetAllowHttpErrorResults(true); + url_loader->SetOnUploadProgressCallback(base::BindRepeating( &HttpBridge::OnURLLoadUploadProgress, base::Unretained(this))); url_loader->DownloadToStringOfUnboundedSizeUntilCrashAndDie( @@ -424,7 +428,7 @@ fetch_state_.end_time = base::Time::Now(); fetch_state_.request_completed = true; - fetch_state_.request_succeeded = !!response_body; + fetch_state_.request_succeeded = net_error == net::OK && response_code != -1; fetch_state_.http_response_code = response_code; fetch_state_.error_code = net_error;
diff --git a/components/sync/engine/net/http_bridge_unittest.cc b/components/sync/engine/net/http_bridge_unittest.cc index 0b7f8f9..17f170e 100644 --- a/components/sync/engine/net/http_bridge_unittest.cc +++ b/components/sync/engine/net/http_bridge_unittest.cc
@@ -13,11 +13,13 @@ #include "base/run_loop.h" #include "base/single_thread_task_runner.h" #include "base/strings/stringprintf.h" +#include "base/test/bind_test_util.h" #include "base/test/scoped_task_environment.h" #include "base/threading/thread.h" #include "build/build_config.h" #include "components/sync/base/cancelation_signal.h" #include "net/http/http_response_headers.h" +#include "net/http/http_status_code.h" #include "net/test/embedded_test_server/embedded_test_server.h" #include "net/url_request/url_request_test_util.h" #include "services/network/test/test_shared_url_loader_factory.h" @@ -306,6 +308,62 @@ EXPECT_TRUE(http_bridge->GetResponseHeaderValue("invalid-header").empty()); } +TEST_F(MAYBE_SyncHttpBridgeTest, HttpErrors) { + ASSERT_TRUE(test_server_.Start()); + + auto function = base::BindLambdaForTesting([&](net::HttpStatusCode code) { + scoped_refptr<HttpBridge> http_bridge(BuildBridge()); + + GURL echo_status = test_server_.GetURL(std::string("/echo?status=") + + std::to_string(code)); + http_bridge->SetURL(echo_status.spec().c_str(), echo_status.IntPort()); + + std::string test_payload = "###TEST PAYLOAD###"; + http_bridge->SetPostPayload("text/html", test_payload.length() + 1, + test_payload.c_str()); + + int os_error = 0; + int response_code = 0; + bool success = http_bridge->MakeSynchronousPost(&os_error, &response_code); + EXPECT_TRUE(success) << "Sync failed for HTTP code status " << code; + EXPECT_EQ(code, response_code); + EXPECT_EQ(0, os_error); + }); + + // A sample collection of HTTP errors that can be relevant to sync engine. + net::HttpStatusCode http_errors[] = { + net::HTTP_BAD_REQUEST, + net::HTTP_UNAUTHORIZED, + net::HTTP_NOT_FOUND, + net::HTTP_CONFLICT, + net::HTTP_INTERNAL_SERVER_ERROR, + net::HTTP_BAD_GATEWAY, + net::HTTP_SERVICE_UNAVAILABLE, + net::HTTP_GATEWAY_TIMEOUT, + }; + for (auto error : http_errors) { + function.Run(error); + } +} + +TEST_F(MAYBE_SyncHttpBridgeTest, NetErrorUnreached) { + // Test deliberately does not start the EmbeddedTestServer. + scoped_refptr<HttpBridge> http_bridge(BuildBridge()); + + http_bridge->SetURL("http://anything", 9999); + + std::string test_payload = "###TEST PAYLOAD###"; + http_bridge->SetPostPayload("text/html", test_payload.length() + 1, + test_payload.c_str()); + + int os_error = 0; + int response_code = 0; + bool success = http_bridge->MakeSynchronousPost(&os_error, &response_code); + EXPECT_FALSE(success); + EXPECT_EQ(-1, response_code); + EXPECT_NE(0, os_error); +} + TEST_F(MAYBE_SyncHttpBridgeTest, Abort) { scoped_refptr<ShuntedHttpBridge> http_bridge( new ShuntedHttpBridge(this, true));
diff --git a/components/sync/engine_impl/model_type_worker.cc b/components/sync/engine_impl/model_type_worker.cc index 412aaed..e7f57fc2 100644 --- a/components/sync/engine_impl/model_type_worker.cc +++ b/components/sync/engine_impl/model_type_worker.cc
@@ -6,6 +6,7 @@ #include <stdint.h> +#include <algorithm> #include <utility> #include <vector> @@ -13,7 +14,7 @@ #include "base/format_macros.h" #include "base/guid.h" #include "base/logging.h" -#include "base/metrics/histogram_macros.h" +#include "base/metrics/histogram_functions.h" #include "base/strings/stringprintf.h" #include "base/trace_event/memory_usage_estimator.h" #include "components/sync/base/cancelation_signal.h" @@ -23,6 +24,15 @@ #include "components/sync/engine_impl/non_blocking_type_commit_contribution.h" #include "components/sync/protocol/proto_memory_estimations.h" +namespace { + +bool ContainsDuplicate(std::vector<std::string> values) { + std::sort(values.begin(), values.end()); + return std::adjacent_find(values.begin(), values.end()) != values.end(); +} + +} // namespace + namespace syncer { ModelTypeWorker::ModelTypeWorker( @@ -123,6 +133,7 @@ UpdateCounters* counters = debug_info_emitter_->GetMutableUpdateCounters(); counters->num_updates_received += applicable_updates.size(); + std::vector<std::string> client_tag_hashes; for (const sync_pb::SyncEntity* update_entity : applicable_updates) { if (update_entity->deleted()) { status->increment_num_tombstone_updates_downloaded_by(1); @@ -134,6 +145,9 @@ &response_data)) { case SUCCESS: pending_updates_.push_back(response_data); + if (!response_data.entity->client_tag_hash.empty()) { + client_tag_hashes.push_back(response_data.entity->client_tag_hash); + } break; case DECRYPTION_PENDING: entries_pending_decryption_[update_entity->id_string()] = response_data; @@ -143,6 +157,10 @@ break; } } + std::string suffix = ModelTypeToHistogramSuffix(type_); + base::UmaHistogramBoolean( + "Sync.DuplicateClientTagHashInGetUpdatesResponse." + suffix, + ContainsDuplicate(std::move(client_tag_hashes))); debug_info_emitter_->EmitUpdateCountersUpdate(); return SYNCER_OK; @@ -236,6 +254,18 @@ DCHECK(entries_pending_decryption_.empty()); + // Check for duplicate client tag hashes. + std::vector<std::string> client_tag_hashes; + for (const UpdateResponseData& update : pending_updates_) { + if (!update.entity->client_tag_hash.empty()) { + client_tag_hashes.push_back(update.entity->client_tag_hash); + } + } + std::string suffix = ModelTypeToHistogramSuffix(type_); + base::UmaHistogramBoolean( + "Sync.DuplicateClientTagHashInApplyPendingUpdates." + suffix, + ContainsDuplicate(std::move(client_tag_hashes))); + model_type_processor_->OnUpdateReceived(model_type_state_, pending_updates_); UpdateCounters* counters = debug_info_emitter_->GetMutableUpdateCounters();
diff --git a/components/sync/engine_impl/model_type_worker_unittest.cc b/components/sync/engine_impl/model_type_worker_unittest.cc index e9a4e00..9b47e9de 100644 --- a/components/sync/engine_impl/model_type_worker_unittest.cc +++ b/components/sync/engine_impl/model_type_worker_unittest.cc
@@ -10,6 +10,7 @@ #include "base/bind.h" #include "base/strings/stringprintf.h" +#include "base/test/metrics/histogram_tester.h" #include "base/threading/thread.h" #include "components/sync/base/cancelation_signal.h" #include "components/sync/base/fake_encryptor.h" @@ -39,6 +40,9 @@ const ModelType kModelType = PREFERENCES; std::string GenerateTagHash(const std::string& tag) { + if (tag.empty()) { + return std::string(); + } return GenerateSyncableHash(kModelType, tag); } @@ -342,6 +346,28 @@ &status_controller_); } + void TriggerPartialUpdateFromServer(int64_t version_offset, + const std::string& tag1, + const std::string& value1, + const std::string& tag2, + const std::string& value2) { + SyncEntity entity1 = server()->UpdateFromServer( + version_offset, GenerateTagHash(tag1), GenerateSpecifics(tag1, value1)); + SyncEntity entity2 = server()->UpdateFromServer( + version_offset, GenerateTagHash(tag2), GenerateSpecifics(tag2, value2)); + + if (update_encryption_filter_index_ != 0) { + EncryptUpdate(GetNthKeyParams(update_encryption_filter_index_), + entity1.mutable_specifics()); + EncryptUpdate(GetNthKeyParams(update_encryption_filter_index_), + entity2.mutable_specifics()); + } + + worker()->ProcessGetUpdatesResponse( + server()->GetProgress(), server()->GetContext(), {&entity1, &entity2}, + &status_controller_); + } + void TriggerUpdateFromServer(int64_t version_offset, const std::string& tag, const std::string& value) { @@ -699,6 +725,90 @@ EXPECT_EQ(1, emitter()->GetUpdateCounters().num_updates_applied); } +TEST_F(ModelTypeWorkerTest, ReceiveUpdates_NoDuplicateHash) { + NormalInitialize(); + + base::HistogramTester histograms; + + TriggerPartialUpdateFromServer(10, kTag1, kValue1, kTag2, kValue2); + TriggerPartialUpdateFromServer(10, kTag3, kValue3); + + // No duplicates in either of the partial updates. + histograms.ExpectUniqueSample( + "Sync.DuplicateClientTagHashInGetUpdatesResponse.PREFERENCE", + /*sample=*/false, /*count=*/2); + + ApplyUpdates(); + + // No duplicate across the partial updates either. + histograms.ExpectUniqueSample( + "Sync.DuplicateClientTagHashInApplyPendingUpdates.PREFERENCE", + /*sample=*/false, /*count=*/1); +} + +TEST_F(ModelTypeWorkerTest, ReceiveUpdates_DuplicateHashWithinPartialUpdate) { + NormalInitialize(); + + base::HistogramTester histograms; + + // Note that kTag1 appears twice. + TriggerPartialUpdateFromServer(10, kTag1, kValue1, kTag1, kValue2); + + // There was a duplicate. + histograms.ExpectUniqueSample( + "Sync.DuplicateClientTagHashInGetUpdatesResponse.PREFERENCE", + /*sample=*/true, /*count=*/1); + + ApplyUpdates(); + + histograms.ExpectUniqueSample( + "Sync.DuplicateClientTagHashInApplyPendingUpdates.PREFERENCE", + /*sample=*/true, /*count=*/1); +} + +TEST_F(ModelTypeWorkerTest, ReceiveUpdates_DuplicateHashAcrossPartialUpdates) { + NormalInitialize(); + + base::HistogramTester histograms; + + // Note that kTag1 appears in both partial updates. + TriggerPartialUpdateFromServer(10, kTag1, kValue1); + TriggerPartialUpdateFromServer(10, kTag1, kValue2); + + // Neither of the two partial updates contained duplicates. + histograms.ExpectUniqueSample( + "Sync.DuplicateClientTagHashInGetUpdatesResponse.PREFERENCE", + /*sample=*/false, /*count=*/2); + + ApplyUpdates(); + + // But there was a duplicate across the two partial updates. + histograms.ExpectUniqueSample( + "Sync.DuplicateClientTagHashInApplyPendingUpdates.PREFERENCE", + /*sample=*/true, /*count=*/1); +} + +TEST_F(ModelTypeWorkerTest, ReceiveUpdates_EmptyHashNotConsideredDuplicate) { + NormalInitialize(); + + base::HistogramTester histograms; + + // Some model types (e.g. AUTOFILL_WALLET_DATA) don't have client tag hashes. + TriggerPartialUpdateFromServer(10, "", kValue1, "", kValue2); + TriggerPartialUpdateFromServer(10, "", kValue3); + + // The missing (empty) tags should not be considered duplicates. + histograms.ExpectUniqueSample( + "Sync.DuplicateClientTagHashInGetUpdatesResponse.PREFERENCE", + /*sample=*/false, /*count=*/2); + + ApplyUpdates(); + + histograms.ExpectUniqueSample( + "Sync.DuplicateClientTagHashInApplyPendingUpdates.PREFERENCE", + /*sample=*/false, /*count=*/1); +} + // Test that an update download coming in multiple parts gets accumulated into // one call to the processor. TEST_F(ModelTypeWorkerTest, ReceiveMultiPartUpdates) {
diff --git a/components/tracing/BUILD.gn b/components/tracing/BUILD.gn index ddcc74f4..2dfc25bf 100644 --- a/components/tracing/BUILD.gn +++ b/components/tracing/BUILD.gn
@@ -17,6 +17,8 @@ "common/graphics_memory_dump_provider_android.h", "common/tracing_messages.cc", "common/tracing_messages.h", + "common/tracing_sampler_profiler.cc", + "common/tracing_sampler_profiler.h", "tracing_export.h", ] @@ -50,8 +52,6 @@ "common/trace_startup_config.h", "common/trace_to_console.cc", "common/trace_to_console.h", - "common/tracing_sampler_profiler.cc", - "common/tracing_sampler_profiler.h", "common/tracing_switches.cc", "common/tracing_switches.h", "tracing_export.h",
diff --git a/components/tracing/common/tracing_sampler_profiler.cc b/components/tracing/common/tracing_sampler_profiler.cc index 1cd8b74..ba08bc45 100644 --- a/components/tracing/common/tracing_sampler_profiler.cc +++ b/components/tracing/common/tracing_sampler_profiler.cc
@@ -22,8 +22,6 @@ class TracingProfileBuilder : public base::StackSamplingProfiler::ProfileBuilder { public: - void RecordAnnotations() override {} - void OnSampleCompleted( std::vector<base::StackSamplingProfiler::Frame> frames) override { if (frames.empty()) @@ -63,29 +61,25 @@ } // namespace -TracingSamplerProfiler::TracingSamplerProfiler() - : sampled_thread_id_(base::PlatformThread::CurrentId()) { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - +TracingSamplerProfiler::TracingSamplerProfiler( + base::PlatformThreadId sampled_thread_id) + : sampled_thread_id_(sampled_thread_id), weak_ptr_factory_(this) { // Make sure tracing system notices profiler category. TRACE_EVENT_WARMUP_CATEGORY(TRACE_DISABLED_BY_DEFAULT("cpu_profiler")); - // If tracing is currently running, start the sample profiler. - bool is_already_enabled = - base::trace_event::TraceLog::GetInstance()->IsEnabled(); - base::trace_event::TraceLog::GetInstance()->AddEnabledStateObserver(this); - if (is_already_enabled) - OnTraceLogEnabled(); + DCHECK_NE(sampled_thread_id_, base::kInvalidThreadId); + + // In case tracing is currently running, start the sample profiler. The trace + // category can be enabled only if tracing is enabled. + OnTraceLogEnabled(); } TracingSamplerProfiler::~TracingSamplerProfiler() { - base::trace_event::TraceLog::GetInstance()->RemoveEnabledStateObserver(this); + base::trace_event::TraceLog::GetInstance()->RemoveAsyncEnabledStateObserver( + this); } void TracingSamplerProfiler::OnTraceLogEnabled() { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - DCHECK_NE(sampled_thread_id_, base::kInvalidThreadId); - // Ensure there was not an instance of the profiler already running. if (profiler_.get()) return; @@ -107,8 +101,6 @@ } void TracingSamplerProfiler::OnTraceLogDisabled() { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - if (!profiler_.get()) return; // Stop and release the stack sampling profiler. @@ -116,4 +108,10 @@ profiler_.reset(); } +void TracingSamplerProfiler::OnMessageLoopStarted() { + base::trace_event::TraceLog::GetInstance()->AddAsyncEnabledStateObserver( + weak_ptr_factory_.GetWeakPtr()); + OnTraceLogEnabled(); +} + } // namespace tracing
diff --git a/components/tracing/common/tracing_sampler_profiler.h b/components/tracing/common/tracing_sampler_profiler.h index aad845a..248e7a0 100644 --- a/components/tracing/common/tracing_sampler_profiler.h +++ b/components/tracing/common/tracing_sampler_profiler.h
@@ -6,6 +6,7 @@ #define COMPONENTS_TRACING_COMMON_TRACING_SAMPLER_PROFILER_H_ #include "base/macros.h" +#include "base/memory/weak_ptr.h" #include "base/sequence_checker.h" #include "base/threading/platform_thread.h" #include "base/trace_event/trace_log.h" @@ -21,19 +22,22 @@ // tracing. It's listening to TraceLog enabled/disabled events and it's starting // a stack profiler on the current thread if needed. class TRACING_EXPORT TracingSamplerProfiler - : public base::trace_event::TraceLog::EnabledStateObserver { + : public base::trace_event::TraceLog::AsyncEnabledStateObserver { public: - TracingSamplerProfiler(); + TracingSamplerProfiler(base::PlatformThreadId sampled_thread_id); ~TracingSamplerProfiler() override; // trace_event::TraceLog::EnabledStateObserver implementation: void OnTraceLogEnabled() override; void OnTraceLogDisabled() override; + void OnMessageLoopStarted(); + private: - base::PlatformThreadId sampled_thread_id_; + const base::PlatformThreadId sampled_thread_id_; std::unique_ptr<base::StackSamplingProfiler> profiler_; - SEQUENCE_CHECKER(sequence_checker_); + + base::WeakPtrFactory<TracingSamplerProfiler> weak_ptr_factory_; DISALLOW_COPY_AND_ASSIGN(TracingSamplerProfiler); };
diff --git a/components/tracing/common/tracing_sampler_profiler_unittest.cc b/components/tracing/common/tracing_sampler_profiler_unittest.cc index f8f32ac..c24815d 100644 --- a/components/tracing/common/tracing_sampler_profiler_unittest.cc +++ b/components/tracing/common/tracing_sampler_profiler_unittest.cc
@@ -126,10 +126,13 @@ } // namespace TEST_F(TracingSampleProfilerTest, OnSampleCompleted) { - TracingSamplerProfiler profiler; + TracingSamplerProfiler profiler(base::PlatformThread::CurrentId()); + profiler.OnMessageLoopStarted(); BeginTrace(); + base::RunLoop().RunUntilIdle(); WaitForEvents(); EndTracing(); + base::RunLoop().RunUntilIdle(); if (IsStackUnwindingSupported()) EXPECT_GT(events_received_count(), 0U); else @@ -138,9 +141,12 @@ TEST_F(TracingSampleProfilerTest, JoinRunningTracing) { BeginTrace(); - TracingSamplerProfiler profiler; + TracingSamplerProfiler profiler(base::PlatformThread::CurrentId()); + profiler.OnMessageLoopStarted(); + base::RunLoop().RunUntilIdle(); WaitForEvents(); EndTracing(); + base::RunLoop().RunUntilIdle(); if (IsStackUnwindingSupported()) EXPECT_GT(events_received_count(), 0U); else
diff --git a/components/ukm/ukm_recorder_impl.cc b/components/ukm/ukm_recorder_impl.cc index d119ca0..5257c81 100644 --- a/components/ukm/ukm_recorder_impl.cc +++ b/components/ukm/ukm_recorder_impl.cc
@@ -239,6 +239,8 @@ void UkmRecorderImpl::DisableRecording() { DVLOG(1) << "UkmRecorderImpl::DisableRecording"; + if (recording_enabled_) + recording_is_continuous_ = false; recording_enabled_ = false; extensions_enabled_ = false; } @@ -250,6 +252,7 @@ void UkmRecorderImpl::Purge() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); recordings_.Reset(); + recording_is_continuous_ = false; } void UkmRecorderImpl::SetIsWebstoreExtensionCallback( @@ -359,6 +362,9 @@ recordings_.entries.clear(); recordings_.event_aggregations.clear(); + report->set_is_continuous(recording_is_continuous_); + recording_is_continuous_ = true; + // Keep at most |max_kept_sources|, prioritizing most-recent entries (by // creation time). const size_t max_kept_sources = GetMaxKeptSources();
diff --git a/components/ukm/ukm_recorder_impl.h b/components/ukm/ukm_recorder_impl.h index 4acf6d88..2179f81d 100644 --- a/components/ukm/ukm_recorder_impl.h +++ b/components/ukm/ukm_recorder_impl.h
@@ -136,6 +136,9 @@ // Indicates whether recording is enabled for extensions. bool extensions_enabled_ = false; + // Indicates whether recording continuity has been broken since last report. + bool recording_is_continuous_ = true; + // Indicates if sampling has been enabled. bool sampling_enabled_ = true;
diff --git a/components/variations/service/variations_service.cc b/components/variations/service/variations_service.cc index 5e10688..240938a 100644 --- a/components/variations/service/variations_service.cc +++ b/components/variations/service/variations_service.cc
@@ -122,6 +122,7 @@ return policy_pref_service->GetString(prefs::kVariationsRestrictParameter); } +// Reported to UMA, keep in sync with enums.xml and don't renumber entries. enum ResourceRequestsAllowedState { RESOURCE_REQUESTS_ALLOWED, RESOURCE_REQUESTS_NOT_ALLOWED,
diff --git a/components/viz/common/features.cc b/components/viz/common/features.cc index 745c26bb..e6ed47b 100644 --- a/components/viz/common/features.cc +++ b/components/viz/common/features.cc
@@ -23,10 +23,6 @@ "SurfaceSynchronization", base::FEATURE_DISABLED_BY_DEFAULT}; #endif -// Enables DumpWithoutCrashing of surface invariants violations. -const base::Feature kEnableInvariantsViolationLogging{ - "InvariantsViolationLogging", base::FEATURE_DISABLED_BY_DEFAULT}; - // Enables running the display compositor as part of the viz service in the GPU // process. This is also referred to as out-of-process display compositor // (OOP-D). @@ -55,11 +51,6 @@ base::FeatureList::IsEnabled(kVizDisplayCompositor); } -bool IsSurfaceInvariantsViolationLoggingEnabled() { - return IsSurfaceSynchronizationEnabled() && - base::FeatureList::IsEnabled(kEnableInvariantsViolationLogging); -} - bool IsVizHitTestingDrawQuadEnabled() { return base::FeatureList::IsEnabled(kEnableVizHitTestDrawQuad) || base::FeatureList::IsEnabled(kVizDisplayCompositor);
diff --git a/components/viz/common/features.h b/components/viz/common/features.h index f5f21df..1a257ec 100644 --- a/components/viz/common/features.h +++ b/components/viz/common/features.h
@@ -13,7 +13,6 @@ VIZ_COMMON_EXPORT extern const base::Feature kEnableDrawOcclusion; VIZ_COMMON_EXPORT extern const base::Feature kEnableSurfaceSynchronization; -VIZ_COMMON_EXPORT extern const base::Feature kEnableInvariantsViolationLogging; VIZ_COMMON_EXPORT extern const base::Feature kEnableVizHitTestDrawQuad; VIZ_COMMON_EXPORT extern const base::Feature kEnableVizHitTestSurfaceLayer; VIZ_COMMON_EXPORT extern const base::Feature kUseSkiaDeferredDisplayList; @@ -22,7 +21,6 @@ VIZ_COMMON_EXPORT bool IsDrawOcclusionEnabled(); VIZ_COMMON_EXPORT bool IsSurfaceSynchronizationEnabled(); -VIZ_COMMON_EXPORT bool IsSurfaceInvariantsViolationLoggingEnabled(); VIZ_COMMON_EXPORT bool IsVizHitTestingDrawQuadEnabled(); VIZ_COMMON_EXPORT bool IsVizHitTestingEnabled(); VIZ_COMMON_EXPORT bool IsVizHitTestingSurfaceLayerEnabled();
diff --git a/content/app/strings/translations/content_strings_ar.xtb b/content/app/strings/translations/content_strings_ar.xtb index 848bdec..e75e94de 100644 --- a/content/app/strings/translations/content_strings_ar.xtb +++ b/content/app/strings/translations/content_strings_ar.xtb
@@ -27,7 +27,7 @@ <translation id="1821985195704844674">شبكة متفرعة</translation> <translation id="1822429046913737220">صباحًا/مساءً</translation> <translation id="1832974991323546415">تشغيل على جهاز بعيد</translation> -<translation id="1838818994221231429">تبديل وضع ملء الشاشة إلى منطقة صورة مقطوعة للشاشة</translation> +<translation id="1838818994221231429">تبديل وضع ملء الشاشة إلى صورة مقطوعة للشاشة</translation> <translation id="190587075670221089">حذف</translation> <translation id="1907737156431278478">مثال</translation> <translation id="1921819250265091946">يوم</translation>
diff --git a/content/app/strings/translations/content_strings_bg.xtb b/content/app/strings/translations/content_strings_bg.xtb index e90675e7..6a49487b 100644 --- a/content/app/strings/translations/content_strings_bg.xtb +++ b/content/app/strings/translations/content_strings_bg.xtb
@@ -27,7 +27,7 @@ <translation id="1821985195704844674">дървовидна таблица</translation> <translation id="1822429046913737220">AM/PM</translation> <translation id="1832974991323546415">възпроизвеждане на отдалечено устройство</translation> -<translation id="1838818994221231429">превключване на навлизането на целия екран в областта на прореза на екрана</translation> +<translation id="1838818994221231429">превключване между цял екран и екран с прорез</translation> <translation id="190587075670221089">изтриване</translation> <translation id="1907737156431278478">пример</translation> <translation id="1921819250265091946">дд</translation> @@ -104,7 +104,7 @@ <translation id="4664250907885839816">Текстът след „<ph name="ATSIGN" />“ не бива да съдържа символа „<ph name="INVALIDCHARACTER" />“.</translation> <translation id="4668956016107839909">приложение</translation> <translation id="4742539557769756338">корица</translation> -<translation id="4748357248530471599">превключване на прореза на екрана при цял екран</translation> +<translation id="4748357248530471599">превключване между прорез на екрана и цял екран</translation> <translation id="4757246831282535685">панел с раздели</translation> <translation id="4763480195061959176">видео</translation> <translation id="479989351350248267">search</translation>
diff --git a/content/app/strings/translations/content_strings_da.xtb b/content/app/strings/translations/content_strings_da.xtb index 283bd54b..2f768137 100644 --- a/content/app/strings/translations/content_strings_da.xtb +++ b/content/app/strings/translations/content_strings_da.xtb
@@ -27,7 +27,7 @@ <translation id="1821985195704844674">trægitter</translation> <translation id="1822429046913737220">f.m./e.m.</translation> <translation id="1832974991323546415">afspil på en enhed via fjernadgang</translation> -<translation id="1838818994221231429">skift fuld skærm i skærmhak</translation> +<translation id="1838818994221231429">skift fra fuld skærm til skærmhak</translation> <translation id="190587075670221089">sletning</translation> <translation id="1907737156431278478">eksempel</translation> <translation id="1921819250265091946">dd</translation> @@ -104,7 +104,7 @@ <translation id="4664250907885839816">Den del, der kommer efter "<ph name="ATSIGN" />", må ikke indeholde symbolet "<ph name="INVALIDCHARACTER" />".</translation> <translation id="4668956016107839909">bilag</translation> <translation id="4742539557769756338">forside</translation> -<translation id="4748357248530471599">skift skærmhak i fuld skærm</translation> +<translation id="4748357248530471599">skift fra skærmhak til fuld skærm</translation> <translation id="4757246831282535685">fanepanel</translation> <translation id="4763480195061959176">video</translation> <translation id="479989351350248267">søg</translation>
diff --git a/content/app/strings/translations/content_strings_id.xtb b/content/app/strings/translations/content_strings_id.xtb index 7672803..adc1486 100644 --- a/content/app/strings/translations/content_strings_id.xtb +++ b/content/app/strings/translations/content_strings_id.xtb
@@ -104,7 +104,7 @@ <translation id="4664250907885839816">Bagian setelah '<ph name="ATSIGN" />' tidak boleh berisi simbol '<ph name="INVALIDCHARACTER" />'.</translation> <translation id="4668956016107839909">lampiran</translation> <translation id="4742539557769756338">sampul</translation> -<translation id="4748357248530471599">mengalihkan layar penuh potongan layar</translation> +<translation id="4748357248530471599">mengalihkan ke layar penuh potongan layar</translation> <translation id="4757246831282535685">panel tab</translation> <translation id="4763480195061959176">video</translation> <translation id="479989351350248267">search</translation>
diff --git a/content/app/strings/translations/content_strings_iw.xtb b/content/app/strings/translations/content_strings_iw.xtb index 769457bb..05c05d45 100644 --- a/content/app/strings/translations/content_strings_iw.xtb +++ b/content/app/strings/translations/content_strings_iw.xtb
@@ -27,7 +27,7 @@ <translation id="1821985195704844674">רשת של עץ</translation> <translation id="1822429046913737220">AM/PM</translation> <translation id="1832974991323546415">הפעלה במכשיר מרוחק</translation> -<translation id="1838818994221231429">מעבר ממסך מלא אל אזור המגרעת במסך</translation> +<translation id="1838818994221231429">מעבר ממסך מלא לתצוגה באזור המגרעת של המסך</translation> <translation id="190587075670221089">מחיקה</translation> <translation id="1907737156431278478">דוגמה</translation> <translation id="1921819250265091946">dd</translation> @@ -104,7 +104,7 @@ <translation id="4664250907885839816">חלק ולאחריו '<ph name="ATSIGN" />' לא אמור לכלול את הסמל '<ph name="INVALIDCHARACTER" />'.</translation> <translation id="4668956016107839909">נספח</translation> <translation id="4742539557769756338">שער</translation> -<translation id="4748357248530471599">מעבר ממסך מלא לאזור המגרעת במסך</translation> +<translation id="4748357248530471599">מעבר מתצוגה באזור המגרעת של המסך למסך מלא</translation> <translation id="4757246831282535685">חלונית כרטיסיות</translation> <translation id="4763480195061959176">סרטוני וידאו</translation> <translation id="479989351350248267">Search</translation>
diff --git a/content/app/strings/translations/content_strings_ml.xtb b/content/app/strings/translations/content_strings_ml.xtb index 20c9ea8..e244ccee 100644 --- a/content/app/strings/translations/content_strings_ml.xtb +++ b/content/app/strings/translations/content_strings_ml.xtb
@@ -65,7 +65,7 @@ <translation id="2942448076852699108">ഹൈലൈറ്റുചെയ്തിരിക്കുന്ന ഉള്ളടക്കം</translation> <translation id="3040011195152428237">ലിങ്ക്</translation> <translation id="3049748772180311791"><ph name="QUANTITY" /> MB</translation> -<translation id="3075154866155599887">ഒരു സാധുതയുള്ള മൂല്യം നൽകുക. ഫീൽഡ് പൂർണ്ണമല്ല അല്ലെങ്കിൽ അസാധുവായ തീയതിയിലുള്ളതാണ്.</translation> +<translation id="3075154866155599887">ഒരു സാധുതയുള്ള മൂല്യം നൽകുക. ഫീൽഡ് പൂർണ്ണമല്ല അല്ലെങ്കിൽ അസാധുവായ തീയതിയാണുളളത്.</translation> <translation id="3078740164268491126">പട്ടിക</translation> <translation id="3086746722712840547">note</translation> <translation id="310520048233152454">ദയവായി ഒരു URL നല്കുക.</translation>
diff --git a/content/app/strings/translations/content_strings_ro.xtb b/content/app/strings/translations/content_strings_ro.xtb index 7bb26721..028076e 100644 --- a/content/app/strings/translations/content_strings_ro.xtb +++ b/content/app/strings/translations/content_strings_ro.xtb
@@ -27,7 +27,7 @@ <translation id="1821985195704844674">grilă arbore</translation> <translation id="1822429046913737220">AM/PM</translation> <translation id="1832974991323546415">redă pe dispozitiv la distanță</translation> -<translation id="1838818994221231429">comută ecranul complet în zona cu decupajul ecranului</translation> +<translation id="1838818994221231429">decupaj inclus în ecranul complet</translation> <translation id="190587075670221089">ștergere</translation> <translation id="1907737156431278478">exemplu</translation> <translation id="1921819250265091946">zz</translation> @@ -104,7 +104,7 @@ <translation id="4664250907885839816">Valoarea care urmează după semnul „<ph name="ATSIGN" />” nu trebuie să conțină simbolul „<ph name="INVALIDCHARACTER" />”.</translation> <translation id="4668956016107839909">anexă</translation> <translation id="4742539557769756338">copertă</translation> -<translation id="4748357248530471599">comută decupajul ecranului pe ecran complet</translation> +<translation id="4748357248530471599">decupaj inclus în ecranul complet</translation> <translation id="4757246831282535685">panou de file</translation> <translation id="4763480195061959176">video</translation> <translation id="479989351350248267">căutați</translation>
diff --git a/content/app/strings/translations/content_strings_sr.xtb b/content/app/strings/translations/content_strings_sr.xtb index c8aa7cec..cfc90916 100644 --- a/content/app/strings/translations/content_strings_sr.xtb +++ b/content/app/strings/translations/content_strings_sr.xtb
@@ -27,7 +27,7 @@ <translation id="1821985195704844674">мрежа стабла</translation> <translation id="1822429046913737220">пре подне/по подне</translation> <translation id="1832974991323546415">пуштајте на удаљеном уређају</translation> -<translation id="1838818994221231429">укључује/искључује приказивање на целом екрану у области изреза екрана</translation> +<translation id="1838818994221231429">укључује/искључује приказ на целом екрану без области изрезаног приказа</translation> <translation id="190587075670221089">брисање</translation> <translation id="1907737156431278478">пример</translation> <translation id="1921819250265091946">дд</translation> @@ -104,7 +104,7 @@ <translation id="4664250907885839816">Део после „<ph name="ATSIGN" />“ не треба да садржи симбол „<ph name="INVALIDCHARACTER" />“.</translation> <translation id="4668956016107839909">додатак</translation> <translation id="4742539557769756338">корицe</translation> -<translation id="4748357248530471599">укључи/искључи цео екрану у области изреза екрана</translation> +<translation id="4748357248530471599">укључи/искључи цео екран без области изрезаног приказа</translation> <translation id="4757246831282535685">табла са картицама</translation> <translation id="4763480195061959176">видео</translation> <translation id="479989351350248267">search</translation>
diff --git a/content/app/strings/translations/content_strings_ta.xtb b/content/app/strings/translations/content_strings_ta.xtb index f3954fd..3c9bb13 100644 --- a/content/app/strings/translations/content_strings_ta.xtb +++ b/content/app/strings/translations/content_strings_ta.xtb
@@ -27,7 +27,7 @@ <translation id="1821985195704844674">ட்ரீ கிரிட்</translation> <translation id="1822429046913737220">AM/PM</translation> <translation id="1832974991323546415">தொலைநிலைச் சாதனத்தில் இயக்கு</translation> -<translation id="1838818994221231429">முழுத்திரைக் காட்சியைத் திரை டிஸ்ப்ளே கட்அவுட் பகுதிக்கு நிலைமாற்றும்</translation> +<translation id="1838818994221231429">முழுத்திரைக் காட்சியை டிஸ்ப்ளே கட்அவுட் பகுதிக்கு நிலைமாற்றும்</translation> <translation id="190587075670221089">நீக்கும்</translation> <translation id="1907737156431278478">உதாரணம்</translation> <translation id="1921819250265091946">dd</translation> @@ -126,7 +126,7 @@ <translation id="5466621249238537318">ஒன்று அல்லது அதற்குமேற்பட்ட கோப்புகளைத் தேர்ந்தெடுங்கள்.</translation> <translation id="5468998798572797635">முழுத்திரையிலிருந்து வெளியேறு</translation> <translation id="5516424706154626233">தேதி தேர்ந்தெடுப்பான்</translation> -<translation id="5537725057119320332">அனுப்பு</translation> +<translation id="5537725057119320332">அலைபரப்பு</translation> <translation id="5546461542133609677">ஒலி இயக்கு</translation> <translation id="561939826962581046">நேரம்</translation> <translation id="5630795885300617244">10வி தவிர்க்க, இடது அல்லது வலதுபுறம் இருமுறை தட்டவும்</translation> @@ -166,7 +166,7 @@ <translation id="6820355525329141109">செருகுநிரல் ஏற்றப்படவில்லை.</translation> <translation id="6820615603175220800">நூல்விவர அட்டவணை மேற்கோள்</translation> <translation id="6843725295806269523">ஒலியடக்கு</translation> -<translation id="6853785296079745596">மூடப்பட்ட தலைப்புகளை மறை</translation> +<translation id="6853785296079745596">விரிவான வசனங்களை மறை</translation> <translation id="6885760532393684712">கோப்பகம்</translation> <translation id="689129560213475294">முத்திரை</translation> <translation id="6934078000481955284">பிளாக்கோட்</translation> @@ -191,7 +191,7 @@ <translation id="7673697353781729403">மணிநேரம்</translation> <translation id="7681220483256441252">பொருளடக்கம்</translation> <translation id="7720026100085573005">மீதமுள்ள நேரம்</translation> -<translation id="7740016676195725605">மூடப்பட்ட தலைப்புகளைக் காட்டுவதை நிறுத்து</translation> +<translation id="7740016676195725605">விரிவான வசனங்களைக் காட்டுவதை நிறுத்து</translation> <translation id="7740050170769002709">HTML உள்ளடக்கம்</translation> <translation id="7750228210027921155">பிக்ச்சர்-இன்-பிக்ச்சர்</translation> <translation id="7789962463072032349">இடைநிறுத்து</translation> @@ -202,7 +202,7 @@ <translation id="8053789581856978548">தேடல் உரைப் புலம்</translation> <translation id="8057695513531652401">அறிவிப்பு</translation> <translation id="8105797009065549151">குறிப்பு மேற்கோள்</translation> -<translation id="8115662671911883373">மூடப்பட்ட தலைப்புகளைக் காட்டுவதைத் தொடங்கு</translation> +<translation id="8115662671911883373">விரிவான வசனங்களைக் காட்டத் தொடங்கு</translation> <translation id="8117451130807776954">இந்த வாரம்</translation> <translation id="819205353528511139">மூவியை முழுத்திரைப் பயன்முறையில் இயக்கு</translation> <translation id="8199524924445686405">yyyy</translation> @@ -212,7 +212,7 @@ <translation id="8433900881053900389">கருவிப்பட்டி</translation> <translation id="8444882422881193423"><ph name="NUMBER_OF_FILES" /> கோப்புகள்</translation> <translation id="8451268428117625855">ஒரு கோப்பை தேர்ந்தெடுக்கவும்.</translation> -<translation id="8461852803063341183">ரேடியோ பொத்தான்</translation> +<translation id="8461852803063341183">ரேடியோ பட்டன்</translation> <translation id="8474886197722836894">அர்ப்பணம்</translation> <translation id="8531739829932800271">பிழைகள்</translation> <translation id="8534579021159131403">நிமிடங்கள்</translation> @@ -233,7 +233,7 @@ <translation id="8987927404178983737">மாதம்</translation> <translation id="901493112792887934">நடப்பு நேரம் வினாடிகளில்</translation> <translation id="9048119486235211610">வழிசெலுத்தல்</translation> -<translation id="9050748414552849310">மூடப்பட்ட தலைப்புகளைக் காட்டு</translation> +<translation id="9050748414552849310">விரிவான வசனங்களைக் காட்டு</translation> <translation id="9062295712474918030">ஆவணம்</translation> <translation id="9093215626363556771">பிக்ச்சர்-இன்-பிக்ச்சர் பயன்முறையிலிருந்து வெளியேறும்</translation> <translation id="9108370397979208512">கணிதம்</translation>
diff --git a/content/app/strings/translations/content_strings_uk.xtb b/content/app/strings/translations/content_strings_uk.xtb index bef1d48..a3a041c 100644 --- a/content/app/strings/translations/content_strings_uk.xtb +++ b/content/app/strings/translations/content_strings_uk.xtb
@@ -27,7 +27,7 @@ <translation id="1821985195704844674">сітка дерева</translation> <translation id="1822429046913737220">д.п./п.п.</translation> <translation id="1832974991323546415">відтворити на віддаленому пристрої</translation> -<translation id="1838818994221231429">перемкнути з повноекранного режиму на виріз екрана</translation> +<translation id="1838818994221231429">використовувати або не використовувати зону вирізу екрана в повноекранному режимі</translation> <translation id="190587075670221089">видалення</translation> <translation id="1907737156431278478">приклад</translation> <translation id="1921819250265091946">дд</translation>
diff --git a/content/app/strings/translations/content_strings_vi.xtb b/content/app/strings/translations/content_strings_vi.xtb index a2e904bb..87b3e3c 100644 --- a/content/app/strings/translations/content_strings_vi.xtb +++ b/content/app/strings/translations/content_strings_vi.xtb
@@ -27,7 +27,7 @@ <translation id="1821985195704844674">lưới dạng cây</translation> <translation id="1822429046913737220">SA/CH</translation> <translation id="1832974991323546415">phát trên thiết bị từ xa</translation> -<translation id="1838818994221231429">chuyển từ chế độ toàn màn hình sang chế độ có vùng vết cắt trên màn hình</translation> +<translation id="1838818994221231429">chuyển từ chế độ toàn màn hình sang màn hình có vết cắt</translation> <translation id="190587075670221089">xóa</translation> <translation id="1907737156431278478">ví dụ</translation> <translation id="1921819250265091946">dd</translation> @@ -104,7 +104,7 @@ <translation id="4664250907885839816">Phần đứng sau '<ph name="ATSIGN" />' không được chứa biểu tượng '<ph name="INVALIDCHARACTER" />'.</translation> <translation id="4668956016107839909">phụ lục</translation> <translation id="4742539557769756338">trang bìa</translation> -<translation id="4748357248530471599">chuyển đổi chế độ toàn màn hình hiển thị vết cắt</translation> +<translation id="4748357248530471599">bật/tắt chế độ toàn màn hình có vết cắt</translation> <translation id="4757246831282535685">bảng điều khiển tab</translation> <translation id="4763480195061959176">video</translation> <translation id="479989351350248267">search</translation>
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn index 4ffd67d..dd50db6 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn
@@ -1084,6 +1084,8 @@ "manifest/manifest_icon_downloader.cc", "manifest/manifest_manager_host.cc", "manifest/manifest_manager_host.h", + "media/android/browser_gpu_video_accelerator_factories.cc", + "media/android/browser_gpu_video_accelerator_factories.h", "media/android/browser_media_player_manager.cc", "media/android/browser_media_player_manager.h", "media/android/media_player_renderer.cc",
diff --git a/content/browser/accessibility/browser_accessibility_mac.h b/content/browser/accessibility/browser_accessibility_mac.h index d2cc8d7..0e00dbd 100644 --- a/content/browser/accessibility/browser_accessibility_mac.h +++ b/content/browser/accessibility/browser_accessibility_mac.h
@@ -38,11 +38,6 @@ return browser_accessibility_cocoa_; } - // Detach the BrowserAccessibilityCocoa object and then recreate it. - // This is only used to work around VoiceOver bugs by forcing VoiceOver - // to rebuild its internal state. - void RecreateNativeObject(); - private: // This gives BrowserAccessibility::Create access to the class constructor. friend class BrowserAccessibility;
diff --git a/content/browser/accessibility/browser_accessibility_mac.mm b/content/browser/accessibility/browser_accessibility_mac.mm index 1c5d917..ca5da8d 100644 --- a/content/browser/accessibility/browser_accessibility_mac.mm +++ b/content/browser/accessibility/browser_accessibility_mac.mm
@@ -82,21 +82,6 @@ return nullptr; } -void BrowserAccessibilityMac::RecreateNativeObject() { - if (!browser_accessibility_cocoa_) - return; - - // Preserve the children so that recreating the native object doesn't - // end up recreating the whole subtree. - base::scoped_nsobject<NSMutableArray> children; - [browser_accessibility_cocoa_ swapChildren:&children]; - [browser_accessibility_cocoa_ detach]; - [browser_accessibility_cocoa_ release]; - browser_accessibility_cocoa_ = [[BrowserAccessibilityCocoa alloc] - initWithObject:this]; - [browser_accessibility_cocoa_ swapChildren:&children]; -} - const BrowserAccessibilityCocoa* ToBrowserAccessibilityCocoa(const BrowserAccessibility* obj) { DCHECK(obj);
diff --git a/content/browser/accessibility/browser_accessibility_manager_auralinux.cc b/content/browser/accessibility/browser_accessibility_manager_auralinux.cc index 724c645..99c9b9a 100644 --- a/content/browser/accessibility/browser_accessibility_manager_auralinux.cc +++ b/content/browser/accessibility/browser_accessibility_manager_auralinux.cc
@@ -54,10 +54,7 @@ void BrowserAccessibilityManagerAuraLinux::FireFocusEvent( BrowserAccessibility* node) { BrowserAccessibilityManager::FireFocusEvent(node); - if (node->IsNative()) { - ToBrowserAccessibilityAuraLinux(node)->GetNode()->NotifyAccessibilityEvent( - ax::mojom::Event::kFocus); - } + FireEvent(node, ax::mojom::Event::kFocus); } void BrowserAccessibilityManagerAuraLinux::FireSelectedEvent( @@ -71,10 +68,16 @@ if (!node->GetBoolAttribute(ax::mojom::BoolAttribute::kSelected)) return; - if (node->IsNative()) { - ToBrowserAccessibilityAuraLinux(node)->GetNode()->NotifyAccessibilityEvent( - ax::mojom::Event::kSelection); - } + FireEvent(node, ax::mojom::Event::kSelection); +} + +void BrowserAccessibilityManagerAuraLinux::FireEvent(BrowserAccessibility* node, + ax::mojom::Event event) { + if (!node->IsNative()) + return; + + ToBrowserAccessibilityAuraLinux(node)->GetNode()->NotifyAccessibilityEvent( + event); } void BrowserAccessibilityManagerAuraLinux::FireBlinkEvent( @@ -90,6 +93,9 @@ BrowserAccessibilityManager::FireGeneratedEvent(event_type, node); switch (event_type) { + case Event::CHECKED_STATE_CHANGED: + FireEvent(node, ax::mojom::Event::kCheckedStateChanged); + break; case Event::MENU_ITEM_SELECTED: case Event::SELECTED_CHANGED: FireSelectedEvent(node);
diff --git a/content/browser/accessibility/browser_accessibility_manager_auralinux.h b/content/browser/accessibility/browser_accessibility_manager_auralinux.h index 9a0ad52..7626314 100644 --- a/content/browser/accessibility/browser_accessibility_manager_auralinux.h +++ b/content/browser/accessibility/browser_accessibility_manager_auralinux.h
@@ -46,6 +46,8 @@ const std::vector<ui::AXTreeDelegate::Change>& changes) override; private: + void FireEvent(BrowserAccessibility* node, ax::mojom::Event event); + AtkObject* parent_object_; // Give BrowserAccessibilityManager::Create access to our constructor.
diff --git a/content/browser/accessibility/dump_accessibility_events_browsertest.cc b/content/browser/accessibility/dump_accessibility_events_browsertest.cc index b914cec..5774dfe 100644 --- a/content/browser/accessibility/dump_accessibility_events_browsertest.cc +++ b/content/browser/accessibility/dump_accessibility_events_browsertest.cc
@@ -423,4 +423,14 @@ RunEventTest(FILE_PATH_LITERAL("text-changed.html")); } +IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, + AccessibilityEventsAriaCheckedChanged) { + RunEventTest(FILE_PATH_LITERAL("aria-checked-changed.html")); +} + +IN_PROC_BROWSER_TEST_F(DumpAccessibilityEventsTest, + AccessibilityEventsAriaPressedChanged) { + RunEventTest(FILE_PATH_LITERAL("aria-pressed-changed.html")); +} + } // namespace content
diff --git a/content/browser/background_fetch/background_fetch.proto b/content/browser/background_fetch/background_fetch.proto index d1cef4f..c889668 100644 --- a/content/browser/background_fetch/background_fetch.proto +++ b/content/browser/background_fetch/background_fetch.proto
@@ -13,8 +13,8 @@ // // Next Tag: 9 message BackgroundFetchRegistration { - enum BackgroundFetchState { - PENDING = 0; // Default value. + enum BackgroundFetchResult { + UNSET = 0; // Default value. FAILURE = 1; SUCCESS = 2; } @@ -41,7 +41,7 @@ optional uint64 uploaded = 4; optional uint64 download_total = 5; optional uint64 downloaded = 6; - optional BackgroundFetchState state = 7; + optional BackgroundFetchResult result = 7; optional BackgroundFetchFailureReason failure_reason = 8; }
diff --git a/content/browser/background_fetch/background_fetch_context.cc b/content/browser/background_fetch/background_fetch_context.cc index 1334a28..54377c5 100644 --- a/content/browser/background_fetch/background_fetch_context.cc +++ b/content/browser/background_fetch/background_fetch_context.cc
@@ -429,13 +429,13 @@ controllers_iter->second->Abort(reason_to_abort); } auto registration = controllers_iter->second->NewRegistration( - blink::mojom::BackgroundFetchState::FAILURE); + blink::mojom::BackgroundFetchResult::FAILURE); switch (reason_to_abort) { case FailureReason::CANCELLED_BY_DEVELOPER: case FailureReason::CANCELLED_FROM_UI: CleanupRegistration(registration_id, {}, - blink::mojom::BackgroundFetchState::FAILURE); + blink::mojom::BackgroundFetchResult::FAILURE); event_dispatcher_.DispatchBackgroundFetchAbortEvent( registration_id, std::move(registration), base::DoNothing()); return; @@ -471,7 +471,7 @@ if (error != blink::mojom::BackgroundFetchError::NONE) { CleanupRegistration(registration_id, {} /* fetches */, - blink::mojom::BackgroundFetchState::FAILURE, + blink::mojom::BackgroundFetchResult::FAILURE, true /* preserve_info_to_dispatch_click_event */); return; } @@ -488,7 +488,7 @@ // registration have completed successfully. In all other cases, the // `backgroundfetchfail` event will be invoked instead. if (background_fetch_succeeded) { - registration->state = blink::mojom::BackgroundFetchState::SUCCESS; + registration->result = blink::mojom::BackgroundFetchResult::SUCCESS; event_dispatcher_.DispatchBackgroundFetchSuccessEvent( registration_id, std::move(registration), base::BindOnce( @@ -498,10 +498,10 @@ // |blob_data_handles| to the callback to keep them alive // until the waitUntil event is resolved. std::move(blob_data_handles), - blink::mojom::BackgroundFetchState::SUCCESS, + blink::mojom::BackgroundFetchResult::SUCCESS, true /* preserve_info_to_dispatch_click_event */)); } else { - registration->state = blink::mojom::BackgroundFetchState::FAILURE; + registration->result = blink::mojom::BackgroundFetchResult::FAILURE; event_dispatcher_.DispatchBackgroundFetchFailEvent( registration_id, std::move(registration), base::BindOnce( @@ -511,7 +511,7 @@ // |blob_data_handles| to the callback to keep them alive // until the waitUntil event is resolved. std::move(blob_data_handles), - blink::mojom::BackgroundFetchState::FAILURE, + blink::mojom::BackgroundFetchResult::FAILURE, true /* preserve_info_to_dispatch_click_event */)); } } @@ -519,7 +519,7 @@ void BackgroundFetchContext::CleanupRegistration( const BackgroundFetchRegistrationId& registration_id, const std::vector<std::unique_ptr<storage::BlobDataHandle>>& blob_handles, - blink::mojom::BackgroundFetchState background_fetch_state, + blink::mojom::BackgroundFetchResult background_fetch_result, bool preserve_info_to_dispatch_click_event) { DCHECK_CURRENTLY_ON(BrowserThread::IO); @@ -534,7 +534,7 @@ if (preserve_info_to_dispatch_click_event) { completed_fetches_[registration_id.unique_id()] = std::make_pair( registration_id, - controllers_iter->second->NewRegistration(background_fetch_state)); + controllers_iter->second->NewRegistration(background_fetch_result)); } job_controllers_.erase(registration_id.unique_id()); @@ -568,9 +568,9 @@ if (controllers_iter == job_controllers_.end()) return; // TODO(crbug.com/873630): Implement a background fetch state manager to - // keep track of states, and stop hard-coding it here. + // keep track of states, and stop hard-coding result here. auto registration = controllers_iter->second->NewRegistration( - blink::mojom::BackgroundFetchState::PENDING); + blink::mojom::BackgroundFetchResult::UNSET); event_dispatcher_.DispatchBackgroundFetchClickEvent( controllers_iter->second->registration_id(), std::move(registration), base::DoNothing());
diff --git a/content/browser/background_fetch/background_fetch_context.h b/content/browser/background_fetch/background_fetch_context.h index c430b2e..1763a8b 100644 --- a/content/browser/background_fetch/background_fetch_context.h +++ b/content/browser/background_fetch/background_fetch_context.h
@@ -238,7 +238,7 @@ // Called when all processing for the |registration_id| has been finished and // the job is ready to be deleted. |blob_handles| are unused, but some callers // use it to keep blobs alive for the right duration. - // |partial cleanup|, when set, preserves the registration ID, and the state + // |partial cleanup|, when set, preserves the registration ID, and the result // of Fetch when it completed, in |completed_fetches_|. This is not done when // fetch is aborted or cancelled. We use this information to propagate // BackgroundFetchClicked event to the developer, when the user taps the UI. @@ -246,7 +246,7 @@ const BackgroundFetchRegistrationId& registration_id, const std::vector<std::unique_ptr<storage::BlobDataHandle>>& blob_data_handles, - blink::mojom::BackgroundFetchState background_fetch_state, + blink::mojom::BackgroundFetchResult background_fetch_result, bool preserve_info_to_dispatch_click_event = false); // Called when the last JavaScript BackgroundFetchRegistration object has been
diff --git a/content/browser/background_fetch/background_fetch_event_dispatcher_unittest.cc b/content/browser/background_fetch/background_fetch_event_dispatcher_unittest.cc index 415e48eb..d897cb81 100644 --- a/content/browser/background_fetch/background_fetch_event_dispatcher_unittest.cc +++ b/content/browser/background_fetch/background_fetch_event_dispatcher_unittest.cc
@@ -48,7 +48,7 @@ auto registration = CreateBackgroundFetchRegistration( invalid_registration_id.developer_id(), invalid_registration_id.unique_id(), - blink::mojom::BackgroundFetchState::FAILURE, + blink::mojom::BackgroundFetchResult::FAILURE, blink::mojom::BackgroundFetchFailureReason::QUOTA_EXCEEDED); event_dispatcher_.DispatchBackgroundFetchAbortEvent( invalid_registration_id, std::move(registration), run_loop.QuitClosure()); @@ -79,7 +79,7 @@ base::RunLoop run_loop; auto registration = CreateBackgroundFetchRegistration( kExampleDeveloperId, kExampleUniqueId, - blink::mojom::BackgroundFetchState::FAILURE, + blink::mojom::BackgroundFetchResult::FAILURE, blink::mojom::BackgroundFetchFailureReason::CANCELLED_FROM_UI); event_dispatcher_.DispatchBackgroundFetchAbortEvent( registration_id, std::move(registration), run_loop.QuitClosure()); @@ -109,7 +109,7 @@ base::RunLoop run_loop; auto registration = CreateBackgroundFetchRegistration( kExampleDeveloperId2, kExampleUniqueId2, - blink::mojom::BackgroundFetchState::FAILURE, + blink::mojom::BackgroundFetchResult::FAILURE, blink::mojom::BackgroundFetchFailureReason::QUOTA_EXCEEDED); event_dispatcher_.DispatchBackgroundFetchAbortEvent(second_registration_id, std::move(registration), @@ -148,7 +148,7 @@ base::RunLoop run_loop; auto registration = CreateBackgroundFetchRegistration( kExampleDeveloperId, kExampleUniqueId, - blink::mojom::BackgroundFetchState::PENDING, + blink::mojom::BackgroundFetchResult::UNSET, blink::mojom::BackgroundFetchFailureReason::NONE); event_dispatcher_.DispatchBackgroundFetchClickEvent( registration_id, std::move(registration), run_loop.QuitClosure()); @@ -159,8 +159,8 @@ ASSERT_TRUE(embedded_worker_test_helper()->last_registration().has_value()); EXPECT_EQ(kExampleDeveloperId, embedded_worker_test_helper()->last_registration()->developer_id); - EXPECT_EQ(blink::mojom::BackgroundFetchState::PENDING, - embedded_worker_test_helper()->last_registration()->state); + EXPECT_EQ(blink::mojom::BackgroundFetchResult::UNSET, + embedded_worker_test_helper()->last_registration()->result); histogram_tester_.ExpectUniqueSample( "BackgroundFetch.EventDispatchResult.ClickEvent", @@ -176,7 +176,7 @@ base::RunLoop run_loop; auto registration = CreateBackgroundFetchRegistration( kExampleDeveloperId2, kExampleUniqueId2, - blink::mojom::BackgroundFetchState::FAILURE, + blink::mojom::BackgroundFetchResult::FAILURE, blink::mojom::BackgroundFetchFailureReason::QUOTA_EXCEEDED); event_dispatcher_.DispatchBackgroundFetchClickEvent(second_registration_id, std::move(registration), @@ -188,8 +188,8 @@ ASSERT_TRUE(embedded_worker_test_helper()->last_registration().has_value()); EXPECT_EQ(kExampleDeveloperId2, embedded_worker_test_helper()->last_registration()->developer_id); - EXPECT_EQ(blink::mojom::BackgroundFetchState::FAILURE, - embedded_worker_test_helper()->last_registration()->state); + EXPECT_EQ(blink::mojom::BackgroundFetchResult::FAILURE, + embedded_worker_test_helper()->last_registration()->result); histogram_tester_.ExpectBucketCount( "BackgroundFetch.EventDispatchResult.ClickEvent", @@ -215,7 +215,7 @@ base::RunLoop run_loop; auto registration = CreateBackgroundFetchRegistration( kExampleDeveloperId, kExampleUniqueId, - blink::mojom::BackgroundFetchState::FAILURE, + blink::mojom::BackgroundFetchResult::FAILURE, blink::mojom::BackgroundFetchFailureReason::QUOTA_EXCEEDED); event_dispatcher_.DispatchBackgroundFetchFailEvent( registration_id, std::move(registration), run_loop.QuitClosure()); @@ -241,7 +241,7 @@ base::RunLoop run_loop; auto registration = CreateBackgroundFetchRegistration( kExampleDeveloperId2, kExampleUniqueId2, - blink::mojom::BackgroundFetchState::FAILURE, + blink::mojom::BackgroundFetchResult::FAILURE, blink::mojom::BackgroundFetchFailureReason::QUOTA_EXCEEDED); event_dispatcher_.DispatchBackgroundFetchFailEvent(second_registration_id, std::move(registration), @@ -277,7 +277,7 @@ base::RunLoop run_loop; auto registration = CreateBackgroundFetchRegistration( kExampleDeveloperId, kExampleUniqueId, - blink::mojom::BackgroundFetchState::SUCCESS, + blink::mojom::BackgroundFetchResult::SUCCESS, blink::mojom::BackgroundFetchFailureReason::NONE); event_dispatcher_.DispatchBackgroundFetchSuccessEvent( registration_id, std::move(registration), run_loop.QuitClosure()); @@ -306,7 +306,7 @@ base::RunLoop run_loop; auto registration = CreateBackgroundFetchRegistration( kExampleDeveloperId2, kExampleUniqueId2, - blink::mojom::BackgroundFetchState::SUCCESS, + blink::mojom::BackgroundFetchResult::SUCCESS, blink::mojom::BackgroundFetchFailureReason::NONE); event_dispatcher_.DispatchBackgroundFetchSuccessEvent( second_registration_id, std::move(registration),
diff --git a/content/browser/background_fetch/background_fetch_job_controller.cc b/content/browser/background_fetch/background_fetch_job_controller.cc index adfecb4a1..e0ffe6a 100644 --- a/content/browser/background_fetch/background_fetch_job_controller.cc +++ b/content/browser/background_fetch/background_fetch_job_controller.cc
@@ -140,11 +140,11 @@ std::unique_ptr<BackgroundFetchRegistration> BackgroundFetchJobController::NewRegistration( - blink::mojom::BackgroundFetchState state) const { + blink::mojom::BackgroundFetchResult result) const { return std::make_unique<BackgroundFetchRegistration>( registration_id().developer_id(), registration_id().unique_id(), 0 /* upload_total */, 0 /* uploaded */, total_downloads_size_, - complete_requests_downloaded_bytes_cache_, state, reason_to_abort_); + complete_requests_downloaded_bytes_cache_, result, reason_to_abort_); } uint64_t BackgroundFetchJobController::GetInProgressDownloadedBytes() {
diff --git a/content/browser/background_fetch/background_fetch_job_controller.h b/content/browser/background_fetch/background_fetch_job_controller.h index a4abe5d..32a0586 100644 --- a/content/browser/background_fetch/background_fetch_job_controller.h +++ b/content/browser/background_fetch/background_fetch_job_controller.h
@@ -79,7 +79,7 @@ // Returns a unique_ptr to a BackgroundFetchRegistration object // created with member fields. std::unique_ptr<BackgroundFetchRegistration> NewRegistration( - blink::mojom::BackgroundFetchState state) const; + blink::mojom::BackgroundFetchResult result) const; // Returns the options with which this job is fetching data. const BackgroundFetchOptions& options() const { return options_; }
diff --git a/content/browser/background_fetch/background_fetch_test_base.cc b/content/browser/background_fetch/background_fetch_test_base.cc index ef6f354..136811637c 100644 --- a/content/browser/background_fetch/background_fetch_test_base.cc +++ b/content/browser/background_fetch/background_fetch_test_base.cc
@@ -167,11 +167,11 @@ BackgroundFetchTestBase::CreateBackgroundFetchRegistration( const std::string& developer_id, const std::string& unique_id, - blink::mojom::BackgroundFetchState state, + blink::mojom::BackgroundFetchResult result, blink::mojom::BackgroundFetchFailureReason failure_reason) { auto registration = std::make_unique<BackgroundFetchRegistration>( developer_id, unique_id, 0 /* upload_total */, 0 /* uploaded */, - 0 /* download_total */, 0 /* downloaded */, state, failure_reason); + 0 /* download_total */, 0 /* downloaded */, result, failure_reason); return registration; }
diff --git a/content/browser/background_fetch/background_fetch_test_base.h b/content/browser/background_fetch/background_fetch_test_base.h index 9bb6f0b0..7dc8ca23 100644 --- a/content/browser/background_fetch/background_fetch_test_base.h +++ b/content/browser/background_fetch/background_fetch_test_base.h
@@ -61,7 +61,7 @@ CreateBackgroundFetchRegistration( const std::string& developer_id, const std::string& unique_id, - blink::mojom::BackgroundFetchState state, + blink::mojom::BackgroundFetchResult result, blink::mojom::BackgroundFetchFailureReason failure_reason); // Returns the embedded worker test helper instance, which can be used to
diff --git a/content/browser/background_fetch/storage/create_metadata_task.cc b/content/browser/background_fetch/storage/create_metadata_task.cc index 17665e2..e569a8a 100644 --- a/content/browser/background_fetch/storage/create_metadata_task.cc +++ b/content/browser/background_fetch/storage/create_metadata_task.cc
@@ -101,8 +101,8 @@ registration_proto->set_unique_id(registration_id_.unique_id()); registration_proto->set_developer_id(registration_id_.developer_id()); registration_proto->set_download_total(options_.download_total); - registration_proto->set_state( - proto::BackgroundFetchRegistration_BackgroundFetchState_PENDING); + registration_proto->set_result( + proto::BackgroundFetchRegistration_BackgroundFetchResult_UNSET); registration_proto->set_failure_reason( proto::BackgroundFetchRegistration_BackgroundFetchFailureReason_NONE);
diff --git a/content/browser/background_fetch/storage/database_helpers.cc b/content/browser/background_fetch/storage/database_helpers.cc index 691e721..caac11b 100644 --- a/content/browser/background_fetch/storage/database_helpers.cc +++ b/content/browser/background_fetch/storage/database_helpers.cc
@@ -101,15 +101,15 @@ registration->uploaded = registration_proto.uploaded(); registration->download_total = registration_proto.download_total(); registration->downloaded = registration_proto.downloaded(); - switch (registration_proto.state()) { - case proto::BackgroundFetchRegistration_BackgroundFetchState_PENDING: - registration->state = blink::mojom::BackgroundFetchState::PENDING; + switch (registration_proto.result()) { + case proto::BackgroundFetchRegistration_BackgroundFetchResult_UNSET: + registration->result = blink::mojom::BackgroundFetchResult::UNSET; break; - case proto::BackgroundFetchRegistration_BackgroundFetchState_FAILURE: - registration->state = blink::mojom::BackgroundFetchState::FAILURE; + case proto::BackgroundFetchRegistration_BackgroundFetchResult_FAILURE: + registration->result = blink::mojom::BackgroundFetchResult::FAILURE; break; - case proto::BackgroundFetchRegistration_BackgroundFetchState_SUCCESS: - registration->state = blink::mojom::BackgroundFetchState::SUCCESS; + case proto::BackgroundFetchRegistration_BackgroundFetchResult_SUCCESS: + registration->result = blink::mojom::BackgroundFetchResult::SUCCESS; break; default: NOTREACHED();
diff --git a/content/browser/browser_main_loop.cc b/content/browser/browser_main_loop.cc index 5cea69cf..042f067 100644 --- a/content/browser/browser_main_loop.cc +++ b/content/browser/browser_main_loop.cc
@@ -437,6 +437,31 @@ const base::Feature kBrowserResponsivenessCalculator{ "BrowserResponsivenessCalculator", base::FEATURE_DISABLED_BY_DEFAULT}; +std::unique_ptr<base::MemoryPressureMonitor> CreateMemoryPressureMonitor( + const base::CommandLine& command_line) { + // Behavior of browser tests should not depend on things outside of their + // control (like the amount of memory on the system running the tests). + if (command_line.HasSwitch(switches::kBrowserTest)) + return nullptr; + +// TODO(chrisha): Simplify this code once MemoryPressureMonitor is made a +// concrete class. +#if defined(OS_CHROMEOS) + if (chromeos::switches::MemoryPressureHandlingEnabled()) { + return std::make_unique<base::chromeos::MemoryPressureMonitor>( + chromeos::switches::GetMemoryPressureThresholds()); + } + return nullptr; +#elif defined(OS_MACOSX) + return std::make_unique<base::mac::MemoryPressureMonitor>(); +#elif defined(OS_WIN) + return CreateWinMemoryPressureMonitor(command_line); +#else + // No memory monitor on other platforms... + return nullptr; +#endif +} + } // namespace #if defined(USE_X11) @@ -1498,21 +1523,7 @@ } void BrowserMainLoop::InitializeMemoryManagementComponent() { - // TODO(chrisha): Abstract away this construction mess to a helper function, - // once MemoryPressureMonitor is made a concrete class. -#if defined(OS_CHROMEOS) - if (chromeos::switches::MemoryPressureHandlingEnabled()) { - memory_pressure_monitor_ = - std::make_unique<base::chromeos::MemoryPressureMonitor>( - chromeos::switches::GetMemoryPressureThresholds()); - } -#elif defined(OS_MACOSX) - memory_pressure_monitor_ = - std::make_unique<base::mac::MemoryPressureMonitor>(); -#elif defined(OS_WIN) - memory_pressure_monitor_ = - CreateWinMemoryPressureMonitor(parsed_command_line_); -#endif + memory_pressure_monitor_ = CreateMemoryPressureMonitor(parsed_command_line_); if (base::FeatureList::IsEnabled(features::kMemoryCoordinator)) MemoryCoordinatorImpl::GetInstance()->Start();
diff --git a/content/browser/browser_main_loop_unittest.cc b/content/browser/browser_main_loop_unittest.cc index a4bebc6..cc8eef9b 100644 --- a/content/browser/browser_main_loop_unittest.cc +++ b/content/browser/browser_main_loop_unittest.cc
@@ -22,6 +22,7 @@ TEST(BrowserMainLoopTest, CreateThreadsInSingleProcess) { { base::TaskScheduler::Create("Browser"); + BrowserThreadImpl::CreateTaskExecutor(); base::test::ScopedCommandLine scoped_command_line; scoped_command_line.GetProcessCommandLine()->AppendSwitch( switches::kSingleProcess); @@ -41,6 +42,7 @@ BrowserThreadImpl::ResetGlobalsForTesting( static_cast<BrowserThread::ID>(id)); } + BrowserThreadImpl::ResetTaskExecutorForTesting(); base::TaskScheduler::GetInstance()->JoinForTesting(); base::TaskScheduler::SetInstance(nullptr); }
diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc index 2134033..ff16db4 100644 --- a/content/browser/child_process_security_policy_impl.cc +++ b/content/browser/child_process_security_policy_impl.cc
@@ -1278,10 +1278,11 @@ // without it. A trailing dot shouldn't be able to bypass isolated origins: // if "https://foo.com" is an isolated origin, "https://foo.com." should // match it. - if (it == isolated_origins_.end() && site_url.host().back() == '.') { + if (it == isolated_origins_.end() && site_url.has_host() && + site_url.host_piece().back() == '.') { GURL::Replacements replacements; - std::string host = site_url.host(); - host.pop_back(); + base::StringPiece host(site_url.host_piece()); + host.remove_suffix(1); replacements.SetHostStr(host); it = isolated_origins_.find(site_url.ReplaceComponents(replacements)); }
diff --git a/content/browser/child_process_security_policy_unittest.cc b/content/browser/child_process_security_policy_unittest.cc index 63e3e87..b03a83e 100644 --- a/content/browser/child_process_security_policy_unittest.cc +++ b/content/browser/child_process_security_policy_unittest.cc
@@ -1175,4 +1175,13 @@ } } +// Check that an unsuccessful isolated origin lookup for a URL with an empty +// host doesn't crash. See https://crbug.com/882686. +TEST_F(ChildProcessSecurityPolicyTest, IsIsolatedOriginWithEmptyHost) { + ChildProcessSecurityPolicyImpl* p = + ChildProcessSecurityPolicyImpl::GetInstance(); + EXPECT_FALSE(p->IsIsolatedOrigin(url::Origin::Create(GURL()))); + EXPECT_FALSE(p->IsIsolatedOrigin(url::Origin::Create(GURL("file:///foo")))); +} + } // namespace content
diff --git a/content/browser/frame_host/navigation_request.cc b/content/browser/frame_host/navigation_request.cc index 3b77b8e..bd157dd 100644 --- a/content/browser/frame_host/navigation_request.cc +++ b/content/browser/frame_host/navigation_request.cc
@@ -1238,12 +1238,6 @@ } void NavigationRequest::OnRequestStarted(base::TimeTicks timestamp) { - if (frame_tree_node_->IsMainFrame()) { - TRACE_EVENT_ASYNC_END_WITH_TIMESTAMP0( - "navigation", "Navigation timeToNetworkStack", navigation_handle_.get(), - timestamp); - } - frame_tree_node_->navigator()->LogResourceRequestTime(timestamp, common_params_.url); }
diff --git a/content/browser/frame_host/navigator_impl.cc b/content/browser/frame_host/navigator_impl.cc index f53badc0..6ccacde0 100644 --- a/content/browser/frame_host/navigator_impl.cc +++ b/content/browser/frame_host/navigator_impl.cc
@@ -398,19 +398,6 @@ // after this point without null checking it first. } - if (frame_tree_node->IsMainFrame() && frame_tree_node->navigation_request()) { - // For the trace below we're using the navigation handle as the async - // trace id, |navigation_start| as the timestamp and reporting the - // FrameTreeNode id as a parameter. For navigations where no network - // request is made (data URLs, JavaScript URLs, etc) there is no handle - // and so no tracing is done. - TRACE_EVENT_ASYNC_BEGIN_WITH_TIMESTAMP1( - "navigation", "Navigation timeToNetworkStack", - frame_tree_node->navigation_request()->navigation_handle(), - frame_tree_node->navigation_request()->common_params().navigation_start, - "FrameTreeNode id", frame_tree_node->frame_tree_node_id()); - } - // Make sure no code called via RFH::Navigate clears the pending entry. if (is_pending_entry) CHECK_EQ(nav_entry_id, controller_->GetPendingEntry()->GetUniqueID());
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc index 94905e7..0e0cbcd 100644 --- a/content/browser/frame_host/render_frame_host_impl.cc +++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -564,6 +564,7 @@ is_waiting_for_swapout_ack_(false), render_frame_created_(false), is_waiting_for_beforeunload_ack_(false), + beforeunload_dialog_request_cancels_unload_(false), unload_ack_is_for_navigation_(false), beforeunload_timeout_delay_(base::TimeDelta::FromMilliseconds( RenderViewHostImpl::kUnloadTimeoutMS)), @@ -2318,6 +2319,15 @@ // Allow at most one attempt to show a beforeunload dialog per navigation. RenderFrameHostImpl* beforeunload_initiator = GetBeforeUnloadInitiator(); if (beforeunload_initiator) { + // If the running beforeunload handler wants to display a dialog and the + // before-unload type wants to ignore it, then short-circuit the request and + // respond as if the user decided to stay on the page, canceling the unload. + if (beforeunload_initiator->beforeunload_dialog_request_cancels_unload_) { + SendJavaScriptDialogReply(reply_msg, false /* success */, + base::string16()); + return; + } + if (beforeunload_initiator->has_shown_beforeunload_dialog_) { // TODO(alexmos): Pass enough data back to renderer to record histograms // for Document.BeforeUnloadDialog and add the intervention console @@ -3692,8 +3702,9 @@ type == BeforeUnloadType::RENDERER_INITIATED_NAVIGATION; DCHECK(for_navigation || !is_reload); - // Tab close should only dispatch beforeunload on main frames. - DCHECK(type != BeforeUnloadType::TAB_CLOSE || + // TAB_CLOSE and DISCARD should only dispatch beforeunload on main frames. + DCHECK(type == BeforeUnloadType::BROWSER_INITIATED_NAVIGATION || + type == BeforeUnloadType::RENDERER_INITIATED_NAVIGATION || frame_tree_node_->IsMainFrame()); if (!for_navigation) { @@ -3750,13 +3761,16 @@ // Start the hang monitor in case the renderer hangs in the beforeunload // handler. is_waiting_for_beforeunload_ack_ = true; + beforeunload_dialog_request_cancels_unload_ = false; unload_ack_is_for_navigation_ = for_navigation; send_before_unload_start_time_ = base::TimeTicks::Now(); if (render_view_host_->GetDelegate()->IsJavaScriptDialogShowing()) { // If there is a JavaScript dialog up, don't bother sending the renderer // the unload event because it is known unresponsive, waiting for the - // reply from the dialog. - SimulateBeforeUnloadAck(); + // reply from the dialog. If this incoming request is for a DISCARD be + // sure to reply with |proceed = false|, because the presence of a dialog + // indicates that the page can't be discarded. + SimulateBeforeUnloadAck(type != BeforeUnloadType::DISCARD); } else { // Start a timer that will be shared by all frames that need to run // beforeunload in the current frame's subtree. @@ -3764,6 +3778,8 @@ beforeunload_timeout_->Start(beforeunload_timeout_delay_); beforeunload_pending_replies_.clear(); + beforeunload_dialog_request_cancels_unload_ = + (type == BeforeUnloadType::DISCARD); // Run beforeunload in this frame and its cross-process descendant // frames, in parallel. @@ -3856,7 +3872,7 @@ return found_beforeunload; } -void RenderFrameHostImpl::SimulateBeforeUnloadAck() { +void RenderFrameHostImpl::SimulateBeforeUnloadAck(bool proceed) { DCHECK(is_waiting_for_beforeunload_ack_); base::TimeTicks approx_renderer_start_time = send_before_unload_start_time_; @@ -3864,7 +3880,7 @@ base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::BindOnce(&RenderFrameHostImpl::ProcessBeforeUnloadACK, - weak_ptr_factory_.GetWeakPtr(), true /* proceed */, + weak_ptr_factory_.GetWeakPtr(), proceed, true /* treat_as_final_ack */, approx_renderer_start_time, base::TimeTicks::Now())); } @@ -5276,7 +5292,7 @@ if (render_view_host_->GetDelegate()->ShouldIgnoreUnresponsiveRenderer()) return; - SimulateBeforeUnloadAck(); + SimulateBeforeUnloadAck(true /* proceed */); } void RenderFrameHostImpl::SetLastCommittedSiteUrl(const GURL& url) {
diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h index 01f060b..8c4b7a0 100644 --- a/content/browser/frame_host/render_frame_host_impl.h +++ b/content/browser/frame_host/render_frame_host_impl.h
@@ -457,7 +457,12 @@ enum class BeforeUnloadType { BROWSER_INITIATED_NAVIGATION, RENDERER_INITIATED_NAVIGATION, - TAB_CLOSE + TAB_CLOSE, + // This reason is used before a tab is discarded in order to free up + // resources. When this is used and the handler returns a non-empty string, + // the confirmation dialog will not be displayed and the discard will + // automatically be canceled. + DISCARD, }; // Runs the beforeunload handler for this frame and its subframes. |type| @@ -468,7 +473,7 @@ void DispatchBeforeUnload(BeforeUnloadType type, bool is_reload); // Simulate beforeunload ack on behalf of renderer if it's unrenresponsive. - void SimulateBeforeUnloadAck(); + void SimulateBeforeUnloadAck(bool proceed); // Returns true if a call to DispatchBeforeUnload will actually send the // BeforeUnload IPC. This can be called on a main frame or subframe. If @@ -1382,6 +1387,11 @@ // machine. bool is_waiting_for_beforeunload_ack_; + // Valid only when |is_waiting_for_beforeunload_ack_| is true. This indicates + // whether a subsequent request to launch a modal dialog should be honored or + // whether it should implicitly cause the unload to be canceled. + bool beforeunload_dialog_request_cancels_unload_; + // Valid only when is_waiting_for_beforeunload_ack_ or // IsWaitingForUnloadACK is true. This tells us if the unload request // is for closing the entire tab ( = false), or only this RenderFrameHost in
diff --git a/content/browser/frame_host/render_frame_host_impl_browsertest.cc b/content/browser/frame_host/render_frame_host_impl_browsertest.cc index 078899ab..6d57534 100644 --- a/content/browser/frame_host/render_frame_host_impl_browsertest.cc +++ b/content/browser/frame_host/render_frame_host_impl_browsertest.cc
@@ -9,6 +9,7 @@ #include "base/bind.h" #include "base/bind_helpers.h" #include "base/run_loop.h" +#include "base/strings/utf_string_conversions.h" #include "base/test/bind_test_util.h" #include "base/test/metrics/histogram_tester.h" #include "base/test/mock_callback.h" @@ -201,14 +202,22 @@ : message_loop_runner_(new MessageLoopRunner), url_invalidate_count_(0) {} ~TestJavaScriptDialogManager() override {} + // This waits until either WCD::BeforeUnloadFired is called (the unload has + // been handled) or JSDM::RunJavaScriptDialog/RunBeforeUnloadDialog is called + // (a request to display a dialog has been received). void Wait() { message_loop_runner_->Run(); message_loop_runner_ = new MessageLoopRunner; } - DialogClosedCallback& callback() { return callback_; } + // Runs the dialog callback. + void Run(bool success, const base::string16& user_input) { + std::move(callback_).Run(success, user_input); + } int num_beforeunload_dialogs_seen() { return num_beforeunload_dialogs_seen_; } + int num_beforeunload_fired_seen() { return num_beforeunload_fired_seen_; } + bool proceed() { return proceed_; } // WebContentsDelegate @@ -217,6 +226,14 @@ return this; } + void BeforeUnloadFired(WebContents* tab, + bool proceed, + bool* proceed_to_fire_unload) override { + ++num_beforeunload_fired_seen_; + proceed_ = proceed; + message_loop_runner_->Quit(); + } + // JavaScriptDialogManager void RunJavaScriptDialog(WebContents* web_contents, @@ -225,7 +242,10 @@ const base::string16& message_text, const base::string16& default_prompt_text, DialogClosedCallback callback, - bool* did_suppress_message) override {} + bool* did_suppress_message) override { + callback_ = std::move(callback); + message_loop_runner_->Quit(); + } void RunBeforeUnloadDialog(WebContents* web_contents, RenderFrameHost* render_frame_host, @@ -267,6 +287,13 @@ // The total number of beforeunload dialogs seen by this dialog manager. int num_beforeunload_dialogs_seen_ = 0; + // The total number of BeforeUnloadFired events witnessed by the + // WebContentsDelegate. + int num_beforeunload_fired_seen_ = 0; + + // The |proceed| value returned by the last unload event. + bool proceed_ = false; + DISALLOW_COPY_AND_ASSIGN(TestJavaScriptDialogManager); }; @@ -338,7 +365,7 @@ main_frame->GetProcess()->AddFilter(filter.get()); // Answer the dialog. - std::move(dialog_manager.callback()).Run(true, base::string16()); + dialog_manager.Run(true, base::string16()); // There will be no beforeunload ACK, so if the beforeunload ACK timer isn't // functioning then the navigation will hang forever and this test will time @@ -377,7 +404,7 @@ dialog_manager.Wait(); // Answer the dialog. - std::move(dialog_manager.callback()).Run(true, base::string16()); + dialog_manager.Run(true, base::string16()); EXPECT_TRUE(WaitForLoadStop(wc)); // The reload should have cleared the user gesture bit, so upon leaving again @@ -408,7 +435,7 @@ // Cancel the dialog. dialog_manager.reset_url_invalidate_count(); - std::move(dialog_manager.callback()).Run(false, base::string16()); + dialog_manager.Run(false, base::string16()); EXPECT_FALSE(wc->IsLoading()); // Verify there are no pending history items after the dialog is cancelled. @@ -446,13 +473,13 @@ } void CloseDialogAndProceed() { - std::move(dialog_manager()->callback()) - .Run(true /* navigation should proceed */, base::string16()); + dialog_manager_->Run(true /* navigation should proceed */, + base::string16()); } void CloseDialogAndCancel() { - std::move(dialog_manager()->callback()) - .Run(false /* navigation should proceed */, base::string16()); + dialog_manager_->Run(false /* navigation should proceed */, + base::string16()); } // Installs a beforeunload handler in the given frame. @@ -1872,4 +1899,75 @@ // EXPECT_EQ(blocked_url, nav_handle_observer.last_committed_url()); } +IN_PROC_BROWSER_TEST_F(RenderFrameHostImplBrowserTest, + BeforeUnloadDialogSuppressedForDiscard) { + WebContentsImpl* wc = static_cast<WebContentsImpl*>(shell()->web_contents()); + TestJavaScriptDialogManager dialog_manager; + wc->SetDelegate(&dialog_manager); + + EXPECT_TRUE(NavigateToURL( + shell(), GetTestUrl("render_frame_host", "beforeunload.html"))); + // Disable the hang monitor, otherwise there will be a race between the + // beforeunload dialog and the beforeunload hang timer. + wc->GetMainFrame()->DisableBeforeUnloadHangMonitorForTesting(); + + // Give the page a user gesture so javascript beforeunload works, and then + // dispatch a before unload with discard as a reason. This should return + // without any dialog being seen. + wc->GetMainFrame()->ExecuteJavaScriptWithUserGestureForTests( + base::string16()); + wc->GetMainFrame()->DispatchBeforeUnload( + RenderFrameHostImpl::BeforeUnloadType::DISCARD, false); + dialog_manager.Wait(); + EXPECT_EQ(0, dialog_manager.num_beforeunload_dialogs_seen()); + EXPECT_EQ(1, dialog_manager.num_beforeunload_fired_seen()); + EXPECT_FALSE(dialog_manager.proceed()); + + wc->SetDelegate(nullptr); + wc->SetJavaScriptDialogManagerForTesting(nullptr); +} + +IN_PROC_BROWSER_TEST_F(RenderFrameHostImplBrowserTest, + PendingDialogMakesDiscardUnloadReturnFalse) { + WebContentsImpl* wc = static_cast<WebContentsImpl*>(shell()->web_contents()); + TestJavaScriptDialogManager dialog_manager; + wc->SetDelegate(&dialog_manager); + + EXPECT_TRUE(NavigateToURL( + shell(), GetTestUrl("render_frame_host", "beforeunload.html"))); + // Disable the hang monitor, otherwise there will be a race between the + // beforeunload dialog and the beforeunload hang timer. + wc->GetMainFrame()->DisableBeforeUnloadHangMonitorForTesting(); + + // Give the page a user gesture so javascript beforeunload works, and then + // dispatch a before unload with discard as a reason. This should return + // without any dialog being seen. + wc->GetMainFrame()->ExecuteJavaScriptWithUserGestureForTests( + base::string16()); + + // Launch an alert javascript dialog. This pending dialog should block a + // subsequent discarding before unload request. + wc->GetMainFrame()->ExecuteJavaScriptForTests( + base::ASCIIToUTF16("setTimeout(function(){alert('hello');}, 10);")); + dialog_manager.Wait(); + EXPECT_EQ(0, dialog_manager.num_beforeunload_dialogs_seen()); + EXPECT_EQ(0, dialog_manager.num_beforeunload_fired_seen()); + + // Dispatch a before unload request while the first is still blocked + // on the dialog, and expect it to return false immediately (synchronously). + wc->GetMainFrame()->DispatchBeforeUnload( + RenderFrameHostImpl::BeforeUnloadType::DISCARD, false); + dialog_manager.Wait(); + EXPECT_EQ(0, dialog_manager.num_beforeunload_dialogs_seen()); + EXPECT_EQ(1, dialog_manager.num_beforeunload_fired_seen()); + EXPECT_FALSE(dialog_manager.proceed()); + + // Clear the existing javascript dialog so that the associated IPC message + // doesn't leak. + dialog_manager.Run(true, base::string16()); + + wc->SetDelegate(nullptr); + wc->SetJavaScriptDialogManagerForTesting(nullptr); +} + } // namespace content
diff --git a/content/browser/media/android/browser_gpu_video_accelerator_factories.cc b/content/browser/media/android/browser_gpu_video_accelerator_factories.cc new file mode 100644 index 0000000..c422fb0 --- /dev/null +++ b/content/browser/media/android/browser_gpu_video_accelerator_factories.cc
@@ -0,0 +1,196 @@ +// 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 "content/browser/media/android/browser_gpu_video_accelerator_factories.h" + +#include "content/browser/browser_main_loop.h" +#include "content/common/gpu_stream_constants.h" +#include "content/public/browser/android/gpu_video_accelerator_factories_provider.h" +#include "gpu/command_buffer/client/shared_memory_limits.h" +#include "gpu/command_buffer/common/context_creation_attribs.h" +#include "gpu/ipc/client/command_buffer_proxy_impl.h" +#include "gpu/ipc/client/gpu_channel_host.h" +#include "media/gpu/gpu_video_accelerator_util.h" +#include "media/gpu/ipc/common/media_messages.h" +#include "services/ws/public/cpp/gpu/context_provider_command_buffer.h" + +namespace content { + +namespace { + +void OnGpuChannelEstablished( + GpuVideoAcceleratorFactoriesCallback callback, + scoped_refptr<gpu::GpuChannelHost> gpu_channel_host) { + gpu::ContextCreationAttribs attributes; + attributes.alpha_size = -1; + attributes.red_size = 8; + attributes.green_size = 8; + attributes.blue_size = 8; + attributes.stencil_size = 0; + attributes.depth_size = 0; + attributes.samples = 0; + attributes.sample_buffers = 0; + attributes.bind_generates_resource = false; + + gpu::GpuChannelEstablishFactory* factory = + BrowserMainLoop::GetInstance()->gpu_channel_establish_factory(); + + int32_t stream_id = kGpuStreamIdDefault; + gpu::SchedulingPriority stream_priority = kGpuStreamPriorityUI; + + constexpr bool automatic_flushes = false; + constexpr bool support_locking = false; + constexpr bool support_grcontext = false; + + auto context_provider = + base::MakeRefCounted<ws::ContextProviderCommandBuffer>( + std::move(gpu_channel_host), factory->GetGpuMemoryBufferManager(), + stream_id, stream_priority, gpu::kNullSurfaceHandle, + GURL(std::string("chrome://gpu/" + "BrowserGpuVideoAcceleratorFactories::" + "CreateGpuVideoAcceleratorFactories")), + automatic_flushes, support_locking, support_grcontext, + gpu::SharedMemoryLimits::ForMailboxContext(), attributes, + ws::command_buffer_metrics::ContextType::UNKNOWN); + + // TODO(xingliu): This is on main thread, move to another thread? + context_provider->BindToCurrentThread(); + + auto gpu_factories = std::make_unique<BrowserGpuVideoAcceleratorFactories>( + std::move(context_provider)); + std::move(callback).Run(std::move(gpu_factories)); +} + +} // namespace + +void CreateGpuVideoAcceleratorFactories( + GpuVideoAcceleratorFactoriesCallback callback) { + BrowserMainLoop::GetInstance() + ->gpu_channel_establish_factory() + ->EstablishGpuChannel( + base::BindOnce(&OnGpuChannelEstablished, std::move(callback))); +} + +BrowserGpuVideoAcceleratorFactories::BrowserGpuVideoAcceleratorFactories( + scoped_refptr<ws::ContextProviderCommandBuffer> context_provider) + : context_provider_(std::move(context_provider)) {} + +BrowserGpuVideoAcceleratorFactories::~BrowserGpuVideoAcceleratorFactories() = + default; + +bool BrowserGpuVideoAcceleratorFactories::IsGpuVideoAcceleratorEnabled() { + return false; +} + +base::UnguessableToken BrowserGpuVideoAcceleratorFactories::GetChannelToken() { + if (channel_token_.is_empty()) { + context_provider_->GetCommandBufferProxy()->channel()->Send( + new GpuCommandBufferMsg_GetChannelToken(&channel_token_)); + } + + return channel_token_; +} + +int32_t BrowserGpuVideoAcceleratorFactories::GetCommandBufferRouteId() { + return context_provider_->GetCommandBufferProxy()->route_id(); +} + +std::unique_ptr<media::VideoDecodeAccelerator> +BrowserGpuVideoAcceleratorFactories::CreateVideoDecodeAccelerator() { + return nullptr; +} + +std::unique_ptr<media::VideoEncodeAccelerator> +BrowserGpuVideoAcceleratorFactories::CreateVideoEncodeAccelerator() { + return nullptr; +} + +bool BrowserGpuVideoAcceleratorFactories::CreateTextures( + int32_t count, + const gfx::Size& size, + std::vector<uint32_t>* texture_ids, + std::vector<gpu::Mailbox>* texture_mailboxes, + uint32_t texture_target) { + return false; +} + +void BrowserGpuVideoAcceleratorFactories::DeleteTexture(uint32_t texture_id) {} + +gpu::SyncToken BrowserGpuVideoAcceleratorFactories::CreateSyncToken() { + return gpu::SyncToken(); +} + +void BrowserGpuVideoAcceleratorFactories::ShallowFlushCHROMIUM() {} + +void BrowserGpuVideoAcceleratorFactories::WaitSyncToken( + const gpu::SyncToken& sync_token) {} + +void BrowserGpuVideoAcceleratorFactories::SignalSyncToken( + const gpu::SyncToken& sync_token, + base::OnceClosure callback) {} + +std::unique_ptr<gfx::GpuMemoryBuffer> +BrowserGpuVideoAcceleratorFactories::CreateGpuMemoryBuffer( + const gfx::Size& size, + gfx::BufferFormat format, + gfx::BufferUsage usage) { + return nullptr; +} + +bool BrowserGpuVideoAcceleratorFactories:: + ShouldUseGpuMemoryBuffersForVideoFrames(bool for_media_stream) const { + return false; +} + +unsigned BrowserGpuVideoAcceleratorFactories::ImageTextureTarget( + gfx::BufferFormat format) { + return -1; +} + +media::GpuVideoAcceleratorFactories::OutputFormat +BrowserGpuVideoAcceleratorFactories::VideoFrameOutputFormat( + media::VideoPixelFormat pixel_format) { + return GpuVideoAcceleratorFactories::OutputFormat::UNDEFINED; +} + +gpu::gles2::GLES2Interface* BrowserGpuVideoAcceleratorFactories::ContextGL() { + return nullptr; +} + +std::unique_ptr<base::SharedMemory> +BrowserGpuVideoAcceleratorFactories::CreateSharedMemory(size_t size) { + return nullptr; +} + +scoped_refptr<base::SingleThreadTaskRunner> +BrowserGpuVideoAcceleratorFactories::GetTaskRunner() { + return nullptr; +} + +media::VideoDecodeAccelerator::Capabilities +BrowserGpuVideoAcceleratorFactories::GetVideoDecodeAcceleratorCapabilities() { + DCHECK(context_provider_); + auto* proxy = context_provider_->GetCommandBufferProxy(); + DCHECK(proxy); + DCHECK(proxy->channel()); + + return media::GpuVideoAcceleratorUtil::ConvertGpuToMediaDecodeCapabilities( + proxy->channel()->gpu_info().video_decode_accelerator_capabilities); +} + +media::VideoEncodeAccelerator::SupportedProfiles +BrowserGpuVideoAcceleratorFactories:: + GetVideoEncodeAcceleratorSupportedProfiles() { + return media::VideoEncodeAccelerator::SupportedProfiles(); +} + +scoped_refptr<ws::ContextProviderCommandBuffer> +BrowserGpuVideoAcceleratorFactories::GetMediaContextProvider() { + return nullptr; +} + +void BrowserGpuVideoAcceleratorFactories::SetRenderingColorSpace( + const gfx::ColorSpace& color_space) {} + +} // namespace content
diff --git a/content/browser/media/android/browser_gpu_video_accelerator_factories.h b/content/browser/media/android/browser_gpu_video_accelerator_factories.h new file mode 100644 index 0000000..198c252 --- /dev/null +++ b/content/browser/media/android/browser_gpu_video_accelerator_factories.h
@@ -0,0 +1,70 @@ +// 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 CONTENT_BROWSER_MEDIA_ANDROID_BROWSER_GPU_VIDEO_ACCELERATOR_FACTORIES_H_ +#define CONTENT_BROWSER_MEDIA_ANDROID_BROWSER_GPU_VIDEO_ACCELERATOR_FACTORIES_H_ + +#include "base/macros.h" +#include "media/video/gpu_video_accelerator_factories.h" + +namespace content { + +// Provides hardware video decoding contexts in the browser process. Used to +// generate video thumbnail. +class BrowserGpuVideoAcceleratorFactories + : public media::GpuVideoAcceleratorFactories { + public: + explicit BrowserGpuVideoAcceleratorFactories( + scoped_refptr<ws::ContextProviderCommandBuffer>); + ~BrowserGpuVideoAcceleratorFactories() override; + + private: + // media::GpuVideoAcceleratorFactories implementation. + bool IsGpuVideoAcceleratorEnabled() override; + base::UnguessableToken GetChannelToken() override; + int32_t GetCommandBufferRouteId() override; + std::unique_ptr<media::VideoDecodeAccelerator> CreateVideoDecodeAccelerator() + override; + std::unique_ptr<media::VideoEncodeAccelerator> CreateVideoEncodeAccelerator() + override; + bool CreateTextures(int32_t count, + const gfx::Size& size, + std::vector<uint32_t>* texture_ids, + std::vector<gpu::Mailbox>* texture_mailboxes, + uint32_t texture_target) override; + void DeleteTexture(uint32_t texture_id) override; + gpu::SyncToken CreateSyncToken() override; + void ShallowFlushCHROMIUM() override; + void WaitSyncToken(const gpu::SyncToken& sync_token) override; + void SignalSyncToken(const gpu::SyncToken& sync_token, + base::OnceClosure callback) override; + std::unique_ptr<gfx::GpuMemoryBuffer> CreateGpuMemoryBuffer( + const gfx::Size& size, + gfx::BufferFormat format, + gfx::BufferUsage usage) override; + bool ShouldUseGpuMemoryBuffersForVideoFrames( + bool for_media_stream) const override; + unsigned ImageTextureTarget(gfx::BufferFormat format) override; + media::GpuVideoAcceleratorFactories::OutputFormat VideoFrameOutputFormat( + media::VideoPixelFormat pixel_format) override; + gpu::gles2::GLES2Interface* ContextGL() override; + std::unique_ptr<base::SharedMemory> CreateSharedMemory(size_t size) override; + scoped_refptr<base::SingleThreadTaskRunner> GetTaskRunner() override; + media::VideoDecodeAccelerator::Capabilities + GetVideoDecodeAcceleratorCapabilities() override; + media::VideoEncodeAccelerator::SupportedProfiles + GetVideoEncodeAcceleratorSupportedProfiles() override; + scoped_refptr<ws::ContextProviderCommandBuffer> GetMediaContextProvider() + override; + void SetRenderingColorSpace(const gfx::ColorSpace& color_space) override; + + scoped_refptr<ws::ContextProviderCommandBuffer> context_provider_; + base::UnguessableToken channel_token_; + + DISALLOW_COPY_AND_ASSIGN(BrowserGpuVideoAcceleratorFactories); +}; + +} // namespace content + +#endif // CONTENT_BROWSER_MEDIA_ANDROID_BROWSER_GPU_VIDEO_ACCELERATOR_FACTORIES_H_
diff --git a/content/browser/renderer_host/input/input_router_impl.cc b/content/browser/renderer_host/input/input_router_impl.cc index c1d857d..5d7dd2a 100644 --- a/content/browser/renderer_host/input/input_router_impl.cc +++ b/content/browser/renderer_host/input/input_router_impl.cc
@@ -335,15 +335,19 @@ void InputRouterImpl::OnTouchEventAck(const TouchEventWithLatencyInfo& event, InputEventAckSource ack_source, InputEventAckState ack_result) { - // Touchstart events sent to the renderer indicate a new touch sequence, but - // in some cases we may filter out sending the touchstart - catch those here. - if (WebTouchEventTraits::IsTouchSequenceStart(event.event) && - ack_result == INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS) { + if (WebTouchEventTraits::IsTouchSequenceStart(event.event)) { touch_action_filter_.AppendToGestureSequenceForDebugging("T"); + touch_action_filter_.AppendToGestureSequenceForDebugging( + std::to_string(ack_result).c_str()); touch_action_filter_.IncreaseActiveTouches(); - // Touch action must be auto when there is no consumer - touch_action_filter_.OnSetTouchAction(cc::kTouchActionAuto); - UpdateTouchAckTimeoutEnabled(); + // Touchstart events sent to the renderer indicate a new touch sequence, but + // in some cases we may filter out sending the touchstart - catch those + // here. + if (ack_result == INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS) { + // Touch action must be auto when there is no consumer + touch_action_filter_.OnSetTouchAction(cc::kTouchActionAuto); + UpdateTouchAckTimeoutEnabled(); + } } disposition_handler_->OnTouchEventAck(event, ack_source, ack_result); @@ -527,8 +531,6 @@ client_->DecrementInFlightEventCount(source); touch_event.latency.AddNewLatencyFrom(latency); - if (WebTouchEventTraits::IsTouchSequenceStart(touch_event.event)) - touch_action_filter_.IncreaseActiveTouches(); // The SetTouchAction IPC occurs on a different channel so always // send it in the input event ack to ensure it is available at the // time the ACK is handled.
diff --git a/content/browser/renderer_host/input/input_router_impl_unittest.cc b/content/browser/renderer_host/input/input_router_impl_unittest.cc index 40f608a..709d42b 100644 --- a/content/browser/renderer_host/input/input_router_impl_unittest.cc +++ b/content/browser/renderer_host/input/input_router_impl_unittest.cc
@@ -426,24 +426,17 @@ void ActiveTouchSequenceCountTest( const base::Optional<cc::TouchAction>& touch_action, - bool ack_state_no_consumer_exists) { + InputEventAckState state) { PressTouchPoint(1, 1); base::Optional<ui::DidOverscrollParams> overscroll; - if (ack_state_no_consumer_exists) { - input_router_->OnTouchEventAck(TouchEventWithLatencyInfo(touch_event_), - InputEventAckSource::BROWSER, - INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS); - } else { - input_router_->TouchEventHandled( - TouchEventWithLatencyInfo(touch_event_), InputEventAckSource::BROWSER, - ui::LatencyInfo(), INPUT_EVENT_ACK_STATE_SET_NON_BLOCKING, overscroll, - touch_action); - } + input_router_->SendTouchEvent(TouchEventWithLatencyInfo(touch_event_)); + input_router_->TouchEventHandled( + TouchEventWithLatencyInfo(touch_event_), InputEventAckSource::BROWSER, + ui::LatencyInfo(), state, overscroll, touch_action); EXPECT_EQ(input_router_->num_of_active_touches_for_test(), 1); ReleaseTouchPoint(0); input_router_->OnTouchEventAck(TouchEventWithLatencyInfo(touch_event_), - InputEventAckSource::BROWSER, - INPUT_EVENT_ACK_STATE_SET_NON_BLOCKING); + InputEventAckSource::BROWSER, state); EXPECT_EQ(input_router_->num_of_active_touches_for_test(), 0); } @@ -619,25 +612,29 @@ // not ACKed from the main thread. TEST_F(InputRouterImplTest, ActiveTouchSequenceCountWithoutTouchAction) { base::Optional<cc::TouchAction> touch_action; - ActiveTouchSequenceCountTest(touch_action, false); + ActiveTouchSequenceCountTest(touch_action, + INPUT_EVENT_ACK_STATE_SET_NON_BLOCKING); } TEST_F(InputRouterImplTest, ActiveTouchSequenceCountWithoutTouchActionNoConsumer) { base::Optional<cc::TouchAction> touch_action; - ActiveTouchSequenceCountTest(touch_action, true); + ActiveTouchSequenceCountTest(touch_action, + INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS); } // Test that the active touch sequence count increment when the touch start is // ACKed from the main thread. TEST_F(InputRouterImplTest, ActiveTouchSequenceCountWithTouchAction) { base::Optional<cc::TouchAction> touch_action(cc::kTouchActionPanY); - ActiveTouchSequenceCountTest(touch_action, false); + ActiveTouchSequenceCountTest(touch_action, + INPUT_EVENT_ACK_STATE_SET_NON_BLOCKING); } TEST_F(InputRouterImplTest, ActiveTouchSequenceCountWithTouchActionNoConsumer) { base::Optional<cc::TouchAction> touch_action(cc::kTouchActionPanY); - ActiveTouchSequenceCountTest(touch_action, true); + ActiveTouchSequenceCountTest(touch_action, + INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS); } // Tests that touch-events are sent properly.
diff --git a/content/browser/renderer_host/media/service_video_capture_device_launcher_unittest.cc b/content/browser/renderer_host/media/service_video_capture_device_launcher_unittest.cc index 37c7326..d51f881 100644 --- a/content/browser/renderer_host/media/service_video_capture_device_launcher_unittest.cc +++ b/content/browser/renderer_host/media/service_video_capture_device_launcher_unittest.cc
@@ -6,10 +6,10 @@ #include "base/run_loop.h" #include "base/test/mock_callback.h" -#include "base/test/scoped_task_environment.h" #include "base/threading/thread.h" #include "content/browser/renderer_host/media/service_launched_video_capture_device.h" #include "content/browser/renderer_host/media/video_capture_factory_delegate.h" +#include "content/public/test/test_browser_thread_bundle.h" #include "mojo/public/cpp/bindings/binding.h" #include "services/video_capture/public/mojom/device_factory.mojom.h" #include "testing/gmock/include/gmock/gmock.h" @@ -113,7 +113,7 @@ void RunLaunchingDeviceIsAbortedTest( video_capture::mojom::DeviceAccessResultCode service_result_code); - base::test::ScopedTaskEnvironment scoped_task_environment_; + TestBrowserThreadBundle thread_bundle_; MockDeviceFactory mock_device_factory_; MockVideoCaptureDeviceLauncherCallbacks mock_callbacks_; video_capture::mojom::DeviceFactoryPtr device_factory_;
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index ace19ab..5b1c144e 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -577,6 +577,15 @@ RenderProcessHostImpl::GetMaxRendererProcessCount()) return; + // Don't create a spare renderer when the system is under load. This is + // currently approximated by only looking at the memory pressure. See also + // https://crbug.com/852905. + auto* memory_monitor = base::MemoryPressureMonitor::Get(); + if (memory_monitor && + memory_monitor->GetCurrentPressureLevel() >= + base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_MODERATE) + return; + spare_render_process_host_ = RenderProcessHostImpl::CreateRenderProcessHost( browser_context, nullptr /* storage_partition_impl */, nullptr /* site_instance */, false /* is_for_guests_only */);
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc index 6ec95d0e..4488cb5 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -15,7 +15,6 @@ #include "base/bind.h" #include "base/command_line.h" #include "base/containers/hash_tables.h" -#include "base/debug/dump_without_crashing.h" #include "base/i18n/rtl.h" #include "base/lazy_instance.h" #include "base/location.h" @@ -2856,49 +2855,8 @@ return; } - auto new_surface_properties = - RenderWidgetSurfaceProperties::FromCompositorFrame(frame); - - if (local_surface_id == last_local_surface_id_ && - new_surface_properties != last_surface_properties_) { - std::string error = base::StringPrintf( - "[OOPIF? %d] %s\n", view_ && view_->IsRenderWidgetHostViewChildFrame(), - new_surface_properties.ToDiffString(last_surface_properties_).c_str()); - LOG(ERROR) << "Surface invariants violation: " << error; - - static int invariants_violation_count = 0; - ++invariants_violation_count; - UMA_HISTOGRAM_COUNTS_1000("Compositing.SurfaceInvariantsViolations", - invariants_violation_count); - - if (features::IsSurfaceInvariantsViolationLoggingEnabled()) { - static auto* crash_key = base::debug::AllocateCrashKeyString( - "surface-invariants-violation", base::debug::CrashKeySize::Size256); - base::debug::ScopedCrashKeyString key_value(crash_key, error); - base::debug::DumpWithoutCrashing(); - } - - if (view_) { - frame.metadata.begin_frame_ack.has_damage = false; - view_->OnDidNotProduceFrame(frame.metadata.begin_frame_ack); - } - std::vector<viz::ReturnedResource> resources = - viz::TransferableResource::ReturnResources(frame.resource_list); - renderer_compositor_frame_sink_->DidReceiveCompositorFrameAck(resources); - - return; - } - - last_local_surface_id_ = local_surface_id; - last_surface_properties_ = new_surface_properties; - last_received_content_source_id_ = frame.metadata.content_source_id; - // |has_damage| is not transmitted. - frame.metadata.begin_frame_ack.has_damage = true; - - last_frame_metadata_ = frame.metadata.Clone(); - if (enable_surface_synchronization_) { if (view_) { // If Surface Synchronization is on, then |new_content_rendering_timeout_|
diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h index b30f579..9f25072 100644 --- a/content/browser/renderer_host/render_widget_host_impl.h +++ b/content/browser/renderer_host/render_widget_host_impl.h
@@ -610,10 +610,6 @@ render_frame_metadata_observer_client_request, mojom::RenderFrameMetadataObserverPtr render_frame_metadata_observer); - const viz::CompositorFrameMetadata& last_frame_metadata() { - return last_frame_metadata_; - } - RenderFrameMetadataProviderImpl* render_frame_metadata_provider() { return &render_frame_metadata_provider_; } @@ -1124,12 +1120,6 @@ device::mojom::WakeLockPtr wake_lock_; #endif - // These information are used to verify that the renderer does not misbehave - // when it comes to allocating LocalSurfaceIds. If surface properties change, - // a new LocalSurfaceId must be created. - viz::LocalSurfaceId last_local_surface_id_; - RenderWidgetSurfaceProperties last_surface_properties_; - mojo::Binding<viz::mojom::CompositorFrameSink> compositor_frame_sink_binding_; viz::mojom::CompositorFrameSinkClientPtr renderer_compositor_frame_sink_; @@ -1137,18 +1127,8 @@ // we have a view. This is only used if |enable_viz_| is true. base::OnceCallback<void(const viz::FrameSinkId&)> create_frame_sink_callback_; - viz::CompositorFrameMetadata last_frame_metadata_; - std::unique_ptr<FrameTokenMessageQueue> frame_token_message_queue_; - // If a CompositorFrame is submitted that references SharedBitmaps that don't - // exist yet, we keep it here until they are available. - struct { - viz::LocalSurfaceId local_surface_id; - viz::CompositorFrame frame; - base::Optional<viz::HitTestRegionList> hit_test_region_list; - } saved_frame_; - bool enable_surface_synchronization_ = false; bool enable_viz_ = false;
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc index a408700..4c4f07e 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -755,9 +755,13 @@ return; auto* controller = input_method->GetInputMethodKeyboardController(); if (editable && host()->GetView() && host()->delegate()) { - keyboard_observer_.reset(new WinScreenKeyboardObserver(this)); - if (!controller->DisplayVirtualKeyboard()) + if (last_pointer_type_ == ui::EventPointerType::POINTER_TYPE_TOUCH) { + keyboard_observer_.reset(new WinScreenKeyboardObserver(this)); + if (!controller->DisplayVirtualKeyboard()) + keyboard_observer_.reset(nullptr); + } else { keyboard_observer_.reset(nullptr); + } virtual_keyboard_requested_ = keyboard_observer_.get(); } else { virtual_keyboard_requested_ = false; @@ -2393,9 +2397,16 @@ const TextInputState* state = text_input_manager_->GetTextInputState(); if (state && state->type != ui::TEXT_INPUT_TYPE_NONE && state->mode != ui::TEXT_INPUT_MODE_NONE) { + bool show_virtual_keyboard = true; +#if defined(OS_WIN) + show_virtual_keyboard = + last_pointer_type_ == ui::EventPointerType::POINTER_TYPE_TOUCH; +#endif if (state->show_ime_if_needed && - GetInputMethod()->GetTextInputClient() == this) + GetInputMethod()->GetTextInputClient() == this && + show_virtual_keyboard) { GetInputMethod()->ShowVirtualKeyboardIfEnabled(); + } // Ensure that accessibility events are fired when the selection location // moves from UI back to content. text_input_manager->NotifySelectionBoundsChanged(updated_view);
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.h b/content/browser/renderer_host/render_widget_host_view_aura.h index 9bfd9396..d930d55 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.h +++ b/content/browser/renderer_host/render_widget_host_view_aura.h
@@ -345,6 +345,12 @@ void ScrollFocusedEditableNodeIntoRect(const gfx::Rect& rect); + // TODO(lanwei): Use TestApi interface to write functions that are used in + // tests and remove FRIEND_TEST_ALL_PREFIXES. + void SetLastPointerType(ui::EventPointerType last_pointer_type) { + last_pointer_type_ = last_pointer_type; + } + protected: ~RenderWidgetHostViewAura() override; @@ -412,6 +418,8 @@ DiscardDelegatedFramesWithMemoryPressure); FRIEND_TEST_ALL_PREFIXES(RenderWidgetHostViewAuraKeyboardTest, KeyboardObserverDestroyed); + FRIEND_TEST_ALL_PREFIXES(RenderWidgetHostViewAuraKeyboardTest, + KeyboardObserverForOnlyTouchInput); FRIEND_TEST_ALL_PREFIXES(RenderWidgetHostViewAuraSurfaceSynchronizationTest, DropFallbackWhenHidden); FRIEND_TEST_ALL_PREFIXES(RenderWidgetHostViewAuraSurfaceSynchronizationTest,
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc index b8717b5..d52da18 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
@@ -6785,6 +6785,7 @@ }; TEST_F(RenderWidgetHostViewAuraKeyboardTest, KeyboardObserverDestroyed) { + parent_view_->SetLastPointerType(ui::EventPointerType::POINTER_TYPE_TOUCH); parent_view_->FocusedNodeTouched(true); EXPECT_NE(parent_view_->keyboard_observer_.get(), nullptr); EXPECT_EQ(keyboard_controller_observer_count(), 1u); @@ -6794,6 +6795,20 @@ EXPECT_EQ(keyboard_controller_observer_count(), 0u); } +TEST_F(RenderWidgetHostViewAuraKeyboardTest, + KeyboardObserverForOnlyTouchInput) { + // Show virtual keyboard for touch inputs. + parent_view_->SetLastPointerType(ui::EventPointerType::POINTER_TYPE_TOUCH); + parent_view_->FocusedNodeTouched(true); + EXPECT_NE(parent_view_->keyboard_observer_.get(), nullptr); + EXPECT_EQ(keyboard_controller_observer_count(), 1u); + // Do not show virtual keyboard for mouse inputs. + parent_view_->SetLastPointerType(ui::EventPointerType::POINTER_TYPE_MOUSE); + parent_view_->FocusedNodeTouched(true); + EXPECT_EQ(parent_view_->keyboard_observer_.get(), nullptr); + EXPECT_EQ(keyboard_controller_observer_count(), 0u); +} + #endif // defined(OS_WIN) } // namespace content
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h index 51b9b7b4..889e2c2 100644 --- a/content/browser/web_contents/web_contents_impl.h +++ b/content/browser/web_contents/web_contents_impl.h
@@ -1049,6 +1049,10 @@ BeforeUnloadDialogRequiresGesture); FRIEND_TEST_ALL_PREFIXES(RenderFrameHostImplBrowserTest, CancelBeforeUnloadResetsURL); + FRIEND_TEST_ALL_PREFIXES(RenderFrameHostImplBrowserTest, + BeforeUnloadDialogSuppressedForDiscard); + FRIEND_TEST_ALL_PREFIXES(RenderFrameHostImplBrowserTest, + PendingDialogMakesDiscardUnloadReturnFalse); FRIEND_TEST_ALL_PREFIXES(DevToolsProtocolTest, JavaScriptDialogNotifications); FRIEND_TEST_ALL_PREFIXES(DevToolsProtocolTest, JavaScriptDialogInterop); FRIEND_TEST_ALL_PREFIXES(DevToolsProtocolTest, BeforeUnloadDialog);
diff --git a/content/common/background_fetch/background_fetch_struct_traits.cc b/content/common/background_fetch/background_fetch_struct_traits.cc index dd5321b..fd3f88b 100644 --- a/content/common/background_fetch/background_fetch_struct_traits.cc +++ b/content/common/background_fetch/background_fetch_struct_traits.cc
@@ -38,7 +38,7 @@ registration->uploaded = data.uploaded(); registration->download_total = data.download_total(); registration->downloaded = data.downloaded(); - registration->state = data.state(); + registration->result = data.result(); registration->failure_reason = data.failure_reason(); return true; }
diff --git a/content/common/background_fetch/background_fetch_struct_traits.h b/content/common/background_fetch/background_fetch_struct_traits.h index 30dfc0ef..2fc02ab 100644 --- a/content/common/background_fetch/background_fetch_struct_traits.h +++ b/content/common/background_fetch/background_fetch_struct_traits.h
@@ -64,9 +64,9 @@ const content::BackgroundFetchRegistration& registration) { return registration.downloaded; } - static blink::mojom::BackgroundFetchState state( + static blink::mojom::BackgroundFetchResult result( const content::BackgroundFetchRegistration& registration) { - return registration.state; + return registration.result; } static blink::mojom::BackgroundFetchFailureReason failure_reason( const content::BackgroundFetchRegistration& registration) {
diff --git a/content/common/background_fetch/background_fetch_struct_traits_unittest.cc b/content/common/background_fetch/background_fetch_struct_traits_unittest.cc index 98ffea5..90d2ac37 100644 --- a/content/common/background_fetch/background_fetch_struct_traits_unittest.cc +++ b/content/common/background_fetch/background_fetch_struct_traits_unittest.cc
@@ -59,7 +59,7 @@ registration.developer_id = "my_id"; registration.unique_id = "7e57ab1e-c0de-a150-ca75-1e75f005ba11"; registration.download_total = 9001; - registration.state = blink::mojom::BackgroundFetchState::FAILURE; + registration.result = blink::mojom::BackgroundFetchResult::FAILURE; registration.failure_reason = blink::mojom::BackgroundFetchFailureReason::CANCELLED_FROM_UI; @@ -72,7 +72,7 @@ EXPECT_EQ(roundtrip_registration.unique_id, registration.unique_id); EXPECT_EQ(roundtrip_registration.download_total, registration.download_total); - EXPECT_EQ(roundtrip_registration.state, registration.state); + EXPECT_EQ(roundtrip_registration.result, registration.result); EXPECT_EQ(roundtrip_registration.failure_reason, registration.failure_reason); }
diff --git a/content/common/background_fetch/background_fetch_types.cc b/content/common/background_fetch/background_fetch_types.cc index 7db59cf..5ff3ae7 100644 --- a/content/common/background_fetch/background_fetch_types.cc +++ b/content/common/background_fetch/background_fetch_types.cc
@@ -29,7 +29,7 @@ BackgroundFetchOptions::~BackgroundFetchOptions() = default; BackgroundFetchRegistration::BackgroundFetchRegistration() - : state(blink::mojom::BackgroundFetchState::PENDING), + : result(blink::mojom::BackgroundFetchResult::UNSET), failure_reason(blink::mojom::BackgroundFetchFailureReason::NONE) {} BackgroundFetchRegistration::BackgroundFetchRegistration( @@ -39,7 +39,7 @@ uint64_t uploaded, uint64_t download_total, uint64_t downloaded, - blink::mojom::BackgroundFetchState state, + blink::mojom::BackgroundFetchResult result, blink::mojom::BackgroundFetchFailureReason failure_reason) : developer_id(developer_id), unique_id(unique_id), @@ -47,7 +47,7 @@ uploaded(uploaded), download_total(download_total), downloaded(downloaded), - state(state), + result(result), failure_reason(failure_reason) {} BackgroundFetchRegistration::BackgroundFetchRegistration(
diff --git a/content/common/background_fetch/background_fetch_types.h b/content/common/background_fetch/background_fetch_types.h index 73685818..c20ad3a 100644 --- a/content/common/background_fetch/background_fetch_types.h +++ b/content/common/background_fetch/background_fetch_types.h
@@ -17,7 +17,7 @@ namespace blink { namespace mojom { enum class BackgroundFetchFailureReason; -enum class BackgroundFetchState; +enum class BackgroundFetchResult; } // namespace mojom } // namespace blink @@ -48,7 +48,7 @@ uint64_t uploaded, uint64_t download_total, uint64_t downloaded, - blink::mojom::BackgroundFetchState state, + blink::mojom::BackgroundFetchResult result, blink::mojom::BackgroundFetchFailureReason failure_reason); BackgroundFetchRegistration(const BackgroundFetchRegistration& other); ~BackgroundFetchRegistration(); @@ -65,7 +65,7 @@ uint64_t uploaded = 0; uint64_t download_total = 0; uint64_t downloaded = 0; - blink::mojom::BackgroundFetchState state; + blink::mojom::BackgroundFetchResult result; blink::mojom::BackgroundFetchFailureReason failure_reason; };
diff --git a/content/public/browser/BUILD.gn b/content/public/browser/BUILD.gn index 68940cc3..a407ccf 100644 --- a/content/public/browser/BUILD.gn +++ b/content/public/browser/BUILD.gn
@@ -30,6 +30,7 @@ "android/compositor_client.h", "android/content_protocol_handler.h", "android/devtools_auth.h", + "android/gpu_video_accelerator_factories_provider.h", "android/java_interfaces.h", "android/motion_event_action.h", "android/synchronous_compositor.cc",
diff --git a/content/public/browser/android/gpu_video_accelerator_factories_provider.h b/content/public/browser/android/gpu_video_accelerator_factories_provider.h new file mode 100644 index 0000000..ae3e1c5 --- /dev/null +++ b/content/public/browser/android/gpu_video_accelerator_factories_provider.h
@@ -0,0 +1,29 @@ +// 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 CONTENT_PUBLIC_BROWSER_ANDROID_GPU_VIDEO_ACCELERATOR_FACTORIES_PROVIDER_H_ +#define CONTENT_PUBLIC_BROWSER_ANDROID_GPU_VIDEO_ACCELERATOR_FACTORIES_PROVIDER_H_ + +#include <memory> + +#include "base/callback.h" +#include "content/common/content_export.h" + +namespace media { +class GpuVideoAcceleratorFactories; +} // namespace media + +namespace content { + +using GpuVideoAcceleratorFactoriesCallback = base::OnceCallback<void( + std::unique_ptr<media::GpuVideoAcceleratorFactories>)>; + +// Provides hardware video decoding contexts in the browser process. +CONTENT_EXPORT +void CreateGpuVideoAcceleratorFactories( + GpuVideoAcceleratorFactoriesCallback callback); + +} // namespace content + +#endif // CONTENT_PUBLIC_BROWSER_ANDROID_GPU_VIDEO_ACCELERATOR_FACTORIES_PROVIDER_H_
diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc index 7305f9e2..b420a2b 100644 --- a/content/public/common/content_switches.cc +++ b/content/public/common/content_switches.cc
@@ -45,6 +45,11 @@ // Path to the exe to run for the renderer and plugin subprocesses. const char kBrowserSubprocessPath[] = "browser-subprocess-path"; +// Tells whether the code is running browser tests (this changes the startup URL +// used by the content shell and also disables features that can make tests +// flaky [like monitoring of memory pressure]). +const char kBrowserTest[] = "browser-test"; + // Sets the tile size used by composited layers. const char kDefaultTileWidth[] = "default-tile-width"; const char kDefaultTileHeight[] = "default-tile-height";
diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h index a0eddb4..96db7745 100644 --- a/content/public/common/content_switches.h +++ b/content/public/common/content_switches.h
@@ -24,6 +24,7 @@ CONTENT_EXPORT extern const char kBrowserCrashTest[]; CONTENT_EXPORT extern const char kBrowserStartupDialog[]; CONTENT_EXPORT extern const char kBrowserSubprocessPath[]; +CONTENT_EXPORT extern const char kBrowserTest[]; CONTENT_EXPORT extern const char kDefaultTileWidth[]; CONTENT_EXPORT extern const char kDefaultTileHeight[]; CONTENT_EXPORT extern const char kDisable2dCanvasAntialiasing[];
diff --git a/content/public/test/browser_test_base.cc b/content/public/test/browser_test_base.cc index 0e85f9a..79bb44f 100644 --- a/content/public/test/browser_test_base.cc +++ b/content/public/test/browser_test_base.cc
@@ -170,6 +170,12 @@ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); + // Features that depend on external factors (e.g. memory pressure monitor) can + // disable themselves based on the switch below (to ensure that browser tests + // behave deterministically / do not flakily change behavior based on external + // factors). + command_line->AppendSwitch(switches::kBrowserTest); + // Override the child process connection timeout since tests can exceed that // when sharded. command_line->AppendSwitchASCII(
diff --git a/content/public/test/content_browser_test.cc b/content/public/test/content_browser_test.cc index 9c1304b..3be3f5a7 100644 --- a/content/public/test/content_browser_test.cc +++ b/content/public/test/content_browser_test.cc
@@ -59,8 +59,6 @@ void ContentBrowserTest::SetUp() { base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); - command_line->AppendSwitch(switches::kContentBrowserTest); - SetUpCommandLine(command_line); #if defined(OS_ANDROID)
diff --git a/content/public/test/content_browser_test_utils.cc b/content/public/test/content_browser_test_utils.cc index 7dc5dfb..ad31566a 100644 --- a/content/public/test/content_browser_test_utils.cc +++ b/content/public/test/content_browser_test_utils.cc
@@ -53,7 +53,7 @@ same_tab_observer.Wait(); // TODO(crbug.com/882545) Delete this if statement once the problem has been // identified. - if (same_tab_observer.last_navigation_succeeded()) { + if (!same_tab_observer.last_navigation_succeeded()) { DLOG(WARNING) << "Last navigation to " << url << " failed with net error " << same_tab_observer.last_net_error_code(); }
diff --git a/content/public/test/text_input_test_utils.cc b/content/public/test/text_input_test_utils.cc index 3d27041..2d724b57 100644 --- a/content/public/test/text_input_test_utils.cc +++ b/content/public/test/text_input_test_utils.cc
@@ -186,7 +186,7 @@ DISALLOW_COPY_AND_ASSIGN(InternalObserver); }; -#ifdef USE_AURA +#if defined(USE_AURA) class InputMethodObserverAura : public TestInputMethodObserver, public ui::InputMethodObserver { public: @@ -453,6 +453,15 @@ text_input_state_->show_ime_if_needed = show_ime_if_needed; } +#if defined(USE_AURA) +void TextInputStateSender::SetLastPointerType( + ui::EventPointerType last_pointer_type) { + RenderWidgetHostViewAura* rwhva = + static_cast<RenderWidgetHostViewAura*>(view_); + rwhva->SetLastPointerType(last_pointer_type); +} +#endif + TestInputMethodObserver::TestInputMethodObserver() {} TestInputMethodObserver::~TestInputMethodObserver() {} @@ -462,7 +471,7 @@ WebContents* web_contents) { std::unique_ptr<TestInputMethodObserver> observer; -#ifdef USE_AURA +#if defined(USE_AURA) RenderWidgetHostViewAura* view = static_cast<RenderWidgetHostViewAura*>( web_contents->GetRenderWidgetHostView()); observer.reset(new InputMethodObserverAura(view->GetInputMethod()));
diff --git a/content/public/test/text_input_test_utils.h b/content/public/test/text_input_test_utils.h index d438b72..2bb337c 100644 --- a/content/public/test/text_input_test_utils.h +++ b/content/public/test/text_input_test_utils.h
@@ -17,6 +17,10 @@ #include "content/public/browser/browser_message_filter.h" #endif +#if defined(USE_AURA) +#include "ui/events/event_constants.h" +#endif + namespace ipc { class Message; } @@ -194,6 +198,9 @@ void SetFlags(int flags); void SetCanComposeInline(bool can_compose_inline); void SetShowVirtualKeyboardIfEnabled(bool show_ime_if_needed); +#if defined(USE_AURA) + void SetLastPointerType(ui::EventPointerType last_pointer_type); +#endif private: std::unique_ptr<TextInputState> text_input_state_;
diff --git a/content/renderer/media/webrtc/rtc_video_decoder.cc b/content/renderer/media/webrtc/rtc_video_decoder.cc index 3d87ad9b..59b5e13 100644 --- a/content/renderer/media/webrtc/rtc_video_decoder.cc +++ b/content/renderer/media/webrtc/rtc_video_decoder.cc
@@ -235,7 +235,7 @@ } // Create buffer metadata. - BufferData buffer_data(next_bitstream_buffer_id_, input_image._timeStamp, + BufferData buffer_data(next_bitstream_buffer_id_, input_image.Timestamp(), input_image._length, gfx::Rect(frame_size_)); // Mask against 30 bits, to avoid (undefined) wraparound on signed integer. next_bitstream_buffer_id_ = (next_bitstream_buffer_id_ + 1) & ID_LAST;
diff --git a/content/renderer/media/webrtc/rtc_video_decoder_adapter.cc b/content/renderer/media/webrtc/rtc_video_decoder_adapter.cc index e64ad905..76756a42 100644 --- a/content/renderer/media/webrtc/rtc_video_decoder_adapter.cc +++ b/content/renderer/media/webrtc/rtc_video_decoder_adapter.cc
@@ -223,7 +223,7 @@ scoped_refptr<media::DecoderBuffer> buffer = media::DecoderBuffer::CopyFrom(input_image._buffer, input_image._length); buffer->set_timestamp( - base::TimeDelta::FromMicroseconds(input_image._timeStamp)); + base::TimeDelta::FromMicroseconds(input_image.Timestamp())); // Queue for decoding. {
diff --git a/content/renderer/media/webrtc/rtc_video_decoder_adapter_unittest.cc b/content/renderer/media/webrtc/rtc_video_decoder_adapter_unittest.cc index 1b0c4e1..41e92a91 100644 --- a/content/renderer/media/webrtc/rtc_video_decoder_adapter_unittest.cc +++ b/content/renderer/media/webrtc/rtc_video_decoder_adapter_unittest.cc
@@ -157,7 +157,7 @@ uint8_t buf[] = {0}; webrtc::EncodedImage input_image(&buf[0], 1, 1); input_image._completeFrame = true; - input_image._timeStamp = timestamp; + input_image.SetTimestamp(timestamp); return rtc_video_decoder_adapter_->Decode(input_image, false, nullptr, 0); }
diff --git a/content/renderer/media/webrtc/rtc_video_encoder.cc b/content/renderer/media/webrtc/rtc_video_encoder.cc index fc6985e..db6c04c 100644 --- a/content/renderer/media/webrtc/rtc_video_encoder.cc +++ b/content/renderer/media/webrtc/rtc_video_encoder.cc
@@ -565,7 +565,7 @@ output_buffer->mapped_size()); image._encodedWidth = input_visible_size_.width(); image._encodedHeight = input_visible_size_.height(); - image._timeStamp = rtp_timestamp.value(); + image.SetTimestamp(rtp_timestamp.value()); image.capture_time_ms_ = capture_timestamp_ms.value(); image._frameType = (metadata.key_frame ? webrtc::kVideoFrameKey : webrtc::kVideoFrameDelta);
diff --git a/content/renderer/media/webrtc/rtc_video_encoder_unittest.cc b/content/renderer/media/webrtc/rtc_video_encoder_unittest.cc index 460fe99..ee2ad1d0f 100644 --- a/content/renderer/media/webrtc/rtc_video_encoder_unittest.cc +++ b/content/renderer/media/webrtc/rtc_video_encoder_unittest.cc
@@ -188,7 +188,7 @@ const webrtc::CodecSpecificInfo* codec_specific_info, const webrtc::RTPFragmentationHeader* fragmentation) { DVLOG(3) << __func__; - EXPECT_EQ(rtp_timestamp, encoded_image._timeStamp); + EXPECT_EQ(rtp_timestamp, encoded_image.Timestamp()); EXPECT_EQ(capture_time_ms, encoded_image.capture_time_ms_); }
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index 4f223a6..68e0840 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc
@@ -2603,17 +2603,16 @@ void RenderFrameImpl::DidFailProvisionalLoadInternal( const WebURLError& error, blink::WebHistoryCommitType commit_type, - const base::Optional<std::string>& error_page_content) { + const base::Optional<std::string>& error_page_content, + std::unique_ptr<blink::WebNavigationParams> navigation_params, + std::unique_ptr<blink::WebDocumentLoader::ExtraData> document_state) { TRACE_EVENT1("navigation,benchmark,rail", "RenderFrameImpl::didFailProvisionalLoad", "id", routing_id_); // Note: It is important this notification occur before DidStopLoading so the // SSL manager can react to the provisional load failure before being // notified the load stopped. // - for (auto& observer : render_view_->observers()) - observer.DidFailProvisionalLoad(frame_, error); - for (auto& observer : observers_) - observer.DidFailProvisionalLoad(error); + NotifyObserversOfFailedProvisionalLoad(error); WebDocumentLoader* document_loader = frame_->GetProvisionalDocumentLoader(); if (!document_loader) @@ -2646,26 +2645,8 @@ navigation_state->common_params(), navigation_state->request_params(), base::TimeTicks(), // not used for failed navigation. CommitNavigationCallback())); - } - - // The |pending_navigation_params_| are reset in DidCreateDocumentLoader. - // We might not have |pending_navigation_params_| here, if failing after - // creating the DocumentLoader. This can happen if there's no byte in the - // response and the network connection gets closed. In that case, the - // provisional load does not commit and we get a DidFailProvisionalLoad. - std::unique_ptr<DocumentState> document_state; - std::unique_ptr<blink::WebNavigationParams> navigation_params; - if (pending_navigation_params_) { document_state = BuildDocumentStateFromPending( pending_navigation_params_.get(), nullptr); - // We might come here after we've already created - // ServiceWorkerNetworkProvider in CommitNavigation, and if that's the case - // we shouldn't reuse the same request_params (which confuses the - // ServiceWorker backend due to double-creation for the same provider_id). - // Code below will result in creating a SWNetworkProvider with an invalid - // ID but it should be fine as it's only used for showing an error page. - // TODO(ahemery): We should probably move the existing one down - // into the failed page instead of recreating a new one. navigation_params = BuildNavigationParams( pending_navigation_params_->common_params, pending_navigation_params_->request_params, @@ -2673,11 +2654,24 @@ nullptr /* request_params */, nullptr /* controller_service_worker_info */)); } + + DCHECK(!pending_navigation_params_ || document_state) + << "We should never have pending_navigation_params_ if we " + "are not coming from CommitFailedNavigation."; + LoadNavigationErrorPage(failed_request, error, replace, nullptr, error_page_content, std::move(navigation_params), std::move(document_state)); } +void RenderFrameImpl::NotifyObserversOfFailedProvisionalLoad( + const blink::WebURLError& error) { + for (auto& observer : render_view_->observers()) + observer.DidFailProvisionalLoad(frame_, error); + for (auto& observer : observers_) + observer.DidFailProvisionalLoad(error); +} + void RenderFrameImpl::LoadNavigationErrorPage( const WebURLRequest& failed_request, const WebURLError& error, @@ -3271,11 +3265,6 @@ SetupLoaderFactoryBundle(std::move(subresource_loader_factories), base::nullopt /* subresource_overrides */); - pending_navigation_params_.reset(new PendingNavigationParams( - common_params, request_params, - base::TimeTicks(), // Not used for failed navigation. - std::move(callback))); - // Send the provisional load failure. WebURLError error( error_code, 0, @@ -3289,8 +3278,7 @@ if (!ShouldDisplayErrorPageForFailedLoad(error_code, common_params.url)) { // The browser expects this frame to be loading an error page. Inform it // that the load stopped. - std::move(pending_navigation_params_->commit_callback_) - .Run(blink::mojom::CommitResult::Aborted); + std::move(callback).Run(blink::mojom::CommitResult::Aborted); pending_navigation_params_.reset(); Send(new FrameHostMsg_DidStopLoading(routing_id_)); browser_side_navigation_pending_ = false; @@ -3309,10 +3297,11 @@ // either, as the frame has already been populated with something // unrelated to this navigation failure. In that case, just send a stop // IPC to the browser to unwind its state, and leave the frame as-is. - std::move(pending_navigation_params_->commit_callback_) - .Run(blink::mojom::CommitResult::Aborted); + std::move(callback).Run(blink::mojom::CommitResult::Aborted); pending_navigation_params_.reset(); Send(new FrameHostMsg_DidStopLoading(routing_id_)); + } else { + std::move(callback).Run(blink::mojom::CommitResult::Ok); } browser_side_navigation_pending_ = false; browser_side_navigation_pending_url_ = GURL(); @@ -3343,38 +3332,43 @@ // otherwise it will result in a use-after-free bug. base::WeakPtr<RenderFrameImpl> weak_this = weak_factory_.GetWeakPtr(); + pending_navigation_params_.reset(new PendingNavigationParams( + common_params, request_params, + base::TimeTicks(), // Not used for failed navigation. + std::move(callback))); + std::unique_ptr<blink::WebNavigationParams> navigation_params = + BuildNavigationParams(common_params, request_params, + BuildServiceWorkerNetworkProviderForNavigation( + &request_params, nullptr)); + std::unique_ptr<DocumentState> navigation_data( + BuildDocumentStateFromPending(pending_navigation_params_.get(), nullptr)); + // For renderer initiated navigations, we send out a didFailProvisionalLoad() // notification. bool had_provisional_document_loader = frame_->GetProvisionalDocumentLoader(); if (request_params.nav_entry_id == 0) { blink::WebHistoryCommitType commit_type = replace ? blink::kWebHistoryInertCommit : blink::kWebStandardCommit; - if (error_page_content.has_value()) { - DidFailProvisionalLoadInternal(error, commit_type, error_page_content); + + // Note: had_provisional_document_loader can be false in cases such as cross + // process failures, e.g. error pages. + if (had_provisional_document_loader) { + DidFailProvisionalLoadInternal(error, commit_type, error_page_content, + std::move(navigation_params), + std::move(navigation_data)); } else { - // TODO(https://crbug.com/778824): We only have this branch because a - // layout test expects DidFailProvisionalLoad() to be called directly, - // rather than DidFailProvisionalLoadInternal(). Once the bug is fixed, we - // should be able to call DidFailProvisionalLoadInternal() in all cases. - DidFailProvisionalLoad(error, commit_type); + NotifyObserversOfFailedProvisionalLoad(error); } if (!weak_this) return; } - // If we didn't call DidFailProvisionalLoad or there wasn't a - // GetProvisionalDocumentLoader(), LoadNavigationErrorPage wasn't called, so - // do it now. + // If we didn't call DidFailProvisionalLoad above, LoadNavigationErrorPage + // wasn't called, so do it now. if (request_params.nav_entry_id != 0 || !had_provisional_document_loader) { - std::unique_ptr<blink::WebNavigationParams> navigation_params = - BuildNavigationParams(common_params, request_params, - BuildServiceWorkerNetworkProviderForNavigation( - &request_params, nullptr)); - std::unique_ptr<DocumentState> document_state(BuildDocumentStateFromPending( - pending_navigation_params_.get(), nullptr)); LoadNavigationErrorPage(failed_request, error, replace, history_entry.get(), error_page_content, std::move(navigation_params), - std::move(document_state)); + std::move(navigation_data)); if (!weak_this) return; } @@ -4197,7 +4191,8 @@ void RenderFrameImpl::DidFailProvisionalLoad( const WebURLError& error, blink::WebHistoryCommitType commit_type) { - DidFailProvisionalLoadInternal(error, commit_type, base::nullopt); + DidFailProvisionalLoadInternal(error, commit_type, base::nullopt, nullptr, + nullptr); } void RenderFrameImpl::DidCommitProvisionalLoad( @@ -4832,13 +4827,9 @@ } void RenderFrameImpl::WillSendRequest(blink::WebURLRequest& request) { - if (request.GetFrameType() != - network::mojom::RequestContextFrameType::kNone && - pending_navigation_params_) { - // Skip the processing for the main resource, it has been done before - // sending the request to the browser. - return; - } + CHECK(!pending_navigation_params_); + // TODO(ahemery): We should skip the processing for the main resource, it has + // been done before sending the request to the browser. if (render_view_->renderer_preferences_.enable_do_not_track) request.SetHTTPHeaderField(blink::WebString::FromUTF8(kDoNotTrackHeader),
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h index 201a0780..65655f04 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h
@@ -809,7 +809,11 @@ void DidFailProvisionalLoadInternal( const blink::WebURLError& error, blink::WebHistoryCommitType commit_type, - const base::Optional<std::string>& error_page_content); + const base::Optional<std::string>& error_page_content, + std::unique_ptr<blink::WebNavigationParams> navigation_params, + std::unique_ptr<blink::WebDocumentLoader::ExtraData> document_state); + + void NotifyObserversOfFailedProvisionalLoad(const blink::WebURLError& error); bool handling_select_range() const { return handling_select_range_; }
diff --git a/content/renderer/service_worker/service_worker_context_client.cc b/content/renderer/service_worker/service_worker_context_client.cc index a46870f5..202c9a34 100644 --- a/content/renderer/service_worker/service_worker_context_client.cc +++ b/content/renderer/service_worker/service_worker_context_client.cc
@@ -200,7 +200,7 @@ blink::WebString::FromUTF8(registration.developer_id), blink::WebString::FromUTF8(registration.unique_id), registration.upload_total, registration.uploaded, - registration.download_total, registration.downloaded, registration.state, + registration.download_total, registration.downloaded, registration.result, registration.failure_reason); }
diff --git a/content/shell/app/shell_content_main.cc b/content/shell/app/shell_content_main.cc index 7c8589f..137ff387 100644 --- a/content/shell/app/shell_content_main.cc +++ b/content/shell/app/shell_content_main.cc
@@ -6,15 +6,14 @@ #include "build/build_config.h" #include "content/public/app/content_main.h" +#include "content/public/common/content_switches.h" #include "content/shell/app/shell_main_delegate.h" -#include "content/shell/common/shell_switches.h" #if defined(OS_MACOSX) int ContentMain(int argc, const char** argv) { bool is_browsertest = false; - std::string browser_test_flag(std::string("--") + - switches::kContentBrowserTest); + std::string browser_test_flag(std::string("--") + switches::kBrowserTest); for (int i = 0; i < argc; ++i) { if (browser_test_flag == argv[i]) { is_browsertest = true;
diff --git a/content/shell/browser/shell_browser_main_parts.cc b/content/shell/browser/shell_browser_main_parts.cc index e1f20fc..da57618e 100644 --- a/content/shell/browser/shell_browser_main_parts.cc +++ b/content/shell/browser/shell_browser_main_parts.cc
@@ -64,7 +64,7 @@ GURL GetStartupURL() { base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); - if (command_line->HasSwitch(switches::kContentBrowserTest)) + if (command_line->HasSwitch(switches::kBrowserTest)) return GURL(); const base::CommandLine::StringVector& args = command_line->GetArgs();
diff --git a/content/shell/browser/shell_content_browser_client.cc b/content/shell/browser/shell_content_browser_client.cc index d5eafc0..17af037 100644 --- a/content/shell/browser/shell_content_browser_client.cc +++ b/content/shell/browser/shell_content_browser_client.cc
@@ -297,8 +297,8 @@ // content_test_launcher.cc and instead uses shell_main.cc. So give a signal // to shell_main.cc that it's a browser test. if (base::CommandLine::ForCurrentProcess()->HasSwitch( - switches::kContentBrowserTest)) { - command_line->AppendSwitch(switches::kContentBrowserTest); + switches::kBrowserTest)) { + command_line->AppendSwitch(switches::kBrowserTest); } #endif }
diff --git a/content/shell/common/shell_switches.cc b/content/shell/common/shell_switches.cc index de87710..9610f57f 100644 --- a/content/shell/common/shell_switches.cc +++ b/content/shell/common/shell_switches.cc
@@ -10,9 +10,6 @@ namespace switches { -// Tells Content Shell that it's running as a content_browsertest. -const char kContentBrowserTest[] = "browser-test"; - // Makes Content Shell use the given path for its data directory. const char kContentShellDataPath[] = "data-path";
diff --git a/content/shell/common/shell_switches.h b/content/shell/common/shell_switches.h index 0215d01..77f7204 100644 --- a/content/shell/common/shell_switches.h +++ b/content/shell/common/shell_switches.h
@@ -12,7 +12,6 @@ namespace switches { -extern const char kContentBrowserTest[]; extern const char kContentShellDataPath[]; extern const char kCrashDumpsDir[]; extern const char kExposeInternalsForTesting[];
diff --git a/content/test/data/accessibility/event/aria-checked-changed-expected-auralinux.txt b/content/test/data/accessibility/event/aria-checked-changed-expected-auralinux.txt new file mode 100644 index 0000000..48ee4de9 --- /dev/null +++ b/content/test/data/accessibility/event/aria-checked-changed-expected-auralinux.txt
@@ -0,0 +1,4 @@ +STATE-CHANGE:CHECKED:FALSE role=ROLE_RADIO_BUTTON name='radio2' ENABLED,SENSITIVE,SHOWING,VISIBLE +STATE-CHANGE:CHECKED:TRUE role=ROLE_CHECK_BOX name='checkbox1' CHECKED,ENABLED,SENSITIVE,SHOWING,VISIBLE +STATE-CHANGE:CHECKED:TRUE role=ROLE_RADIO_BUTTON name='radio1' CHECKED,ENABLED,SENSITIVE,SHOWING,VISIBLE +STATE-CHANGE:INDETERMINATE:TRUE role=ROLE_CHECK_BOX name='checkbox2' ENABLED,SENSITIVE,SHOWING,VISIBLE,INDETERMINATE
diff --git a/content/test/data/accessibility/event/aria-checked-changed.html b/content/test/data/accessibility/event/aria-checked-changed.html new file mode 100644 index 0000000..eb96cd4 --- /dev/null +++ b/content/test/data/accessibility/event/aria-checked-changed.html
@@ -0,0 +1,15 @@ +<!DOCTYPE html> +<form> + <div aria-label="checkbox1" role="checkbox" aria-checked="false"></div> + <div aria-label="checkbox2" role="checkbox" aria-checked="true"></div> + <div aria-label="radio1" role="radio" aria-checked="false"></div> + <div aria-label="radio2" role="radio" aria-checked="true"></div> +</form> +<script> + function go() { + document.querySelector('div[aria-label=checkbox1]').setAttribute('aria-checked', true); + document.querySelector('div[aria-label=checkbox2]').setAttribute('aria-checked', 'mixed'); + document.querySelector('div[aria-label=radio1]').setAttribute('aria-checked', true); + document.querySelector('div[aria-label=radio2]').setAttribute('aria-checked', false); + } +</script>
diff --git a/content/test/data/accessibility/event/aria-pressed-changed-expected-auralinux.txt b/content/test/data/accessibility/event/aria-pressed-changed-expected-auralinux.txt new file mode 100644 index 0000000..b397a8c --- /dev/null +++ b/content/test/data/accessibility/event/aria-pressed-changed-expected-auralinux.txt
@@ -0,0 +1,2 @@ +STATE-CHANGE:INDETERMINATE:TRUE role=ROLE_TOGGLE_BUTTON name='button2' ENABLED,SENSITIVE,SHOWING,VISIBLE,INDETERMINATE +STATE-CHANGE:PRESSED:TRUE role=ROLE_TOGGLE_BUTTON name='button1' ENABLED,PRESSED,SENSITIVE,SHOWING,VISIBLE
diff --git a/content/test/data/accessibility/event/aria-pressed-changed.html b/content/test/data/accessibility/event/aria-pressed-changed.html new file mode 100644 index 0000000..667eb545 --- /dev/null +++ b/content/test/data/accessibility/event/aria-pressed-changed.html
@@ -0,0 +1,11 @@ +<!DOCTYPE html> +<form> + <div aria-label="button1" role="button" aria-pressed="false"></div> + <div aria-label="button2" role="button" aria-pressed="true"></div> +</form> +<script> + function go() { + document.querySelector('div[aria-label=button1]').setAttribute('aria-pressed', true); + document.querySelector('div[aria-label=button2]').setAttribute('aria-pressed', 'mixed'); + } +</script>
diff --git a/content/test/data/accessibility/event/checked-state-changed-expected-auralinux.txt b/content/test/data/accessibility/event/checked-state-changed-expected-auralinux.txt new file mode 100644 index 0000000..57399a5e --- /dev/null +++ b/content/test/data/accessibility/event/checked-state-changed-expected-auralinux.txt
@@ -0,0 +1,2 @@ +STATE-CHANGE:CHECKED:TRUE role=ROLE_CHECK_BOX name='My Checkbox' CHECKED,ENABLED,FOCUSABLE,SENSITIVE,SHOWING,VISIBLE +STATE-CHANGE:CHECKED:TRUE role=ROLE_TREE_ITEM name='Treeitem' CHECKED,ENABLED,SELECTABLE,SENSITIVE,SHOWING,VISIBLE
diff --git a/device/bluetooth/test/bluetooth_test.cc b/device/bluetooth/test/bluetooth_test.cc index 6a0f8bd..4fa63e6 100644 --- a/device/bluetooth/test/bluetooth_test.cc +++ b/device/bluetooth/test/bluetooth_test.cc
@@ -4,6 +4,7 @@ #include "device/bluetooth/test/bluetooth_test.h" +#include <iterator> #include <memory> #include "base/bind.h" @@ -28,6 +29,7 @@ const char BluetoothTestBase::kTestDeviceName[] = "FakeBluetoothDevice"; const char BluetoothTestBase::kTestDeviceNameEmpty[] = ""; const char BluetoothTestBase::kTestDeviceNameU2f[] = "U2F FakeDevice"; +const char BluetoothTestBase::kTestDeviceNameCable[] = "Cable FakeDevice"; const char BluetoothTestBase::kTestDeviceAddress1[] = "01:00:00:90:1E:BE"; const char BluetoothTestBase::kTestDeviceAddress2[] = "02:00:00:8B:74:63"; @@ -66,8 +68,15 @@ "00002903-0000-1000-8000-00805f9b34fb"; const char BluetoothTestBase::kTestUUIDCharacteristicPresentationFormat[] = "00002904-0000-1000-8000-00805f9b34fb"; +const char BluetoothTestBase::kTestUUIDCableAdvertisement[] = + "0000fde2-0000-1000-8000-00805f9b34fb"; // Manufacturer kTestAdapterAddress const uint16_t BluetoothTestBase::kTestManufacturerId = 0x00E0; +const uint8_t BluetoothTestBase::kTestCableEid[] = { + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, + 0x08, 0x09, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15}; +const char BluetoothTestBase::kTestUuidFormattedClientEid[] = + "00010203-0405-0607-0809-101112131415"; BluetoothTestBase::BluetoothTestBase() : weak_factory_(this) {} @@ -546,6 +555,25 @@ device_data.service_data = { {BluetoothUUID(kTestUUIDU2fControlPointLength), {0, 20}}}; break; + case 8: + device_data.name = kTestDeviceNameCable; + device_data.address = kTestDeviceAddress1; + device_data.flags = 0x07; + device_data.rssi = static_cast<int>(TestRSSI::LOWEST); + device_data.service_data = { + {BluetoothUUID(kTestUUIDCableAdvertisement), + std::vector<uint8_t>(std::begin(kTestCableEid), + std::end(kTestCableEid))}}; + break; + case 9: + device_data.name = kTestDeviceNameCable; + device_data.address = kTestDeviceAddress2; + device_data.flags = 0x07; + device_data.rssi = static_cast<int>(TestRSSI::LOWEST); + device_data.advertised_uuids = { + BluetoothUUID(kTestUUIDCableAdvertisement), + BluetoothUUID(kTestUuidFormattedClientEid)}; + break; default: NOTREACHED(); }
diff --git a/device/bluetooth/test/bluetooth_test.h b/device/bluetooth/test/bluetooth_test.h index b9c450b15..17af47b 100644 --- a/device/bluetooth/test/bluetooth_test.h +++ b/device/bluetooth/test/bluetooth_test.h
@@ -88,6 +88,7 @@ static const char kTestDeviceName[]; static const char kTestDeviceNameEmpty[]; static const char kTestDeviceNameU2f[]; + static const char kTestDeviceNameCable[]; static const char kTestDeviceAddress1[]; static const char kTestDeviceAddress2[]; @@ -129,8 +130,12 @@ static const char kTestUUIDClientCharacteristicConfiguration[]; static const char kTestUUIDServerCharacteristicConfiguration[]; static const char kTestUUIDCharacteristicPresentationFormat[]; + static const char kTestUUIDCableAdvertisement[]; // Manufacturer data static const uint16_t kTestManufacturerId; + // Test ephemeral ID for BLE devices that support cloud-assisted BLE protocol. + static const uint8_t kTestCableEid[]; + static const char kTestUuidFormattedClientEid[]; BluetoothTestBase(); ~BluetoothTestBase() override; @@ -249,6 +254,23 @@ // Service Data: {kTestUUIDU2fControlPointLength: [0, 20]} // No Manufacturer Data // No Tx Power + // 8: Name: kTestDeviceNameCable; + // Address: kTestDeviceAddress1; + // Flags: 0x07; + // RSSI: static_cast<int>(TestRSSI::LOWEST); + // Advertised UUIDs: {BluetoothUUID(kTestUUIDU2f)}; + // Service Data: { + // {BluetoothUUID(kTestUUIDCableAdvertisement128), + // std::vector<uint8_t>(std::begin(kTestCableEid), + // std::end(kTestCableEid))}}; + // 9: Name: kTestDeviceNameCable; + // Address: kTestDeviceAddress2; + // Flags: = 0x07; + // RSSI: static_cast<int>(TestRSSI::LOWEST); + // Advertised UUIDs: { + // BluetoothUUID(kTestUUIDCableAdvertisement16), + // BluetoothUUID(kTestUuidFormattedClientEid)}; + virtual BluetoothDevice* SimulateLowEnergyDevice(int device_ordinal); // Simulates a connected low energy device. Used before starting a low energy
diff --git a/device/fido/ble/fido_ble_discovery.cc b/device/fido/ble/fido_ble_discovery.cc index 0ab9fe73..6527069 100644 --- a/device/fido/ble/fido_ble_discovery.cc +++ b/device/fido/ble/fido_ble_discovery.cc
@@ -34,7 +34,8 @@ VLOG(2) << "Adapter " << adapter()->GetAddress() << " is powered on."; for (BluetoothDevice* device : adapter()->GetDevices()) { - if (base::ContainsKey(device->GetUUIDs(), FidoServiceUUID())) { + if (!CheckForExcludedDeviceAndCacheAddress(device) && + base::ContainsKey(device->GetUUIDs(), FidoServiceUUID())) { VLOG(2) << "U2F BLE device: " << device->GetAddress(); AddDevice( std::make_unique<FidoBleDevice>(adapter(), device->GetAddress())); @@ -57,7 +58,8 @@ void FidoBleDiscovery::DeviceAdded(BluetoothAdapter* adapter, BluetoothDevice* device) { - if (base::ContainsKey(device->GetUUIDs(), FidoServiceUUID())) { + if (!CheckForExcludedDeviceAndCacheAddress(device) && + base::ContainsKey(device->GetUUIDs(), FidoServiceUUID())) { VLOG(2) << "Discovered U2F BLE device: " << device->GetAddress(); AddDevice(std::make_unique<FidoBleDevice>(adapter, device->GetAddress())); } @@ -65,7 +67,8 @@ void FidoBleDiscovery::DeviceChanged(BluetoothAdapter* adapter, BluetoothDevice* device) { - if (base::ContainsKey(device->GetUUIDs(), FidoServiceUUID()) && + if (!CheckForExcludedDeviceAndCacheAddress(device) && + base::ContainsKey(device->GetUUIDs(), FidoServiceUUID()) && !GetDevice(FidoBleDevice::GetId(device->GetAddress()))) { VLOG(2) << "Discovered U2F service on existing BLE device: " << device->GetAddress(); @@ -90,4 +93,26 @@ OnSetPowered(); } +bool FidoBleDiscovery::CheckForExcludedDeviceAndCacheAddress( + const BluetoothDevice* device) { + std::string device_address = device->GetAddress(); + auto address_position = + excluded_cable_device_addresses_.lower_bound(device_address); + if (address_position != excluded_cable_device_addresses_.end() && + *address_position == device_address) { + return true; + } + + // IsCableDevice() is not stable, and can change throughout the lifetime. As + // so, cache device address for known Cable devices so that we do not attempt + // to connect to these devices. + if (IsCableDevice(device)) { + excluded_cable_device_addresses_.insert(address_position, + std::move(device_address)); + return true; + } + + return false; +} + } // namespace device
diff --git a/device/fido/ble/fido_ble_discovery.h b/device/fido/ble/fido_ble_discovery.h index b961e44e..cc804cf 100644 --- a/device/fido/ble/fido_ble_discovery.h +++ b/device/fido/ble/fido_ble_discovery.h
@@ -6,6 +6,8 @@ #define DEVICE_FIDO_BLE_FIDO_BLE_DISCOVERY_H_ #include <memory> +#include <set> +#include <string> #include "base/component_export.h" #include "base/macros.h" @@ -37,6 +39,11 @@ BluetoothDevice* device) override; void AdapterPoweredChanged(BluetoothAdapter* adapter, bool powered) override; + // Returns true if |device| is a Cable device. If so, add address of |device| + // to |blacklisted_cable_device_addresses_|. + bool CheckForExcludedDeviceAndCacheAddress(const BluetoothDevice* device); + + std::set<std::string> excluded_cable_device_addresses_; base::WeakPtrFactory<FidoBleDiscovery> weak_factory_; DISALLOW_COPY_AND_ASSIGN(FidoBleDiscovery);
diff --git a/device/fido/ble/fido_ble_discovery_base.cc b/device/fido/ble/fido_ble_discovery_base.cc index 546206a..6ef5475 100644 --- a/device/fido/ble/fido_ble_discovery_base.cc +++ b/device/fido/ble/fido_ble_discovery_base.cc
@@ -9,11 +9,13 @@ #include "base/bind.h" #include "base/callback_helpers.h" #include "base/location.h" +#include "base/no_destructor.h" #include "base/threading/thread_task_runner_handle.h" #include "build/build_config.h" #include "device/bluetooth/bluetooth_adapter_factory.h" #include "device/bluetooth/bluetooth_common.h" #include "device/bluetooth/bluetooth_discovery_session.h" +#include "device/fido/ble/fido_ble_uuids.h" namespace device { @@ -27,6 +29,13 @@ // Destroying |discovery_session_| will best-effort-stop discovering. } +// static +const BluetoothUUID& FidoBleDiscoveryBase::CableAdvertisementUUID() { + static const base::NoDestructor<BluetoothUUID> service_uuid( + kCableAdvertisementUUID128); + return *service_uuid; +} + void FidoBleDiscoveryBase::OnStartDiscoverySessionWithFilter( std::unique_ptr<BluetoothDiscoverySession> session) { SetDiscoverySession(std::move(session)); @@ -49,6 +58,12 @@ discovery_session_ = std::move(discovery_session); } +bool FidoBleDiscoveryBase::IsCableDevice(const BluetoothDevice* device) const { + const auto& uuid = CableAdvertisementUUID(); + return base::ContainsKey(device->GetServiceData(), uuid) || + base::ContainsKey(device->GetUUIDs(), uuid); +} + void FidoBleDiscoveryBase::OnGetAdapter( scoped_refptr<BluetoothAdapter> adapter) { if (!adapter->IsPresent()) {
diff --git a/device/fido/ble/fido_ble_discovery_base.h b/device/fido/ble/fido_ble_discovery_base.h index 04c8ec5..3a1f64c 100644 --- a/device/fido/ble/fido_ble_discovery_base.h +++ b/device/fido/ble/fido_ble_discovery_base.h
@@ -12,6 +12,7 @@ #include "base/memory/ref_counted.h" #include "base/memory/weak_ptr.h" #include "device/bluetooth/bluetooth_adapter.h" +#include "device/bluetooth/bluetooth_uuid.h" #include "device/fido/fido_discovery.h" namespace device { @@ -26,6 +27,8 @@ ~FidoBleDiscoveryBase() override; protected: + static const BluetoothUUID& CableAdvertisementUUID(); + virtual void OnSetPowered() = 0; virtual void OnStartDiscoverySessionWithFilter( std::unique_ptr<BluetoothDiscoverySession>); @@ -34,6 +37,7 @@ void OnStartDiscoverySessionError(); void SetDiscoverySession( std::unique_ptr<BluetoothDiscoverySession> discovery_session); + bool IsCableDevice(const BluetoothDevice* device) const; BluetoothAdapter* adapter() { return adapter_.get(); }
diff --git a/device/fido/ble/fido_ble_discovery_unittest.cc b/device/fido/ble/fido_ble_discovery_unittest.cc index bf64b32..74efa866 100644 --- a/device/fido/ble/fido_ble_discovery_unittest.cc +++ b/device/fido/ble/fido_ble_discovery_unittest.cc
@@ -198,4 +198,38 @@ } } +TEST_F(BluetoothTest, FidoBleDiscoveryRejectsCableDevice) { + if (!PlatformSupportsLowEnergy()) { + LOG(WARNING) << "Low Energy Bluetooth unavailable, skipping unit test."; + return; + } + InitWithFakeAdapter(); + + FidoBleDiscovery discovery; + MockFidoDiscoveryObserver observer; + discovery.set_observer(&observer); + + { + base::RunLoop run_loop; + auto quit = run_loop.QuitClosure(); + EXPECT_CALL(observer, DiscoveryStarted(&discovery, true)) + .WillOnce(ReturnFromAsyncCall(quit)); + + discovery.Start(); + run_loop.Run(); + } + + EXPECT_CALL(observer, DeviceAdded(&discovery, _)).Times(0); + + // Simulates a discovery of two Cable devices one of which is an Android Cable + // authenticator and other is IOS Cable authenticator. + SimulateLowEnergyDevice(8); + SimulateLowEnergyDevice(9); + + // Simulates a device change update received from the BluetoothAdapter. As the + // updated device has an address that we know is an Cable device, this should + // not trigger DeviceAdded(). + SimulateLowEnergyDevice(7); +} + } // namespace device
diff --git a/device/fido/cable/fido_cable_discovery.cc b/device/fido/cable/fido_cable_discovery.cc index 8c769a7..2934fa72 100644 --- a/device/fido/cable/fido_cable_discovery.cc +++ b/device/fido/cable/fido_cable_discovery.cc
@@ -27,22 +27,6 @@ namespace { -const BluetoothUUID& CableAdvertisementUUID128() { - static const BluetoothUUID service_uuid(kCableAdvertisementUUID128); - return service_uuid; -} - -const BluetoothUUID& CableAdvertisementUUID16() { - static const BluetoothUUID service_uuid(kCableAdvertisementUUID16); - return service_uuid; -} - -bool IsCableDevice(const BluetoothDevice* device) { - return base::ContainsKey(device->GetServiceData(), - CableAdvertisementUUID128()) || - base::ContainsKey(device->GetUUIDs(), CableAdvertisementUUID16()); -} - // Construct advertisement data with different formats depending on client's // operating system. Ideally, we advertise EIDs as part of Service Data, but // this isn't available on all platforms. On Windows we use Manufacturer Data @@ -364,7 +348,7 @@ FidoCableDiscovery::GetFoundCableDiscoveryDataFromServiceData( const BluetoothDevice* device) const { const auto* service_data = - device->GetServiceDataForUUID(CableAdvertisementUUID128()); + device->GetServiceDataForUUID(CableAdvertisementUUID()); if (!service_data) { return nullptr; } @@ -397,10 +381,9 @@ const BluetoothDevice* device) const { const auto service_uuids = device->GetUUIDs(); for (const auto& uuid : service_uuids) { - if (uuid == CableAdvertisementUUID128() || - uuid == CableAdvertisementUUID16()) { + if (uuid == CableAdvertisementUUID()) continue; - } + auto discovery_data_iterator = std::find_if( discovery_data_.begin(), discovery_data_.end(), [&uuid](const auto& data) {
diff --git a/docs/eclipse.md b/docs/eclipse.md index 3c5de98..af35097 100644 --- a/docs/eclipse.md +++ b/docs/eclipse.md
@@ -47,10 +47,9 @@ * Select the android-formatting.xml file * Make sure Android is set as the Active Profile * Java import order - * Download [android.importorder](https://raw.githubusercontent.com/android/platform_development/master/ide/eclipse/android.importorder) * Select Java > Code Style > Organize Imports from the tree on the left * Click Import... - * Select the android.importorder file + * Select the `<project root>/tools/android/eclipse/android.importorder` file * Disable automatic refresh. Otherwise, Eclipse will constantly try to refresh your projects (which can be slow). * Select General > Workspace from the tree on the left.
diff --git a/extensions/common/BUILD.gn b/extensions/common/BUILD.gn index 40a4cf7..a98c73f 100644 --- a/extensions/common/BUILD.gn +++ b/extensions/common/BUILD.gn
@@ -405,6 +405,7 @@ "features/feature_provider_unittest.cc", "features/simple_feature_unittest.cc", "file_util_unittest.cc", + "hashed_extension_id_unittest.cc", "image_util_unittest.cc", "manifest_handler_perf_test.cc", "manifest_handler_unittest.cc",
diff --git a/extensions/common/extensions_client.cc b/extensions/common/extensions_client.cc index 30b0295..4c60443 100644 --- a/extensions/common/extensions_client.cc +++ b/extensions/common/extensions_client.cc
@@ -5,6 +5,8 @@ #include "extensions/common/extensions_client.h" #include "base/logging.h" +#include "base/metrics/histogram_macros.h" +#include "base/timer/elapsed_timer.h" #include "extensions/common/extension_icon_set.h" #include "extensions/common/extensions_api_provider.h" #include "extensions/common/features/feature_provider.h" @@ -112,6 +114,7 @@ DCHECK(!ManifestHandler::IsRegistrationFinalized()); PermissionsInfo* permissions_info = PermissionsInfo::GetInstance(); + const base::ElapsedTimer timer; for (const auto& provider : api_providers_) { provider->RegisterManifestHandlers(); provider->AddPermissionsProviders(permissions_info); @@ -119,6 +122,11 @@ ManifestHandler::FinalizeRegistration(); Initialize(); + + UMA_HISTOGRAM_CUSTOM_MICROSECONDS_TIMES( + "Extensions.ChromeExtensionsClientInitTime2", timer.Elapsed(), + base::TimeDelta::FromMicroseconds(1), base::TimeDelta::FromSeconds(10), + 50); } } // namespace extensions
diff --git a/extensions/common/hashed_extension_id_unittest.cc b/extensions/common/hashed_extension_id_unittest.cc new file mode 100644 index 0000000..51029e2 --- /dev/null +++ b/extensions/common/hashed_extension_id_unittest.cc
@@ -0,0 +1,17 @@ +// 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 "extensions/common/hashed_extension_id.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace extensions { + +TEST(HashedExtensionIdTest, Basic) { + const std::string kExtensionId = "abcdefghijklmnopabcdefghijklmnop"; + const std::string kExpectedHash = "ACD66AF886BA7B085B41B4382BC39D1855BC18FE"; + + EXPECT_EQ(kExpectedHash, HashedExtensionId(kExtensionId).value()); +} + +} // namespace extensions
diff --git a/extensions/renderer/resources/guest_view/web_view/web_view.js b/extensions/renderer/resources/guest_view/web_view/web_view.js index 48cb3ca..62fcf216 100644 --- a/extensions/renderer/resources/guest_view/web_view/web_view.js +++ b/extensions/renderer/resources/guest_view/web_view/web_view.js
@@ -19,7 +19,8 @@ // Represents the internal state of <webview>. function WebViewImpl(webviewElement) { $Function.call(GuestViewContainer, this, webviewElement, 'webview'); - this.cachedZoom = 1; + this.pendingZoomFactor_ = null; + this.userAgentOverride = null; this.setupElementProperties(); new WebViewEvents(this, this.viewInstanceId); } @@ -162,8 +163,10 @@ }; WebViewImpl.prototype.buildContainerParams = function() { - var params = { 'initialZoomFactor': this.cachedZoomFactor, - 'userAgentOverride': this.userAgentOverride }; + var params = { + 'initialZoomFactor': this.pendingZoomFactor_, + 'userAgentOverride': this.userAgentOverride + }; for (var i in this.attributes) { var value = this.attributes[i].getValueIfDirty(); if (value) @@ -234,10 +237,10 @@ WebViewImpl.prototype.setZoom = function(zoomFactor, callback) { if (!this.guest.getId()) { - this.cachedZoomFactor = zoomFactor; + this.pendingZoomFactor_ = zoomFactor; return false; } - this.cachedZoomFactor = 1; + this.pendingZoomFactor_ = null; WebViewInternal.setZoom(this.guest.getId(), zoomFactor, callback); return true; };
diff --git a/extensions/strings/extensions_strings_am.xtb b/extensions/strings/extensions_strings_am.xtb index 6bc2bfcc..4926b56 100644 --- a/extensions/strings/extensions_strings_am.xtb +++ b/extensions/strings/extensions_strings_am.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">ያልታወቀ ምርት <ph name="PRODUCT_ID" /> ከ<ph name="VENDOR_NAME" /></translation> <translation id="7068383018033524534">የዝርዝር ሰነድ ፋይሉ ልክ ያልሆነ ነው</translation> <translation id="7217838517480956708">የዚህ ማሽን አስተዳዳሪ <ph name="EXTENSION_NAME" /> እንዲጫን ይፈልጋል። ሊወገድ ወይም ሊቀየር አይችልም።</translation> +<translation id="7612608473764576263">የግል ቁልፍ የግቤት እሴት የሚሠራ ቅርጸት (PKCS#8-format በPEM-የተመሠጠረ የRSA ቁልፍ) መሆን አለበት።</translation> <translation id="7939686037314084444">ቅጥያው በአግባቡ ሊጫን አልቻለም። የአውታረ መረብ ጥያቄዎችን መጥለፍ ላይችል ይችላል።</translation> <translation id="7972881773422714442">አማራጮች፦ <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">ተጠቃሚውን የሚመለከት</translation>
diff --git a/extensions/strings/extensions_strings_ar.xtb b/extensions/strings/extensions_strings_ar.xtb index 349647d..a11a121 100644 --- a/extensions/strings/extensions_strings_ar.xtb +++ b/extensions/strings/extensions_strings_ar.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">المنتج غير معروف <ph name="PRODUCT_ID" /> من <ph name="VENDOR_NAME" /></translation> <translation id="7068383018033524534">ملف البيان غير صالح</translation> <translation id="7217838517480956708">يطلب مشرف هذا الجهاز تثبيت <ph name="EXTENSION_NAME" />. لا يمكن إزالتها أو تعديلها.</translation> +<translation id="7612608473764576263">يجب أن تكون قيمة الإدخال للمفتاح الخاص تنسيقًا صالحًا (PKCS#8-format PEM-encoded RSA key).</translation> <translation id="7939686037314084444">تعذّر تحميل الإضافة بشكلٍ صحيح. وقد لا تتمكن الإضافة من اعتراض طلبات الشبكة.</translation> <translation id="7972881773422714442">الخيارات: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">الكاميرا الأمامية للمستخدم</translation>
diff --git a/extensions/strings/extensions_strings_et.xtb b/extensions/strings/extensions_strings_et.xtb index 68b47c454..0dd3629 100644 --- a/extensions/strings/extensions_strings_et.xtb +++ b/extensions/strings/extensions_strings_et.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">Tundmatu toode <ph name="PRODUCT_ID" /> teenusepakkujalt <ph name="VENDOR_NAME" /></translation> <translation id="7068383018033524534">Manifestifail on kehtetu</translation> <translation id="7217838517480956708">Seadme administraator nõuab, et <ph name="EXTENSION_NAME" /> oleks installitud. Seda ei saa eemaldada ega muuta.</translation> +<translation id="7612608473764576263">Privaatvõtme jaoks sisestatud väärtus peab olema sobivas vormingus (PKCS#8 vormingus PEM-kodeeringuga RSA-võti).</translation> <translation id="7939686037314084444">Laienduse laadimine nurjus. See ei saa võib-olla võrgutaotlusi suunata.</translation> <translation id="7972881773422714442">Valikud: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">Kasutaja poole suunatud</translation>
diff --git a/extensions/strings/extensions_strings_fa.xtb b/extensions/strings/extensions_strings_fa.xtb index 14c9972..95e1bf23 100644 --- a/extensions/strings/extensions_strings_fa.xtb +++ b/extensions/strings/extensions_strings_fa.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">محصول نامشخص <ph name="PRODUCT_ID" /> از <ph name="VENDOR_NAME" /></translation> <translation id="7068383018033524534">فایل مانیفست نامعتبر است</translation> <translation id="7217838517480956708">سرپرست این دستگاه نصب <ph name="EXTENSION_NAME" /> را لازم کرده است. آن را نمیتوان تغییر داد یا حذف کرد.</translation> +<translation id="7612608473764576263">مقدار ورودی برای کلید خصوصی باید قالب معتبری داشته باشد (فرمت PKCS#8، کدبندیشده بهصورت PEM، کلید RSA)</translation> <translation id="7939686037314084444">افزونه درست بارگیری نشد. شاید نتواند درخواستهای شبکه را رهگیری کند.</translation> <translation id="7972881773422714442">گزینهها: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">رو به کاربر</translation>
diff --git a/extensions/strings/extensions_strings_fil.xtb b/extensions/strings/extensions_strings_fil.xtb index 61c2b729..e58e65d 100644 --- a/extensions/strings/extensions_strings_fil.xtb +++ b/extensions/strings/extensions_strings_fil.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">Hindi kilalang produkto na <ph name="PRODUCT_ID" /> mula sa <ph name="VENDOR_NAME" /></translation> <translation id="7068383018033524534">Invalid ang manifest file</translation> <translation id="7217838517480956708">Kinakailangan ng administrator ng machine na ito na ma-install ang <ph name="EXTENSION_NAME" />. Hindi ito maaaring alisin o baguhin.</translation> +<translation id="7612608473764576263">Dapat valid ang format ng value ng input para sa pribadong key (PKCS#8-format PEM-encoded RSA key).</translation> <translation id="7939686037314084444">Hindi na-load nang maayos ang extension. Maaaring hindi nito mapigilan ang mga kahilingan sa network.</translation> <translation id="7972881773422714442">Mga Opsyon: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">Nakaharap sa user</translation>
diff --git a/extensions/strings/extensions_strings_hr.xtb b/extensions/strings/extensions_strings_hr.xtb index f804edf..8135203 100644 --- a/extensions/strings/extensions_strings_hr.xtb +++ b/extensions/strings/extensions_strings_hr.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">Nepoznati proizvod <ph name="PRODUCT_ID" />, <ph name="VENDOR_NAME" /></translation> <translation id="7068383018033524534">Datoteka manifesta nije važeća</translation> <translation id="7217838517480956708">Administrator ovog računala zahtijeva instalaciju proširenja <ph name="EXTENSION_NAME" />. Ona se ne može ukloniti ni izmijeniti.</translation> +<translation id="7612608473764576263">Vrijednost unosa osobnog ključa mora biti u važećem formatu (RSA ključ u formatu PKCS#8 s PEM kodiranjem).</translation> <translation id="7939686037314084444">Proširenje se nije pravilno učitalo. Možda neće moći presresti mrežne zahtjeve.</translation> <translation id="7972881773422714442">Opcije: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">Prema korisniku</translation>
diff --git a/extensions/strings/extensions_strings_hu.xtb b/extensions/strings/extensions_strings_hu.xtb index fc2c9556..090165e 100644 --- a/extensions/strings/extensions_strings_hu.xtb +++ b/extensions/strings/extensions_strings_hu.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">Ismeretlen termék (<ph name="PRODUCT_ID" />) a következő forgalmazótól: <ph name="VENDOR_NAME" /></translation> <translation id="7068383018033524534">A jegyzékfájl érvénytelen</translation> <translation id="7217838517480956708">Az eszköz rendszergazdája megköveteli, hogy a(z) <ph name="EXTENSION_NAME" /> telepítve legyen. A bővítményt nem lehet eltávolítani vagy módosítani.</translation> +<translation id="7612608473764576263">A privát kulcs beviteli értékét érvényes formátumban kell megadnia (PKCS#8 formátumú, PEM-kódolású RSA-kulcs).</translation> <translation id="7939686037314084444">Nem sikerült megfelelően betölteni a bővítményt. Előfordulhat, hogy nem tud hálózati kéréseket fogadni.</translation> <translation id="7972881773422714442">Lehetőségek: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">Előlapi</translation>
diff --git a/extensions/strings/extensions_strings_id.xtb b/extensions/strings/extensions_strings_id.xtb index 653485500..0a7f10be 100644 --- a/extensions/strings/extensions_strings_id.xtb +++ b/extensions/strings/extensions_strings_id.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">Produk <ph name="PRODUCT_ID" /> tak dikenal dari <ph name="VENDOR_NAME" /></translation> <translation id="7068383018033524534">File manifes tidak valid</translation> <translation id="7217838517480956708">Administrator mesin ini membutuhkan <ph name="EXTENSION_NAME" /> untuk dipasang. Persyaratan ini tidak dapat dihapus atau dimodifikasi.</translation> +<translation id="7612608473764576263">Nilai masukan untuk kunci pribadi harus dalam format yang valid (kunci RSA dengan enkode PEM format PKCS#8).</translation> <translation id="7939686037314084444">Ekstensi gagal dimuat dengan benar. Ekstensi mungkin tidak dapat menghalangi permintaan jaringan.</translation> <translation id="7972881773422714442">Opsi: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">Kamera depan</translation>
diff --git a/extensions/strings/extensions_strings_it.xtb b/extensions/strings/extensions_strings_it.xtb index 68c3a0c..622f149 100644 --- a/extensions/strings/extensions_strings_it.xtb +++ b/extensions/strings/extensions_strings_it.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">Prodotto sconosciuto <ph name="PRODUCT_ID" /> di <ph name="VENDOR_NAME" /></translation> <translation id="7068383018033524534">File manifest non valido</translation> <translation id="7217838517480956708">L'amministratore di questo computer richiede che l'estensione <ph name="EXTENSION_NAME" /> sia installata. Non è possibile rimuovere o modificare l'estensione.</translation> +<translation id="7612608473764576263">Il valore da inserire per la chiave privata deve essere in un formato valido (chiave RSA con codifica PEM in formato PKCS#8).</translation> <translation id="7939686037314084444">Impossibile caricare correttamente l'estensione. L'estensione potrebbe non riuscire a intercettare le richieste di rete.</translation> <translation id="7972881773422714442">Opzioni: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">Fotocamera anteriore</translation>
diff --git a/extensions/strings/extensions_strings_ja.xtb b/extensions/strings/extensions_strings_ja.xtb index b3b1d214..e4e1236 100644 --- a/extensions/strings/extensions_strings_ja.xtb +++ b/extensions/strings/extensions_strings_ja.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">不明な商品(<ph name="PRODUCT_ID" />、ベンダー: <ph name="VENDOR_NAME" />)</translation> <translation id="7068383018033524534">マニフェスト ファイルが無効です</translation> <translation id="7217838517480956708">このパソコンの管理者にとって <ph name="EXTENSION_NAME" /> がインストールされている必要があります。削除や修正はできません。</translation> +<translation id="7612608473764576263">秘密鍵の入力値は有効な形式でなければなりません(PKCS#8 形式の PEM エンコード RSA 鍵)。</translation> <translation id="7939686037314084444">拡張機能を正しく読み込めませんでした。ネットワーク リクエストを取得できない可能性があります。</translation> <translation id="7972881773422714442">オプション: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">ユーザー向き</translation>
diff --git a/extensions/strings/extensions_strings_lt.xtb b/extensions/strings/extensions_strings_lt.xtb index eed9468e..f014e18 100644 --- a/extensions/strings/extensions_strings_lt.xtb +++ b/extensions/strings/extensions_strings_lt.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">Nežinomas produktas „<ph name="PRODUCT_ID" />“ iš „<ph name="VENDOR_NAME" />“</translation> <translation id="7068383018033524534">Netinkamas aprašo failas</translation> <translation id="7217838517480956708">Šio kompiuterio administratorius reikalauja, kad būtų įdiegtas papildinys „<ph name="EXTENSION_NAME" />“. Jo negalima pašalinti ar pakeisti.</translation> +<translation id="7612608473764576263">Privačiojo rakto įvesties vertė turi būti galiojančio formato (PKCS#8 formato PEM koduotas RSA raktas).</translation> <translation id="7939686037314084444">Nepavyko tinkamai įkelti plėtinio. Gali būti, kad jam nepavyks nuskaityti tinklo užklausų.</translation> <translation id="7972881773422714442">Parinktys: „<ph name="EXTENSIONOPTIONS_TAG_NAME" />“</translation> <translation id="8035920974645200807">Nukreiptas į naudotoją</translation>
diff --git a/extensions/strings/extensions_strings_ml.xtb b/extensions/strings/extensions_strings_ml.xtb index 0346964..d86563b 100644 --- a/extensions/strings/extensions_strings_ml.xtb +++ b/extensions/strings/extensions_strings_ml.xtb
@@ -66,5 +66,5 @@ <translation id="8761756413268424715">"<ph name="APP_NAME" />" നിങ്ങളുടെ ഉപകരണങ്ങളിൽ ഒരെണ്ണത്തിലേക്ക് ആക്സസ് അഭ്യർത്ഥിക്കുന്നു:</translation> <translation id="8885905466771744233">പ്രത്യേക വിപുലീകരണത്തിനുള്ള ഒരു സ്വകാര്യ കീ ഇതിനകം നിലവിലുണ്ട്. ആ കീ പുനരുപയോഗിക്കുക അല്ലെങ്കില് ആദ്യം അത് ഇല്ലാതാക്കുക.</translation> <translation id="907841381057066561">പാക്കേജിംഗ് സമയത്ത് താല്ക്കാലിക zip ഫയല് സൃഷ്ടിക്കുന്നതിന് പരാജയപ്പെട്ടു. </translation> -<translation id="941543339607623937">സ്വകാര്യ കീ അസാധുവാണ്.</translation> +<translation id="941543339607623937">അസാധുവായ സ്വകാര്യ കീ.</translation> </translationbundle> \ No newline at end of file
diff --git a/extensions/strings/extensions_strings_ms.xtb b/extensions/strings/extensions_strings_ms.xtb index 14073b7..91b74a47 100644 --- a/extensions/strings/extensions_strings_ms.xtb +++ b/extensions/strings/extensions_strings_ms.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">Produk <ph name="PRODUCT_ID" /> daripada <ph name="VENDOR_NAME" /> tidak diketahui</translation> <translation id="7068383018033524534">Fail manifes tidak sah</translation> <translation id="7217838517480956708">Pentadbir mesin ini memerlukan <ph name="EXTENSION_NAME" /> dipasang. Sambungan ini tidak boleh dialih keluar atau diubah suai.</translation> +<translation id="7612608473764576263">Nilai input untuk kunci persendirian mestilah dalam format yang sah (Kunci RSA terkod PEM format PKCS#8).</translation> <translation id="7939686037314084444">Sambungan gagal dimuatkan dengan betul. Sambungan itu mungkin tidak dapat memintas permintaan rangkaian.</translation> <translation id="7972881773422714442">Pilihan: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">Menghadap pengguna</translation>
diff --git a/extensions/strings/extensions_strings_pl.xtb b/extensions/strings/extensions_strings_pl.xtb index 5420d8d..9b4edf27 100644 --- a/extensions/strings/extensions_strings_pl.xtb +++ b/extensions/strings/extensions_strings_pl.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">Nieznany produkt <ph name="PRODUCT_ID" /> firmy <ph name="VENDOR_NAME" /></translation> <translation id="7068383018033524534">Plik manifestu jest nieprawidłowy</translation> <translation id="7217838517480956708">Administrator tego komputera wymaga zainstalowanego rozszerzenia <ph name="EXTENSION_NAME" />. Nie można go usunąć ani modyfikować.</translation> +<translation id="7612608473764576263">Wartość wejściowa klucza prywatnego musi mieć prawidłowy format (klucz RSA z kodowaniem PEM w formacie PKCS#8).</translation> <translation id="7939686037314084444">Rozszerzenie nie załadowało się poprawnie. Być może nie działa przechwytywanie żądań sieciowych.</translation> <translation id="7972881773422714442">Opcje: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">Przedni</translation>
diff --git a/extensions/strings/extensions_strings_pt-BR.xtb b/extensions/strings/extensions_strings_pt-BR.xtb index f053b88c..e126a5a5 100644 --- a/extensions/strings/extensions_strings_pt-BR.xtb +++ b/extensions/strings/extensions_strings_pt-BR.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">Produto <ph name="PRODUCT_ID" /> desconhecido de <ph name="VENDOR_NAME" /></translation> <translation id="7068383018033524534">O arquivo de manifesto é inválido</translation> <translation id="7217838517480956708">O administrador desta máquina requer a instalação de <ph name="EXTENSION_NAME" />. Não é possível remover ou modificá-lo.</translation> +<translation id="7612608473764576263">O valor inserido para a chave privada precisa ser um formato válido (chave RSA codificada em PEM de formato PKCS#8).</translation> <translation id="7939686037314084444">A extensão não foi carregada corretamente. Talvez ela não consiga interceptar solicitações de rede.</translation> <translation id="7972881773422714442">Opções: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">Voltada para o usuário</translation>
diff --git a/extensions/strings/extensions_strings_sk.xtb b/extensions/strings/extensions_strings_sk.xtb index 04ceb06..93997d7 100644 --- a/extensions/strings/extensions_strings_sk.xtb +++ b/extensions/strings/extensions_strings_sk.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">Neznámy produkt <ph name="PRODUCT_ID" /> od dodávateľa <ph name="VENDOR_NAME" /></translation> <translation id="7068383018033524534">Súbor manifestu je neplatný</translation> <translation id="7217838517480956708">Správca tohto zariadenia vyžaduje inštaláciu rozšírenia <ph name="EXTENSION_NAME" />. Nemôže byť odstránené alebo upravené.</translation> +<translation id="7612608473764576263">Vstupná hodnota pre súkromný kľúč musí mať platný formát (kľúč RSA vo formáte PKCS#8 so šifrovaním PEM).</translation> <translation id="7939686037314084444">Rozšírenie sa nepodarilo správne načítať. Môže sa stať, že nebude môcť zachytávať žiadosti siete.</translation> <translation id="7972881773422714442">Možnosti: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">Nasmerovaný na používateľa</translation>
diff --git a/extensions/strings/extensions_strings_sw.xtb b/extensions/strings/extensions_strings_sw.xtb index fe87858..5c32d5e 100644 --- a/extensions/strings/extensions_strings_sw.xtb +++ b/extensions/strings/extensions_strings_sw.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">Bidhaa isiyojulikana <ph name="PRODUCT_ID" /> kutoka kwa <ph name="VENDOR_NAME" /></translation> <translation id="7068383018033524534">Faili ya maelezo si sahihi</translation> <translation id="7217838517480956708">Msimamizi wa mashine haya anahitaji <ph name="EXTENSION_NAME" /> kisakinishwe. Hakiwezi kuondolewa au kurekebishwa.</translation> +<translation id="7612608473764576263">Ni lazima uweke thamani ya ufunguo wa faragha katika muundo sahihi (Ufunguo wa RSA wa PKCS#8-format PEM-encoded).</translation> <translation id="7939686037314084444">Imeshindwa kupakia kiendelezi vizuri. Huenda haitaweza kuingilia maombi ya mtandao.</translation> <translation id="7972881773422714442">Chaguzi: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">Kamera ya mbele</translation>
diff --git a/extensions/strings/extensions_strings_ta.xtb b/extensions/strings/extensions_strings_ta.xtb index 253e6414..f66586d 100644 --- a/extensions/strings/extensions_strings_ta.xtb +++ b/extensions/strings/extensions_strings_ta.xtb
@@ -11,7 +11,7 @@ <translation id="149347756975725155">நீட்டிப்புப் படவுரு '<ph name="ICON" />' ஐ ஏற்ற முடியவில்லை.</translation> <translation id="1803557475693955505">'<ph name="BACKGROUND_PAGE" />' என்ற பின்புலப் பக்கத்தை ஏற்ற முடியவில்லை.</translation> <translation id="2159915644201199628">இந்தப் படத்தை குறிநீக்க முடியவில்லை: '<ph name="IMAGE_NAME" />'</translation> -<translation id="2350172092385603347">மொழிப்பெயர்ப்பு பயன்படுத்தப்பட்டது, ஆனால் default_locale அமைப்பில் குறிப்பிடப்படவில்லை. </translation> +<translation id="2350172092385603347">மொழிபெயர்ப்பு பயன்படுத்தப்பட்டது, ஆனால் மெனிபெஃஸ்ட்டில் default_locale குறிப்பிடப்படவில்லை.</translation> <translation id="2576842806987913196">இந்தப் பெயருடன் ஏற்கனவே ஒரு CRX கோப்பு உள்ளது.</translation> <translation id="2753617847762399167">முறையற்ற பாதை (சரியான அல்லது இதனுடன் தொடர்புடையவை '..'): '<ph name="IMAGE_PATH" />'</translation> <translation id="2785530881066938471">உள்ளடக்க ஸ்கிரிப்டுக்காக கோப்பு '<ph name="RELATIVE_PATH" />' ஐ ஏற்ற முடியவில்லை. இது UTF-8 குறியாக்கத்தில் இல்லை.</translation> @@ -55,17 +55,18 @@ <translation id="677806580227005219">Mimehandler: <ph name="MIMEHANDLERVIEW_TAG_NAME" /></translation> <translation id="6840444547062817500">இந்த நீட்டிப்பு அடிக்கடி தன்னைத்தானே ஏற்றுகிறது.</translation> <translation id="7003844668372540529"><ph name="VENDOR_NAME" /> அனுப்பிய <ph name="PRODUCT_ID" /> தயாரிப்பை அறிய முடியவில்லை</translation> -<translation id="7068383018033524534">தவறான மெனிஃபெஸ்ட் கோப்பு</translation> +<translation id="7068383018033524534">தவறான மெனிஃபெஸ்ட் ஃபைல்</translation> <translation id="7217838517480956708">இந்தக் கணினியின் நிர்வாகிக்கு, <ph name="EXTENSION_NAME" /> ஐ நிறுவ வேண்டும். இதை அகற்றவோ மாற்றவோ முடியாது.</translation> +<translation id="7612608473764576263">தனிப்பட்ட விசைக்கான உள்ளீட்டு மதிப்பானது சரியான வடிவமைப்பில் (PKCS#8-வடிவமைப்பில் PEM-என்கோடிங் செய்யப்பட்ட RSA விசை) இருக்க வேண்டும்.</translation> <translation id="7939686037314084444">இந்த நீட்டிப்பை முழுமையாக ஏற்ற முடியவில்லை. இதனால் நெட்வொர்க் கோரிக்கைகள் சரிவரப் புரிந்துகொள்ளப்படாமல் போகலாம்.</translation> <translation id="7972881773422714442">விருப்பங்கள்: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">முன்புறக் கேமரா</translation> <translation id="8047248493720652249">இந்த நீட்டிப்பு, பதிவிறக்கத்திற்கு "<ph name="ATTEMPTED_FILENAME" />" என்று பெயரிடுவதில் தோல்வி, ஏனெனில் மற்றொரு நீட்டிப்பு (<ph name="EXTENSION_NAME" />) வேறொரு கோப்புப்பெயரை "<ph name="ACTUAL_FILENAME" />" நிர்ணயித்து விட்டது.</translation> <translation id="8284835137979141223"><ph name="VENDOR_NAME" /> இன் <ph name="PRODUCT_NAME" /></translation> -<translation id="8517576857589387417">மெனிஃபெஸ்ட் கோப்பைக் காணவில்லை அல்லது படிக்கமுடியாததாக இருக்கிறது</translation> +<translation id="8517576857589387417">மெனிஃபெஸ்ட் ஃபைலைக் காணவில்லை அல்லது படிக்க முடியவில்லை</translation> <translation id="8636666366616799973">தொகுப்பு செல்லாதது. விவரங்கள்: '<ph name="ERROR_MESSAGE" />'.</translation> <translation id="8761756413268424715">"<ph name="APP_NAME" />" பயன்பாடு உங்கள் சாதனங்களில் ஒன்றின் அணுகலைக் கோருகிறது:</translation> <translation id="8885905466771744233">குறிப்பிட்ட நீட்டிப்பிற்கான தனிப்பட்ட விசை ஏற்கனவே உள்ளது. அந்த விசையை மீண்டும் பயன்படுத்துக அல்லது அதை முதலில் நீக்குக.</translation> -<translation id="907841381057066561">தொகுப்பாக்கலின்போது தற்காலிக ஜிப் கோப்பை உருவாக்குவதில் தோல்வியடைந்தது.</translation> +<translation id="907841381057066561">தொகுப்பாக்கலின்போது தற்காலிக ஜிப் ஃபைலை உருவாக்குவதில் தோல்வியடைந்தது.</translation> <translation id="941543339607623937">செல்லாத தனிப்பட்ட விசை.</translation> </translationbundle> \ No newline at end of file
diff --git a/extensions/strings/extensions_strings_th.xtb b/extensions/strings/extensions_strings_th.xtb index 682e12b..6dda40f 100644 --- a/extensions/strings/extensions_strings_th.xtb +++ b/extensions/strings/extensions_strings_th.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">ผลิตภัณฑ์ที่ไม่รู้จัก <ph name="PRODUCT_ID" /> จาก <ph name="VENDOR_NAME" /></translation> <translation id="7068383018033524534">ไฟล์ Manifest ไม่ถูกต้อง</translation> <translation id="7217838517480956708">ผู้ดูแลระบบของเครื่องนี้ต้องการให้มีการติดตั้ง <ph name="EXTENSION_NAME" /> โดยไม่สามารถลบหรือแก้ไขได้</translation> +<translation id="7612608473764576263">ค่าที่ป้อนสำหรับคีย์ส่วนตัวจะต้องเป็นรูปแบบที่ถูกต้อง (คีย์ RSA ที่เข้ารหัส PEM ในรูปแบบ PKCS#8)</translation> <translation id="7939686037314084444">ส่วนขยายโหลดไม่ถูกต้อง และอาจดักจับคำขอของเครือข่ายไม่ได้</translation> <translation id="7972881773422714442">ตัวเลือก: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">กล้องหน้า</translation>
diff --git a/extensions/strings/extensions_strings_uk.xtb b/extensions/strings/extensions_strings_uk.xtb index 9768114..d2609892 100644 --- a/extensions/strings/extensions_strings_uk.xtb +++ b/extensions/strings/extensions_strings_uk.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">Невідомий продукт <ph name="PRODUCT_ID" /> від постачальника <ph name="VENDOR_NAME" /></translation> <translation id="7068383018033524534">Файл маніфесту недійсний</translation> <translation id="7217838517480956708">Адміністратор цього комп’ютера потребує встановленого розширення <ph name="EXTENSION_NAME" />. Його не можна видаляти чи змінювати.</translation> +<translation id="7612608473764576263">Значення секретного ключа потрібно ввести у правильному форматі (PKCS#8, з кодуванням PEM і шифруванням RSA).</translation> <translation id="7939686037314084444">Розширення завантажилося неправильно. Можливо, йому не вдасться перехоплювати запити мережі.</translation> <translation id="7972881773422714442">Параметри: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">Фронтальна камера</translation>
diff --git a/extensions/strings/extensions_strings_zh-TW.xtb b/extensions/strings/extensions_strings_zh-TW.xtb index fecaef7..929f1730 100644 --- a/extensions/strings/extensions_strings_zh-TW.xtb +++ b/extensions/strings/extensions_strings_zh-TW.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529"><ph name="VENDOR_NAME" /> 提供的不明產品 <ph name="PRODUCT_ID" /></translation> <translation id="7068383018033524534">資訊清單檔案無效</translation> <translation id="7217838517480956708">這台電腦的管理員要求安裝 <ph name="EXTENSION_NAME" />,因此你無法移除或修改它。</translation> +<translation id="7612608473764576263">私密金鑰的輸入值必須是有效格式 (須為採用 PKCS#8 格式和 PEM 編碼的 RSA 金鑰)。</translation> <translation id="7939686037314084444">這個擴充功能未順利載入,因此可能無法攔截網路要求。</translation> <translation id="7972881773422714442">選項:<ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">前置鏡頭</translation>
diff --git a/google_apis/BUILD.gn b/google_apis/BUILD.gn index 2a88b1e..d0c8994 100644 --- a/google_apis/BUILD.gn +++ b/google_apis/BUILD.gn
@@ -218,6 +218,7 @@ "//base", "//base/test:test_support", "//net:test_support", + "//services/network:network_service", "//services/network:test_support", "//services/network/public/cpp", ]
diff --git a/google_apis/DEPS b/google_apis/DEPS index 918e9ba3..75f0022 100644 --- a/google_apis/DEPS +++ b/google_apis/DEPS
@@ -10,3 +10,9 @@ "+services/network/test", "+third_party/ocmock", ] + +specific_include_rules = { + ".*_unittest\.cc": [ + "+services/network/network_service.h", + ], +}
diff --git a/google_apis/drive/base_requests.cc b/google_apis/drive/base_requests.cc index 57bfded..b345502 100644 --- a/google_apis/drive/base_requests.cc +++ b/google_apis/drive/base_requests.cc
@@ -6,6 +6,7 @@ #include <stddef.h> +#include <algorithm> #include <memory> #include <utility> @@ -25,23 +26,9 @@ #include "google_apis/drive/request_util.h" #include "google_apis/drive/task_util.h" #include "google_apis/drive/time_util.h" -#include "net/base/elements_upload_data_stream.h" -#include "net/base/io_buffer.h" #include "net/base/load_flags.h" #include "net/base/mime_util.h" -#include "net/base/net_errors.h" -#include "net/base/upload_bytes_element_reader.h" -#include "net/base/upload_data_stream.h" -#include "net/base/upload_element_reader.h" -#include "net/base/upload_file_element_reader.h" -#include "net/http/http_byte_range.h" -#include "net/http/http_response_headers.h" #include "net/http/http_util.h" -#include "net/traffic_annotation/network_traffic_annotation.h" -#include "net/url_request/url_fetcher.h" -#include "net/url_request/url_request_status.h" - -using net::URLFetcher; namespace { @@ -84,28 +71,24 @@ // The callback must not be null. void ParseJsonOnBlockingPool( base::TaskRunner* blocking_task_runner, - const std::string& json, - const base::Callback<void(std::unique_ptr<base::Value> value)>& callback) { + std::string json, + base::OnceCallback<void(std::unique_ptr<base::Value> value)> callback) { base::PostTaskAndReplyWithResult( - blocking_task_runner, - FROM_HERE, - base::Bind(&google_apis::ParseJson, json), - callback); + blocking_task_runner, FROM_HERE, + base::BindOnce(&google_apis::ParseJson, std::move(json)), + std::move(callback)); } // Returns response headers as a string. Returns a warning message if -// |url_fetcher| does not contain a valid response. Used only for debugging. -std::string GetResponseHeadersAsString(const URLFetcher* url_fetcher) { - std::string headers; +// |response_head| does not contain a valid response. Used only for debugging. +std::string GetResponseHeadersAsString( + const network::ResourceResponseHead& response_head) { // Check that response code indicates response headers are valid (i.e. not // malformed) before we retrieve the headers. - if (url_fetcher->GetResponseCode() == URLFetcher::RESPONSE_CODE_INVALID) { - headers.assign("Response headers are malformed!!"); - } else { - headers = net::HttpUtil::ConvertHeadersBackToHTTPResponse( - url_fetcher->GetResponseHeaders()->raw_headers()); - } - return headers; + if (response_head.headers->response_code() == -1) + return "Response headers are malformed!!"; + + return response_head.headers->raw_headers(); } // Obtains the multipart body for the metadata string and file contents. If @@ -182,6 +165,9 @@ return code; } +// Used to release (and close) a file on a blocking task. +void CloseFile(base::File file) {} + } // namespace namespace google_apis { @@ -257,92 +243,18 @@ base::StringPrintf(kMultipartFooterFormat, boundary.c_str())); } -//=========================== ResponseWriter ================================== -ResponseWriter::ResponseWriter(base::SequencedTaskRunner* file_task_runner, - const base::FilePath& file_path, - const GetContentCallback& get_content_callback) - : get_content_callback_(get_content_callback), - weak_ptr_factory_(this) { - if (!file_path.empty()) { - file_writer_.reset( - new net::URLFetcherFileWriter(file_task_runner, file_path)); - } -} - -ResponseWriter::~ResponseWriter() { -} - -void ResponseWriter::DisownFile() { - DCHECK(file_writer_); - file_writer_->DisownFile(); -} - -int ResponseWriter::Initialize(net::CompletionOnceCallback callback) { - if (file_writer_) - return file_writer_->Initialize(std::move(callback)); - - data_.clear(); - return net::OK; -} - -int ResponseWriter::Write(net::IOBuffer* buffer, - int num_bytes, - net::CompletionOnceCallback callback) { - if (!get_content_callback_.is_null()) { - get_content_callback_.Run( - HTTP_SUCCESS, std::make_unique<std::string>(buffer->data(), num_bytes)); - } - - if (file_writer_) { - const int result = file_writer_->Write( - buffer, num_bytes, - base::BindOnce(&ResponseWriter::DidWrite, - weak_ptr_factory_.GetWeakPtr(), - base::WrapRefCounted(buffer), std::move(callback))); - if (result != net::ERR_IO_PENDING) - DidWrite(buffer, net::CompletionOnceCallback(), result); - return result; - } - - data_.append(buffer->data(), num_bytes); - return num_bytes; -} - -int ResponseWriter::Finish(int net_error, - net::CompletionOnceCallback callback) { - if (file_writer_) - return file_writer_->Finish(net_error, std::move(callback)); - - return net::OK; -} - -void ResponseWriter::DidWrite(scoped_refptr<net::IOBuffer> buffer, - net::CompletionOnceCallback callback, - int result) { - if (result > 0) { - // Even if file_writer_ is used, append the data to |data_|, so that it can - // be used to get error information in case of server side errors. - // The size limit is to avoid consuming too much redundant memory. - const size_t kMaxStringSize = 1024*1024; - if (data_.size() < kMaxStringSize) { - data_.append(buffer->data(), std::min(static_cast<size_t>(result), - kMaxStringSize - data_.size())); - } - } - - if (!callback.is_null()) - std::move(callback).Run(result); -} - //============================ UrlFetchRequestBase =========================== -UrlFetchRequestBase::UrlFetchRequestBase(RequestSender* sender) +UrlFetchRequestBase::UrlFetchRequestBase( + RequestSender* sender, + const ProgressCallback& upload_progress_callback, + const ProgressCallback& download_progress_callback) : re_authenticate_count_(0), - response_writer_(NULL), sender_(sender), - error_code_(DRIVE_OTHER_ERROR), - weak_ptr_factory_(this) { -} + upload_progress_callback_(upload_progress_callback), + download_progress_callback_(download_progress_callback), + response_content_length_(-1), + weak_ptr_factory_(this) {} UrlFetchRequestBase::~UrlFetchRequestBase() {} @@ -398,78 +310,217 @@ re_authenticate_callback_ = callback; DVLOG(1) << "URL: " << url.spec(); - URLFetcher::RequestType request_type = GetRequestType(); - url_fetcher_ = URLFetcher::Create(url, request_type, this, - sender_->get_traffic_annotation_tag()); - url_fetcher_->SetRequestContext(sender_->url_request_context_getter()); - // Always set flags to neither send nor save cookies. - url_fetcher_->SetLoadFlags( - net::LOAD_DO_NOT_SEND_COOKIES | net::LOAD_DO_NOT_SAVE_COOKIES | - net::LOAD_DISABLE_CACHE); - - base::FilePath output_file_path; - GetContentCallback get_content_callback; - GetOutputFilePath(&output_file_path, &get_content_callback); - if (!get_content_callback.is_null()) - get_content_callback = CreateRelayCallback(get_content_callback); - response_writer_ = new ResponseWriter(blocking_task_runner(), - output_file_path, - get_content_callback); - url_fetcher_->SaveResponseWithWriter( - std::unique_ptr<net::URLFetcherResponseWriter>(response_writer_)); + auto request = std::make_unique<network::ResourceRequest>(); + request->url = url; + request->method = GetRequestType(); + request->load_flags = net::LOAD_DO_NOT_SEND_COOKIES | + net::LOAD_DO_NOT_SAVE_COOKIES | net::LOAD_DISABLE_CACHE; // Add request headers. - // Note that SetExtraRequestHeaders clears the current headers and sets it - // to the passed-in headers, so calling it for each header will result in - // only the last header being set in request headers. + // Note that SetHeader clears the current headers and sets it to the passed-in + // headers, so calling it for each header will result in only the last header + // being set in request headers. if (!custom_user_agent.empty()) - url_fetcher_->AddExtraRequestHeader("User-Agent: " + custom_user_agent); - url_fetcher_->AddExtraRequestHeader(kGDataVersionHeader); - url_fetcher_->AddExtraRequestHeader( + request->headers.SetHeader("User-Agent", custom_user_agent); + request->headers.AddHeaderFromString(kGDataVersionHeader); + request->headers.AddHeaderFromString( base::StringPrintf(kAuthorizationHeaderFormat, access_token.data())); - std::vector<std::string> headers = GetExtraRequestHeaders(); - for (size_t i = 0; i < headers.size(); ++i) { - url_fetcher_->AddExtraRequestHeader(headers[i]); - DVLOG(1) << "Extra header: " << headers[i]; + for (const auto& header : GetExtraRequestHeaders()) { + request->headers.AddHeaderFromString(header); + DVLOG(1) << "Extra header: " << header; + } + + url_loader_ = network::SimpleURLLoader::Create( + std::move(request), sender_->get_traffic_annotation_tag()); + url_loader_->SetAllowHttpErrorResults(true /* allow */); + + download_data_ = std::make_unique<DownloadData>(blocking_task_runner()); + GetOutputFilePath(&download_data_->output_file_path, + &download_data_->get_content_callback); + if (!download_data_->get_content_callback.is_null()) { + download_data_->get_content_callback = + CreateRelayCallback(download_data_->get_content_callback); } // Set upload data if available. std::string upload_content_type; std::string upload_content; if (GetContentData(&upload_content_type, &upload_content)) { - url_fetcher_->SetUploadData(upload_content_type, upload_content); + url_loader_->AttachStringForUpload(upload_content, upload_content_type); } else { base::FilePath local_file_path; int64_t range_offset = 0; int64_t range_length = 0; if (GetContentFile(&local_file_path, &range_offset, &range_length, &upload_content_type)) { - url_fetcher_->SetUploadFilePath( - upload_content_type, - local_file_path, - range_offset, - range_length, - blocking_task_runner()); - } else { - // Even if there is no content data, UrlFetcher requires to set empty - // upload data string for POST, PUT and PATCH methods, explicitly. - // It is because that most requests of those methods have non-empty - // body, and UrlFetcher checks whether it is actually not forgotten. - if (request_type == URLFetcher::POST || - request_type == URLFetcher::PUT || - request_type == URLFetcher::PATCH) { - // Set empty upload content-type and upload content, so that - // the request will have no "Content-type: " header and no content. - url_fetcher_->SetUploadData(std::string(), std::string()); - } + url_loader_->AttachFileForUpload(local_file_path, upload_content_type, + range_offset, range_length); } } - url_fetcher_->Start(); + if (!upload_progress_callback_.is_null()) { + url_loader_->SetOnUploadProgressCallback(base::BindRepeating( + &UrlFetchRequestBase::OnUploadProgress, weak_ptr_factory_.GetWeakPtr(), + upload_progress_callback_)); + } + if (!download_progress_callback_.is_null()) { + url_loader_->SetOnDownloadProgressCallback(base::BindRepeating( + &UrlFetchRequestBase::OnDownloadProgress, + weak_ptr_factory_.GetWeakPtr(), download_progress_callback_)); + } + + url_loader_->SetOnResponseStartedCallback(base::BindOnce( + &UrlFetchRequestBase::OnResponseStarted, weak_ptr_factory_.GetWeakPtr())); + + url_loader_->DownloadAsStream(sender_->url_loader_factory(), this); } -URLFetcher::RequestType UrlFetchRequestBase::GetRequestType() const { - return URLFetcher::GET; +void UrlFetchRequestBase::OnDownloadProgress( + const ProgressCallback& progress_callback, + uint64_t current) { + progress_callback.Run(static_cast<int64_t>(current), + response_content_length_); +} + +void UrlFetchRequestBase::OnUploadProgress( + const ProgressCallback& progress_callback, + uint64_t position, + uint64_t total) { + progress_callback.Run(static_cast<int64_t>(position), + static_cast<int64_t>(total)); +} + +void UrlFetchRequestBase::OnResponseStarted( + const GURL& final_url, + const network::ResourceResponseHead& response_head) { + DVLOG(1) << "Response headers:\n" + << GetResponseHeadersAsString(response_head); + response_content_length_ = response_head.content_length; +} + +// static +bool UrlFetchRequestBase::WriteFileData(base::StringPiece string_piece, + DownloadData* download_data) { + if (!download_data->output_file.IsValid()) { + download_data->output_file.Initialize( + download_data->output_file_path, + base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE); + if (!download_data->output_file.IsValid()) + return false; + } + if (download_data->output_file.WriteAtCurrentPos(string_piece.data(), + string_piece.size()) == -1) { + download_data->output_file.Close(); + return false; + } + + // Even when writing response to a file save the first 1 MiB of the response + // body so that it can be used to get error information in case of server side + // errors. The size limit is to avoid consuming too much redundant memory. + const size_t kMaxStringSize = 1024 * 1024; + if (download_data->response_body.size() < kMaxStringSize) { + size_t bytes_to_copy = + std::min(string_piece.size(), + kMaxStringSize - download_data->response_body.size()); + download_data->response_body.append(string_piece.data(), bytes_to_copy); + } + + return true; +} + +void UrlFetchRequestBase::OnWriteComplete( + std::unique_ptr<DownloadData> download_data, + base::OnceClosure resume, + bool write_success) { + download_data_ = std::move(download_data); + if (!write_success) { + error_code_ = DRIVE_OTHER_ERROR; + url_loader_.reset(); // Cancel the request + // No SimpleURLLoader to call OnComplete() so call it directly. + OnComplete(false); + return; + } + + std::move(resume).Run(); +} + +void UrlFetchRequestBase::OnDataReceived(base::StringPiece string_piece, + base::OnceClosure resume) { + if (!download_data_->get_content_callback.is_null()) { + download_data_->get_content_callback.Run( + HTTP_SUCCESS, std::make_unique<std::string>(string_piece)); + } + + if (!download_data_->output_file_path.empty()) { + DownloadData* download_data_ptr = download_data_.get(); + base::PostTaskAndReplyWithResult( + blocking_task_runner(), FROM_HERE, + base::BindOnce(&UrlFetchRequestBase::WriteFileData, + std::move(string_piece), download_data_ptr), + base::BindOnce(&UrlFetchRequestBase::OnWriteComplete, + weak_ptr_factory_.GetWeakPtr(), + std::move(download_data_), std::move(resume))); + return; + } + + download_data_->response_body.append(string_piece.data(), + string_piece.size()); + std::move(resume).Run(); +} + +void UrlFetchRequestBase::OnComplete(bool success) { + DCHECK(download_data_); + blocking_task_runner()->PostTaskAndReply( + FROM_HERE, + base::BindOnce(&CloseFile, std::move(download_data_->output_file)), + base::BindOnce(&UrlFetchRequestBase::OnOutputFileClosed, + weak_ptr_factory_.GetWeakPtr(), success)); +} + +void UrlFetchRequestBase::OnOutputFileClosed(bool success) { + DCHECK(download_data_); + const network::ResourceResponseHead* response_info; + if (url_loader_) { + response_info = url_loader_->ResponseInfo(); + if (response_info) { + error_code_ = static_cast<DriveApiErrorCode>( + response_info->headers->response_code()); + } else { + error_code_ = NetError() == net::ERR_NETWORK_CHANGED ? DRIVE_NO_CONNECTION + : DRIVE_OTHER_ERROR; + } + if (!download_data_->response_body.empty()) { + error_code_ = + MapJsonError(error_code_.value(), download_data_->response_body); + } + } else { + // If the request is cancelled then error_code_ must be set. + DCHECK(error_code_.has_value()); + response_info = nullptr; + } + + if (error_code_.value() == HTTP_UNAUTHORIZED) { + if (++re_authenticate_count_ <= kMaxReAuthenticateAttemptsPerRequest) { + // Reset re_authenticate_callback_ so Start() can be called again. + std::move(re_authenticate_callback_).Run(this); + return; + } + OnAuthFailed(GetErrorCode()); + return; + } + + // Overridden by each specialization + ProcessURLFetchResults(response_info, + std::move(download_data_->output_file_path), + std::move(download_data_->response_body)); +} + +void UrlFetchRequestBase::OnRetry(base::OnceClosure start_retry) { + NOTREACHED(); +} + +std::string UrlFetchRequestBase::GetRequestType() const { + return "GET"; } std::vector<std::string> UrlFetchRequestBase::GetExtraRequestHeaders() const { @@ -494,13 +545,20 @@ } void UrlFetchRequestBase::Cancel() { - response_writer_ = NULL; - url_fetcher_.reset(NULL); + url_loader_.reset(); CompleteRequestWithError(DRIVE_CANCELLED); } -DriveApiErrorCode UrlFetchRequestBase::GetErrorCode() { - return error_code_; +DriveApiErrorCode UrlFetchRequestBase::GetErrorCode() const { + DCHECK(error_code_.has_value()) << "GetErrorCode only valid after " + "resource load complete."; + return error_code_.value(); +} + +int UrlFetchRequestBase::NetError() const { + if (!url_loader_) // If resource load cancelled? + return net::ERR_FAILED; + return url_loader_->NetError(); } bool UrlFetchRequestBase::CalledOnValidThread() { @@ -515,41 +573,6 @@ sender_->RequestFinished(this); } -void UrlFetchRequestBase::OnURLFetchComplete(const URLFetcher* source) { - DVLOG(1) << "Response headers:\n" << GetResponseHeadersAsString(source); - - // Determine error code. - error_code_ = static_cast<DriveApiErrorCode>(source->GetResponseCode()); - if (!source->GetStatus().is_success()) { - switch (source->GetStatus().error()) { - case net::ERR_NETWORK_CHANGED: - error_code_ = DRIVE_NO_CONNECTION; - break; - default: - error_code_ = DRIVE_OTHER_ERROR; - } - } - - error_code_ = MapJsonError(error_code_, response_writer_->data()); - - // Handle authentication failure. - if (error_code_ == HTTP_UNAUTHORIZED) { - if (++re_authenticate_count_ <= kMaxReAuthenticateAttemptsPerRequest) { - // Reset re_authenticate_callback_ so Start() can be called again. - ReAuthenticateCallback callback = re_authenticate_callback_; - re_authenticate_callback_.Reset(); - callback.Run(this); - return; - } - - OnAuthFailed(error_code_); - return; - } - - // Overridden by each specialization - ProcessURLFetchResults(source); -} - void UrlFetchRequestBase::CompleteRequestWithError(DriveApiErrorCode code) { RunCallbackOnPrematureFailure(code); sender_->RequestFinished(this); @@ -568,14 +591,17 @@ EntryActionRequest::EntryActionRequest(RequestSender* sender, const EntryActionCallback& callback) - : UrlFetchRequestBase(sender), + : UrlFetchRequestBase(sender, ProgressCallback(), ProgressCallback()), callback_(callback) { DCHECK(!callback_.is_null()); } EntryActionRequest::~EntryActionRequest() {} -void EntryActionRequest::ProcessURLFetchResults(const URLFetcher* source) { +void EntryActionRequest::ProcessURLFetchResults( + const network::ResourceResponseHead* response_head, + base::FilePath response_file, + std::string response_body) { callback_.Run(GetErrorCode()); OnProcessURLFetchResultsComplete(); } @@ -591,7 +617,7 @@ const InitiateUploadCallback& callback, const std::string& content_type, int64_t content_length) - : UrlFetchRequestBase(sender), + : UrlFetchRequestBase(sender, ProgressCallback(), ProgressCallback()), callback_(callback), content_type_(content_type), content_length_(content_length) { @@ -603,18 +629,17 @@ InitiateUploadRequestBase::~InitiateUploadRequestBase() {} void InitiateUploadRequestBase::ProcessURLFetchResults( - const URLFetcher* source) { - DriveApiErrorCode code = GetErrorCode(); - + const network::ResourceResponseHead* response_head, + base::FilePath response_file, + std::string response_body) { std::string upload_location; - if (code == HTTP_SUCCESS) { + if (GetErrorCode() == HTTP_SUCCESS) { // Retrieve value of the first "Location" header. - source->GetResponseHeaders()->EnumerateHeader(NULL, - kUploadResponseLocation, - &upload_location); + response_head->headers->EnumerateHeader(nullptr, kUploadResponseLocation, + &upload_location); } - callback_.Run(code, GURL(upload_location)); + callback_.Run(GetErrorCode(), GURL(upload_location)); OnProcessURLFetchResultsComplete(); } @@ -652,12 +677,13 @@ //========================== UploadRangeRequestBase ========================== -UploadRangeRequestBase::UploadRangeRequestBase(RequestSender* sender, - const GURL& upload_url) - : UrlFetchRequestBase(sender), +UploadRangeRequestBase::UploadRangeRequestBase( + RequestSender* sender, + const GURL& upload_url, + const ProgressCallback& progress_callback) + : UrlFetchRequestBase(sender, progress_callback, ProgressCallback()), upload_url_(upload_url), - weak_ptr_factory_(this) { -} + weak_ptr_factory_(this) {} UploadRangeRequestBase::~UploadRangeRequestBase() {} @@ -667,15 +693,15 @@ return upload_url_; } -URLFetcher::RequestType UploadRangeRequestBase::GetRequestType() const { - return URLFetcher::PUT; +std::string UploadRangeRequestBase::GetRequestType() const { + return "PUT"; } void UploadRangeRequestBase::ProcessURLFetchResults( - const URLFetcher* source) { + const network::ResourceResponseHead* response_head, + base::FilePath response_file, + std::string response_body) { DriveApiErrorCode code = GetErrorCode(); - net::HttpResponseHeaders* hdrs = source->GetResponseHeaders(); - if (code == HTTP_RESUME_INCOMPLETE) { // Retrieve value of the first "Range" header. // The Range header is appeared only if there is at least one received @@ -684,7 +710,8 @@ int64_t start_position_received = 0; int64_t end_position_received = 0; std::string range_received; - hdrs->EnumerateHeader(NULL, kUploadResponseRange, &range_received); + response_head->headers->EnumerateHeader(nullptr, kUploadResponseRange, + &range_received); if (!range_received.empty()) { // Parse the range header. std::vector<net::HttpByteRange> ranges; if (net::HttpUtil::ParseRangeHeader(range_received, &ranges) && @@ -710,11 +737,10 @@ } else if (code == HTTP_CREATED || code == HTTP_SUCCESS) { // The upload is successfully done. Parse the response which should be // the entry's metadata. - ParseJsonOnBlockingPool(blocking_task_runner(), - response_writer()->data(), - base::Bind(&UploadRangeRequestBase::OnDataParsed, - weak_ptr_factory_.GetWeakPtr(), - code)); + ParseJsonOnBlockingPool( + blocking_task_runner(), std::move(response_body), + base::BindOnce(&UploadRangeRequestBase::OnDataParsed, + weak_ptr_factory_.GetWeakPtr(), code)); } else { // Failed to upload. Run callbacks to notify the error. OnRangeRequestComplete(UploadRangeResponse(code, -1, -1), @@ -738,6 +764,17 @@ std::unique_ptr<base::Value>()); } +UploadRangeRequestBase::DownloadData::DownloadData( + scoped_refptr<base::SequencedTaskRunner> blocking_task_runner) + : blocking_task_runner_(blocking_task_runner) {} + +UploadRangeRequestBase::DownloadData::~DownloadData() { + if (output_file.IsValid()) { + blocking_task_runner_->PostTask( + FROM_HERE, base::BindOnce(&CloseFile, std::move(output_file))); + } +} + //========================== ResumeUploadRequestBase ========================= ResumeUploadRequestBase::ResumeUploadRequestBase( @@ -747,8 +784,9 @@ int64_t end_position, int64_t content_length, const std::string& content_type, - const base::FilePath& local_file_path) - : UploadRangeRequestBase(sender, upload_location), + const base::FilePath& local_file_path, + const ProgressCallback& progress_callback) + : UploadRangeRequestBase(sender, upload_location, progress_callback), start_position_(start_position), end_position_(end_position), content_length_(content_length), @@ -807,7 +845,7 @@ GetUploadStatusRequestBase::GetUploadStatusRequestBase(RequestSender* sender, const GURL& upload_url, int64_t content_length) - : UploadRangeRequestBase(sender, upload_url), + : UploadRangeRequestBase(sender, upload_url, ProgressCallback()), content_length_(content_length) {} GetUploadStatusRequestBase::~GetUploadStatusRequestBase() {} @@ -911,9 +949,9 @@ if (code == HTTP_CREATED || code == HTTP_SUCCESS) { ParseJsonOnBlockingPool( blocking_task_runner_.get(), body, - base::Bind(&MultipartUploadRequestBase::OnDataParsed, - weak_ptr_factory_.GetWeakPtr(), code, - notify_complete_callback)); + base::BindOnce(&MultipartUploadRequestBase::OnDataParsed, + weak_ptr_factory_.GetWeakPtr(), code, + notify_complete_callback)); } else { NotifyError(MapJsonError(code, body)); notify_complete_callback.Run(); @@ -924,10 +962,8 @@ callback_.Run(code, std::unique_ptr<FileResource>()); } -void MultipartUploadRequestBase::NotifyUploadProgress( - const net::URLFetcher* source, - int64_t current, - int64_t total) { +void MultipartUploadRequestBase::NotifyUploadProgress(int64_t current, + int64_t total) { if (!progress_callback_.is_null()) progress_callback_.Run(current, total); } @@ -953,10 +989,9 @@ const ProgressCallback& progress_callback, const GURL& download_url, const base::FilePath& output_file_path) - : UrlFetchRequestBase(sender), + : UrlFetchRequestBase(sender, ProgressCallback(), progress_callback), download_action_callback_(download_action_callback), get_content_callback_(get_content_callback), - progress_callback_(progress_callback), download_url_(download_url), output_file_path_(output_file_path) { DCHECK(!download_action_callback_.is_null()); @@ -979,26 +1014,11 @@ *get_content_callback = get_content_callback_; } -void DownloadFileRequestBase::OnURLFetchDownloadProgress( - const URLFetcher* source, - int64_t current, - int64_t total, - int64_t current_network_bytes) { - if (!progress_callback_.is_null()) - progress_callback_.Run(current, total); -} - -void DownloadFileRequestBase::ProcessURLFetchResults(const URLFetcher* source) { - DriveApiErrorCode code = GetErrorCode(); - - // Take over the ownership of the the downloaded temp file. - base::FilePath temp_file; - if (code == HTTP_SUCCESS) { - response_writer()->DisownFile(); - temp_file = output_file_path_; - } - - download_action_callback_.Run(code, temp_file); +void DownloadFileRequestBase::ProcessURLFetchResults( + const network::ResourceResponseHead* response_head, + base::FilePath response_file, + std::string response_body) { + download_action_callback_.Run(GetErrorCode(), response_file); OnProcessURLFetchResultsComplete(); }
diff --git a/google_apis/drive/base_requests.h b/google_apis/drive/base_requests.h index 6c21dec..995350a 100644 --- a/google_apis/drive/base_requests.h +++ b/google_apis/drive/base_requests.h
@@ -10,19 +10,21 @@ #include <stdint.h> +#include <memory> #include <string> +#include <utility> #include <vector> #include "base/callback.h" #include "base/files/file_path.h" #include "base/macros.h" #include "base/memory/weak_ptr.h" +#include "base/sequenced_task_runner.h" #include "base/threading/thread_checker.h" #include "google_apis/drive/drive_api_error_codes.h" -#include "net/base/completion_once_callback.h" -#include "net/url_request/url_fetcher.h" -#include "net/url_request/url_fetcher_delegate.h" -#include "net/url_request/url_fetcher_response_writer.h" +#include "services/network/public/cpp/resource_response.h" +#include "services/network/public/cpp/simple_url_loader.h" +#include "services/network/public/cpp/simple_url_loader_stream_consumer.h" #include "url/gurl.h" namespace base { @@ -114,48 +116,11 @@ virtual void Cancel() = 0; }; -//=========================== ResponseWriter ================================== - -// Saves the response for the request to a file or string. -class ResponseWriter : public net::URLFetcherResponseWriter { - public: - // If file_path is not empty, the response will be saved with file_writer_, - // otherwise it will be saved to data_. - ResponseWriter(base::SequencedTaskRunner* file_task_runner, - const base::FilePath& file_path, - const GetContentCallback& get_content_callback); - ~ResponseWriter() override; - - const std::string& data() const { return data_; } - - // Disowns the output file. - void DisownFile(); - - // URLFetcherResponseWriter overrides: - int Initialize(net::CompletionOnceCallback callback) override; - int Write(net::IOBuffer* buffer, - int num_bytes, - net::CompletionOnceCallback callback) override; - int Finish(int net_error, net::CompletionOnceCallback callback) override; - - private: - void DidWrite(scoped_refptr<net::IOBuffer> buffer, - net::CompletionOnceCallback callback, - int result); - - const GetContentCallback get_content_callback_; - std::string data_; - std::unique_ptr<net::URLFetcherFileWriter> file_writer_; - base::WeakPtrFactory<ResponseWriter> weak_ptr_factory_; - - DISALLOW_COPY_AND_ASSIGN(ResponseWriter); -}; - //============================ UrlFetchRequestBase =========================== // Base class for requests that are fetching URLs. class UrlFetchRequestBase : public AuthenticatedRequestInterface, - public net::URLFetcherDelegate { + public network::SimpleURLLoaderStreamConsumer { public: // AuthenticatedRequestInterface overrides. void Start(const std::string& access_token, @@ -165,7 +130,9 @@ void Cancel() override; protected: - explicit UrlFetchRequestBase(RequestSender* sender); + UrlFetchRequestBase(RequestSender* sender, + const ProgressCallback& upload_progress_callback, + const ProgressCallback& download_progress_callback); ~UrlFetchRequestBase() override; // Does async initialization for the request. |Start| calls this method so you @@ -177,7 +144,7 @@ // Returns the request type. A derived class should override this method // for a request type other than HTTP GET. - virtual net::URLFetcher::RequestType GetRequestType() const; + virtual std::string GetRequestType() const; // Returns the extra HTTP headers for the request. A derived class should // override this method to specify any extra headers needed for the request. @@ -207,9 +174,17 @@ virtual void GetOutputFilePath(base::FilePath* local_file_path, GetContentCallback* get_content_callback); - // Invoked by OnURLFetchComplete when the request completes without an - // authentication error. Must be implemented by a derived class. - virtual void ProcessURLFetchResults(const net::URLFetcher* source) = 0; + // Invoked when the request completes without an authentication error. + // |response_head| may be nullptr if the resource load failed - call + // GetErrorCode() to determine cause of failure. |response_file| will contain + // the path to the requested output file. |response_body| will contain the + // requested resource. If requested to save the response to disk then + // |response_body| may be truncated and only contain the starting portion + // of the resource. + virtual void ProcessURLFetchResults( + const network::ResourceResponseHead* response_head, + base::FilePath response_file, + std::string response_body) = 0; // Invoked by this base class upon an authentication error or cancel by // a user request. Must be implemented by a derived class. @@ -219,41 +194,89 @@ void OnProcessURLFetchResultsComplete(); // Returns an appropriate DriveApiErrorCode based on the HTTP response code - // and the status of the URLFetcher. - DriveApiErrorCode GetErrorCode(); + // and the status of the URLLoader. + DriveApiErrorCode GetErrorCode() const; + + // Returns the net::Error representing the final status of the request. + // Only valid after the request completes (successful or not). + int NetError() const; // Returns true if called on the thread where the constructor was called. bool CalledOnValidThread(); - // Returns the writer which is used to save the response for the request. - ResponseWriter* response_writer() const { return response_writer_; } - // Returns the task runner that should be used for blocking tasks. base::SequencedTaskRunner* blocking_task_runner() const; private: + // Values for the current in-progress request being handled by the + // url_loader_. + struct DownloadData { + explicit DownloadData( + scoped_refptr<base::SequencedTaskRunner> blocking_task_runner); + ~DownloadData(); + base::File output_file; + base::FilePath output_file_path; + GetContentCallback get_content_callback; + std::string response_body; + + private: + scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; + }; + + // Write the data in |string_piece| to disk and call |resume| once complete on + // a blocking sequence. + static bool WriteFileData(base::StringPiece string_piece, + DownloadData* download_data); + + // Called by SimpleURLLoader to report download progress. + void OnDownloadProgress(const ProgressCallback& progress_callback, + uint64_t current); + + // Called by SimpleURLLoader to report upload progress. + void OnUploadProgress(const ProgressCallback& progress_callback, + uint64_t position, + uint64_t total); + + // Called with the result of |WriteFileData|. + void OnWriteComplete(std::unique_ptr<DownloadData> download_data, + base::OnceClosure resume, + bool write_success); + + // Called after completion (with output file closed). + void OnOutputFileClosed(bool success); + + // SimpleURLLoaderStreamConsumer implementation: + void OnDataReceived(base::StringPiece string_piece, + base::OnceClosure resume) override; + void OnComplete(bool success) override; + void OnRetry(base::OnceClosure start_retry) override; + // Continues |Start| function after |Prepare|. void StartAfterPrepare(const std::string& access_token, const std::string& custom_user_agent, const ReAuthenticateCallback& callback, DriveApiErrorCode code); + // Called when the SimpleURLLoader first receives a response. + void OnResponseStarted(const GURL& final_url, + const network::ResourceResponseHead& response_head); + // Invokes callback with |code| and request to delete the request to // |sender_|. void CompleteRequestWithError(DriveApiErrorCode code); - // URLFetcherDelegate overrides. - void OnURLFetchComplete(const net::URLFetcher* source) override; - // AuthenticatedRequestInterface overrides. void OnAuthFailed(DriveApiErrorCode code) override; ReAuthenticateCallback re_authenticate_callback_; int re_authenticate_count_; - std::unique_ptr<net::URLFetcher> url_fetcher_; - ResponseWriter* response_writer_; // Owned by |url_fetcher_|. + std::unique_ptr<network::SimpleURLLoader> url_loader_; RequestSender* sender_; - DriveApiErrorCode error_code_; + base::Optional<DriveApiErrorCode> error_code_; + const ProgressCallback upload_progress_callback_; + const ProgressCallback download_progress_callback_; + std::unique_ptr<DownloadData> download_data_; + int64_t response_content_length_; base::ThreadChecker thread_checker_; @@ -274,7 +297,7 @@ // See UrlFetchRequestBase. virtual GURL GetURL() const = 0; - virtual net::URLFetcher::RequestType GetRequestType() const = 0; + virtual std::string GetRequestType() const = 0; virtual std::vector<std::string> GetExtraRequestHeaders() const = 0; virtual void Prepare(const PrepareCallback& callback) = 0; virtual bool GetContentData(std::string* upload_content_type, @@ -295,9 +318,7 @@ virtual void NotifyError(DriveApiErrorCode code) = 0; // Notifies progress. - virtual void NotifyUploadProgress(const net::URLFetcher* source, - int64_t current, - int64_t total) = 0; + virtual void NotifyUploadProgress(int64_t current, int64_t total) = 0; }; //============================ EntryActionRequest ============================ @@ -317,7 +338,10 @@ protected: // Overridden from UrlFetchRequestBase. - void ProcessURLFetchResults(const net::URLFetcher* source) override; + void ProcessURLFetchResults( + const network::ResourceResponseHead* response_head, + base::FilePath response_file, + std::string response_body) override; void RunCallbackOnPrematureFailure(DriveApiErrorCode code) override; private: @@ -356,7 +380,10 @@ ~InitiateUploadRequestBase() override; // UrlFetchRequestBase overrides. - void ProcessURLFetchResults(const net::URLFetcher* source) override; + void ProcessURLFetchResults( + const network::ResourceResponseHead* response_head, + base::FilePath response_file, + std::string response_body) override; void RunCallbackOnPrematureFailure(DriveApiErrorCode code) override; std::vector<std::string> GetExtraRequestHeaders() const override; @@ -395,13 +422,18 @@ class UploadRangeRequestBase : public UrlFetchRequestBase { protected: // |upload_url| is the URL of where to upload the file to. - UploadRangeRequestBase(RequestSender* sender, const GURL& upload_url); + UploadRangeRequestBase(RequestSender* sender, + const GURL& upload_url, + const ProgressCallback& upload_progress_callback); ~UploadRangeRequestBase() override; // UrlFetchRequestBase overrides. GURL GetURL() const override; - net::URLFetcher::RequestType GetRequestType() const override; - void ProcessURLFetchResults(const net::URLFetcher* source) override; + std::string GetRequestType() const override; + void ProcessURLFetchResults( + const network::ResourceResponseHead* response_head, + base::FilePath response_file, + std::string response_body) override; void RunCallbackOnPrematureFailure(DriveApiErrorCode code) override; // This method will be called when the request is done, regardless of @@ -462,7 +494,8 @@ int64_t end_position, int64_t content_length, const std::string& content_type, - const base::FilePath& local_file_path); + const base::FilePath& local_file_path, + const ProgressCallback& progress_callback); ~ResumeUploadRequestBase() override; // UrlFetchRequestBase overrides. @@ -545,9 +578,7 @@ const std::string& body, const base::Closure& callback) override; void NotifyError(DriveApiErrorCode code) override; - void NotifyUploadProgress(const net::URLFetcher* source, - int64_t current, - int64_t total) override; + void NotifyUploadProgress(int64_t current, int64_t total) override; // Parses the response value and invokes |callback_| with |FileResource|. void OnDataParsed(DriveApiErrorCode code, const base::Closure& callback, @@ -625,19 +656,15 @@ GURL GetURL() const override; void GetOutputFilePath(base::FilePath* local_file_path, GetContentCallback* get_content_callback) override; - void ProcessURLFetchResults(const net::URLFetcher* source) override; + void ProcessURLFetchResults( + const network::ResourceResponseHead* response_head, + base::FilePath response_file, + std::string response_body) override; void RunCallbackOnPrematureFailure(DriveApiErrorCode code) override; - // net::URLFetcherDelegate overrides. - void OnURLFetchDownloadProgress(const net::URLFetcher* source, - int64_t current, - int64_t total, - int64_t current_network_bytes) override; - private: const DownloadActionCallback download_action_callback_; const GetContentCallback get_content_callback_; - const ProgressCallback progress_callback_; const GURL download_url_; const base::FilePath output_file_path_;
diff --git a/google_apis/drive/base_requests_server_unittest.cc b/google_apis/drive/base_requests_server_unittest.cc index 2d3aa4da..5dcd8b1 100644 --- a/google_apis/drive/base_requests_server_unittest.cc +++ b/google_apis/drive/base_requests_server_unittest.cc
@@ -9,8 +9,8 @@ #include "base/bind.h" #include "base/files/file_util.h" #include "base/files/scoped_temp_dir.h" -#include "base/message_loop/message_loop.h" #include "base/run_loop.h" +#include "base/test/scoped_task_environment.h" #include "google_apis/drive/dummy_auth_service.h" #include "google_apis/drive/request_sender.h" #include "google_apis/drive/task_util.h" @@ -19,7 +19,10 @@ #include "net/test/embedded_test_server/http_request.h" #include "net/test/embedded_test_server/http_response.h" #include "net/traffic_annotation/network_traffic_annotation_test_helper.h" -#include "net/url_request/url_request_test_util.h" +#include "services/network/network_service.h" +#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h" +#include "services/network/public/mojom/url_loader_factory.mojom.h" +#include "services/network/test/test_network_service_client.h" #include "testing/gtest/include/gtest/gtest.h" namespace google_apis { @@ -33,18 +36,42 @@ class BaseRequestsServerTest : public testing::Test { protected: BaseRequestsServerTest() { + network::mojom::NetworkServicePtr network_service_ptr; + network::mojom::NetworkServiceRequest network_service_request = + mojo::MakeRequest(&network_service_ptr); + network_service_ = + network::NetworkService::Create(std::move(network_service_request), + /*netlog=*/nullptr); + network::mojom::NetworkContextParamsPtr context_params = + network::mojom::NetworkContextParams::New(); + context_params->enable_data_url_support = true; + network_service_ptr->CreateNetworkContext( + mojo::MakeRequest(&network_context_), std::move(context_params)); + + network::mojom::NetworkServiceClientPtr network_service_client_ptr; + network_service_client_ = + std::make_unique<network::TestNetworkServiceClient>( + mojo::MakeRequest(&network_service_client_ptr)); + network_service_ptr->SetClient(std::move(network_service_client_ptr)); + + network::mojom::URLLoaderFactoryParamsPtr params = + network::mojom::URLLoaderFactoryParams::New(); + params->process_id = network::mojom::kBrowserProcessId; + params->is_corb_enabled = false; + network_context_->CreateURLLoaderFactory( + mojo::MakeRequest(&url_loader_factory_), std::move(params)); + test_shared_loader_factory_ = + base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>( + url_loader_factory_.get()); } void SetUp() override { ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); - request_context_getter_ = new net::TestURLRequestContextGetter( - message_loop_.task_runner()); - - request_sender_.reset( - new RequestSender(new DummyAuthService, request_context_getter_.get(), - message_loop_.task_runner(), kTestUserAgent, - TRAFFIC_ANNOTATION_FOR_TESTS)); + request_sender_ = std::make_unique<RequestSender>( + std::make_unique<DummyAuthService>(), test_shared_loader_factory_, + scoped_task_environment_.GetMainThreadTaskRunner(), kTestUserAgent, + TRAFFIC_ANNOTATION_FOR_TESTS); ASSERT_TRUE(test_server_.InitializeAndListen()); test_server_.RegisterRequestHandler( @@ -59,10 +86,16 @@ return temp_dir_.GetPath().Append(file_name); } - base::MessageLoopForIO message_loop_; // Test server needs IO thread. + base::test::ScopedTaskEnvironment scoped_task_environment_{ + base::test::ScopedTaskEnvironment::MainThreadType::IO}; net::EmbeddedTestServer test_server_; std::unique_ptr<RequestSender> request_sender_; - scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_; + std::unique_ptr<network::mojom::NetworkService> network_service_; + std::unique_ptr<network::mojom::NetworkServiceClient> network_service_client_; + network::mojom::NetworkContextPtr network_context_; + network::mojom::URLLoaderFactoryPtr url_loader_factory_; + scoped_refptr<network::WeakWrapperSharedURLLoaderFactory> + test_shared_loader_factory_; base::ScopedTempDir temp_dir_; // The incoming HTTP request is saved so tests can verify the request
diff --git a/google_apis/drive/base_requests_unittest.cc b/google_apis/drive/base_requests_unittest.cc index 1a456578..d594897 100644 --- a/google_apis/drive/base_requests_unittest.cc +++ b/google_apis/drive/base_requests_unittest.cc
@@ -12,6 +12,7 @@ #include "base/bind.h" #include "base/message_loop/message_loop.h" #include "base/run_loop.h" +#include "base/test/scoped_task_environment.h" #include "base/values.h" #include "google_apis/drive/drive_api_parser.h" #include "google_apis/drive/drive_api_requests.h" @@ -19,10 +20,11 @@ #include "google_apis/drive/request_sender.h" #include "google_apis/drive/test_util.h" #include "net/test/embedded_test_server/embedded_test_server.h" -#include "net/test/embedded_test_server/http_request.h" #include "net/test/embedded_test_server/http_response.h" #include "net/traffic_annotation/network_traffic_annotation_test_helper.h" -#include "net/url_request/url_request_test_util.h" +#include "services/network/network_service.h" +#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h" +#include "services/network/test/test_network_service_client.h" #include "testing/gtest/include/gtest/gtest.h" namespace google_apis { @@ -37,16 +39,18 @@ FakeUrlFetchRequest(RequestSender* sender, const EntryActionCallback& callback, const GURL& url) - : UrlFetchRequestBase(sender), + : UrlFetchRequestBase(sender, ProgressCallback(), ProgressCallback()), callback_(callback), - url_(url) { - } + url_(url) {} ~FakeUrlFetchRequest() override {} protected: GURL GetURL() const override { return url_; } - void ProcessURLFetchResults(const net::URLFetcher* source) override { + void ProcessURLFetchResults( + const network::ResourceResponseHead* response_head, + base::FilePath response_file, + std::string response_body) override { callback_.Run(GetErrorCode()); } void RunCallbackOnPrematureFailure(DriveApiErrorCode code) override { @@ -83,9 +87,7 @@ ~FakeMultipartUploadRequest() override {} - net::URLFetcher::RequestType GetRequestType() const override { - return net::URLFetcher::POST; - } + std::string GetRequestType() const override { return "POST"; } bool GetContentData(std::string* content_type, std::string* content_data) override { @@ -109,15 +111,41 @@ class BaseRequestsTest : public testing::Test { public: - BaseRequestsTest() : response_code_(net::HTTP_OK) {} + BaseRequestsTest() : response_code_(net::HTTP_OK) { + network::mojom::NetworkServicePtr network_service_ptr; + network::mojom::NetworkServiceRequest network_service_request = + mojo::MakeRequest(&network_service_ptr); + network_service_ = + network::NetworkService::Create(std::move(network_service_request), + /*netlog=*/nullptr); + network::mojom::NetworkContextParamsPtr context_params = + network::mojom::NetworkContextParams::New(); + context_params->enable_data_url_support = true; + network_service_ptr->CreateNetworkContext( + mojo::MakeRequest(&network_context_), std::move(context_params)); + + network::mojom::NetworkServiceClientPtr network_service_client_ptr; + network_service_client_ = + std::make_unique<network::TestNetworkServiceClient>( + mojo::MakeRequest(&network_service_client_ptr)); + network_service_ptr->SetClient(std::move(network_service_client_ptr)); + + network::mojom::URLLoaderFactoryParamsPtr params = + network::mojom::URLLoaderFactoryParams::New(); + params->process_id = network::mojom::kBrowserProcessId; + params->is_corb_enabled = false; + network_context_->CreateURLLoaderFactory( + mojo::MakeRequest(&url_loader_factory_), std::move(params)); + test_shared_loader_factory_ = + base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>( + url_loader_factory_.get()); + } void SetUp() override { - request_context_getter_ = new net::TestURLRequestContextGetter( - message_loop_.task_runner()); - sender_.reset(new RequestSender( - new DummyAuthService, request_context_getter_.get(), - message_loop_.task_runner(), std::string(), /* custom user agent */ + std::make_unique<DummyAuthService>(), test_shared_loader_factory_, + scoped_task_environment_.GetMainThreadTaskRunner(), + std::string(), /* custom user agent */ TRAFFIC_ANNOTATION_FOR_TESTS)); test_server_.RegisterRequestHandler( @@ -125,6 +153,13 @@ ASSERT_TRUE(test_server_.Start()); } + void TearDown() override { + // Deleting the sender here will delete all request objects. + sender_.reset(); + // Wait for any DeleteSoon tasks to run. + scoped_task_environment_.RunUntilIdle(); + } + std::unique_ptr<net::test_server::HttpResponse> HandleRequest( const net::test_server::HttpRequest& request) { std::unique_ptr<net::test_server::BasicHttpResponse> response( @@ -135,8 +170,14 @@ return std::move(response); } - base::MessageLoopForIO message_loop_; - scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_; + base::test::ScopedTaskEnvironment scoped_task_environment_{ + base::test::ScopedTaskEnvironment::MainThreadType::IO}; + std::unique_ptr<network::mojom::NetworkService> network_service_; + std::unique_ptr<network::mojom::NetworkServiceClient> network_service_client_; + network::mojom::NetworkContextPtr network_context_; + network::mojom::URLLoaderFactoryPtr url_loader_factory_; + scoped_refptr<network::WeakWrapperSharedURLLoaderFactory> + test_shared_loader_factory_; std::unique_ptr<RequestSender> sender_; net::EmbeddedTestServer test_server_; @@ -231,4 +272,4 @@ EXPECT_EQ("file_id", file->file_id()); } -} // Namespace google_apis +} // namespace google_apis
diff --git a/google_apis/drive/drive_api_requests.cc b/google_apis/drive/drive_api_requests.cc index b1bd1d2..da458604 100644 --- a/google_apis/drive/drive_api_requests.cc +++ b/google_apis/drive/drive_api_requests.cc
@@ -295,9 +295,8 @@ //============================ DriveApiPartialFieldRequest ==================== -DriveApiPartialFieldRequest::DriveApiPartialFieldRequest( - RequestSender* sender) : UrlFetchRequestBase(sender) { -} +DriveApiPartialFieldRequest::DriveApiPartialFieldRequest(RequestSender* sender) + : UrlFetchRequestBase(sender, ProgressCallback(), ProgressCallback()) {} DriveApiPartialFieldRequest::~DriveApiPartialFieldRequest() { } @@ -343,8 +342,8 @@ FilesAuthorizeRequest::~FilesAuthorizeRequest() {} -net::URLFetcher::RequestType FilesAuthorizeRequest::GetRequestType() const { - return net::URLFetcher::POST; +std::string FilesAuthorizeRequest::GetRequestType() const { + return "POST"; } GURL FilesAuthorizeRequest::GetURLInternal() const { @@ -365,8 +364,8 @@ FilesInsertRequest::~FilesInsertRequest() {} -net::URLFetcher::RequestType FilesInsertRequest::GetRequestType() const { - return net::URLFetcher::POST; +std::string FilesInsertRequest::GetRequestType() const { + return "POST"; } bool FilesInsertRequest::GetContentData(std::string* upload_content_type, @@ -427,8 +426,8 @@ FilesPatchRequest::~FilesPatchRequest() {} -net::URLFetcher::RequestType FilesPatchRequest::GetRequestType() const { - return net::URLFetcher::PATCH; +std::string FilesPatchRequest::GetRequestType() const { + return "PATCH"; } std::vector<std::string> FilesPatchRequest::GetExtraRequestHeaders() const { @@ -497,8 +496,8 @@ FilesCopyRequest::~FilesCopyRequest() { } -net::URLFetcher::RequestType FilesCopyRequest::GetRequestType() const { - return net::URLFetcher::POST; +std::string FilesCopyRequest::GetRequestType() const { + return "POST"; } GURL FilesCopyRequest::GetURLInternal() const { @@ -620,8 +619,8 @@ FilesDeleteRequest::~FilesDeleteRequest() {} -net::URLFetcher::RequestType FilesDeleteRequest::GetRequestType() const { - return net::URLFetcher::DELETE_REQUEST; +std::string FilesDeleteRequest::GetRequestType() const { + return "DELETE"; } GURL FilesDeleteRequest::GetURL() const { @@ -648,8 +647,8 @@ FilesTrashRequest::~FilesTrashRequest() {} -net::URLFetcher::RequestType FilesTrashRequest::GetRequestType() const { - return net::URLFetcher::POST; +std::string FilesTrashRequest::GetRequestType() const { + return "POST"; } GURL FilesTrashRequest::GetURLInternal() const { @@ -742,8 +741,8 @@ AppsDeleteRequest::~AppsDeleteRequest() {} -net::URLFetcher::RequestType AppsDeleteRequest::GetRequestType() const { - return net::URLFetcher::DELETE_REQUEST; +std::string AppsDeleteRequest::GetRequestType() const { + return "DELETE"; } GURL AppsDeleteRequest::GetURL() const { @@ -763,8 +762,8 @@ ChildrenInsertRequest::~ChildrenInsertRequest() {} -net::URLFetcher::RequestType ChildrenInsertRequest::GetRequestType() const { - return net::URLFetcher::POST; +std::string ChildrenInsertRequest::GetRequestType() const { + return "POST"; } GURL ChildrenInsertRequest::GetURL() const { @@ -797,8 +796,8 @@ ChildrenDeleteRequest::~ChildrenDeleteRequest() {} -net::URLFetcher::RequestType ChildrenDeleteRequest::GetRequestType() const { - return net::URLFetcher::DELETE_REQUEST; +std::string ChildrenDeleteRequest::GetRequestType() const { + return "DELETE"; } GURL ChildrenDeleteRequest::GetURL() const { @@ -826,9 +825,8 @@ return url_generator_.GetInitiateUploadNewFileUrl(!modified_date_.is_null()); } -net::URLFetcher::RequestType -InitiateUploadNewFileRequest::GetRequestType() const { - return net::URLFetcher::POST; +std::string InitiateUploadNewFileRequest::GetRequestType() const { + return "POST"; } bool InitiateUploadNewFileRequest::GetContentData( @@ -882,9 +880,8 @@ resource_id_, !modified_date_.is_null()); } -net::URLFetcher::RequestType -InitiateUploadExistingFileRequest::GetRequestType() const { - return net::URLFetcher::PUT; +std::string InitiateUploadExistingFileRequest::GetRequestType() const { + return "PUT"; } std::vector<std::string> @@ -945,9 +942,9 @@ end_position, content_length, content_type, - local_file_path), - callback_(callback), - progress_callback_(progress_callback) { + local_file_path, + progress_callback), + callback_(callback) { DCHECK(!callback_.is_null()); } @@ -960,14 +957,6 @@ ParseFileResourceWithUploadRangeAndRun(callback_, response, std::move(value)); } -void ResumeUploadRequest::OnURLFetchUploadProgress( - const net::URLFetcher* source, - int64_t current, - int64_t total) { - if (!progress_callback_.is_null()) - progress_callback_.Run(current, total); -} - //========================== GetUploadStatusRequest ========================== GetUploadStatusRequest::GetUploadStatusRequest( @@ -1026,9 +1015,8 @@ return url_generator_.GetMultipartUploadNewFileUrl(has_modified_date_); } -net::URLFetcher::RequestType MultipartUploadNewFileDelegate::GetRequestType() - const { - return net::URLFetcher::POST; +std::string MultipartUploadNewFileDelegate::GetRequestType() const { + return "POST"; } //====================== MultipartUploadExistingFileDelegate =================== @@ -1081,9 +1069,8 @@ has_modified_date_); } -net::URLFetcher::RequestType -MultipartUploadExistingFileDelegate::GetRequestType() const { - return net::URLFetcher::PUT; +std::string MultipartUploadExistingFileDelegate::GetRequestType() const { + return "PUT"; } //========================== DownloadFileRequest ========================== @@ -1127,9 +1114,8 @@ return url_generator_.GetPermissionsInsertUrl(id_); } -net::URLFetcher::RequestType -PermissionsInsertRequest::GetRequestType() const { - return net::URLFetcher::POST; +std::string PermissionsInsertRequest::GetRequestType() const { + return "POST"; } bool PermissionsInsertRequest::GetContentData(std::string* upload_content_type, @@ -1180,7 +1166,14 @@ SingleBatchableDelegateRequest::SingleBatchableDelegateRequest( RequestSender* sender, std::unique_ptr<BatchableDelegate> delegate) - : UrlFetchRequestBase(sender), + : UrlFetchRequestBase( + sender, + base::BindRepeating( + &SingleBatchableDelegateRequest::OnUploadProgress, + // Safe to not retain as the SimpleURLoader is owned by our base + // class and cannot outlive this instance. + base::Unretained(this)), + ProgressCallback()), delegate_(std::move(delegate)), weak_ptr_factory_(this) {} @@ -1191,8 +1184,7 @@ return delegate_->GetURL(); } -net::URLFetcher::RequestType SingleBatchableDelegateRequest::GetRequestType() - const { +std::string SingleBatchableDelegateRequest::GetRequestType() const { return delegate_->GetRequestType(); } @@ -1212,9 +1204,11 @@ } void SingleBatchableDelegateRequest::ProcessURLFetchResults( - const net::URLFetcher* source) { + const network::ResourceResponseHead* response_head, + base::FilePath response_file, + std::string response_body) { delegate_->NotifyResult( - GetErrorCode(), response_writer()->data(), + GetErrorCode(), response_body, base::Bind( &SingleBatchableDelegateRequest::OnProcessURLFetchResultsComplete, weak_ptr_factory_.GetWeakPtr())); @@ -1225,11 +1219,9 @@ delegate_->NotifyError(code); } -void SingleBatchableDelegateRequest::OnURLFetchUploadProgress( - const net::URLFetcher* source, - int64_t current, - int64_t total) { - delegate_->NotifyUploadProgress(source, current, total); +void SingleBatchableDelegateRequest::OnUploadProgress(int64_t current, + int64_t total) { + delegate_->NotifyUploadProgress(current, total); } //========================== BatchUploadRequest ========================== @@ -1244,13 +1236,18 @@ BatchUploadRequest::BatchUploadRequest( RequestSender* sender, const DriveApiUrlGenerator& url_generator) - : UrlFetchRequestBase(sender), + : UrlFetchRequestBase( + sender, + // Safe to not retain as the SimpleURLoader is owned by our base class + // and cannot outlive this instance. + base::BindRepeating(&BatchUploadRequest::OnUploadProgress, + base::Unretained(this)), + ProgressCallback()), sender_(sender), url_generator_(url_generator), committed_(false), last_progress_value_(0), - weak_ptr_factory_(this) { -} + weak_ptr_factory_(this) {} BatchUploadRequest::~BatchUploadRequest() { } @@ -1336,18 +1333,7 @@ DCHECK(result); const GURL url = child->request->GetURL(); - std::string method; - switch (child->request->GetRequestType()) { - case net::URLFetcher::POST: - method = "POST"; - break; - case net::URLFetcher::PUT: - method = "PUT"; - break; - default: - NOTREACHED(); - break; - } + std::string method = child->request->GetRequestType(); const std::string header = base::StringPrintf( kBatchUploadRequestFormat, method.c_str(), url.path().c_str(), url_generator_.GetBatchUploadUrl().host().c_str(), type.c_str()); @@ -1389,8 +1375,8 @@ return url_generator_.GetBatchUploadUrl(); } -net::URLFetcher::RequestType BatchUploadRequest::GetRequestType() const { - return net::URLFetcher::PUT; +std::string BatchUploadRequest::GetRequestType() const { + return "PUT"; } std::vector<std::string> BatchUploadRequest::GetExtraRequestHeaders() const { @@ -1399,17 +1385,20 @@ return headers; } -void BatchUploadRequest::ProcessURLFetchResults(const net::URLFetcher* source) { +void BatchUploadRequest::ProcessURLFetchResults( + const network::ResourceResponseHead* response_head, + base::FilePath response_file, + std::string response_body) { // Return the detailed raw HTTP code if the error code is abstracted // DRIVE_OTHER_ERROR. If HTTP connection is failed and the status code is -1, // return network status error. int histogram_error = 0; if (GetErrorCode() != DRIVE_OTHER_ERROR) { histogram_error = GetErrorCode(); - } else if (source->GetResponseCode() != -1) { - histogram_error = source->GetResponseCode(); + } else if (response_head && response_head->headers->response_code() != -1) { + histogram_error = response_head->headers->response_code(); } else { - histogram_error = source->GetStatus().error(); + histogram_error = NetError(); } base::UmaHistogramSparse(kUMADriveBatchUploadResponseCode, histogram_error); @@ -1420,12 +1409,13 @@ } std::string content_type; - source->GetResponseHeaders()->EnumerateHeader( - /* need only first header */ NULL, "Content-Type", &content_type); + if (response_head) { + response_head->headers->EnumerateHeader( + /* need only first header */ nullptr, "Content-Type", &content_type); + } std::vector<MultipartHttpResponse> parts; - if (!ParseMultipartResponse(content_type, response_writer()->data(), - &parts) || + if (!ParseMultipartResponse(content_type, response_body, &parts) || child_requests_.size() != parts.size()) { RunCallbackOnPrematureFailure(DRIVE_PARSE_ERROR); sender_->RequestFinished(this); @@ -1451,18 +1441,15 @@ child_requests_.clear(); } -void BatchUploadRequest::OnURLFetchUploadProgress(const net::URLFetcher* source, - int64_t current, - int64_t total) { +void BatchUploadRequest::OnUploadProgress(int64_t current, int64_t total) { for (const auto& child : child_requests_) { if (child->data_offset <= current && current <= child->data_offset + child->data_size) { - child->request->NotifyUploadProgress(source, current - child->data_offset, + child->request->NotifyUploadProgress(current - child->data_offset, child->data_size); } else if (last_progress_value_ < child->data_offset + child->data_size && child->data_offset + child->data_size < current) { - child->request->NotifyUploadProgress(source, child->data_size, - child->data_size); + child->request->NotifyUploadProgress(child->data_size, child->data_size); } } last_progress_value_ = current;
diff --git a/google_apis/drive/drive_api_requests.h b/google_apis/drive/drive_api_requests.h index 78f5aeb..6f380137 100644 --- a/google_apis/drive/drive_api_requests.h +++ b/google_apis/drive/drive_api_requests.h
@@ -151,17 +151,20 @@ protected: // UrlFetchRequestBase overrides. - void ProcessURLFetchResults(const net::URLFetcher* source) override { + void ProcessURLFetchResults( + const network::ResourceResponseHead* response_head, + base::FilePath response_file, + std::string response_body) override { DriveApiErrorCode error = GetErrorCode(); switch (error) { case HTTP_SUCCESS: case HTTP_CREATED: base::PostTaskAndReplyWithResult( - blocking_task_runner(), - FROM_HERE, - base::Bind(&DriveApiDataRequest::Parse, response_writer()->data()), - base::Bind(&DriveApiDataRequest::OnDataParsed, - weak_ptr_factory_.GetWeakPtr(), error)); + blocking_task_runner(), FROM_HERE, + base::BindOnce(&DriveApiDataRequest::Parse, + std::move(response_body)), + base::BindOnce(&DriveApiDataRequest::OnDataParsed, + weak_ptr_factory_.GetWeakPtr(), error)); break; default: RunCallbackOnPrematureFailure(error); @@ -176,7 +179,7 @@ private: // Parses the |json| string by using DataType::CreateFrom. - static std::unique_ptr<DataType> Parse(const std::string& json) { + static std::unique_ptr<DataType> Parse(std::string json) { std::unique_ptr<base::Value> value = ParseJson(json); return value ? DataType::CreateFrom(*value) : std::unique_ptr<DataType>(); } @@ -253,7 +256,7 @@ protected: // Overridden from GetDataRequest. - net::URLFetcher::RequestType GetRequestType() const override; + std::string GetRequestType() const override; // Overridden from DriveApiDataRequest. GURL GetURLInternal() const override; @@ -322,7 +325,7 @@ protected: // Overridden from GetDataRequest. - net::URLFetcher::RequestType GetRequestType() const override; + std::string GetRequestType() const override; bool GetContentData(std::string* upload_content_type, std::string* upload_content) override; @@ -399,7 +402,7 @@ protected: // Overridden from URLFetchRequestBase. - net::URLFetcher::RequestType GetRequestType() const override; + std::string GetRequestType() const override; std::vector<std::string> GetExtraRequestHeaders() const override; bool GetContentData(std::string* upload_content_type, std::string* upload_content) override; @@ -459,7 +462,7 @@ protected: // Overridden from URLFetchRequestBase. - net::URLFetcher::RequestType GetRequestType() const override; + std::string GetRequestType() const override; bool GetContentData(std::string* upload_content_type, std::string* upload_content) override; @@ -639,7 +642,7 @@ protected: // Overridden from UrlFetchRequestBase. - net::URLFetcher::RequestType GetRequestType() const override; + std::string GetRequestType() const override; GURL GetURL() const override; std::vector<std::string> GetExtraRequestHeaders() const override; @@ -669,7 +672,7 @@ protected: // Overridden from UrlFetchRequestBase. - net::URLFetcher::RequestType GetRequestType() const override; + std::string GetRequestType() const override; // Overridden from DriveApiDataRequest. GURL GetURLInternal() const override; @@ -824,7 +827,7 @@ protected: // Overridden from UrlFetchRequestBase. - net::URLFetcher::RequestType GetRequestType() const override; + std::string GetRequestType() const override; GURL GetURL() const override; private: @@ -858,7 +861,7 @@ protected: // UrlFetchRequestBase overrides. - net::URLFetcher::RequestType GetRequestType() const override; + std::string GetRequestType() const override; GURL GetURL() const override; bool GetContentData(std::string* upload_content_type, std::string* upload_content) override; @@ -897,7 +900,7 @@ protected: // UrlFetchRequestBase overrides. - net::URLFetcher::RequestType GetRequestType() const override; + std::string GetRequestType() const override; GURL GetURL() const override; private: @@ -945,7 +948,7 @@ protected: // UrlFetchRequestBase overrides. GURL GetURL() const override; - net::URLFetcher::RequestType GetRequestType() const override; + std::string GetRequestType() const override; bool GetContentData(std::string* upload_content_type, std::string* upload_content) override; @@ -1006,7 +1009,7 @@ protected: // UrlFetchRequestBase overrides. GURL GetURL() const override; - net::URLFetcher::RequestType GetRequestType() const override; + std::string GetRequestType() const override; std::vector<std::string> GetExtraRequestHeaders() const override; bool GetContentData(std::string* upload_content_type, std::string* upload_content) override; @@ -1052,14 +1055,9 @@ // UploadRangeRequestBase overrides. void OnRangeRequestComplete(const UploadRangeResponse& response, std::unique_ptr<base::Value> value) override; - // content::UrlFetcherDelegate overrides. - void OnURLFetchUploadProgress(const net::URLFetcher* source, - int64_t current, - int64_t total) override; private: const UploadRangeCallback callback_; - const ProgressCallback progress_callback_; DISALLOW_COPY_AND_ASSIGN(ResumeUploadRequest); }; @@ -1114,7 +1112,7 @@ protected: // UrlFetchRequestBase overrides. GURL GetURL() const override; - net::URLFetcher::RequestType GetRequestType() const override; + std::string GetRequestType() const override; private: const bool has_modified_date_; @@ -1153,7 +1151,7 @@ // UrlFetchRequestBase overrides. std::vector<std::string> GetExtraRequestHeaders() const override; GURL GetURL() const override; - net::URLFetcher::RequestType GetRequestType() const override; + std::string GetRequestType() const override; private: const std::string resource_id_; @@ -1216,7 +1214,7 @@ // UrlFetchRequestBase overrides. GURL GetURL() const override; - net::URLFetcher::RequestType GetRequestType() const override; + std::string GetRequestType() const override; bool GetContentData(std::string* upload_content_type, std::string* upload_content) override; @@ -1241,16 +1239,17 @@ private: GURL GetURL() const override; - net::URLFetcher::RequestType GetRequestType() const override; + std::string GetRequestType() const override; std::vector<std::string> GetExtraRequestHeaders() const override; void Prepare(const PrepareCallback& callback) override; bool GetContentData(std::string* upload_content_type, std::string* upload_content) override; void RunCallbackOnPrematureFailure(DriveApiErrorCode code) override; - void ProcessURLFetchResults(const net::URLFetcher* source) override; - void OnURLFetchUploadProgress(const net::URLFetcher* source, - int64_t current, - int64_t total) override; + void ProcessURLFetchResults( + const network::ResourceResponseHead* response_head, + base::FilePath response_file, + std::string response_body) override; + void OnUploadProgress(int64_t current, int64_t total); std::unique_ptr<BatchableDelegate> delegate_; // Note: This should remain the last member so it'll be destroyed and @@ -1305,17 +1304,18 @@ void Prepare(const PrepareCallback& callback) override; void Cancel() override; GURL GetURL() const override; - net::URLFetcher::RequestType GetRequestType() const override; + std::string GetRequestType() const override; std::vector<std::string> GetExtraRequestHeaders() const override; bool GetContentData(std::string* upload_content_type, std::string* upload_content) override; - void ProcessURLFetchResults(const net::URLFetcher* source) override; + void ProcessURLFetchResults( + const network::ResourceResponseHead* response_head, + base::FilePath response_file, + std::string response_body) override; void RunCallbackOnPrematureFailure(DriveApiErrorCode code) override; - // content::UrlFetcherDelegate overrides. - void OnURLFetchUploadProgress(const net::URLFetcher* source, - int64_t current, - int64_t total) override; + // Called by UrlFetchRequestBase to report upload progress. + void OnUploadProgress(int64_t current, int64_t total); private: typedef void* RequestID;
diff --git a/google_apis/drive/drive_api_requests_unittest.cc b/google_apis/drive/drive_api_requests_unittest.cc index 49c2f9d..089c552 100644 --- a/google_apis/drive/drive_api_requests_unittest.cc +++ b/google_apis/drive/drive_api_requests_unittest.cc
@@ -19,6 +19,7 @@ #include "base/run_loop.h" #include "base/strings/string_number_conversions.h" #include "base/strings/stringprintf.h" +#include "base/test/scoped_task_environment.h" #include "base/values.h" #include "google_apis/drive/drive_api_parser.h" #include "google_apis/drive/drive_api_url_generator.h" @@ -29,7 +30,9 @@ #include "net/test/embedded_test_server/http_request.h" #include "net/test/embedded_test_server/http_response.h" #include "net/traffic_annotation/network_traffic_annotation_test_helper.h" -#include "net/url_request/url_request_test_util.h" +#include "services/network/network_service.h" +#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h" +#include "services/network/test/test_network_service_client.h" #include "testing/gtest/include/gtest/gtest.h" namespace google_apis { @@ -78,9 +81,7 @@ content_data_(content_data), callback_(callback) {} GURL GetURL() const override { return url_; } - net::URLFetcher::RequestType GetRequestType() const override { - return net::URLFetcher::PUT; - } + std::string GetRequestType() const override { return "PUT"; } std::vector<std::string> GetExtraRequestHeaders() const override { return std::vector<std::string>(); } @@ -100,9 +101,7 @@ callback_.Run(); closure.Run(); } - void NotifyUploadProgress(const net::URLFetcher* source, - int64_t current, - int64_t total) override { + void NotifyUploadProgress(int64_t current, int64_t total) override { progress_values_.push_back(current); } const std::vector<int64_t>& progress_values() const { @@ -122,16 +121,40 @@ class DriveApiRequestsTest : public testing::Test { public: DriveApiRequestsTest() { + network::mojom::NetworkServicePtr network_service_ptr; + network::mojom::NetworkServiceRequest network_service_request = + mojo::MakeRequest(&network_service_ptr); + network_service_ = + network::NetworkService::Create(std::move(network_service_request), + /*netlog=*/nullptr); + network::mojom::NetworkContextParamsPtr context_params = + network::mojom::NetworkContextParams::New(); + context_params->enable_data_url_support = true; + network_service_ptr->CreateNetworkContext( + mojo::MakeRequest(&network_context_), std::move(context_params)); + + network::mojom::NetworkServiceClientPtr network_service_client_ptr; + network_service_client_ = + std::make_unique<network::TestNetworkServiceClient>( + mojo::MakeRequest(&network_service_client_ptr)); + network_service_ptr->SetClient(std::move(network_service_client_ptr)); + + network::mojom::URLLoaderFactoryParamsPtr params = + network::mojom::URLLoaderFactoryParams::New(); + params->process_id = network::mojom::kBrowserProcessId; + params->is_corb_enabled = false; + network_context_->CreateURLLoaderFactory( + mojo::MakeRequest(&url_loader_factory_), std::move(params)); + test_shared_loader_factory_ = + base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>( + url_loader_factory_.get()); } void SetUp() override { - request_context_getter_ = new net::TestURLRequestContextGetter( - message_loop_.task_runner()); - - request_sender_.reset( - new RequestSender(new DummyAuthService, request_context_getter_.get(), - message_loop_.task_runner(), kTestUserAgent, - TRAFFIC_ANNOTATION_FOR_TESTS)); + request_sender_ = std::make_unique<RequestSender>( + std::make_unique<DummyAuthService>(), test_shared_loader_factory_, + scoped_task_environment_.GetMainThreadTaskRunner(), kTestUserAgent, + TRAFFIC_ANNOTATION_FOR_TESTS); ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); @@ -195,11 +218,17 @@ test_base_url, test_base_url, TEAM_DRIVES_INTEGRATION_ENABLED)); } - base::MessageLoopForIO message_loop_; // Test server needs IO thread. + base::test::ScopedTaskEnvironment scoped_task_environment_{ + base::test::ScopedTaskEnvironment::MainThreadType::IO}; net::EmbeddedTestServer test_server_; std::unique_ptr<RequestSender> request_sender_; std::unique_ptr<DriveApiUrlGenerator> url_generator_; - scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_; + std::unique_ptr<network::mojom::NetworkService> network_service_; + std::unique_ptr<network::mojom::NetworkServiceClient> network_service_client_; + network::mojom::NetworkContextPtr network_context_; + network::mojom::URLLoaderFactoryPtr url_loader_factory_; + scoped_refptr<network::WeakWrapperSharedURLLoaderFactory> + test_shared_loader_factory_; base::ScopedTempDir temp_dir_; // This is a path to the file which contains expected response from @@ -2188,33 +2217,32 @@ request->Commit(); request->Prepare(base::DoNothing()); - request->OnURLFetchUploadProgress(nullptr, 0, kExpectedUploadDataSize); - request->OnURLFetchUploadProgress(nullptr, 150, kExpectedUploadDataSize); + request->OnUploadProgress(0, kExpectedUploadDataSize); + request->OnUploadProgress(150, kExpectedUploadDataSize); EXPECT_EQ(0u, requests[0]->progress_values().size()); EXPECT_EQ(0u, requests[1]->progress_values().size()); EXPECT_EQ(0u, requests[2]->progress_values().size()); - request->OnURLFetchUploadProgress(nullptr, kExpectedUploadDataPosition[0], - kExpectedUploadDataSize); + request->OnUploadProgress(kExpectedUploadDataPosition[0], + kExpectedUploadDataSize); EXPECT_EQ(1u, requests[0]->progress_values().size()); EXPECT_EQ(0u, requests[1]->progress_values().size()); EXPECT_EQ(0u, requests[2]->progress_values().size()); - request->OnURLFetchUploadProgress( - nullptr, kExpectedUploadDataPosition[0] + 50, kExpectedUploadDataSize); + request->OnUploadProgress(kExpectedUploadDataPosition[0] + 50, + kExpectedUploadDataSize); EXPECT_EQ(2u, requests[0]->progress_values().size()); EXPECT_EQ(0u, requests[1]->progress_values().size()); EXPECT_EQ(0u, requests[2]->progress_values().size()); - request->OnURLFetchUploadProgress( - nullptr, kExpectedUploadDataPosition[1] + 20, kExpectedUploadDataSize); + request->OnUploadProgress(kExpectedUploadDataPosition[1] + 20, + kExpectedUploadDataSize); EXPECT_EQ(3u, requests[0]->progress_values().size()); EXPECT_EQ(1u, requests[1]->progress_values().size()); EXPECT_EQ(0u, requests[2]->progress_values().size()); - request->OnURLFetchUploadProgress(nullptr, kExpectedUploadDataPosition[2], - kExpectedUploadDataSize); + request->OnUploadProgress(kExpectedUploadDataPosition[2], + kExpectedUploadDataSize); EXPECT_EQ(3u, requests[0]->progress_values().size()); EXPECT_EQ(2u, requests[1]->progress_values().size()); EXPECT_EQ(1u, requests[2]->progress_values().size()); - request->OnURLFetchUploadProgress(nullptr, kExpectedUploadDataSize, - kExpectedUploadDataSize); + request->OnUploadProgress(kExpectedUploadDataSize, kExpectedUploadDataSize); ASSERT_EQ(3u, requests[0]->progress_values().size()); EXPECT_EQ(0, requests[0]->progress_values()[0]); EXPECT_EQ(50, requests[0]->progress_values()[1]);
diff --git a/google_apis/drive/files_list_request_runner_unittest.cc b/google_apis/drive/files_list_request_runner_unittest.cc index 926770e..6d7ddd5 100644 --- a/google_apis/drive/files_list_request_runner_unittest.cc +++ b/google_apis/drive/files_list_request_runner_unittest.cc
@@ -11,6 +11,7 @@ #include "base/run_loop.h" #include "base/sequenced_task_runner.h" #include "base/strings/string_number_conversions.h" +#include "base/test/scoped_task_environment.h" #include "base/threading/thread_task_runner_handle.h" #include "google_apis/drive/base_requests.h" #include "google_apis/drive/dummy_auth_service.h" @@ -19,7 +20,10 @@ #include "net/test/embedded_test_server/http_request.h" #include "net/test/embedded_test_server/http_response.h" #include "net/traffic_annotation/network_traffic_annotation_test_helper.h" -#include "net/url_request/url_request_test_util.h" +#include "services/network/network_service.h" +#include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h" +#include "services/network/test/test_network_service_client.h" +#include "services/network/test/test_url_loader_factory.h" #include "testing/gtest/include/gtest/gtest.h" namespace google_apis { @@ -63,16 +67,41 @@ class FilesListRequestRunnerTest : public testing::Test { public: - FilesListRequestRunnerTest() {} + FilesListRequestRunnerTest() { + network::mojom::NetworkServicePtr network_service_ptr; + network::mojom::NetworkServiceRequest network_service_request = + mojo::MakeRequest(&network_service_ptr); + network_service_ = + network::NetworkService::Create(std::move(network_service_request), + /*netlog=*/nullptr); + network::mojom::NetworkContextParamsPtr context_params = + network::mojom::NetworkContextParams::New(); + context_params->enable_data_url_support = true; + network_service_ptr->CreateNetworkContext( + mojo::MakeRequest(&network_context_), std::move(context_params)); + + network::mojom::NetworkServiceClientPtr network_service_client_ptr; + network_service_client_ = + std::make_unique<network::TestNetworkServiceClient>( + mojo::MakeRequest(&network_service_client_ptr)); + network_service_ptr->SetClient(std::move(network_service_client_ptr)); + + network::mojom::URLLoaderFactoryParamsPtr params = + network::mojom::URLLoaderFactoryParams::New(); + params->process_id = network::mojom::kBrowserProcessId; + params->is_corb_enabled = false; + network_context_->CreateURLLoaderFactory( + mojo::MakeRequest(&url_loader_factory_), std::move(params)); + test_shared_loader_factory_ = + base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>( + url_loader_factory_.get()); + } void SetUp() override { - request_context_getter_ = - new net::TestURLRequestContextGetter(message_loop_.task_runner()); - - request_sender_.reset( - new RequestSender(new DummyAuthService, request_context_getter_.get(), - message_loop_.task_runner(), kTestUserAgent, - TRAFFIC_ANNOTATION_FOR_TESTS)); + request_sender_ = std::make_unique<RequestSender>( + std::make_unique<DummyAuthService>(), test_shared_loader_factory_, + scoped_task_environment_.GetMainThreadTaskRunner(), kTestUserAgent, + TRAFFIC_ANNOTATION_FOR_TESTS); test_server_.RegisterRequestHandler( base::Bind(&FilesListRequestRunnerTest::OnFilesListRequest, @@ -120,11 +149,17 @@ return std::move(fake_server_response_); } - base::MessageLoopForIO message_loop_; // Test server needs IO thread. + base::test::ScopedTaskEnvironment scoped_task_environment_{ + base::test::ScopedTaskEnvironment::MainThreadType::IO}; std::unique_ptr<RequestSender> request_sender_; net::EmbeddedTestServer test_server_; std::unique_ptr<FilesListRequestRunner> runner_; - scoped_refptr<net::TestURLRequestContextGetter> request_context_getter_; + std::unique_ptr<network::mojom::NetworkService> network_service_; + std::unique_ptr<network::mojom::NetworkServiceClient> network_service_client_; + network::mojom::NetworkContextPtr network_context_; + network::mojom::URLLoaderFactoryPtr url_loader_factory_; + scoped_refptr<network::WeakWrapperSharedURLLoaderFactory> + test_shared_loader_factory_; base::Closure on_completed_callback_; // Response set by test cases to be returned from the HTTP server.
diff --git a/google_apis/drive/request_sender.cc b/google_apis/drive/request_sender.cc index 9681f65..e37e275 100644 --- a/google_apis/drive/request_sender.cc +++ b/google_apis/drive/request_sender.cc
@@ -5,23 +5,23 @@ #include "google_apis/drive/request_sender.h" #include <algorithm> +#include <utility> #include "base/bind.h" #include "base/sequenced_task_runner.h" #include "google_apis/drive/auth_service.h" #include "google_apis/drive/base_requests.h" -#include "net/url_request/url_request_context_getter.h" namespace google_apis { RequestSender::RequestSender( - AuthServiceInterface* auth_service, - net::URLRequestContextGetter* url_request_context_getter, + std::unique_ptr<AuthServiceInterface> auth_service, + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, const scoped_refptr<base::SequencedTaskRunner>& blocking_task_runner, const std::string& custom_user_agent, const net::NetworkTrafficAnnotationTag& traffic_annotation) - : auth_service_(auth_service), - url_request_context_getter_(url_request_context_getter), + : auth_service_(std::move(auth_service)), + url_loader_factory_(url_loader_factory), blocking_task_runner_(blocking_task_runner), custom_user_agent_(custom_user_agent), traffic_annotation_(traffic_annotation),
diff --git a/google_apis/drive/request_sender.h b/google_apis/drive/request_sender.h index c5705e6..40fad63 100644 --- a/google_apis/drive/request_sender.h +++ b/google_apis/drive/request_sender.h
@@ -15,16 +15,12 @@ #include "base/memory/weak_ptr.h" #include "base/threading/thread_checker.h" #include "google_apis/drive/drive_api_error_codes.h" -#include "net/traffic_annotation/network_traffic_annotation.h" +#include "services/network/public/cpp/shared_url_loader_factory.h" namespace base { class SequencedTaskRunner; } -namespace net { -class URLRequestContextGetter; -} - namespace google_apis { class AuthenticatedRequestInterface; @@ -34,11 +30,10 @@ // AuthenticatedRequestInterface and handles retries and authentication. class RequestSender { public: - // |auth_service| is used for fetching OAuth tokens. It'll be owned by - // this RequestSender. + // |auth_service| is used for fetching OAuth tokens. // - // |url_request_context_getter| is the context used to perform network - // requests from this RequestSender. + // |url_loader_factory| is the factory used to load resources requested by + // this RequestSender. // // |blocking_task_runner| is used for running blocking operation, e.g., // parsing JSON response from the server. @@ -46,8 +41,8 @@ // |custom_user_agent| will be used for the User-Agent header in HTTP // requests issued through the request sender if the value is not empty. RequestSender( - AuthServiceInterface* auth_service, - net::URLRequestContextGetter* url_request_context_getter, + std::unique_ptr<AuthServiceInterface> auth_service, + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, const scoped_refptr<base::SequencedTaskRunner>& blocking_task_runner, const std::string& custom_user_agent, const net::NetworkTrafficAnnotationTag& traffic_annotation); @@ -55,8 +50,8 @@ AuthServiceInterface* auth_service() { return auth_service_.get(); } - net::URLRequestContextGetter* url_request_context_getter() const { - return url_request_context_getter_.get(); + network::SharedURLLoaderFactory* url_loader_factory() const { + return url_loader_factory_.get(); } base::SequencedTaskRunner* blocking_task_runner() const { @@ -101,7 +96,7 @@ const base::WeakPtr<AuthenticatedRequestInterface>& request); std::unique_ptr<AuthServiceInterface> auth_service_; - scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_; + scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_; scoped_refptr<base::SequencedTaskRunner> blocking_task_runner_; std::set<std::unique_ptr<AuthenticatedRequestInterface>> in_flight_requests_;
diff --git a/google_apis/drive/request_sender_unittest.cc b/google_apis/drive/request_sender_unittest.cc index 93c532f..3d9e710 100644 --- a/google_apis/drive/request_sender_unittest.cc +++ b/google_apis/drive/request_sender_unittest.cc
@@ -4,6 +4,8 @@ #include "google_apis/drive/request_sender.h" +#include <utility> + #include "base/sequenced_task_runner.h" #include "base/strings/string_number_conversions.h" #include "google_apis/drive/base_requests.h" @@ -59,7 +61,7 @@ protected: RequestSenderTest() : auth_service_(new TestAuthService), - request_sender_(auth_service_, + request_sender_(base::WrapUnique(auth_service_), NULL, NULL, "dummy-user-agent",
diff --git a/google_apis/gaia/fake_gaia.cc b/google_apis/gaia/fake_gaia.cc index 4c99e16..e93f602d 100644 --- a/google_apis/gaia/fake_gaia.cc +++ b/google_apis/gaia/fake_gaia.cc
@@ -730,6 +730,7 @@ base::DictionaryValue response_dict; response_dict.SetString("access_token", token_info->token); response_dict.SetInteger("expires_in", 3600); + response_dict.SetString("id_token", token_info->id_token); FormatJSONResponse(response_dict, http_response); return; } @@ -759,6 +760,7 @@ response_dict.SetString("scope", base::JoinString(scope_vector, " ")); response_dict.SetInteger("expires_in", token_info->expires_in); response_dict.SetString("email", token_info->email); + response_dict.SetString("id_token", token_info->id_token); FormatJSONResponse(response_dict, http_response); } else { http_response->set_code(net::HTTP_BAD_REQUEST); @@ -781,6 +783,7 @@ response_dict.SetString("expiresIn", base::IntToString(token_info->expires_in)); response_dict.SetString("token", token_info->token); + response_dict.SetString("id_token", token_info->id_token); FormatJSONResponse(response_dict, http_response); return; } @@ -819,6 +822,7 @@ response_dict.SetString("id", GetGaiaIdOfEmail(token_info->email)); response_dict.SetString("email", token_info->email); response_dict.SetString("verified_email", token_info->email); + response_dict.SetString("id_token", token_info->id_token); FormatJSONResponse(response_dict, http_response); } else { http_response->set_code(net::HTTP_BAD_REQUEST);
diff --git a/google_apis/gaia/fake_gaia.h b/google_apis/gaia/fake_gaia.h index fbb5ff9f..bc39e149 100644 --- a/google_apis/gaia/fake_gaia.h +++ b/google_apis/gaia/fake_gaia.h
@@ -49,6 +49,7 @@ std::string email; // When set to true, any scope set for issue token request matches |this|. bool any_scope = false; + std::string id_token; }; // Cookies and tokens for /MergeSession call seqeunce.
diff --git a/gpu/config/software_rendering_list.json b/gpu/config/software_rendering_list.json index 3367e855..445953a 100644 --- a/gpu/config/software_rendering_list.json +++ b/gpu/config/software_rendering_list.json
@@ -1225,8 +1225,8 @@ }, { "id": 126, - "description": "Don't allow ES3 on Mac core profile < 4.1", - "cr_bugs": [295792], + "description": "Disallow use of OpenGL on Mac with core profile < 4.1", + "cr_bugs": [295792, 875891], "os": { "type": "macosx" }, @@ -1235,7 +1235,7 @@ "value": "4.1" }, "features": [ - "accelerated_webgl2" + "all" ] }, {
diff --git a/gpu/ipc/client/command_buffer_proxy_impl.cc b/gpu/ipc/client/command_buffer_proxy_impl.cc index 70e38ed74..b41a8e3 100644 --- a/gpu/ipc/client/command_buffer_proxy_impl.cc +++ b/gpu/ipc/client/command_buffer_proxy_impl.cc
@@ -29,6 +29,7 @@ #include "gpu/ipc/common/command_buffer_id.h" #include "gpu/ipc/common/gpu_messages.h" #include "gpu/ipc/common/gpu_param_traits.h" +#include "mojo/public/cpp/base/shared_memory_utils.h" #include "mojo/public/cpp/system/buffer.h" #include "mojo/public/cpp/system/platform_handle.h" #include "ui/gfx/geometry/size.h" @@ -698,20 +699,10 @@ std::pair<base::UnsafeSharedMemoryRegion, base::WritableSharedMemoryMapping> CommandBufferProxyImpl::AllocateAndMapSharedMemory(size_t size) { - mojo::ScopedSharedBufferHandle handle = - mojo::SharedBufferHandle::Create(size); - if (!handle.is_valid()) { - DLOG(ERROR) << "AllocateAndMapSharedMemory: Create failed"; - return {}; - } - - // Mojo creates a handle with Writable mode, it needs to be converted to - // Unsafe. base::UnsafeSharedMemoryRegion region = - base::WritableSharedMemoryRegion::ConvertToUnsafe( - mojo::UnwrapWritableSharedMemoryRegion(std::move(handle))); + mojo::CreateUnsafeSharedMemoryRegion(size); if (!region.IsValid()) { - DLOG(ERROR) << "AllocateAndMapSharedMemory: Unwrap failed"; + DLOG(ERROR) << "AllocateAndMapSharedMemory: Allocation failed"; return {}; }
diff --git a/infra/config/branch/cq.cfg b/infra/config/branch/cq.cfg index 423eaab..b62eebc 100644 --- a/infra/config/branch/cq.cfg +++ b/infra/config/branch/cq.cfg
@@ -74,7 +74,7 @@ # TODO(crbug.com/646404): Scale this up to 100% mandatory. builders { name: "linux-libfuzzer-asan-rel" - experiment_percentage: 10 + experiment_percentage: 50 } builders { name: "linux-ozone-rel" } builders { name: "linux_chromium_compile_dbg_ng" }
diff --git a/infra/config/global/cr-buildbucket.cfg b/infra/config/global/cr-buildbucket.cfg index 68122456..57d9822 100644 --- a/infra/config/global/cr-buildbucket.cfg +++ b/infra/config/global/cr-buildbucket.cfg
@@ -206,6 +206,8 @@ execution_timeout_secs: 21600 # 6h. recipe { properties: "mastername:chromium.clang" + # Used for the "sizes" step. + properties: "perf_dashboard_machine_group:ChromiumClang" } }
diff --git a/infra/config/global/luci-milo.cfg b/infra/config/global/luci-milo.cfg index 68c9dd15..7cd9e7e 100644 --- a/infra/config/global/luci-milo.cfg +++ b/infra/config/global/luci-milo.cfg
@@ -1258,8 +1258,7 @@ short_name: "64" } builders { - name: "buildbot/chromium.perf/Mac Builder Perf" - name: "buildbucket/luci.chrome.ci/Mac Builder Perf" + name: "buildbucket/luci.chrome.ci/mac-builder-perf" category: "builder" short_name: "mac" }
diff --git a/ios/chrome/app/application_delegate/app_state.mm b/ios/chrome/app/application_delegate/app_state.mm index 940a7be5..73ad9a7 100644 --- a/ios/chrome/app/application_delegate/app_state.mm +++ b/ios/chrome/app/application_delegate/app_state.mm
@@ -12,6 +12,7 @@ #include "base/mac/bundle_locations.h" #include "base/mac/foundation_util.h" #include "base/metrics/histogram_macros.h" +#include "base/task/post_task.h" #include "components/feature_engagement/public/event_constants.h" #include "components/feature_engagement/public/tracker.h" #include "components/metrics/metrics_service.h" @@ -50,6 +51,7 @@ #include "ios/public/provider/chrome/browser/distribution/app_distribution_provider.h" #import "ios/public/provider/chrome/browser/user_feedback/user_feedback_provider.h" #include "ios/web/net/request_tracker_impl.h" +#include "ios/web/public/web_task_traits.h" #include "net/url_request/url_request_context.h" #if !defined(__has_feature) || !__has_feature(objc_arc) @@ -59,7 +61,7 @@ namespace { // Helper method to post |closure| on the UI thread. void PostTaskOnUIThread(base::OnceClosure closure) { - web::WebThread::PostTask(web::WebThread::UI, FROM_HERE, std::move(closure)); + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::UI}, std::move(closure)); } NSString* const kStartupAttemptReset = @"StartupAttempReset"; } // namespace @@ -229,8 +231,8 @@ DCHECK_CURRENTLY_ON(web::WebThread::UI); _savingCookies = NO; })); - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::BindOnce(^{ net::CookieStoreIOS* store = static_cast<net::CookieStoreIOS*>( getter->GetURLRequestContext()->cookie_store()); // FlushStore() runs its callback on any thread. Jump back to UI.
diff --git a/ios/chrome/app/application_delegate/app_state_unittest.mm b/ios/chrome/app/application_delegate/app_state_unittest.mm index 51113d03..afeee2f 100644 --- a/ios/chrome/app/application_delegate/app_state_unittest.mm +++ b/ios/chrome/app/application_delegate/app_state_unittest.mm
@@ -11,6 +11,7 @@ #include "base/ios/block_types.h" #include "base/mac/scoped_block.h" #include "base/synchronization/lock.h" +#include "base/task/post_task.h" #import "ios/chrome/app/application_delegate/app_navigation.h" #import "ios/chrome/app/application_delegate/app_state_testing.h" #import "ios/chrome/app/application_delegate/browser_launcher.h" @@ -47,6 +48,7 @@ #import "ios/testing/ocmock_complex_type_helper.h" #include "ios/web/net/request_tracker_impl.h" #include "ios/web/public/test/test_web_thread_bundle.h" +#include "ios/web/public/web_task_traits.h" #import "third_party/ocmock/OCMock/OCMock.h" #include "third_party/ocmock/gtest_support.h" @@ -323,7 +325,7 @@ BOOL created = NO; base::Lock* lock = new base::Lock; - web::WebThread::PostTask(web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::IO}, base::Bind(&createTracker, &created, lock)); CFTimeInterval start = CACurrentMediaTime();
diff --git a/ios/chrome/app/application_delegate/metrics_mediator.mm b/ios/chrome/app/application_delegate/metrics_mediator.mm index 34e069e..87283879 100644 --- a/ios/chrome/app/application_delegate/metrics_mediator.mm +++ b/ios/chrome/app/application_delegate/metrics_mediator.mm
@@ -29,6 +29,7 @@ #include "ios/public/provider/chrome/browser/chrome_browser_provider.h" #include "ios/public/provider/chrome/browser/distribution/app_distribution_provider.h" #import "ios/web/public/web_state/web_state.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "url/gurl.h" @@ -236,8 +237,8 @@ callback = ^(NSData* log_content) { std::string log(static_cast<const char*>([log_content bytes]), static_cast<size_t>([log_content length])); - web::WebThread::PostTask( - web::WebThread::UI, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ GetApplicationContext()->GetMetricsService()->PushExternalLog(log); })); };
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_kn.xtb index d1bfc803..11fb443 100644 --- a/ios/chrome/app/strings/resources/ios_chromium_strings_kn.xtb +++ b/ios/chrome/app/strings/resources/ios_chromium_strings_kn.xtb
@@ -11,7 +11,7 @@ <translation id="1843424232666537147">ನಿಮ್ಮ ಇಂಟರ್ನೆಟ್ ಡೇಟಾವನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು ನೀವು ವೆಬ್ ಪುಟಗಳನ್ನು ಬೇಗನೆ ಲೋಡ್ ಮಾಡಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುವ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು Chromium ಹೊಂದಿದೆ. <ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation> <translation id="2075400798887076382">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ನೀವು ತೆರೆದಿರುವ ಟ್ಯಾಬ್ಗಳನ್ನು ಇಲ್ಲಿಯೇ ಪ್ರವೇಶಿಸಿ. ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ Chromium ತೆರೆಯಿರಿ, ಮೆನುಗೆ ಹೋಗಿ ಮತ್ತು “Chromium ಗೆ ಸೈನ್ ಇನ್ ಮಾಡು…” ಆಯ್ಕೆಮಾಡಿ</translation> -<translation id="2168108852149185974">ಕೆಲವು ಆಡ್-ಆನ್ಗಳು Chromium ಕ್ರ್ಯಾಶ್ ಆಗಲು ಕಾರಣವಾಗುತ್ತವೆ. ದಯವಿಟ್ಟು ಇವುಗಳನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ:</translation> +<translation id="2168108852149185974">ಕೆಲವು ಆ್ಯಡ್-ಆನ್ಗಳು Chromium ಕ್ರ್ಯಾಶ್ ಆಗಲು ಕಾರಣವಾಗುತ್ತವೆ. ದಯವಿಟ್ಟು ಇವುಗಳನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ:</translation> <translation id="2178608107313874732">ನಿಮ್ಮ ಕ್ಯಾಮರಾವನ್ನು Chromium ಗೆ ಇದೀಗ ಬಳಸಲು ಸಾಧ್ಯವಿಲ್ಲ</translation> <translation id="2195025571279539885">ಮುಂದಿನ ಬಾರಿ ಈ ಸೈಟ್ನಿಂದ <ph name="LANGUAGE_NAME" /> ಪುಟಗಳನ್ನು ಅನುವಾದಿಸಲು Chromium ಗೆ ಅವಕಾಶ ಕಲ್ಪಿಸಲು ನೀವು ಬಯಸುವಿರಾ?</translation> <translation id="2647554856022461007">ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಅನುಭವವನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ವೆಬ್ ಸೇವೆಗಳನ್ನು Chromium ಬಳಸಬಹುದು. ನೀವು ಐಚ್ಛಿಕವಾಗಿ ಈ ಸೇವೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬಹುದು. <ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_kn.xtb index 5e45e8e..e20d0485 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_kn.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_kn.xtb
@@ -31,7 +31,7 @@ <translation id="415767770115540173">ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಆಧರಿಸಿ Chrome ನಲ್ಲಿ ಉತ್ತಮ Google ಅನುಭವವನ್ನು ಪಡೆಯಿರಿ.</translation> <translation id="424864128008805179">Chrome ನಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡುವುದೇ?</translation> <translation id="447252321002412580">Chrome ನ ವೈಶಿಷ್ಟ್ಯಗಳು ಹಾಗೂ ಕೆಲಸ ನಿರ್ವಹಣೆಯನ್ನು ಸುಧಾರಿಸಲು ಸಹಾಯ ಮಾಡಿ</translation> -<translation id="4523886039239821078">ಕೆಲವು ಆಡ್-ಆನ್ಗಳು Chrome ಕ್ರ್ಯಾಶ್ ಆಗಲು ಕಾರಣವಾಗಿವೆ. ದಯವಿಟ್ಟು ಇದನ್ನು ಅಸ್ಥಾಪನೆಗೊಳಿಸಿ:</translation> +<translation id="4523886039239821078">ಕೆಲವು ಆ್ಯಡ್-ಆನ್ಗಳು Chrome ಕ್ರ್ಯಾಶ್ ಆಗಲು ಕಾರಣವಾಗಿವೆ. ದಯವಿಟ್ಟು ಇದನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ:</translation> <translation id="4615174829807303908"><ph name="SIGNOUT_MANAGED_DOMAIN" /> ಮೂಲಕ ನಿರ್ವಹಿಸಲಾದ ಖಾತೆಯಿಂದ ನೀವು ಸೈನ್ ಔಟ್ ಮಾಡುತ್ತಿರುವಿರಿ. ಇದು ಈ ಸಾಧನದಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿರುವ Chrome ಡೇಟಾವನ್ನು ಅಳಿಸುತ್ತದೆ, ಆದರೆ ನಿಮ್ಮ ಡೇಟಾ ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿಯೇ ಇರುತ್ತದೆ.</translation> <translation id="5240817131241497236">Chrome ನಲ್ಲಿ ಸಿಂಕ್, ವೈಯಕ್ತೀಕರಣ ಮತ್ತು ಇತರ Google ಸೇವೆಗಳನ್ನು ನಿಯಂತ್ರಿಸುವ ಸೆಟ್ಟಿಂಗ್ಗಳು ಬದಲಾಗಿವೆ. ಇದು ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಸೆಟ್ಟಿಂಗ್ಗಳ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರಬಹುದು.</translation> <translation id="5389212809648216794">ನಿಮ್ಮ ಕ್ಯಾಮರಾವನ್ನು ಬೇರೆ ಅಪ್ಲಿಕೇಶನ್ ಮೂಲಕ ಬಳಸುತ್ತಿರುವ ಕಾರಣ Google Chrome ಗೆ ಅದನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb index c7189390e..d98aa2a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_am.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">ተጨማሪ አማራጮች</translation> <translation id="5964480694698977962">አዲስ ማንነት የማያሳውቅ ትር ፍጠር።</translation> <translation id="5965679971710331625">ወደ መለያ ገብተዋል</translation> +<translation id="5979837087407522202">የይለፍ ቃላትን ይፈልጉ</translation> <translation id="5982717868370722439">ነባሩን ውሂብ ወደ <ph name="USER_EMAIL" /> ያክሉ።</translation> <translation id="6012140227487808125">በመመስጠር ላይ…</translation> <translation id="6021332621416007159">ክፈት በ...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb index 551417a..739c23b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">خيارات إضافية</translation> <translation id="5964480694698977962">إنشاء علامة تبويب جديدة للتصفح المتخفي.</translation> <translation id="5965679971710331625">تم تسجيل الدخول</translation> +<translation id="5979837087407522202">بحث عن كلمات المرور</translation> <translation id="5982717868370722439">يمكنك إضافة البيانات الحالية إلى <ph name="USER_EMAIL" />.</translation> <translation id="6012140227487808125">جارٍ التشفير...</translation> <translation id="6021332621416007159">فتح في...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb index 9af8c47f..a1c2c96 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -19,7 +19,7 @@ <translation id="1201530049782216880">Pestanya d'incògnit nova</translation> <translation id="1209206284964581585">Amaga per ara</translation> <translation id="1219674500290482172">No es pot connectar a Internet.</translation> -<translation id="1254117744268754948">Selecció de la carpeta</translation> +<translation id="1254117744268754948">Tria la carpeta</translation> <translation id="1265739287306757398">Més informació</translation> <translation id="127138278192656016">Fes servir la sincronització i tots els serveis</translation> <translation id="1272079795634619415">Atura</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb index c91be9b8..08b6f34 100644 --- a/ios/chrome/app/strings/resources/ios_strings_es.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -187,7 +187,7 @@ <translation id="4042870976416480368">Buscar en página</translation> <translation id="4049507953662678203">Comprueba que tienes una conexión de red y vuelve a intentarlo.</translation> <translation id="408404951701638773">Ahora es más fácil ir a la barra de búsqueda</translation> -<translation id="4084682180776658562">Marcador</translation> +<translation id="4084682180776658562">Añadir a marcadores</translation> <translation id="411254640334432676">Error de descarga.</translation> <translation id="4112644173421521737">Buscar</translation> <translation id="4121993058175073134">Configura tu correo en Configuración para enviar datos de exportaciones netas.</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb index c0eae69..ce68bed0 100644 --- a/ios/chrome/app/strings/resources/ios_strings_et.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">Rohkem valikuid</translation> <translation id="5964480694698977962">Loo uus inkognito vaheleht.</translation> <translation id="5965679971710331625">Olete sisse logitud</translation> +<translation id="5979837087407522202">Otsi paroole</translation> <translation id="5982717868370722439">Lisage olemasolevad andmed e-posti aadressile <ph name="USER_EMAIL" />.</translation> <translation id="6012140227487808125">Krüpteerimine …</translation> <translation id="6021332621416007159">Ava rakend. ...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb index 43ac258..6839c889 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">گزینههای بیشتر</translation> <translation id="5964480694698977962">ایجاد برگه ناشناس جدید</translation> <translation id="5965679971710331625">در سیستم هستید</translation> +<translation id="5979837087407522202">جستجوی گذرواژهها</translation> <translation id="5982717868370722439">افزودن دادههای موجود به <ph name="USER_EMAIL" />.</translation> <translation id="6012140227487808125">در حال رمزگذاری…</translation> <translation id="6021332621416007159">بازکردن در...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb index b8df002..cc4f0038 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">Higit Pang Mga Opsyon</translation> <translation id="5964480694698977962">Gumawa ng bagong tab na incognito.</translation> <translation id="5965679971710331625">Naka-sign in ka</translation> +<translation id="5979837087407522202">Maghanap ng Mga Password</translation> <translation id="5982717868370722439">Idagdag ang kasalukuyang data sa <ph name="USER_EMAIL" />.</translation> <translation id="6012140227487808125">Ine-encrypt…</translation> <translation id="6021332621416007159">Buksan sa...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb index bb1d246..fb342a5 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">Više opcija</translation> <translation id="5964480694698977962">Otvori novu anonimnu karticu.</translation> <translation id="5965679971710331625">Prijavili ste se</translation> +<translation id="5979837087407522202">Pretraživanje zaporki</translation> <translation id="5982717868370722439">Dodavanje postojećih podataka na račun <ph name="USER_EMAIL" />.</translation> <translation id="6012140227487808125">Enkripcija…</translation> <translation id="6021332621416007159">Otvori u...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb index eacd3ece..e84bf96 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">További lehetőségek</translation> <translation id="5964480694698977962">Új inkognitólap létrehozása.</translation> <translation id="5965679971710331625">Sikeresen bejelentkezett</translation> +<translation id="5979837087407522202">Jelszavak keresése</translation> <translation id="5982717868370722439">Meglévő adatok hozzáadása a(z) <ph name="USER_EMAIL" /> fiókhoz.</translation> <translation id="6012140227487808125">Titkosítás...</translation> <translation id="6021332621416007159">Megnyitás itt:</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_id.xtb b/ios/chrome/app/strings/resources/ios_strings_id.xtb index c3d78f7..a77a652 100644 --- a/ios/chrome/app/strings/resources/ios_strings_id.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_id.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">Opsi Lainnya</translation> <translation id="5964480694698977962">Buat tab penyamaran baru</translation> <translation id="5965679971710331625">Anda sudah masuk</translation> +<translation id="5979837087407522202">Telusuri Sandi</translation> <translation id="5982717868370722439">Menambahkan data yang sudah ada ke <ph name="USER_EMAIL" />.</translation> <translation id="6012140227487808125">Mengenkripsi…</translation> <translation id="6021332621416007159">Buka di...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb index 30d4e6e..013f39c 100644 --- a/ios/chrome/app/strings/resources/ios_strings_it.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">Altre opzioni</translation> <translation id="5964480694698977962">Crea nuova scheda in incognito.</translation> <translation id="5965679971710331625">Hai eseguito l'accesso</translation> +<translation id="5979837087407522202">Cerca password</translation> <translation id="5982717868370722439">Aggiungi dati esistenti a <ph name="USER_EMAIL" />.</translation> <translation id="6012140227487808125">Crittografia…</translation> <translation id="6021332621416007159">Apri in...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb index 60a90ed5..a705665 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">その他のオプション</translation> <translation id="5964480694698977962">新しいシークレット タブを作成。</translation> <translation id="5965679971710331625">ログイン中のアカウント</translation> +<translation id="5979837087407522202">パスワードを検索</translation> <translation id="5982717868370722439">既存のデータを <ph name="USER_EMAIL" /> に追加します。</translation> <translation id="6012140227487808125">暗号化しています...</translation> <translation id="6021332621416007159">次で開く...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb index 568d22f..248bde4 100644 --- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -62,7 +62,7 @@ <translation id="1821253160463689938">ನೀವು ಆ ಪುಟಗಳಿಗೆ ಭೇಟಿ ನೀಡದಿದ್ದರೂ, ನಿಮ್ಮ ಆದ್ಯತೆಗಳನ್ನು ನೆನಪಿಟ್ಟುಕೊಳ್ಳಲು ಕುಕೀಗಳನ್ನು ಬಳಸುತ್ತದೆ</translation> <translation id="1876721852596493031">ಬಳಕೆ ಡೇಟಾ ಕಳುಹಿಸಿ</translation> <translation id="1886928167269928266">ಆರಂಭದ ಸಮಯ</translation> -<translation id="1911619930368729126">Google ಡ್ರೈವ್ಗೆ ಅಪ್ಲೋಡ್ ಮಾಡು</translation> +<translation id="1911619930368729126">Google ಡ್ರೈವ್ಗೆ ಅಪ್ಲೋಡ್ ಮಾಡಿ</translation> <translation id="191179954310195971">ಇತರ Google ಸೇವೆಗಳು</translation> <translation id="1941314575388338491">ನಕಲಿಸಲು ಡಬಲ್ ಟ್ಯಾಪ್ ಮಾಡಿ.</translation> <translation id="1952728750904661634">ನಿರ್ವಹಿಸಲಾದ ಖಾತೆಯ ಮೂಲಕ ಸೈನ್ ಇನ್ ಮಾಡಿ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb index fa89dc83..0f21d634 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">Daugiau parinkčių</translation> <translation id="5964480694698977962">Kurti naują inkognito skirtuką.</translation> <translation id="5965679971710331625">Esate prisijungę</translation> +<translation id="5979837087407522202">Ieškoti slaptažodžių</translation> <translation id="5982717868370722439">Pridėti esamus duomenis prie <ph name="USER_EMAIL" />.</translation> <translation id="6012140227487808125">Šifruojama...</translation> <translation id="6021332621416007159">Atidaryti...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb index 318234cd..9f12025 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -451,7 +451,7 @@ <translation id="8725066075913043281">വീണ്ടും ശ്രമിക്കുക</translation> <translation id="8730621377337864115">പൂർത്തിയാക്കി</translation> <translation id="8741995161408053644">നിങ്ങളുടെ Google അക്കൗണ്ടിന് <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" /> എന്നതിൽ മറ്റ് തരത്തിലുള്ള ബ്രൗസിംഗ് ചരിത്രമുണ്ടായിരിക്കാം.</translation> -<translation id="8775144690796719618">URL അസാധുവാണ്</translation> +<translation id="8775144690796719618">അസാധുവായ URL</translation> <translation id="8820817407110198400">ബുക്ക്മാര്ക്കുകള്</translation> <translation id="8840513115188359703">നിങ്ങൾ Google അക്കൗണ്ടിൽ നിന്ന് സൈൻ ഔട്ട് ചെയ്യപ്പെടില്ല.</translation> <translation id="8870413625673593573">സമീപകാലത്ത് അടച്ചവ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb index 583f2d1..32328fc 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">Lebih Banyak Pilihan</translation> <translation id="5964480694698977962">Buat tab inkognito baharu.</translation> <translation id="5965679971710331625">Anda sudah log masuk</translation> +<translation id="5979837087407522202">Cari Kata Laluan</translation> <translation id="5982717868370722439">Tambahkan data sedia ada pada <ph name="USER_EMAIL" />.</translation> <translation id="6012140227487808125">Menyulitkan...</translation> <translation id="6021332621416007159">Buka dalam...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb index 148337c..6b2c630 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">Więcej opcji</translation> <translation id="5964480694698977962">Utwórz nową kartę incognito.</translation> <translation id="5965679971710331625">Jesteś zalogowany</translation> +<translation id="5979837087407522202">Szukaj haseł</translation> <translation id="5982717868370722439">Dodaj istniejące dane do konta <ph name="USER_EMAIL" />.</translation> <translation id="6012140227487808125">Szyfruję…</translation> <translation id="6021332621416007159">Otwórz w...</translation> @@ -353,7 +354,7 @@ <translation id="6945221475159498467">Wybierz</translation> <translation id="6973630695168034713">Foldery</translation> <translation id="6979158407327259162">Dysk Google</translation> -<translation id="7004499039102548441">Niedawno używane karty</translation> +<translation id="7004499039102548441">Ostatnie karty</translation> <translation id="7006788746334555276">Ustawienia treści</translation> <translation id="7017968314960951695">Zawartość otwieranych stron oraz informacje o Twoich interakcjach i aktywności w przeglądarce zostaną wykorzystane do personalizacji</translation> <translation id="7029809446516969842">Hasła</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb index b1c513fb..177c27ab 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">Mais opções</translation> <translation id="5964480694698977962">Criar nova guia anônima.</translation> <translation id="5965679971710331625">Você está conectado</translation> +<translation id="5979837087407522202">Pesquisar senhas</translation> <translation id="5982717868370722439">Adicionar dados já existentes à conta <ph name="USER_EMAIL" />.</translation> <translation id="6012140227487808125">Criptografando…</translation> <translation id="6021332621416007159">Abrir no...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb index 06d7153..a467683b 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">Ďalšie možnosti</translation> <translation id="5964480694698977962">Vytvoriť novú kartu inkognito.</translation> <translation id="5965679971710331625">Ste prihlásený/-á</translation> +<translation id="5979837087407522202">Vyhľadajte heslá</translation> <translation id="5982717868370722439">Pridať existujúce dáta do účtu <ph name="USER_EMAIL" />.</translation> <translation id="6012140227487808125">Prebieha šifrovanie…</translation> <translation id="6021332621416007159">Otvoriť v...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb index cdb2552..bdc3460 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">Chaguo Zaidi</translation> <translation id="5964480694698977962">Unda kichupo fiche kipya.</translation> <translation id="5965679971710331625">Umeingia katika akaunti</translation> +<translation id="5979837087407522202">Tafuta Manenosiri</translation> <translation id="5982717868370722439">Ongeza data iliyopo kwenye <ph name="USER_EMAIL" />.</translation> <translation id="6012140227487808125">Inasimba kwa njia fiche...</translation> <translation id="6021332621416007159">Fungulia katika...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb index 5792449e..2c41ac7 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -245,7 +245,7 @@ <translation id="5173593619615111996">மறைநிலைத் தாவல்களை மூடு</translation> <translation id="5181140330217080051">பதிவிறக்குகிறது</translation> <translation id="5186185447130319458">தனிப்பட்டது</translation> -<translation id="5190835502935405962">புக்மார்க்குகள் பட்டி</translation> +<translation id="5190835502935405962">புக்மார்க் பட்டி</translation> <translation id="5197255632782567636">இணையம்</translation> <translation id="5215116848420601511">Google Payவைப் பயன்படுத்தும் கட்டண முறைகளும் முகவரிகளும்</translation> <translation id="5228579091201413441">ஒத்திசைவை இயக்கு</translation> @@ -289,6 +289,7 @@ <translation id="5957613098218939406">கூடுதல் விருப்பங்கள்</translation> <translation id="5964480694698977962">புதிய மறைநிலைத் தாவலை உருவாக்கு</translation> <translation id="5965679971710331625">உள்நுழைந்துள்ளீர்கள்</translation> +<translation id="5979837087407522202">கடவுச்சொற்களைத் தேடு</translation> <translation id="5982717868370722439">ஏற்கனவே உள்ள தரவை <ph name="USER_EMAIL" /> இல் சேர்.</translation> <translation id="6012140227487808125">முறைமையாக்குகிறது...</translation> <translation id="6021332621416007159">இதில் திற...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb index eae47b5a..8a02997 100644 --- a/ios/chrome/app/strings/resources/ios_strings_th.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">ตัวเลือกเพิ่มเติม</translation> <translation id="5964480694698977962">สร้างแท็บที่ไม่ระบุตัวตนใหม่</translation> <translation id="5965679971710331625">คุณลงชื่อเข้าใช้แล้ว</translation> +<translation id="5979837087407522202">ค้นหารหัสผ่าน</translation> <translation id="5982717868370722439">เพิ่มข้อมูลที่มีอยู่ลงใน <ph name="USER_EMAIL" /></translation> <translation id="6012140227487808125">กำลังเข้ารหัส…</translation> <translation id="6021332621416007159">เปิดใน...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb index 0cbe8209..2b667c6 100644 --- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">Інші параметри</translation> <translation id="5964480694698977962">Створити анонімну вкладку.</translation> <translation id="5965679971710331625">Ви ввійшли в обліковий запис</translation> +<translation id="5979837087407522202">Пошук паролів</translation> <translation id="5982717868370722439">Додати наявні дані в обліковий запис <ph name="USER_EMAIL" />.</translation> <translation id="6012140227487808125">Шифрування…</translation> <translation id="6021332621416007159">Відкрити в...</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb index d0f4be49..bb2da5ef 100644 --- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -477,7 +477,7 @@ <translation id="932327136139879170">Trang chủ</translation> <translation id="935490618240037774">Dấu trang, lịch sử, mật khẩu và các cài đặt khác của bạn sẽ được đồng bộ hóa với Tài khoản Google để bạn có thể sử dụng chúng trên tất cả thiết bị của mình.</translation> <translation id="939598580284253335">Nhập cụm mật khẩu</translation> -<translation id="976982866697960176">Quản lý dữ liệu được đồng bộ hóa...</translation> +<translation id="976982866697960176">Quản lý dữ liệu đã đồng bộ hóa...</translation> <translation id="988141524645182168">Thiết bị khác</translation> <translation id="989988560359834682">Chỉnh sửa địa chỉ</translation> <translation id="994757059139821576">Đề xuất bài viết</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 55ec9d0..262cf2c 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -289,6 +289,7 @@ <translation id="5957613098218939406">更多選項</translation> <translation id="5964480694698977962">新增無痕式分頁。</translation> <translation id="5965679971710331625">你已登入帳戶</translation> +<translation id="5979837087407522202">搜尋密碼</translation> <translation id="5982717868370722439">將現有資料新增至 <ph name="USER_EMAIL" />。</translation> <translation id="6012140227487808125">加密中…</translation> <translation id="6021332621416007159">在其他應用程式中開啟...</translation>
diff --git a/ios/chrome/browser/application_context_impl.cc b/ios/chrome/browser/application_context_impl.cc index 359def6..ce20e3f 100644 --- a/ios/chrome/browser/application_context_impl.cc +++ b/ios/chrome/browser/application_context_impl.cc
@@ -50,6 +50,7 @@ #include "ios/chrome/browser/update_client/ios_chrome_update_query_params_delegate.h" #include "ios/chrome/browser/web_resource/web_resource_util.h" #include "ios/chrome/common/channel_info.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/log/net_log_capture_mode.h" #include "net/socket/client_socket_pool_manager.h" @@ -75,10 +76,10 @@ void RequestProxyResolvingSocketFactory( ApplicationContextImpl* app_context, network::mojom::ProxyResolvingSocketFactoryRequest request) { - web::WebThread::GetTaskRunnerForThread(web::WebThread::UI) - ->PostTask(FROM_HERE, - base::BindOnce(&RequestProxyResolvingSocketFactoryOnUIThread, - app_context, std::move(request))); + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, + base::BindOnce(&RequestProxyResolvingSocketFactoryOnUIThread, app_context, + std::move(request))); } // Passed to NetworkConnectionTracker to bind a NetworkChangeManagerRequest. @@ -426,7 +427,7 @@ base::Unretained(this)), GetSharedURLLoaderFactory(), ::GetChannel(), IOSChromeGCMProfileServiceFactory::GetProductCategoryForSubtypes(), - web::WebThread::GetTaskRunnerForThread(web::WebThread::UI), - web::WebThread::GetTaskRunnerForThread(web::WebThread::IO), + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::UI}), + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO}), blocking_task_runner); }
diff --git a/ios/chrome/browser/autocomplete/BUILD.gn b/ios/chrome/browser/autocomplete/BUILD.gn index ca801dd1..27f4696 100644 --- a/ios/chrome/browser/autocomplete/BUILD.gn +++ b/ios/chrome/browser/autocomplete/BUILD.gn
@@ -36,6 +36,7 @@ "//ios/chrome/browser/search_engines", "//ios/chrome/browser/signin", "//ios/chrome/browser/sync", + "//ios/chrome/browser/unified_consent", "//ios/public/provider/chrome/browser", "//ios/web", "//url",
diff --git a/ios/chrome/browser/autocomplete/autocomplete_provider_client_impl.cc b/ios/chrome/browser/autocomplete/autocomplete_provider_client_impl.cc index d068237..9e5b312 100644 --- a/ios/chrome/browser/autocomplete/autocomplete_provider_client_impl.cc +++ b/ios/chrome/browser/autocomplete/autocomplete_provider_client_impl.cc
@@ -12,6 +12,7 @@ #include "components/prefs/pref_service.h" #include "components/signin/core/browser/signin_manager.h" #include "components/sync/driver/sync_service.h" +#include "components/unified_consent/unified_consent_service.h" #include "components/unified_consent/url_keyed_data_collection_consent_helper.h" #include "ios/chrome/browser/application_context.h" #include "ios/chrome/browser/autocomplete/autocomplete_classifier_factory.h" @@ -26,6 +27,7 @@ #include "ios/chrome/browser/search_engines/template_url_service_factory.h" #include "ios/chrome/browser/signin/signin_manager_factory.h" #include "ios/chrome/browser/sync/profile_sync_service_factory.h" +#include "ios/chrome/browser/unified_consent/unified_consent_service_factory.h" #include "services/network/public/cpp/shared_url_loader_factory.h" AutocompleteProviderClientImpl::AutocompleteProviderClientImpl( @@ -169,6 +171,18 @@ return signin_manager != nullptr && signin_manager->IsAuthenticated(); } +bool AutocompleteProviderClientImpl::IsUnifiedConsentGiven() const { + unified_consent::UnifiedConsentService* consent_service = + UnifiedConsentServiceFactory::GetForBrowserState(browser_state_); + return consent_service && consent_service->IsUnifiedConsentGiven(); +} + +bool AutocompleteProviderClientImpl::IsSyncActive() const { + syncer::SyncService* sync = + ProfileSyncServiceFactory::GetForBrowserState(browser_state_); + return sync && sync->IsSyncActive(); +} + void AutocompleteProviderClientImpl::Classify( const base::string16& text, bool prefer_keyword,
diff --git a/ios/chrome/browser/autocomplete/autocomplete_provider_client_impl.h b/ios/chrome/browser/autocomplete/autocomplete_provider_client_impl.h index 33db564..56a4e005 100644 --- a/ios/chrome/browser/autocomplete/autocomplete_provider_client_impl.h +++ b/ios/chrome/browser/autocomplete/autocomplete_provider_client_impl.h
@@ -56,6 +56,8 @@ bool SearchSuggestEnabled() const override; bool IsPersonalizedUrlDataCollectionActive() const override; bool IsAuthenticated() const override; + bool IsUnifiedConsentGiven() const override; + bool IsSyncActive() const override; void Classify( const base::string16& text, bool prefer_keyword,
diff --git a/ios/chrome/browser/autofill/BUILD.gn b/ios/chrome/browser/autofill/BUILD.gn index 2bf00a59..4be47bd5 100644 --- a/ios/chrome/browser/autofill/BUILD.gn +++ b/ios/chrome/browser/autofill/BUILD.gn
@@ -151,6 +151,7 @@ "//ios/chrome/browser/ssl", "//ios/chrome/browser/ui", "//ios/chrome/browser/ui/autofill", + "//ios/chrome/browser/ui/coordinators:chrome_coordinators", "//ios/chrome/browser/ui/settings:test_support", "//ios/chrome/browser/web:test_support", "//ios/chrome/browser/web:web_internal",
diff --git a/ios/chrome/browser/autofill/automation/BUILD.gn b/ios/chrome/browser/autofill/automation/BUILD.gn index 4194d05..b2ae8079 100644 --- a/ios/chrome/browser/autofill/automation/BUILD.gn +++ b/ios/chrome/browser/autofill/automation/BUILD.gn
@@ -14,8 +14,11 @@ deps = [ "//base", + "//components/autofill/core/browser:browser", + "//components/autofill/ios/browser:browser", "//components/strings", "//ios/chrome/app/strings", + "//ios/chrome/browser/autofill:autofill", "//ios/chrome/browser/infobars", "//ios/chrome/browser/ui:ui_util", "//ios/chrome/browser/ui/infobars:test_support",
diff --git a/ios/chrome/browser/autofill/automation/automation_action.mm b/ios/chrome/browser/autofill/automation/automation_action.mm index 5f2d6c82..f679028 100644 --- a/ios/chrome/browser/autofill/automation/automation_action.mm +++ b/ios/chrome/browser/autofill/automation/automation_action.mm
@@ -6,9 +6,15 @@ #import "ios/chrome/browser/autofill/automation/automation_action.h" +#include "base/guid.h" #include "base/strings/stringprintf.h" #include "base/strings/sys_string_conversions.h" +#include "base/strings/utf_string_conversions.h" #import "base/test/ios/wait_util.h" +#include "components/autofill/core/browser/autofill_manager.h" +#include "components/autofill/core/browser/personal_data_manager.h" +#include "components/autofill/ios/browser/autofill_driver_ios.h" +#import "ios/chrome/browser/autofill/form_suggestion_label.h" #import "ios/chrome/test/app/chrome_test_util.h" #import "ios/chrome/test/earl_grey/chrome_earl_grey.h" #import "ios/web/public/test/earl_grey/web_view_actions.h" @@ -48,7 +54,7 @@ // "selector": "//*[@id=\"add-to-cart-button\"]", // "context": [], // "type": "click" -// }, +// } @interface AutomationActionClick : AutomationAction @end @@ -59,10 +65,22 @@ // "type": "waitFor", // "assertions": ["return document.querySelector().style.display === // 'none';"] -// }, +// } @interface AutomationActionWaitFor : AutomationAction @end +// An action that performs autofill on a form by selecting an element +// that is part of an autofillable form, then tapping the relevant +// autofill suggestion. We assume this action has a format resembling: +// { +// "selectorType": "xpath", +// "selector": "//*[@data-tl-id=\"COAC2ShpAddrFirstName\"]", +// "context": [], +// "type": "autofill" +// } +@interface AutomationActionAutofill : AutomationAction +@end + @implementation AutomationAction + (instancetype)actionWithValueDictionary: @@ -82,6 +100,7 @@ static NSDictionary* classForType = @{ @"click" : [AutomationActionClick class], @"waitFor" : [AutomationActionWaitFor class], + @"autofill" : [AutomationActionAutofill class], // More to come. }; @@ -105,19 +124,9 @@ return actionDictionary_; } -@end - -@implementation AutomationActionClick - -- (void)execute { - const base::Value* xpathValue(self.actionDictionary->FindKeyOfType( - "selector", base::Value::Type::STRING)); - GREYAssert(xpathValue, @"Selector is missing in action."); - - const std::string xpath(xpathValue->GetString()); - GREYAssert(!xpath.empty(), @"selector is an empty value."); - - auto selector(ElementSelector::ElementSelectorXPath(xpath)); +// A shared flow across many actions, this waits for the target element to be +// visible, scrolls it into view, then taps on it. +- (void)tapOnTarget:(web::test::ElementSelector)selector { web::WebState* web_state = chrome_test_util::GetCurrentWebState(); // Wait for the element to be visible on the page. @@ -130,6 +139,30 @@ performAction:web::WebViewTapElement(web_state, selector)]; } +// Creates a selector targeting the element specified in the action. +- (web::test::ElementSelector)selectorForTarget { + const base::Value* xpathValue(self.actionDictionary->FindKeyOfType( + "selector", base::Value::Type::STRING)); + GREYAssert(xpathValue, @"Selector is missing in action."); + + const std::string xpath(xpathValue->GetString()); + GREYAssert(!xpath.empty(), @"selector is an empty value."); + + // Creates a selector from the action dictionary. + web::test::ElementSelector selector( + ElementSelector::ElementSelectorXPath(xpath)); + return selector; +} + +@end + +@implementation AutomationActionClick + +- (void)execute { + web::test::ElementSelector selector = [self selectorForTarget]; + [self tapOnTarget:selector]; +} + @end @implementation AutomationActionWaitFor @@ -188,6 +221,51 @@ @end +@implementation AutomationActionAutofill + +static const char PROFILE_NAME_FULL[] = "Yuki Nagato"; +static const char PROFILE_HOME_LINE1[] = "1600 Amphitheatre Parkway"; +static const char PROFILE_HOME_CITY[] = "Mountain View"; +static const char PROFILE_HOME_STATE[] = "CA"; +static const char PROFILE_HOME_ZIP[] = "94043"; + +// Loads the predefined autofill profile into the personal data manager, so that +// autofill actions will be suggested when tapping on an autofillable form. +- (void)prepareAutofillProfileWithWebState:(web::WebState*)web_state { + autofill::AutofillManager* autofill_manager = + autofill::AutofillDriverIOS::FromWebState(web_state)->autofill_manager(); + autofill::PersonalDataManager* personal_data_manager = + autofill_manager->client()->GetPersonalDataManager(); + autofill::AutofillProfile profile(base::GenerateGUID(), + "https://www.example.com/"); + profile.SetRawInfo(autofill::NAME_FULL, base::UTF8ToUTF16(PROFILE_NAME_FULL)); + profile.SetRawInfo(autofill::ADDRESS_HOME_LINE1, + base::UTF8ToUTF16(PROFILE_HOME_LINE1)); + profile.SetRawInfo(autofill::ADDRESS_HOME_CITY, + base::UTF8ToUTF16(PROFILE_HOME_CITY)); + profile.SetRawInfo(autofill::ADDRESS_HOME_STATE, + base::UTF8ToUTF16(PROFILE_HOME_STATE)); + profile.SetRawInfo(autofill::ADDRESS_HOME_ZIP, + base::UTF8ToUTF16(PROFILE_HOME_ZIP)); + personal_data_manager->SaveImportedProfile(profile); +} + +- (void)execute { + web::WebState* web_state = chrome_test_util::GetCurrentWebState(); + [self prepareAutofillProfileWithWebState:web_state]; + + web::test::ElementSelector selector = [self selectorForTarget]; + [self tapOnTarget:selector]; + + // Tap on the autofill suggestion to perform the actual autofill. + [[EarlGrey + selectElementWithMatcher:grey_accessibilityID( + kFormSuggestionLabelAccessibilityIdentifier)] + performAction:grey_tap()]; +} + +@end + @implementation AutomationActionUnrecognized - (void)execute {
diff --git a/ios/chrome/browser/autofill/form_input_accessory_consumer.h b/ios/chrome/browser/autofill/form_input_accessory_consumer.h index ce88124c..2aa2e48 100644 --- a/ios/chrome/browser/autofill/form_input_accessory_consumer.h +++ b/ios/chrome/browser/autofill/form_input_accessory_consumer.h
@@ -11,9 +11,9 @@ @protocol FormInputAccessoryConsumer<NSObject> -// Restores the default input accessory view, removing (if necessary) any -// previously-added custom view. -- (void)restoreDefaultInputAccessoryView; +// Restores the keyboard and its default input accessory view, removing (if +// necessary) any previously-added custom view. +- (void)restoreKeyboardView; // Hides the default input accessory view and replaces it with one that shows // |customView| and form navigation controls.
diff --git a/ios/chrome/browser/autofill/form_input_accessory_view_controller.h b/ios/chrome/browser/autofill/form_input_accessory_view_controller.h index 9aa9c48..7ca32435 100644 --- a/ios/chrome/browser/autofill/form_input_accessory_view_controller.h +++ b/ios/chrome/browser/autofill/form_input_accessory_view_controller.h
@@ -18,6 +18,10 @@ // accessory view elements. @interface FormInputAccessoryViewController : NSObject<FormInputAccessoryConsumer> + +// Presents a view above the keyboard. +- (void)presentView:(UIView*)view; + @end #endif // IOS_CHROME_BROWSER_AUTOFILL_FORM_INPUT_ACCESSORY_VIEW_CONTROLLER_H_
diff --git a/ios/chrome/browser/autofill/form_input_accessory_view_controller.mm b/ios/chrome/browser/autofill/form_input_accessory_view_controller.mm index 855a963..57d2910 100644 --- a/ios/chrome/browser/autofill/form_input_accessory_view_controller.mm +++ b/ios/chrome/browser/autofill/form_input_accessory_view_controller.mm
@@ -5,6 +5,7 @@ #import "ios/chrome/browser/autofill/form_input_accessory_view_controller.h" #include "base/mac/foundation_util.h" +#include "components/autofill/core/common/autofill_features.h" #import "ios/chrome/browser/autofill/form_input_accessory_view.h" #import "ios/chrome/browser/autofill/form_suggestion_view.h" #include "ios/chrome/browser/ui/ui_util.h" @@ -25,6 +26,9 @@ // http://crbug.com/847523 @property(nonatomic, strong) UIView* grayBackgroundView; +// The keyboard replacement view, if any. +@property(nonatomic, weak) UIView* keyboardReplacementView; + // Called when the keyboard will or did change frame. - (void)keyboardWillOrDidChangeFrame:(NSNotification*)notification; @@ -49,6 +53,7 @@ } @synthesize grayBackgroundView = _grayBackgroundView; +@synthesize keyboardReplacementView = _keyboardReplacementView; #pragma mark - Life Cycle @@ -88,6 +93,18 @@ return self; } +- (void)presentView:(UIView*)view { + UIView* keyboardView = [self getKeyboardView]; + view.accessibilityViewIsModal = YES; + [keyboardView.superview addSubview:view]; + UIView* constrainingView = + [self recursiveGetKeyboardConstraintView:keyboardView]; + DCHECK(constrainingView); + view.translatesAutoresizingMaskIntoConstraints = NO; + AddSameConstraints(view, constrainingView); + self.keyboardReplacementView = view; +} + #pragma mark - Private - (void)hideSubviewsInOriginalAccessoryView:(UIView*)accessoryView { @@ -99,12 +116,42 @@ } } +// This searches in a keyboard view hierarchy for the best candidate to +// constrain a view to the keyboard. +- (UIView*)recursiveGetKeyboardConstraintView:(UIView*)view { + for (UIView* subview in view.subviews) { + // TODO(crbug.com/845472): verify this on iOS 10-12 and all devices. + // Currently only tested on X-iOS12, 6+-iOS11 and 7+-iOS10. iPhoneX, iOS 11 + // and 12 uses "Dock" and iOS 10 uses "Backdrop". iPhone6+, iOS 11 uses + // "Dock". + if ([NSStringFromClass([subview class]) containsString:@"Dock"] || + [NSStringFromClass([subview class]) containsString:@"Backdrop"]) { + return subview; + } + UIView* found = [self recursiveGetKeyboardConstraintView:subview]; + if (found) { + return found; + } + } + return nil; +} + - (UIView*)getKeyboardView { NSArray* windows = [UIApplication sharedApplication].windows; if (windows.count < 2) return nil; - UIWindow* window = windows[1]; + UIWindow* window; + BOOL isManualFillEnabled = + base::FeatureList::IsEnabled(autofill::features::kAutofillManualFallback); + if (isManualFillEnabled) { + // TODO(crbug.com/845472): verify this works on iPad with split view before + // making this the default. + window = windows.lastObject; + } else { + window = windows[1]; + } + for (UIView* subview in window.subviews) { if ([NSStringFromClass([subview class]) rangeOfString:@"PeripheralHost"] .location != NSNotFound) { @@ -135,6 +182,12 @@ } - (void)keyboardWillOrDidChangeFrame:(NSNotification*)notification { + // Work Around. On focus event, keyboardReplacementView is animated but the + // keyboard isn't. Cancel the animation to match the keyboard behavior + if (!IsIPadIdiom()) { + [self.keyboardReplacementView.layer removeAllAnimations]; + } + CGRect keyboardFrame = [notification.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue]; UIView* keyboardView = [self getKeyboardView]; @@ -208,7 +261,7 @@ } else { // On iPhone, the custom view replaces the default UI of the // inputAccessoryView. - [self restoreDefaultInputAccessoryView]; + [self restoreInputAccessoryView]; _customAccessoryView = [[FormInputAccessoryView alloc] init]; [_customAccessoryView setUpWithNavigationDelegate:navigationDelegate customView:view]; @@ -261,7 +314,7 @@ } } -- (void)restoreDefaultInputAccessoryView { +- (void)restoreInputAccessoryView { [_customAccessoryView removeFromSuperview]; [self.grayBackgroundView removeFromSuperview]; @@ -272,4 +325,10 @@ [_hiddenOriginalSubviews removeAllObjects]; } +- (void)restoreKeyboardView { + [self restoreInputAccessoryView]; + [self.keyboardReplacementView removeFromSuperview]; + self.keyboardReplacementView = nil; +} + @end
diff --git a/ios/chrome/browser/autofill/form_suggestion_controller.mm b/ios/chrome/browser/autofill/form_suggestion_controller.mm index 8575f23..2c038d99 100644 --- a/ios/chrome/browser/autofill/form_suggestion_controller.mm +++ b/ios/chrome/browser/autofill/form_suggestion_controller.mm
@@ -6,13 +6,11 @@ #include <memory> -#include "base/feature_list.h" #include "base/mac/foundation_util.h" #include "base/mac/scoped_block.h" #include "base/strings/sys_string_conversions.h" #include "base/strings/utf_string_conversions.h" #include "components/autofill/core/browser/autofill_popup_delegate.h" -#include "components/autofill/core/common/autofill_features.h" #import "components/autofill/ios/browser/form_suggestion.h" #import "components/autofill/ios/browser/form_suggestion_provider.h" #include "components/autofill/ios/form_util/form_activity_params.h" @@ -81,9 +79,6 @@ id<CRWWebViewProxy> _webViewProxy; } -// Returns an autoreleased input accessory view that shows |suggestions|. -- (UIView*)suggestionViewWithSuggestions:(NSArray*)suggestions; - // Updates keyboard for |suggestionState|. - (void)updateKeyboard:(AutofillSuggestionState*)suggestionState; @@ -269,13 +264,7 @@ if (!accessoryViewUpdateBlock_) { return; } - BOOL isManualFillEnabled = - base::FeatureList::IsEnabled(autofill::features::kAutofillManualFallback); - if (isManualFillEnabled) { - accessoryViewUpdateBlock_(nil, self); - } else { - accessoryViewUpdateBlock_([self suggestionViewWithSuggestions:@[]], self); - } + accessoryViewUpdateBlock_([self suggestionViewWithSuggestions:@[]], self); } - (void)onSuggestionsReady:(NSArray<FormSuggestion*>*)suggestions @@ -317,14 +306,16 @@ } } -- (void)updateKeyboardWithSuggestions:(NSArray*)suggestions { +- (void)updateKeyboardWithSuggestions:(NSArray<FormSuggestion*>*)suggestions { if (accessoryViewUpdateBlock_) { accessoryViewUpdateBlock_([self suggestionViewWithSuggestions:suggestions], self); } } -- (UIView*)suggestionViewWithSuggestions:(NSArray*)suggestions { +// Returns an autoreleased input accessory view that shows |suggestions|. +- (UIView*)suggestionViewWithSuggestions: + (NSArray<FormSuggestion*>*)suggestions { CGRect frame = [_webViewProxy keyboardAccessory].frame; // Force the desired height on iPad where the height of the // inputAccessoryView is 0.
diff --git a/ios/chrome/browser/autofill/form_suggestion_controller_unittest.mm b/ios/chrome/browser/autofill/form_suggestion_controller_unittest.mm index a8bb3b7..f550a4c 100644 --- a/ios/chrome/browser/autofill/form_suggestion_controller_unittest.mm +++ b/ios/chrome/browser/autofill/form_suggestion_controller_unittest.mm
@@ -179,15 +179,7 @@ id mock_consumer_ = [OCMockObject niceMockForProtocol:@protocol(FormInputAccessoryConsumer)]; - accessory_mediator_ = - [[FormInputAccessoryMediator alloc] initWithConsumer:mock_consumer_ - webStateList:NULL]; - [accessory_mediator_ injectWebState:&test_web_state_]; - [accessory_mediator_ - injectProviders:@[ [suggestion_controller_ accessoryViewProvider] ]]; - [accessory_mediator_ injectSuggestionManager:mock_js_suggestion_manager_]; - - // Mock the mediator consumer used to verify the suggestion views. + // Mock the consumer to verify the suggestion views. void (^mockShow)(NSInvocation*) = ^(NSInvocation* invocation) { for (UIView* view in [input_accessory_view_ subviews]) { [view removeFromSuperview]; @@ -200,13 +192,22 @@ showCustomInputAccessoryView:[OCMArg any] navigationDelegate:[OCMArg any]]; + // Mock restore keyboard to verify cleanup. void (^mockRestore)(NSInvocation*) = ^(NSInvocation* invocation) { for (UIView* view in [input_accessory_view_ subviews]) { [view removeFromSuperview]; } }; - [[[mock_consumer_ stub] andDo:mockRestore] - restoreDefaultInputAccessoryView]; + [[[mock_consumer_ stub] andDo:mockRestore] restoreKeyboardView]; + + accessory_mediator_ = + [[FormInputAccessoryMediator alloc] initWithConsumer:mock_consumer_ + webStateList:NULL]; + + [accessory_mediator_ injectWebState:&test_web_state_]; + [accessory_mediator_ + injectProviders:@[ [suggestion_controller_ accessoryViewProvider] ]]; + [accessory_mediator_ injectSuggestionManager:mock_js_suggestion_manager_]; } // The FormSuggestionController under test.
diff --git a/ios/chrome/browser/autofill/form_suggestion_label.h b/ios/chrome/browser/autofill/form_suggestion_label.h index f73bf7e..05a5229 100644 --- a/ios/chrome/browser/autofill/form_suggestion_label.h +++ b/ios/chrome/browser/autofill/form_suggestion_label.h
@@ -7,6 +7,8 @@ #import <UIKit/UIKit.h> +// a11y identifier used to locate the autofill suggestion in automation +extern NSString* const kFormSuggestionLabelAccessibilityIdentifier; @class FormSuggestion; @protocol FormSuggestionViewClient;
diff --git a/ios/chrome/browser/autofill/form_suggestion_label.mm b/ios/chrome/browser/autofill/form_suggestion_label.mm index 29e08e77c..757b5ed 100644 --- a/ios/chrome/browser/autofill/form_suggestion_label.mm +++ b/ios/chrome/browser/autofill/form_suggestion_label.mm
@@ -26,6 +26,10 @@ #error "This file requires ARC support." #endif +// a11y identifier used to locate the autofill suggestion in automation +NSString* const kFormSuggestionLabelAccessibilityIdentifier = + @"formSuggestionLabelAXID"; + namespace { // The button corner radius. @@ -133,6 +137,8 @@ suggestion.displayDescription), base::IntToString16(index + 1), base::IntToString16(numSuggestions))]; + [self + setAccessibilityIdentifier:kFormSuggestionLabelAccessibilityIdentifier]; } return self;
diff --git a/ios/chrome/browser/autofill/form_suggestion_view.h b/ios/chrome/browser/autofill/form_suggestion_view.h index 1d5a1ee..8138954 100644 --- a/ios/chrome/browser/autofill/form_suggestion_view.h +++ b/ios/chrome/browser/autofill/form_suggestion_view.h
@@ -7,20 +7,23 @@ #import <UIKit/UIKit.h> +@class FormSuggestion; @protocol FormSuggestionViewClient; // A scrollable view for displaying user-selectable autofill form suggestions. @interface FormSuggestionView : UIScrollView<UIInputViewAudioFeedback> +// The current suggestions this view is showing. +@property(nonatomic, readonly) NSArray<FormSuggestion*>* suggestions; + +// A view added at the end of the current suggestions. +@property(nonatomic, strong) UIView* trailingView; + // Initializes with |frame| and |client| to show |suggestions|. - (instancetype)initWithFrame:(CGRect)frame client:(id<FormSuggestionViewClient>)client - suggestions:(NSArray*)suggestions; + suggestions:(NSArray<FormSuggestion*>*)suggestions; @end -@interface FormSuggestionView (ForTesting) -@property(nonatomic, readonly) NSArray* suggestions; -@end - #endif // IOS_CHROME_BROWSER_AUTOFILL_FORM_SUGGESTION_VIEW_H_
diff --git a/ios/chrome/browser/autofill/form_suggestion_view.mm b/ios/chrome/browser/autofill/form_suggestion_view.mm index 02abb037..583673a 100644 --- a/ios/chrome/browser/autofill/form_suggestion_view.mm +++ b/ios/chrome/browser/autofill/form_suggestion_view.mm
@@ -39,13 +39,18 @@ // The FormSuggestions that are displayed by this view. NSArray* _suggestions; + // The stack view with the suggestions. + UIStackView* _stackView; + // Handles user interactions. id<FormSuggestionViewClient> _client; } +@synthesize trailingView = _trailingView; + - (instancetype)initWithFrame:(CGRect)frame client:(id<FormSuggestionViewClient>)client - suggestions:(NSArray*)suggestions { + suggestions:(NSArray<FormSuggestion*>*)suggestions { self = [super initWithFrame:frame]; if (self) { _client = client; @@ -122,10 +127,28 @@ } }; [_suggestions enumerateObjectsUsingBlock:setupBlock]; + if (self.trailingView) { + [stackView addArrangedSubview:self.trailingView]; + } + _stackView = stackView; } +#pragma mark - Getters + - (NSArray*)suggestions { return _suggestions; } +#pragma mark - Setters + +- (void)setTrailingView:(UIView*)subview { + if (_trailingView.superview) { + [_stackView removeArrangedSubview:_trailingView]; + } + _trailingView = subview; + if (_stackView) { + [_stackView addArrangedSubview:_trailingView]; + } +} + @end
diff --git a/ios/chrome/browser/bookmarks/bookmark_model_factory.cc b/ios/chrome/browser/bookmarks/bookmark_model_factory.cc index ad34214..d3332b99 100644 --- a/ios/chrome/browser/bookmarks/bookmark_model_factory.cc +++ b/ios/chrome/browser/bookmarks/bookmark_model_factory.cc
@@ -6,6 +6,7 @@ #include <utility> #include "base/memory/singleton.h" +#include "base/task/post_task.h" #include "components/bookmarks/browser/bookmark_model.h" #include "components/bookmarks/browser/bookmark_utils.h" #include "components/bookmarks/browser/startup_task_runner_service.h" @@ -19,6 +20,7 @@ #include "ios/chrome/browser/browser_state/chrome_browser_state.h" #include "ios/chrome/browser/history/history_service_factory.h" #include "ios/chrome/browser/undo/bookmark_undo_service_factory.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" namespace ios { @@ -66,11 +68,10 @@ browser_state, ios::BookmarkSyncServiceFactory::GetForBrowserState(browser_state)))); bookmark_model->Load( - browser_state->GetPrefs(), - browser_state->GetStatePath(), + browser_state->GetPrefs(), browser_state->GetStatePath(), ios::StartupTaskRunnerServiceFactory::GetForBrowserState(browser_state) ->GetBookmarkTaskRunner(), - web::WebThread::GetTaskRunnerForThread(web::WebThread::UI)); + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::UI})); ios::BookmarkUndoServiceFactory::GetForBrowserState(browser_state) ->Start(bookmark_model.get()); return bookmark_model;
diff --git a/ios/chrome/browser/browser_state/chrome_browser_state_impl_io_data.mm b/ios/chrome/browser/browser_state/chrome_browser_state_impl_io_data.mm index 91d10cc..9048cbee 100644 --- a/ios/chrome/browser/browser_state/chrome_browser_state_impl_io_data.mm +++ b/ios/chrome/browser/browser_state/chrome_browser_state_impl_io_data.mm
@@ -30,6 +30,7 @@ #import "ios/net/cookies/cookie_store_ios.h" #import "ios/net/cookies/ns_http_system_cookie_store.h" #import "ios/net/cookies/system_cookie_store.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/base/cache_type.h" #include "net/cookies/cookie_store.h" @@ -134,8 +135,8 @@ DCHECK_CURRENTLY_ON(web::WebThread::UI); LazyInitialize(); - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::Bind( &ChromeBrowserStateImplIOData::ClearNetworkingHistorySinceOnIOThread, base::Unretained(io_data_), time, completion)); @@ -352,7 +353,7 @@ transport_security_state()->DeleteAllDynamicDataSince(time); http_server_properties()->Clear(base::BindOnce( [](const base::Closure& completion) { - web::WebThread::PostTask(web::WebThread::UI, FROM_HERE, completion); + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::UI}, completion); }, completion)); }
diff --git a/ios/chrome/browser/browser_state/chrome_browser_state_io_data.mm b/ios/chrome/browser/browser_state/chrome_browser_state_io_data.mm index 441e849..ebc6ada 100644 --- a/ios/chrome/browser/browser_state/chrome_browser_state_io_data.mm +++ b/ios/chrome/browser/browser_state/chrome_browser_state_io_data.mm
@@ -45,6 +45,7 @@ #include "ios/chrome/browser/net/ios_chrome_url_request_context_getter.h" #import "ios/net/cookies/system_cookie_store.h" #include "ios/web/public/system_cookie_store_util.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/cert/cert_verifier.h" #include "net/cert/multi_log_ct_verifier.h" @@ -112,7 +113,7 @@ pref_service); scoped_refptr<base::SingleThreadTaskRunner> io_task_runner = - web::WebThread::GetTaskRunnerForThread(web::WebThread::IO); + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO}); chrome_http_user_agent_settings_.reset( new IOSChromeHttpUserAgentSettings(pref_service)); @@ -305,7 +306,7 @@ enable_metrics_.Init(metrics::prefs::kMetricsReportingEnabled, GetApplicationContext()->GetLocalState()); enable_metrics_.MoveToThread( - web::WebThread::GetTaskRunnerForThread(web::WebThread::IO)); + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO})); } bool ChromeBrowserStateIOData::GetMetricsEnabledStateOnIOThread() const { @@ -456,7 +457,7 @@ if (!context_getters->empty()) { if (web::WebThread::IsThreadInitialized(web::WebThread::IO)) { - web::WebThread::PostTask(web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::IO}, base::Bind(&NotifyContextGettersOfShutdownOnIO, base::Passed(&context_getters))); }
diff --git a/ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_impl.cc b/ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_impl.cc index 9c7daa7..3ed3847 100644 --- a/ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_impl.cc +++ b/ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_impl.cc
@@ -6,6 +6,7 @@ #include "base/logging.h" #include "base/sequenced_task_runner.h" +#include "base/task/post_task.h" #include "components/keyed_service/ios/browser_state_dependency_manager.h" #include "components/proxy_config/ios/proxy_service_factory.h" #include "components/proxy_config/pref_proxy_config_tracker.h" @@ -13,6 +14,7 @@ #include "components/user_prefs/user_prefs.h" #include "ios/chrome/browser/application_context.h" #include "ios/chrome/browser/net/ios_chrome_url_request_context_getter.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" OffTheRecordChromeBrowserStateImpl::OffTheRecordChromeBrowserStateImpl( @@ -106,7 +108,7 @@ // BrowsingDataRemover will never be destroyed and the dialog will never be // closed. We must do this asynchronously in order to avoid reentrancy issues. if (!completion.is_null()) { - web::WebThread::PostTask(web::WebThread::UI, FROM_HERE, completion); + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::UI}, completion); } }
diff --git a/ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_io_data.mm b/ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_io_data.mm index 79808613..cd75576 100644 --- a/ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_io_data.mm +++ b/ios/chrome/browser/browser_state/off_the_record_chrome_browser_state_io_data.mm
@@ -23,6 +23,7 @@ #include "ios/chrome/browser/net/ios_chrome_url_request_context_getter.h" #include "ios/chrome/browser/pref_names.h" #import "ios/net/cookies/system_cookie_store.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/cookies/cookie_store.h" #include "net/disk_cache/disk_cache.h" @@ -58,8 +59,8 @@ // The cache for the incognito profile is in RAM. scoped_refptr<net::URLRequestContextGetter> getter = main_request_context_getter_; - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::BindOnce(^{ DCHECK_CURRENTLY_ON(web::WebThread::IO); net::HttpCache* cache = getter->GetURLRequestContext() ->http_transaction_factory()
diff --git a/ios/chrome/browser/browser_state/test_chrome_browser_state.mm b/ios/chrome/browser/browser_state/test_chrome_browser_state.mm index 4edd71f..fe116d3 100644 --- a/ios/chrome/browser/browser_state/test_chrome_browser_state.mm +++ b/ios/chrome/browser/browser_state/test_chrome_browser_state.mm
@@ -46,6 +46,7 @@ #include "ios/chrome/browser/undo/bookmark_undo_service_factory.h" #include "ios/chrome/browser/web_data_service_factory.h" #include "ios/public/provider/chrome/browser/chrome_browser_provider.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/url_request/url_request_test_util.h" @@ -71,9 +72,9 @@ browser_state, ios::BookmarkSyncServiceFactory::GetForBrowserState(browser_state)))); bookmark_model->Load( - browser_state->GetPrefs(), - browser_state->GetStatePath(), browser_state->GetIOTaskRunner(), - web::WebThread::GetTaskRunnerForThread(web::WebThread::UI)); + browser_state->GetPrefs(), browser_state->GetStatePath(), + browser_state->GetIOTaskRunner(), + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::UI})); ios::BookmarkUndoServiceFactory::GetForBrowserState(browser_state) ->Start(bookmark_model.get()); return bookmark_model; @@ -83,7 +84,7 @@ const base::FilePath& browser_state_path = context->GetStatePath(); return std::make_unique<WebDataServiceWrapper>( browser_state_path, GetApplicationContext()->GetApplicationLocale(), - web::WebThread::GetTaskRunnerForThread(web::WebThread::UI), + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::UI}), ios::sync_start_util::GetFlareForSyncableService(browser_state_path), base::DoNothing()); } @@ -281,7 +282,7 @@ net::URLRequestContextGetter* TestChromeBrowserState::CreateRequestContext( ProtocolHandlerMap* protocol_handlers) { return new net::TestURLRequestContextGetter( - web::WebThread::GetTaskRunnerForThread(web::WebThread::IO)); + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO})); } net::URLRequestContextGetter*
diff --git a/ios/chrome/browser/browser_state/test_chrome_browser_state_isolated_context.mm b/ios/chrome/browser/browser_state/test_chrome_browser_state_isolated_context.mm index 04c3d10f..46aafcc 100644 --- a/ios/chrome/browser/browser_state/test_chrome_browser_state_isolated_context.mm +++ b/ios/chrome/browser/browser_state/test_chrome_browser_state_isolated_context.mm
@@ -5,7 +5,9 @@ #include "ios/chrome/browser/browser_state/test_chrome_browser_state_isolated_context.h" #include "base/logging.h" +#include "base/task/post_task.h" #include "components/sync_preferences/pref_service_syncable.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/url_request/url_request_test_util.h" @@ -22,7 +24,8 @@ RefcountedTestingFactories()), main_context_called_(false), request_context_(new net::TestURLRequestContextGetter( - web::WebThread::GetTaskRunnerForThread(web::WebThread::IO))) {} + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO}))) { +} TestChromeBrowserStateWithIsolatedContext:: ~TestChromeBrowserStateWithIsolatedContext() {}
diff --git a/ios/chrome/browser/browsing_data/browsing_data_remover_impl.mm b/ios/chrome/browser/browsing_data/browsing_data_remover_impl.mm index 6df5a4b..25b4c0d 100644 --- a/ios/chrome/browser/browsing_data/browsing_data_remover_impl.mm +++ b/ios/chrome/browser/browsing_data/browsing_data_remover_impl.mm
@@ -20,6 +20,7 @@ #include "base/metrics/user_metrics.h" #include "base/sequenced_task_runner.h" #include "base/strings/sys_string_conversions.h" +#include "base/task/post_task.h" #include "base/threading/sequenced_task_runner_handle.h" #include "components/autofill/core/browser/personal_data_manager.h" #include "components/autofill/core/browser/webdata/autofill_webdata_service.h" @@ -54,6 +55,7 @@ #include "ios/chrome/browser/ui/external_file_remover_factory.h" #include "ios/chrome/browser/web_data_service_factory.h" #include "ios/net/http_cache_helper.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #import "ios/web/public/web_view_creation_util.h" #import "ios/web/web_state/ui/wk_web_view_configuration_provider.h" @@ -312,8 +314,8 @@ if (IsRemoveDataMaskSet(mask, BrowsingDataRemoveMask::REMOVE_COOKIES)) { base::RecordAction(base::UserMetricsAction("ClearBrowsingData_Cookies")); - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::BindOnce( &ClearCookies, context_getter_, net::CookieDeletionInfo::TimeRange(delete_begin, delete_end), @@ -324,8 +326,8 @@ if (IsRemoveDataMaskSet(mask, BrowsingDataRemoveMask::REMOVE_CHANNEL_IDS)) { base::RecordAction(base::UserMetricsAction("ClearBrowsingData_ChannelIDs")); - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::BindOnce( &ClearChannelIDs, context_getter_, delete_begin, delete_end, base::BindOnce(base::IgnoreResult(&base::TaskRunner::PostTask), @@ -367,8 +369,8 @@ IOSChromeIOThread* ios_chrome_io_thread = GetApplicationContext()->GetIOSChromeIOThread(); if (ios_chrome_io_thread) { - web::WebThread::PostTaskAndReply( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraitsAndReply( + FROM_HERE, {web::WebThread::IO}, base::BindOnce(&IOSChromeIOThread::ClearHostCache, base::Unretained(ios_chrome_io_thread)), CreatePendingTaskCompletionClosure()); @@ -475,12 +477,13 @@ if (IsRemoveDataMaskSet(mask, BrowsingDataRemoveMask::REMOVE_CACHE)) { base::RecordAction(base::UserMetricsAction("ClearBrowsingData_Cache")); - ClearHttpCache(context_getter_, - web::WebThread::GetTaskRunnerForThread(web::WebThread::IO), - delete_begin, delete_end, - AdaptCallbackForRepeating( - base::BindOnce(&NetCompletionCallbackAdapter, - CreatePendingTaskCompletionClosure()))); + ClearHttpCache( + context_getter_, + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO}), + delete_begin, delete_end, + AdaptCallbackForRepeating( + base::BindOnce(&NetCompletionCallbackAdapter, + CreatePendingTaskCompletionClosure()))); } // Remove omnibox zero-suggest cache results.
diff --git a/ios/chrome/browser/browsing_data/cache_counter.cc b/ios/chrome/browser/browsing_data/cache_counter.cc index fc4f1e9..7c0d8c42 100644 --- a/ios/chrome/browser/browsing_data/cache_counter.cc +++ b/ios/chrome/browser/browsing_data/cache_counter.cc
@@ -4,9 +4,11 @@ #include "ios/chrome/browser/browsing_data/cache_counter.h" #include "base/bind.h" +#include "base/task/post_task.h" #include "components/browsing_data/core/pref_names.h" #include "ios/chrome/browser/browser_state/chrome_browser_state.h" #include "ios/web/public/browser_state.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/base/completion_callback.h" #include "net/base/net_errors.h" @@ -30,8 +32,8 @@ backend_(nullptr) {} void Count() { - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::BindRepeating(&IOThreadCacheCounter::CountInternal, base::Unretained(this), net::OK)); } @@ -84,8 +86,8 @@ next_step_ = STEP_DONE; result_ = rv; - web::WebThread::PostTask( - web::WebThread::UI, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, base::BindOnce(&IOThreadCacheCounter::OnCountingFinished, base::Unretained(this)));
diff --git a/ios/chrome/browser/browsing_data/cache_counter_unittest.cc b/ios/chrome/browser/browsing_data/cache_counter_unittest.cc index 420cc94..6b509e6 100644 --- a/ios/chrome/browser/browsing_data/cache_counter_unittest.cc +++ b/ios/chrome/browser/browsing_data/cache_counter_unittest.cc
@@ -14,6 +14,7 @@ #include "base/bind.h" #include "base/run_loop.h" +#include "base/task/post_task.h" #include "base/time/time.h" #include "components/browsing_data/core/browsing_data_utils.h" #include "components/browsing_data/core/pref_names.h" @@ -23,6 +24,7 @@ #include "components/sync_preferences/pref_service_syncable.h" #include "ios/chrome/browser/browser_state/test_chrome_browser_state.h" #include "ios/web/public/test/test_web_thread_bundle.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/disk_cache/disk_cache.h" #include "net/http/http_cache.h" @@ -77,8 +79,8 @@ current_operation_ = OPERATION_ADD_ENTRY; next_step_ = STEP_GET_BACKEND; - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::BindOnce(&CacheCounterTest::CacheOperationStep, base::Unretained(this), net::OK)); WaitForIOThread(); @@ -89,8 +91,8 @@ current_operation_ = OPERATION_CLEAR_CACHE; next_step_ = STEP_GET_BACKEND; - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::BindOnce(&CacheCounterTest::CacheOperationStep, base::Unretained(this), net::OK)); WaitForIOThread(); @@ -212,7 +214,7 @@ if (current_operation_ == OPERATION_ADD_ENTRY) entry_->Close(); - web::WebThread::PostTask(web::WebThread::UI, FROM_HERE, + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::UI}, base::BindOnce(&CacheCounterTest::Callback, base::Unretained(this)));
diff --git a/ios/chrome/browser/gcm/ios_chrome_gcm_profile_service_factory.cc b/ios/chrome/browser/gcm/ios_chrome_gcm_profile_service_factory.cc index a6e28a7c..69cb67da 100644 --- a/ios/chrome/browser/gcm/ios_chrome_gcm_profile_service_factory.cc +++ b/ios/chrome/browser/gcm/ios_chrome_gcm_profile_service_factory.cc
@@ -16,6 +16,7 @@ #include "ios/chrome/browser/browser_state/chrome_browser_state.h" #include "ios/chrome/browser/signin/identity_manager_factory.h" #include "ios/chrome/common/channel_info.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/mojom/proxy_resolving_socket.mojom.h" @@ -39,7 +40,7 @@ web::BrowserState* context, base::WeakPtr<gcm::GCMProfileService> service, network::mojom::ProxyResolvingSocketFactoryRequest request) { - web::WebThread::GetTaskRunnerForThread(web::WebThread::UI) + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::UI}) ->PostTask( FROM_HERE, base::BindOnce(&RequestProxyResolvingSocketFactoryOnUIThread, context, @@ -97,7 +98,7 @@ GetProductCategoryForSubtypes(), IdentityManagerFactory::GetForBrowserState(browser_state), base::WrapUnique(new gcm::GCMClientFactory), - web::WebThread::GetTaskRunnerForThread(web::WebThread::UI), - web::WebThread::GetTaskRunnerForThread(web::WebThread::IO), + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::UI}), + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO}), blocking_task_runner); }
diff --git a/ios/chrome/browser/ios_chrome_main_parts.mm b/ios/chrome/browser/ios_chrome_main_parts.mm index ea521870..df41ddf 100644 --- a/ios/chrome/browser/ios_chrome_main_parts.mm +++ b/ios/chrome/browser/ios_chrome_main_parts.mm
@@ -44,6 +44,7 @@ #include "ios/chrome/browser/pref_names.h" #include "ios/chrome/browser/translate/translate_service_ios.h" #include "ios/public/provider/chrome/browser/chrome_browser_provider.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/base/network_change_notifier.h" #include "net/http/http_network_layer.h" @@ -208,7 +209,7 @@ // This will be called after the command-line has been mutated by about:flags void IOSChromeMainParts::SetupFieldTrials() { base::SetRecordActionTaskRunner( - web::WebThread::GetTaskRunnerForThread(web::WebThread::UI)); + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::UI})); // Initialize FieldTrialList to support FieldTrials that use one-time // randomization.
diff --git a/ios/chrome/browser/metrics/first_user_action_recorder.cc b/ios/chrome/browser/metrics/first_user_action_recorder.cc index cf466c4..96c10cb 100644 --- a/ios/chrome/browser/metrics/first_user_action_recorder.cc +++ b/ios/chrome/browser/metrics/first_user_action_recorder.cc
@@ -109,6 +109,10 @@ void FirstUserActionRecorder::Expire() { std::string log_message = "Recording 'Expiration' for first user action type"; + // If there is a pending rethrowable action, it could technically be logged. + // But as FirstUserActionRecorder will be destroyed in this runloop, it is too + // late. + rethrow_callback_.Cancel(); RecordAction(EXPIRATION, log_message); } @@ -183,9 +187,11 @@ if (!action_pending_ && ArrayContainsString(kRethrownActions, arraysize(kRethrownActions), action_name.c_str())) { - base::ThreadTaskRunnerHandle::Get()->PostTask( - FROM_HERE, base::Bind(&FirstUserActionRecorder::OnUserAction, - base::Unretained(this), action_name)); + rethrow_callback_.Reset( + base::BindOnce(&FirstUserActionRecorder::OnUserAction, + base::Unretained(this), action_name)); + base::ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, + rethrow_callback_.callback()); action_pending_ = true; return false; }
diff --git a/ios/chrome/browser/metrics/first_user_action_recorder.h b/ios/chrome/browser/metrics/first_user_action_recorder.h index 20233579..5456512d 100644 --- a/ios/chrome/browser/metrics/first_user_action_recorder.h +++ b/ios/chrome/browser/metrics/first_user_action_recorder.h
@@ -7,6 +7,7 @@ #include <vector> +#include "base/cancelable_callback.h" #include "base/metrics/user_metrics.h" #include "base/time/time.h" @@ -88,6 +89,10 @@ // The callback to invoke when an action is recorded. base::ActionCallback action_callback_; + // A potential action that needs to be confirmed if there is no other relevant + // action. + base::CancelableOnceClosure rethrow_callback_; + DISALLOW_COPY_AND_ASSIGN(FirstUserActionRecorder); };
diff --git a/ios/chrome/browser/net/chrome_cookie_store_ios_client.mm b/ios/chrome/browser/net/chrome_cookie_store_ios_client.mm index 1aaadc45..dd98300d 100644 --- a/ios/chrome/browser/net/chrome_cookie_store_ios_client.mm +++ b/ios/chrome/browser/net/chrome_cookie_store_ios_client.mm
@@ -4,6 +4,8 @@ #include "ios/chrome/browser/net/chrome_cookie_store_ios_client.h" +#include "base/task/post_task.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #if !defined(__has_feature) || !__has_feature(objc_arc) @@ -14,5 +16,5 @@ scoped_refptr<base::SequencedTaskRunner> ChromeCookieStoreIOSClient::GetTaskRunner() const { - return web::WebThread::GetTaskRunnerForThread(web::WebThread::IO); + return base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO}); }
diff --git a/ios/chrome/browser/net/cookie_util.mm b/ios/chrome/browser/net/cookie_util.mm index 3afb6a59..65130370 100644 --- a/ios/chrome/browser/net/cookie_util.mm +++ b/ios/chrome/browser/net/cookie_util.mm
@@ -17,6 +17,7 @@ #include "ios/net/cookies/cookie_store_ios_persistent.h" #import "ios/net/cookies/system_cookie_store.h" #include "ios/web/public/features.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/cookies/cookie_monster.h" #include "net/cookies/cookie_store.h" @@ -43,7 +44,8 @@ net::CookieCryptoDelegate* crypto_delegate) { return scoped_refptr<net::SQLitePersistentCookieStore>( new net::SQLitePersistentCookieStore( - path, web::WebThread::GetTaskRunnerForThread(web::WebThread::IO), + path, + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO}), base::CreateSequencedTaskRunnerWithTraits( {base::MayBlock(), base::TaskPriority::BEST_EFFORT}), restore_old_session_cookies, crypto_delegate)); @@ -139,7 +141,7 @@ void ClearSessionCookies(ios::ChromeBrowserState* browser_state) { scoped_refptr<net::URLRequestContextGetter> getter = browser_state->GetRequestContext(); - web::WebThread::PostTask(web::WebThread::IO, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::IO}, base::BindOnce(^{ getter->GetURLRequestContext() ->cookie_store() ->DeleteSessionCookiesAsync(base::DoNothing());
diff --git a/ios/chrome/browser/net/ios_chrome_http_user_agent_settings.mm b/ios/chrome/browser/net/ios_chrome_http_user_agent_settings.mm index 8344788..e9ae8237 100644 --- a/ios/chrome/browser/net/ios_chrome_http_user_agent_settings.mm +++ b/ios/chrome/browser/net/ios_chrome_http_user_agent_settings.mm
@@ -4,9 +4,11 @@ #include "ios/chrome/browser/net/ios_chrome_http_user_agent_settings.h" +#include "base/task/post_task.h" #include "components/prefs/pref_service.h" #include "ios/chrome/browser/pref_names.h" #include "ios/web/public/web_client.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/http/http_util.h" @@ -22,7 +24,7 @@ last_http_accept_language_ = net::HttpUtil::GenerateAcceptLanguageHeader(last_pref_accept_language_); pref_accept_language_.MoveToThread( - web::WebThread::GetTaskRunnerForThread(web::WebThread::IO)); + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO})); } IOSChromeHttpUserAgentSettings::~IOSChromeHttpUserAgentSettings() {
diff --git a/ios/chrome/browser/net/ios_chrome_network_delegate.cc b/ios/chrome/browser/net/ios_chrome_network_delegate.cc index 043f29c..22f0f05 100644 --- a/ios/chrome/browser/net/ios_chrome_network_delegate.cc +++ b/ios/chrome/browser/net/ios_chrome_network_delegate.cc
@@ -14,9 +14,11 @@ #include "base/metrics/histogram.h" #include "base/metrics/histogram_functions.h" #include "base/path_service.h" +#include "base/task/post_task.h" #include "components/prefs/pref_member.h" #include "components/prefs/pref_service.h" #include "ios/chrome/browser/pref_names.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/base/load_flags.h" #include "net/base/net_errors.h" @@ -69,7 +71,7 @@ if (enable_do_not_track) { enable_do_not_track->Init(prefs::kEnableDoNotTrack, pref_service); enable_do_not_track->MoveToThread( - web::WebThread::GetTaskRunnerForThread(web::WebThread::IO)); + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO})); } }
diff --git a/ios/chrome/browser/net/ios_chrome_url_request_context_getter.cc b/ios/chrome/browser/net/ios_chrome_url_request_context_getter.cc index c807bea..c895298d 100644 --- a/ios/chrome/browser/net/ios_chrome_url_request_context_getter.cc +++ b/ios/chrome/browser/net/ios_chrome_url_request_context_getter.cc
@@ -7,8 +7,10 @@ #include "base/bind.h" #include "base/compiler_specific.h" #include "base/macros.h" +#include "base/task/post_task.h" #include "ios/chrome/browser/browser_state/chrome_browser_state_io_data.h" #include "ios/chrome/browser/ios_chrome_io_thread.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/cookies/cookie_store.h" @@ -117,7 +119,7 @@ scoped_refptr<base::SingleThreadTaskRunner> IOSChromeURLRequestContextGetter::GetNetworkTaskRunner() const { - return web::WebThread::GetTaskRunnerForThread(web::WebThread::IO); + return base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO}); } // static
diff --git a/ios/chrome/browser/omaha/omaha_service.mm b/ios/chrome/browser/omaha/omaha_service.mm index 782ee56..4da5643 100644 --- a/ios/chrome/browser/omaha/omaha_service.mm +++ b/ios/chrome/browser/omaha/omaha_service.mm
@@ -19,6 +19,7 @@ #include "base/strings/sys_string_conversions.h" #include "base/strings/utf_string_conversions.h" #include "base/sys_info.h" +#include "base/task/post_task.h" #include "base/time/time.h" #include "base/values.h" #include "components/metrics/metrics_pref_names.h" @@ -35,6 +36,7 @@ #include "ios/public/provider/chrome/browser/chrome_browser_provider.h" #include "ios/public/provider/chrome/browser/omaha/omaha_service_provider.h" #include "ios/public/provider/chrome/browser/omaha/omaha_xml_writer.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "libxml/xmlwriter.h" #include "net/base/backoff_entry.h" @@ -302,7 +304,7 @@ DCHECK(!result->request_context_getter_); result->request_context_getter_ = request_context_getter; result->locale_lang_ = GetApplicationContext()->GetApplicationLocale(); - web::WebThread::PostTask(web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::IO}, base::Bind(&OmahaService::SendOrScheduleNextPing, base::Unretained(result))); } @@ -386,8 +388,8 @@ // static void OmahaService::GetDebugInformation( const base::Callback<void(base::DictionaryValue*)> callback) { - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::Bind(&OmahaService::GetDebugInformationOnIOThread, base::Unretained(GetInstance()), callback)); } @@ -630,8 +632,8 @@ // Send notification for updates if needed. UpgradeRecommendedDetails* details = [delegate upgradeRecommendedDetails]; if (details) { - web::WebThread::PostTask( - web::WebThread::UI, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, base::Bind(upgrade_recommended_callback_, *details)); } } @@ -661,7 +663,7 @@ (timer_.desired_run_time() - base::TimeTicks::Now()))); // Sending the value to the callback. - web::WebThread::PostTask(web::WebThread::UI, FROM_HERE, + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::UI}, base::Bind(callback, base::Owned(result.release()))); }
diff --git a/ios/chrome/browser/share_extension/share_extension_item_receiver.mm b/ios/chrome/browser/share_extension/share_extension_item_receiver.mm index 507cc48..99ce9f4 100644 --- a/ios/chrome/browser/share_extension/share_extension_item_receiver.mm +++ b/ios/chrome/browser/share_extension/share_extension_item_receiver.mm
@@ -21,6 +21,7 @@ #include "components/reading_list/core/reading_list_model_observer.h" #include "ios/chrome/browser/experimental_flags.h" #include "ios/chrome/common/app_group/app_group_constants.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #import "net/base/mac/url_conversions.h" #include "url/gurl.h" @@ -179,7 +180,7 @@ } __weak ShareExtensionItemReceiver* weakSelf = self; - web::WebThread::PostTask(web::WebThread::UI, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ [weakSelf readingListFolderCreated]; })); } @@ -276,7 +277,7 @@ })); } }; - web::WebThread::PostTask(web::WebThread::UI, FROM_HERE, + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::UI}, base::BindOnce(processEntryBlock)); return YES; } @@ -370,7 +371,7 @@ if ([files count]) { __weak ShareExtensionItemReceiver* weakSelf = self; - web::WebThread::PostTask(web::WebThread::UI, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ [weakSelf entriesReceived:files]; })); } @@ -389,8 +390,8 @@ _taskRunner->PostTask(FROM_HERE, base::BindOnce(^{ [weakSelf handleFileAtURL:fileURL withCompletion:^{ - web::WebThread::PostTask( - web::WebThread::UI, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ batchToken.reset(); }));
diff --git a/ios/chrome/browser/sync/glue/sync_start_util.cc b/ios/chrome/browser/sync/glue/sync_start_util.cc index c8211cb7..3ab5672 100644 --- a/ios/chrome/browser/sync/glue/sync_start_util.cc +++ b/ios/chrome/browser/sync/glue/sync_start_util.cc
@@ -7,12 +7,14 @@ #include "base/bind.h" #include "base/files/file_path.h" #include "base/location.h" +#include "base/task/post_task.h" #include "components/browser_sync/profile_sync_service.h" #include "components/sync/driver/sync_service.h" #include "ios/chrome/browser/application_context.h" #include "ios/chrome/browser/browser_state/chrome_browser_state.h" #include "ios/chrome/browser/browser_state/chrome_browser_state_manager.h" #include "ios/chrome/browser/sync/profile_sync_service_factory.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" namespace ios { @@ -46,8 +48,8 @@ void StartSyncProxy(const base::FilePath& browser_state_path, syncer::ModelType type) { - web::WebThread::PostTask( - web::WebThread::UI, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, base::Bind(&StartSyncOnUIThread, browser_state_path, type)); }
diff --git a/ios/chrome/browser/sync/ios_chrome_sync_client.mm b/ios/chrome/browser/sync/ios_chrome_sync_client.mm index c485c80..421a5a4 100644 --- a/ios/chrome/browser/sync/ios_chrome_sync_client.mm +++ b/ios/chrome/browser/sync/ios_chrome_sync_client.mm
@@ -11,6 +11,7 @@ #include "base/feature_list.h" #include "base/logging.h" #include "base/macros.h" +#include "base/task/post_task.h" #include "components/autofill/core/browser/webdata/autocomplete_sync_bridge.h" #include "components/autofill/core/browser/webdata/autofill_profile_sync_bridge.h" #include "components/autofill/core/browser/webdata/autofill_profile_syncable_service.h" @@ -71,6 +72,7 @@ #include "ios/chrome/browser/undo/bookmark_undo_service_factory.h" #include "ios/chrome/browser/web_data_service_factory.h" #include "ios/chrome/common/channel_info.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "ui/base/device_form_factor.h" @@ -182,8 +184,9 @@ this, ::GetChannel(), ::GetVersionString(), ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET, prefs::kSavingBrowserHistoryDisabled, - web::WebThread::GetTaskRunnerForThread(web::WebThread::UI), db_thread_, - profile_web_data_service_, account_web_data_service_, password_store_, + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::UI}), + db_thread_, profile_web_data_service_, account_web_data_service_, + password_store_, ios::BookmarkSyncServiceFactory::GetForBrowserState(browser_state_))); } } @@ -393,7 +396,7 @@ return nullptr; case syncer::GROUP_UI: return new syncer::UIModelWorker( - web::WebThread::GetTaskRunnerForThread(web::WebThread::UI)); + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::UI})); case syncer::GROUP_PASSIVE: return new syncer::PassiveModelWorker(); case syncer::GROUP_HISTORY: { @@ -402,7 +405,7 @@ return nullptr; return new browser_sync::HistoryModelWorker( history_service->AsWeakPtr(), - web::WebThread::GetTaskRunnerForThread(web::WebThread::UI)); + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::UI})); } case syncer::GROUP_PASSWORD: { if (!password_store_)
diff --git a/ios/chrome/browser/sync/profile_sync_service_factory.cc b/ios/chrome/browser/sync/profile_sync_service_factory.cc index a23f2b4..3a4bc200 100644 --- a/ios/chrome/browser/sync/profile_sync_service_factory.cc +++ b/ios/chrome/browser/sync/profile_sync_service_factory.cc
@@ -7,6 +7,7 @@ #include <utility> #include "base/memory/singleton.h" +#include "base/task/post_task.h" #include "base/time/time.h" #include "components/browser_sync/profile_sync_service.h" #include "components/keyed_service/ios/browser_state_dependency_manager.h" @@ -36,6 +37,7 @@ #include "ios/chrome/browser/undo/bookmark_undo_service_factory.h" #include "ios/chrome/browser/web_data_service_factory.h" #include "ios/chrome/common/channel_info.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "url/gurl.h" @@ -55,8 +57,8 @@ void UpdateNetworkTime(const base::Time& network_time, const base::TimeDelta& resolution, const base::TimeDelta& latency) { - web::WebThread::PostTask( - web::WebThread::UI, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, base::Bind(&UpdateNetworkTimeOnUIThread, network_time, resolution, latency, base::TimeTicks::Now())); }
diff --git a/ios/chrome/browser/tabs/tab_model.mm b/ios/chrome/browser/tabs/tab_model.mm index 3a7ada6..8de4094 100644 --- a/ios/chrome/browser/tabs/tab_model.mm +++ b/ios/chrome/browser/tabs/tab_model.mm
@@ -16,6 +16,7 @@ #include "base/metrics/user_metrics_action.h" #include "base/strings/sys_string_conversions.h" #include "base/task/cancelable_task_tracker.h" +#include "base/task/post_task.h" #include "components/favicon/ios/web_favicon_driver.h" #include "components/navigation_metrics/navigation_metrics.h" #include "components/sessions/core/serialized_navigation_entry.h" @@ -66,6 +67,7 @@ #import "ios/web/public/web_state/navigation_context.h" #include "ios/web/public/web_state/session_certificate_policy_cache.h" #import "ios/web/public/web_state/web_state_observer_bridge.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "url/gurl.h" @@ -838,7 +840,7 @@ // active sessions. CleanCertificatePolicyCache( &_clearPoliciesTaskTracker, - web::WebThread::GetTaskRunnerForThread(web::WebThread::IO), + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO}), web::BrowserState::GetCertificatePolicyCache(_browserState), _webStateList.get());
diff --git a/ios/chrome/browser/ui/autofill/form_input_accessory_coordinator.h b/ios/chrome/browser/ui/autofill/form_input_accessory_coordinator.h index ed38c3c..6949fa84 100644 --- a/ios/chrome/browser/ui/autofill/form_input_accessory_coordinator.h +++ b/ios/chrome/browser/ui/autofill/form_input_accessory_coordinator.h
@@ -9,7 +9,6 @@ #import "ios/web/public/web_state/web_state_observer_bridge.h" -@protocol CRWWebViewProxy; class WebStateList; // Creates and manages a custom input accessory view while the user is
diff --git a/ios/chrome/browser/ui/autofill/form_input_accessory_coordinator.mm b/ios/chrome/browser/ui/autofill/form_input_accessory_coordinator.mm index 5f71dfa..55ab424 100644 --- a/ios/chrome/browser/ui/autofill/form_input_accessory_coordinator.mm +++ b/ios/chrome/browser/ui/autofill/form_input_accessory_coordinator.mm
@@ -8,42 +8,117 @@ #import "components/autofill/ios/browser/js_suggestion_manager.h" #import "ios/chrome/browser/autofill/form_input_accessory_view_controller.h" #import "ios/chrome/browser/ui/autofill/form_input_accessory_mediator.h" +#import "ios/chrome/browser/ui/autofill/manual_fill/manual_fill_accessory_view_controller.h" +#import "ios/chrome/browser/ui/autofill/manual_fill/password_coordinator.h" #if !defined(__has_feature) || !__has_feature(objc_arc) #error "This file requires ARC support." #endif -@interface FormInputAccessoryCoordinator () - -// The View Controller for the input accessory view. -@property FormInputAccessoryViewController* formInputAccessoryViewController; +@interface FormInputAccessoryCoordinator ()< + ManualFillAccessoryViewControllerDelegate> // The Mediator for the input accessory view controller. -@property FormInputAccessoryMediator* formInputAccessoryMediator; +@property(nonatomic, strong) + FormInputAccessoryMediator* formInputAccessoryMediator; + +// The View Controller for the input accessory view. +@property(nonatomic, strong) + FormInputAccessoryViewController* formInputAccessoryViewController; + +// The manual fill accessory to show above the keyboard. +@property(nonatomic, strong) + ManualFillAccessoryViewController* manualFillAccessoryViewController; + +// The WebStateList for this instance. Used to instantiate the child +// coordinators lazily. +@property(nonatomic, assign) WebStateList* webStateList; @end @implementation FormInputAccessoryCoordinator +@synthesize formInputAccessoryMediator = _formInputAccessoryMediator; @synthesize formInputAccessoryViewController = _formInputAccessoryViewController; -@synthesize formInputAccessoryMediator = _formInputAccessoryMediator; +@synthesize manualFillAccessoryViewController = + _manualFillAccessoryViewController; +@synthesize webStateList = _webStateList; - (instancetype)initWithBaseViewController:(UIViewController*)viewController browserState: (ios::ChromeBrowserState*)browserState webStateList:(WebStateList*)webStateList { + DCHECK(browserState); + DCHECK(webStateList); self = [super initWithBaseViewController:viewController browserState:browserState]; if (self) { - DCHECK(webStateList); + _webStateList = webStateList; + _formInputAccessoryViewController = [[FormInputAccessoryViewController alloc] init]; + + _manualFillAccessoryViewController = + [[ManualFillAccessoryViewController alloc] initWithDelegate:self]; + _formInputAccessoryMediator = [[FormInputAccessoryMediator alloc] initWithConsumer:self.formInputAccessoryViewController webStateList:webStateList]; + _formInputAccessoryMediator.manualFillAccessoryViewController = + _manualFillAccessoryViewController; } return self; } +- (void)stop { + [self stopChildren]; + [self.manualFillAccessoryViewController reset]; + [self.formInputAccessoryViewController restoreKeyboardView]; +} + +#pragma mark - Presenting Children + +- (void)stopChildren { + for (ChromeCoordinator* coordinator in self.childCoordinators) { + [coordinator stop]; + } + [self.childCoordinators removeAllObjects]; +} + +- (void)startPasswords { + ManualFillPasswordCoordinator* passwordCoordinator = + [[ManualFillPasswordCoordinator alloc] + initWithBaseViewController:self.baseViewController + browserState:self.browserState + webStateList:self.webStateList]; + [self.formInputAccessoryViewController + presentView:passwordCoordinator.viewController.view]; + [self.childCoordinators addObject:passwordCoordinator]; + + [self.formInputAccessoryMediator disableSuggestions]; +} + +#pragma mark - ManualFillAccessoryViewControllerDelegate + +- (void)keyboardButtonPressed { + [self stopChildren]; + [self.formInputAccessoryMediator enableSuggestions]; +} + +- (void)accountButtonPressed { + [self stopChildren]; + // TODO(crbug.com/845472): implement. +} + +- (void)cardButtonPressed { + [self stopChildren]; + // TODO(crbug.com/845472): implement. +} + +- (void)passwordButtonPressed { + [self stopChildren]; + [self startPasswords]; +} + @end
diff --git a/ios/chrome/browser/ui/autofill/form_input_accessory_mediator.h b/ios/chrome/browser/ui/autofill/form_input_accessory_mediator.h index c7905b53..91c18e1 100644 --- a/ios/chrome/browser/ui/autofill/form_input_accessory_mediator.h +++ b/ios/chrome/browser/ui/autofill/form_input_accessory_mediator.h
@@ -11,9 +11,11 @@ #import "ios/chrome/browser/web_state_list/web_state_list_observer_bridge.h" #import "ios/web/public/web_state/web_state_observer_bridge.h" +@class ChromeCoordinator; @protocol FormInputAccessoryConsumer; @protocol FormInputAccessoryViewProvider; @class JsSuggestionManager; +@class ManualFillAccessoryViewController; class WebStateList; namespace web { class WebState; @@ -24,6 +26,11 @@ // accessory view shoeuld be restored to the system default. @interface FormInputAccessoryMediator : NSObject +// The manual fill accessory view controller to add at the end of the +// suggestions. +@property(nonatomic, weak) + ManualFillAccessoryViewController* manualFillAccessoryViewController; + // Returns a mediator observing the passed `WebStateList` and associated with // the passed consumer. `webSateList` can be nullptr and `consumer` can be nil. - (instancetype)initWithConsumer:(id<FormInputAccessoryConsumer>)consumer @@ -32,6 +39,14 @@ // Unavailable, use initWithConsumer:webStateList: instead. - (instancetype)init NS_UNAVAILABLE; +// Disables suggestions updates and asks the consumer to remove the current +// ones. +- (void)disableSuggestions; + +// Enables suggestions updates and sends the current ones, if any, to the +// consumer. +- (void)enableSuggestions; + @end // Methods to allow injection in tests.
diff --git a/ios/chrome/browser/ui/autofill/form_input_accessory_mediator.mm b/ios/chrome/browser/ui/autofill/form_input_accessory_mediator.mm index 7f9e24c..27da640 100644 --- a/ios/chrome/browser/ui/autofill/form_input_accessory_mediator.mm +++ b/ios/chrome/browser/ui/autofill/form_input_accessory_mediator.mm
@@ -7,6 +7,7 @@ #include "base/ios/block_types.h" #include "base/mac/foundation_util.h" #include "base/mac/scoped_block.h" +#include "components/autofill/core/common/autofill_features.h" #import "components/autofill/ios/browser/js_suggestion_manager.h" #import "components/autofill/ios/form_util/form_activity_observer_bridge.h" #include "components/autofill/ios/form_util/form_activity_params.h" @@ -14,7 +15,10 @@ #import "ios/chrome/browser/autofill/form_input_accessory_view_handler.h" #import "ios/chrome/browser/autofill/form_input_accessory_view_provider.h" #import "ios/chrome/browser/autofill/form_suggestion_tab_helper.h" +#import "ios/chrome/browser/autofill/form_suggestion_view.h" #import "ios/chrome/browser/passwords/password_generation_utils.h" +#import "ios/chrome/browser/ui/autofill/manual_fill/manual_fill_accessory_view_controller.h" +#import "ios/chrome/browser/ui/coordinators/chrome_coordinator.h" #include "ios/chrome/browser/ui/ui_util.h" #import "ios/chrome/browser/web_state_list/web_state_list.h" #import "ios/web/public/url_scheme_util.h" @@ -28,11 +32,6 @@ @interface FormInputAccessoryMediator ()<FormActivityObserver, CRWWebStateObserver, WebStateListObserving> -@property(nonatomic, strong) - FormInputAccessoryViewHandler* formInputAccessoryHandler; - -// The WebState this instance is observing. Can be null. -@property(nonatomic, assign) web::WebState* webState; // The JS manager for interacting with the underlying form. @property(nonatomic, weak) JsSuggestionManager* JSSuggestionManager; @@ -43,11 +42,27 @@ // The object that manages the currently-shown custom accessory view. @property(nonatomic, weak) id<FormInputAccessoryViewProvider> currentProvider; +// The form input handler. This is in charge of form navigation. +@property(nonatomic, strong) + FormInputAccessoryViewHandler* formInputAccessoryHandler; + +// Last seen provider. Used to reenable suggestions. +@property(nonatomic, weak) id<FormInputAccessoryViewProvider> lastProvider; + +// Last seen suggestions. Used to reenable suggestions. +@property(nonatomic, strong) UIView* lastSuggestionView; + +// Whether suggestions are disabled. +@property(nonatomic, assign) BOOL suggestionsDisabled; + // The objects that can provide a custom input accessory view while filling // forms. @property(nonatomic, copy) NSArray<id<FormInputAccessoryViewProvider>>* providers; +// The WebState this instance is observing. Can be null. +@property(nonatomic, assign) web::WebState* webState; + @end @implementation FormInputAccessoryMediator { @@ -73,7 +88,12 @@ @synthesize currentProvider = _currentProvider; @synthesize formInputAccessoryHandler = _formInputAccessoryHandler; @synthesize JSSuggestionManager = _JSSuggestionManager; +@synthesize lastProvider = _lastProvider; +@synthesize lastSuggestionView = _lastSuggestionView; +@synthesize manualFillAccessoryViewController = + _manualFillAccessoryViewController; @synthesize providers = _providers; +@synthesize suggestionsDisabled = _suggestionsDisabled; @synthesize webState = _webState; - (instancetype)initWithConsumer:(id<FormInputAccessoryConsumer>)consumer @@ -199,6 +219,32 @@ [self updateWithNewWebState:newWebState]; } +#pragma mark - Public + +- (void)disableSuggestions { + self.suggestionsDisabled = YES; + [self updateWithProvider:nil suggestionView:nil]; +} + +- (void)enableSuggestions { + self.suggestionsDisabled = NO; + if (self.lastProvider && self.lastSuggestionView) { + [self updateWithProvider:self.lastProvider + suggestionView:self.lastSuggestionView]; + } +} + +#pragma mark - Setters + +- (void)setCurrentProvider:(id<FormInputAccessoryViewProvider>)currentProvider { + if (_currentProvider == currentProvider) { + return; + } + [_currentProvider inputAccessoryViewControllerDidReset]; + _currentProvider = currentProvider; + [_currentProvider setAccessoryViewDelegate:self.formInputAccessoryHandler]; +} + #pragma mark - Private // Updates the accessory mediator with the passed web state, its JS suggestion @@ -227,11 +273,12 @@ } } -// Resets the current provider, the handler and the consumer to a clean state. +// Resets the current provider, the consumer view and the navigation handler. As +// well as reenables suggestions. - (void)reset { - [self.consumer restoreDefaultInputAccessoryView]; + [self.consumer restoreKeyboardView]; + self.suggestionsDisabled = NO; - [self.currentProvider inputAccessoryViewControllerDidReset]; self.currentProvider = nil; [self.formInputAccessoryHandler reset]; @@ -242,6 +289,10 @@ - (void)retrieveAccessoryViewForForm:(const autofill::FormActivityParams&)params webState:(web::WebState*)webState { DCHECK_EQ(webState, self.webState); + + // TODO(crbug.com/845472): refactor this overly complex code. There is + // always at max one provider in _providers. + // Build a block for each provider that will invoke its completion with YES // if the provider can provide an accessory view for the specified form/field // and NO otherwise. @@ -255,13 +306,11 @@ // Run all the blocks in |findProviderBlocks| until one invokes its // completion with YES. The first one to do so will be passed to // |onProviderFound|. - __weak __typeof(self) weakSelf = self; - passwords::RunSearchPipeline(findProviderBlocks, ^(NSUInteger providerIndex) { - // If no view was retrieved, reset self. - if (providerIndex == NSNotFound) { - [weakSelf reset]; - } - }); + passwords::RunSearchPipeline(findProviderBlocks, ^(NSUInteger providerIndex){ + // No need to do anything if no suggestions + // are found. The provider will + // update with an empty suggestions array. + }); } // Returns a pipeline block used to search for a provider with the current form @@ -297,21 +346,46 @@ // Once the view is retrieved, tell the pipeline to stop and // update the UI. completion(YES); - FormInputAccessoryMediator* strongSelf = weakSelf; - if (!strongSelf) { - return; - } - if (strongSelf.currentProvider != provider) { - [strongSelf.currentProvider inputAccessoryViewControllerDidReset]; - } - strongSelf.currentProvider = provider; - [provider setAccessoryViewDelegate:strongSelf.formInputAccessoryHandler]; - [strongSelf.consumer - showCustomInputAccessoryView:accessoryView - navigationDelegate:strongSelf.formInputAccessoryHandler]; + [weakSelf updateWithProvider:provider suggestionView:accessoryView]; }; } +// Post the passed |suggestionView| to the consumer. In case suggestions are +// disabled, it's keep for later. +- (void)updateWithProvider:(id<FormInputAccessoryViewProvider>)provider + suggestionView:(UIView*)suggestionView { + // If the povider is valid, save the view and the provider for later. This is + // used to restore the state when re-enabling suggestions. + if (provider) { + self.lastSuggestionView = suggestionView; + self.lastProvider = provider; + } + // If the suggestions are disabled, post this view with no suggestions to the + // consumer. This allows the navigation buttons be in sync. + UIView* consumerView = suggestionView; + if (self.suggestionsDisabled) { + consumerView = [[FormSuggestionView alloc] initWithFrame:CGRectZero + client:nil + suggestions:@[]]; + } else { + // If suggestions are enabled update |currentProvider|. + self.currentProvider = provider; + } + // If Manual Fallback is enabled, add its view after the suggestions. + BOOL isManualFillEnabled = + base::FeatureList::IsEnabled(autofill::features::kAutofillManualFallback); + if (isManualFillEnabled) { + FormSuggestionView* formSuggestionView = + base::mac::ObjCCast<FormSuggestionView>(consumerView); + formSuggestionView.trailingView = + self.manualFillAccessoryViewController.view; + } + + // Post it to the consumer. + [self.consumer showCustomInputAccessoryView:consumerView + navigationDelegate:self.formInputAccessoryHandler]; +} + // When any text field or text view (e.g. omnibox, settings, card unmask dialog) // begins editing, reset ourselves so that we don't present our custom view over // the keyboard.
diff --git a/ios/chrome/browser/ui/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view_controller.mm index 8a682d4..9d0000445 100644 --- a/ios/chrome/browser/ui/browser_view_controller.mm +++ b/ios/chrome/browser/ui/browser_view_controller.mm
@@ -4096,7 +4096,7 @@ [self updateForFullscreenProgress:1.0]; } -- (void)finishFullscreenScrollWithAnimator:(FullscreenAnimator*)animator { +- (void)animateFullscreenWithAnimator:(FullscreenAnimator*)animator { // If the headers are being hidden, it's possible that this will reveal a // portion of the webview beyond the top of the page's rendered content. In // order to prevent that, update the top padding and content before the @@ -4132,22 +4132,6 @@ }]; } -- (void)scrollFullscreenToTopWithAnimator:(FullscreenAnimator*)animator { - CGFloat finalProgress = animator.finalProgress; - [animator addAnimations:^{ - [self updateHeadersForFullscreenProgress:finalProgress]; - [self updateFootersForFullscreenProgress:finalProgress]; - [self updateBrowserViewportForFullscreenProgress:finalProgress]; - }]; -} - -- (void)showToolbarWithAnimator:(FullscreenAnimator*)animator { - CGFloat finalProgress = animator.finalProgress; - [animator addAnimations:^{ - [self updateForFullscreenProgress:finalProgress]; - }]; -} - #pragma mark - FullscreenUIElement helpers // Translates the header views up and down according to |progress|, where a
diff --git a/ios/chrome/browser/ui/chrome_web_view_factory.mm b/ios/chrome/browser/ui/chrome_web_view_factory.mm index 61afbf4..70f460d 100644 --- a/ios/chrome/browser/ui/chrome_web_view_factory.mm +++ b/ios/chrome/browser/ui/chrome_web_view_factory.mm
@@ -8,9 +8,11 @@ #include "base/base64.h" #include "base/logging.h" +#include "base/task/post_task.h" #include "ios/chrome/browser/browser_state/chrome_browser_state.h" #include "ios/web/net/request_group_util.h" #include "ios/web/net/request_tracker_impl.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/cookies/cookie_store.h" #include "net/url_request/url_request_context.h" @@ -125,8 +127,8 @@ fromTime:(base::Time)deleteBegin toTime:(base::Time)deleteEnd { DCHECK(contextGetter.get()); - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::Bind(&ClearCookiesOnIOThread, base::RetainedRef(contextGetter), net::CookieDeletionInfo::TimeRange(deleteBegin, deleteEnd))); }
diff --git a/ios/chrome/browser/ui/contextual_search/contextual_search_delegate.cc b/ios/chrome/browser/ui/contextual_search/contextual_search_delegate.cc index 8885d55..efeaafb 100644 --- a/ios/chrome/browser/ui/contextual_search/contextual_search_delegate.cc +++ b/ios/chrome/browser/ui/contextual_search/contextual_search_delegate.cc
@@ -13,6 +13,7 @@ #include "base/strings/string_number_conversions.h" #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" +#include "base/task/post_task.h" #include "components/google/core/common/google_util.h" #include "components/search_engines/template_url_service.h" #include "components/search_engines/util.h" @@ -21,6 +22,7 @@ #include "ios/chrome/browser/browser_state/chrome_browser_state.h" #include "ios/chrome/browser/search_engines/template_url_service_factory.h" #include "ios/chrome/browser/ui/contextual_search/protos/client_discourse_context.pb.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/base/escape.h" #include "net/base/url_util.h" @@ -132,8 +134,8 @@ StartPendingSearchTermRequest(); } else { base::TimeDelta delay = last_request_startup_time_ + interval - now; - web::WebThread::PostDelayedTask( - web::WebThread::UI, FROM_HERE, + base::PostDelayedTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, base::Bind(&ContextualSearchDelegate::StartPendingSearchTermRequest, weak_ptr_factory_.GetWeakPtr()), delay);
diff --git a/ios/chrome/browser/ui/fullscreen/fullscreen_controller_observer.h b/ios/chrome/browser/ui/fullscreen/fullscreen_controller_observer.h index b80d6f0..69a2718 100644 --- a/ios/chrome/browser/ui/fullscreen/fullscreen_controller_observer.h +++ b/ios/chrome/browser/ui/fullscreen/fullscreen_controller_observer.h
@@ -29,28 +29,11 @@ virtual void FullscreenEnabledStateChanged(FullscreenController* controller, bool enabled) {} - // Invoked when a scroll event being observed by |controller| has ended. - // Observers can add animations to |animator|. - virtual void FullscreenScrollEventEnded(FullscreenController* controller, - FullscreenAnimator* animator) {} - - // Invoked to scroll the main content view to the top. FullscreenUIElements - // are expected add animations that scroll the content to the top and fully - // show the toolbar. - virtual void FullscreenWillScrollToTop(FullscreenController* controller, - FullscreenAnimator* animator) {} - - // Invoked when the application is about to enter the foreground. - // FullscreenUIElements are expected to add animations to |animator| to show - // the toolbar. - virtual void FullscreenWillEnterForeground(FullscreenController* controller, - FullscreenAnimator* animator) {} - - // Invoked when FullscreenController::ResetModel() is called. - // FullscreenUIElements are expected to add animations to |animator| to show - // the toolbar. - virtual void FullscreenModelWasReset(FullscreenController* controller, - FullscreenAnimator* animator) {} + // Invoked when |controller| is about to start an animation with |animator|. + // Observers are expected to add animations to update UI for |animator|'s + // final progress. + virtual void FullscreenWillAnimate(FullscreenController* controller, + FullscreenAnimator* animator) {} // Invoked before the FullscreenController service is shut down. virtual void FullscreenControllerWillShutDown(
diff --git a/ios/chrome/browser/ui/fullscreen/fullscreen_mediator.h b/ios/chrome/browser/ui/fullscreen/fullscreen_mediator.h index 7fd99048..3852866 100644 --- a/ios/chrome/browser/ui/fullscreen/fullscreen_mediator.h +++ b/ios/chrome/browser/ui/fullscreen/fullscreen_mediator.h
@@ -63,12 +63,9 @@ void FullscreenModelScrollEventEnded(FullscreenModel* model) override; void FullscreenModelWasReset(FullscreenModel* model) override; - // Sets up |animator_| with |style|. - void SetUpAnimator(FullscreenAnimatorStyle style); - - // Starts |animator+| if it has animations to run. |animator_| will be reset - // if no animations have been added. - void StartAnimator(); + // Sets up |animator_| with |style|, notifies FullscreenControllerObservers, + // and starts the animation. + void AnimateWithStyle(FullscreenAnimatorStyle style); // Stops the current scroll end animation if one is in progress. If // |update_model| is true, the FullscreenModel will be updated with the active
diff --git a/ios/chrome/browser/ui/fullscreen/fullscreen_mediator.mm b/ios/chrome/browser/ui/fullscreen/fullscreen_mediator.mm index a7793b2..c2442b3 100644 --- a/ios/chrome/browser/ui/fullscreen/fullscreen_mediator.mm +++ b/ios/chrome/browser/ui/fullscreen/fullscreen_mediator.mm
@@ -37,50 +37,20 @@ } void FullscreenMediator::ScrollToTop() { - FullscreenAnimatorStyle scrollToTopStyle = - FullscreenAnimatorStyle::EXIT_FULLSCREEN; - if (animator_ && animator_.style == scrollToTopStyle) - return; - StopAnimating(true); - - SetUpAnimator(scrollToTopStyle); - for (auto& observer : observers_) { - observer.FullscreenWillScrollToTop(controller_, animator_); - } - StartAnimator(); + AnimateWithStyle(FullscreenAnimatorStyle::EXIT_FULLSCREEN); } void FullscreenMediator::WillEnterForeground() { - FullscreenAnimatorStyle enterForegroundStyle = - FullscreenAnimatorStyle::EXIT_FULLSCREEN; - if (animator_ && animator_.style == enterForegroundStyle) - return; - StopAnimating(true); - - SetUpAnimator(enterForegroundStyle); - for (auto& observer : observers_) { - observer.FullscreenWillEnterForeground(controller_, animator_); - } - StartAnimator(); + AnimateWithStyle(FullscreenAnimatorStyle::EXIT_FULLSCREEN); } void FullscreenMediator::AnimateModelReset() { - FullscreenAnimatorStyle resetStyle = FullscreenAnimatorStyle::EXIT_FULLSCREEN; - if (animator_ && animator_.style == resetStyle) - return; - StopAnimating(true); - - SetUpAnimator(resetStyle); - for (auto& observer : observers_) { - observer.FullscreenModelWasReset(controller_, animator_); - } - // Instruct the model to ignore the remainder of the current scroll when // starting this animator. This prevents the toolbar from immediately being // hidden if AnimateModelReset() is called while a scroll view is // decelerating. model_->IgnoreRemainderOfCurrentScroll(); - StartAnimator(); + AnimateWithStyle(FullscreenAnimatorStyle::EXIT_FULLSCREEN); } void FullscreenMediator::Disconnect() { @@ -132,18 +102,9 @@ void FullscreenMediator::FullscreenModelScrollEventEnded( FullscreenModel* model) { DCHECK_EQ(model_, model); - FullscreenAnimatorStyle scrollEndStyle = - model_->progress() >= 0.5 ? FullscreenAnimatorStyle::EXIT_FULLSCREEN - : FullscreenAnimatorStyle::ENTER_FULLSCREEN; - if (animator_ && animator_.style == scrollEndStyle) - return; - StopAnimating(true); - - SetUpAnimator(scrollEndStyle); - for (auto& observer : observers_) { - observer.FullscreenScrollEventEnded(controller_, animator_); - } - StartAnimator(); + AnimateWithStyle(model_->progress() >= 0.5 + ? FullscreenAnimatorStyle::EXIT_FULLSCREEN + : FullscreenAnimatorStyle::ENTER_FULLSCREEN); } void FullscreenMediator::FullscreenModelWasReset(FullscreenModel* model) { @@ -159,8 +120,13 @@ [resizer_ updateForFullscreenProgress:model_->progress()]; } -void FullscreenMediator::SetUpAnimator(FullscreenAnimatorStyle style) { +void FullscreenMediator::AnimateWithStyle(FullscreenAnimatorStyle style) { + if (animator_ && animator_.style == style) + return; + StopAnimating(true); DCHECK(!animator_); + + // Create the animator and set up its completion block. animator_ = [[FullscreenAnimator alloc] initWithStartProgress:model_->progress() style:style]; @@ -175,9 +141,12 @@ [resizer_ updateForFullscreenProgress:animator_.finalProgress]; animator_ = nil; }]; -} -void FullscreenMediator::StartAnimator() { + // Notify observers that the animation will occur. + for (auto& observer : observers_) { + observer.FullscreenWillAnimate(controller_, animator_); + } + // Only start the animator if animations have been added and it has a non-zero // progress change. if (animator_.hasAnimations &&
diff --git a/ios/chrome/browser/ui/fullscreen/fullscreen_ui_element.h b/ios/chrome/browser/ui/fullscreen/fullscreen_ui_element.h index 96cb5ed..9a7869a1 100644 --- a/ios/chrome/browser/ui/fullscreen/fullscreen_ui_element.h +++ b/ios/chrome/browser/ui/fullscreen/fullscreen_ui_element.h
@@ -23,18 +23,9 @@ // value of 1.0. - (void)updateForFullscreenEnabled:(BOOL)enabled; -// Called when a fullscreen scroll event has finished. UI elements that react -// to fullscreen events can configure |animator| with animations. -- (void)finishFullscreenScrollWithAnimator:(FullscreenAnimator*)animator; - -// Called when a scroll-to-top animation is triggered. UI elements that react -// to fullscreen events can configure |animator| with animations. -- (void)scrollFullscreenToTopWithAnimator:(FullscreenAnimator*)animator; - -// Called to show the toolbar. This occurs when the app is foregrounded, or -// when promped by FullscreenController::ResetModel(). UI elements that react -// to fullscreen events can configure |animator| with aniamtions. -- (void)showToolbarWithAnimator:(FullscreenAnimator*)animator; +// Called when fullscreen is about to initate an animation. UI elements that +// react to fullscreen events should configure |animator| with animations. +- (void)animateFullscreenWithAnimator:(FullscreenAnimator*)animator; @end
diff --git a/ios/chrome/browser/ui/fullscreen/fullscreen_ui_updater.h b/ios/chrome/browser/ui/fullscreen/fullscreen_ui_updater.h index 1f61e45..66ace8da 100644 --- a/ios/chrome/browser/ui/fullscreen/fullscreen_ui_updater.h +++ b/ios/chrome/browser/ui/fullscreen/fullscreen_ui_updater.h
@@ -22,14 +22,8 @@ CGFloat progress) override; void FullscreenEnabledStateChanged(FullscreenController* controller, bool enabled) override; - void FullscreenScrollEventEnded(FullscreenController* controller, - FullscreenAnimator* animator) override; - void FullscreenWillScrollToTop(FullscreenController* controller, - FullscreenAnimator* animator) override; - void FullscreenWillEnterForeground(FullscreenController* controller, - FullscreenAnimator* animator) override; - void FullscreenModelWasReset(FullscreenController* controller, - FullscreenAnimator* animator) override; + void FullscreenWillAnimate(FullscreenController* controller, + FullscreenAnimator* animator) override; // The UI element being updated by this observer. __weak id<FullscreenUIElement> ui_element_;
diff --git a/ios/chrome/browser/ui/fullscreen/fullscreen_ui_updater.mm b/ios/chrome/browser/ui/fullscreen/fullscreen_ui_updater.mm index 4c40b2ea..a604571 100644 --- a/ios/chrome/browser/ui/fullscreen/fullscreen_ui_updater.mm +++ b/ios/chrome/browser/ui/fullscreen/fullscreen_ui_updater.mm
@@ -25,26 +25,8 @@ [ui_element_ updateForFullscreenEnabled:enabled]; } -void FullscreenUIUpdater::FullscreenScrollEventEnded( +void FullscreenUIUpdater::FullscreenWillAnimate( FullscreenController* controller, FullscreenAnimator* animator) { - [ui_element_ finishFullscreenScrollWithAnimator:animator]; -} - -void FullscreenUIUpdater::FullscreenWillScrollToTop( - FullscreenController* controller, - FullscreenAnimator* animator) { - [ui_element_ scrollFullscreenToTopWithAnimator:animator]; -} - -void FullscreenUIUpdater::FullscreenWillEnterForeground( - FullscreenController* controller, - FullscreenAnimator* animator) { - [ui_element_ showToolbarWithAnimator:animator]; -} - -void FullscreenUIUpdater::FullscreenModelWasReset( - FullscreenController* controller, - FullscreenAnimator* animator) { - [ui_element_ showToolbarWithAnimator:animator]; + [ui_element_ animateFullscreenWithAnimator:animator]; }
diff --git a/ios/chrome/browser/ui/fullscreen/fullscreen_ui_updater_unittest.mm b/ios/chrome/browser/ui/fullscreen/fullscreen_ui_updater_unittest.mm index 95f010c..b2b3ed8 100644 --- a/ios/chrome/browser/ui/fullscreen/fullscreen_ui_updater_unittest.mm +++ b/ios/chrome/browser/ui/fullscreen/fullscreen_ui_updater_unittest.mm
@@ -35,15 +35,7 @@ _enabled = enabled; } -- (void)finishFullscreenScrollWithAnimator:(FullscreenAnimator*)animator { - _animator = animator; -} - -- (void)scrollFullscreenToTopWithAnimator:(FullscreenAnimator*)animator { - _animator = animator; -} - -- (void)showToolbarWithAnimator:(FullscreenAnimator*)animator { +- (void)animateFullscreenWithAnimator:(FullscreenAnimator*)animator { _animator = animator; } @@ -92,6 +84,6 @@ FullscreenAnimator* const kAnimator = [[FullscreenAnimator alloc] initWithStartProgress:0.0 style:FullscreenAnimatorStyle::ENTER_FULLSCREEN]; - observer()->FullscreenScrollEventEnded(nullptr, kAnimator); + observer()->FullscreenWillAnimate(nullptr, kAnimator); EXPECT_EQ(element().animator, kAnimator); }
diff --git a/ios/chrome/browser/ui/fullscreen/fullscreen_web_state_observer_unittest.mm b/ios/chrome/browser/ui/fullscreen/fullscreen_web_state_observer_unittest.mm index 35a21caf..1e057cd 100644 --- a/ios/chrome/browser/ui/fullscreen/fullscreen_web_state_observer_unittest.mm +++ b/ios/chrome/browser/ui/fullscreen/fullscreen_web_state_observer_unittest.mm
@@ -63,12 +63,12 @@ TEST_F(FullscreenWebStateObserverTest, ResetForNavigation) { // Simulate a scroll to 0.5 progress. SimulateFullscreenUserScrollForProgress(&model(), 0.5); - EXPECT_EQ(model().progress(), 0.5); + EXPECT_EQ(0.5, model().progress()); // Simulate a navigation. web::FakeNavigationContext context; web_state().OnNavigationFinished(&context); EXPECT_FALSE(model().has_base_offset()); - EXPECT_EQ(model().progress(), 1.0); + EXPECT_EQ(1.0, model().progress()); } // Tests that the FullscreenModel is not reset for same-document navigations @@ -81,12 +81,12 @@ model().SetYContentOffset(0.0); // Simulate a scroll to 0.5 progress. SimulateFullscreenUserScrollForProgress(&model(), 0.5); - EXPECT_EQ(model().progress(), 0.5); + EXPECT_EQ(0.5, model().progress()); // Simulate a same-document navigation to the same URL and verify that the 0.5 // progress hasn't been reset to 1.0. context.SetIsSameDocument(true); web_state().OnNavigationFinished(&context); - EXPECT_EQ(model().progress(), 0.5); + EXPECT_EQ(0.5, model().progress()); } // Tests that the FullscreenModel is not reset for a same-document navigation. @@ -98,13 +98,13 @@ model().SetYContentOffset(0.0); // Simulate a scroll to 0.5 progress. SimulateFullscreenUserScrollForProgress(&model(), 0.5); - EXPECT_EQ(model().progress(), 0.5); + EXPECT_EQ(0.5, model().progress()); // Simulate a same-document navigation to a URL with a different fragment and // verify that the 0.5 progress hasn't been reset to 1.0. context.SetUrl(GURL("https://www.test.com#fragment")); context.SetIsSameDocument(true); web_state().OnNavigationFinished(&context); - EXPECT_EQ(model().progress(), 0.5); + EXPECT_EQ(0.5, model().progress()); } // Tests that the FullscreenModel is not reset for a same-document navigation. @@ -116,13 +116,13 @@ model().SetYContentOffset(0.0); // Simulate a scroll to 0.5 progress. SimulateFullscreenUserScrollForProgress(&model(), 0.5); - EXPECT_EQ(model().progress(), 0.5); + EXPECT_EQ(0.5, model().progress()); // Simulate a same-document navigation to a new URL and verify that the 0.5 // progress is reset to 1.0. context.SetUrl(GURL("https://www.test2.com")); context.SetIsSameDocument(true); web_state().OnNavigationFinished(&context); - EXPECT_EQ(model().progress(), 1.0); + EXPECT_EQ(1.0, model().progress()); } // Tests that the model is disabled when a load is occurring.
diff --git a/ios/chrome/browser/ui/fullscreen/test/test_fullscreen_controller_observer.h b/ios/chrome/browser/ui/fullscreen/test/test_fullscreen_controller_observer.h index 07209a7..c724276 100644 --- a/ios/chrome/browser/ui/fullscreen/test/test_fullscreen_controller_observer.h +++ b/ios/chrome/browser/ui/fullscreen/test/test_fullscreen_controller_observer.h
@@ -21,12 +21,8 @@ CGFloat progress) override; void FullscreenEnabledStateChanged(FullscreenController* controller, bool enabled) override; - void FullscreenScrollEventEnded(FullscreenController* controller, - FullscreenAnimator* animator) override; - void FullscreenWillEnterForeground(FullscreenController* controller, - FullscreenAnimator* animator) override; - void FullscreenModelWasReset(FullscreenController* controller, - FullscreenAnimator* aniamtor) override; + void FullscreenWillAnimate(FullscreenController* controller, + FullscreenAnimator* animator) override; void FullscreenControllerWillShutDown( FullscreenController* controller) override;
diff --git a/ios/chrome/browser/ui/fullscreen/test/test_fullscreen_controller_observer.mm b/ios/chrome/browser/ui/fullscreen/test/test_fullscreen_controller_observer.mm index fd228649..e28d73e 100644 --- a/ios/chrome/browser/ui/fullscreen/test/test_fullscreen_controller_observer.mm +++ b/ios/chrome/browser/ui/fullscreen/test/test_fullscreen_controller_observer.mm
@@ -23,19 +23,7 @@ enabled_ = enabled; } -void TestFullscreenControllerObserver::FullscreenScrollEventEnded( - FullscreenController* controller, - FullscreenAnimator* animator) { - animator_ = animator; -} - -void TestFullscreenControllerObserver::FullscreenWillEnterForeground( - FullscreenController* controller, - FullscreenAnimator* animator) { - animator_ = animator; -} - -void TestFullscreenControllerObserver::FullscreenModelWasReset( +void TestFullscreenControllerObserver::FullscreenWillAnimate( FullscreenController* controller, FullscreenAnimator* animator) { animator_ = animator;
diff --git a/ios/chrome/browser/ui/fullscreen/test/test_fullscreen_mediator.mm b/ios/chrome/browser/ui/fullscreen/test/test_fullscreen_mediator.mm index 6fd7a6e..a73a639a 100644 --- a/ios/chrome/browser/ui/fullscreen/test/test_fullscreen_mediator.mm +++ b/ios/chrome/browser/ui/fullscreen/test/test_fullscreen_mediator.mm
@@ -15,8 +15,8 @@ class TestNoopAnimationProvider : public FullscreenControllerObserver { public: // FullscreenControllerObserver: - void FullscreenScrollEventEnded(FullscreenController* controller, - FullscreenAnimator* animator) override { + void FullscreenWillAnimate(FullscreenController* controller, + FullscreenAnimator* animator) override { [animator addAnimations:^{ }]; }
diff --git a/ios/chrome/browser/ui/image_util/image_copier.mm b/ios/chrome/browser/ui/image_util/image_copier.mm index 5e77f97..3b4ccd35 100644 --- a/ios/chrome/browser/ui/image_util/image_copier.mm +++ b/ios/chrome/browser/ui/image_util/image_copier.mm
@@ -9,6 +9,7 @@ #import "ios/chrome/browser/ui/alert_coordinator/alert_coordinator.h" #import "ios/chrome/browser/web/image_fetch_tab_helper.h" #include "ios/chrome/grit/ios_strings.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "ui/base/l10n/l10n_util.h" @@ -106,8 +107,8 @@ }); // Delays launching alert by |kAlertDelayInMs|. - web::WebThread::PostDelayedTask( - web::WebThread::UI, FROM_HERE, base::BindOnce(^{ + base::PostDelayedTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ // Checks that the copy has not finished yet. if (callbackID == weakSelf.activeID) { [weakSelf.alertCoordinator start];
diff --git a/ios/chrome/browser/ui/location_bar/location_bar_view_controller.mm b/ios/chrome/browser/ui/location_bar/location_bar_view_controller.mm index 2337ac7..2767d7a 100644 --- a/ios/chrome/browser/ui/location_bar/location_bar_view_controller.mm +++ b/ios/chrome/browser/ui/location_bar/location_bar_view_controller.mm
@@ -191,19 +191,7 @@ [self updateForFullscreenProgress:1.0]; } -- (void)finishFullscreenScrollWithAnimator:(FullscreenAnimator*)animator { - [self addFullscreenAnimationsToAnimator:animator]; -} - -- (void)scrollFullscreenToTopWithAnimator:(FullscreenAnimator*)animator { - [self addFullscreenAnimationsToAnimator:animator]; -} - -- (void)showToolbarWithAnimator:(FullscreenAnimator*)animator { - [self addFullscreenAnimationsToAnimator:animator]; -} - -- (void)addFullscreenAnimationsToAnimator:(FullscreenAnimator*)animator { +- (void)animateFullscreenWithAnimator:(FullscreenAnimator*)animator { CGFloat finalProgress = animator.finalProgress; [animator addAnimations:^{ [self updateForFullscreenProgress:finalProgress];
diff --git a/ios/chrome/browser/ui/settings/settings_egtest.mm b/ios/chrome/browser/ui/settings/settings_egtest.mm index 7b4f107..bf91cba 100644 --- a/ios/chrome/browser/ui/settings/settings_egtest.mm +++ b/ios/chrome/browser/ui/settings/settings_egtest.mm
@@ -11,6 +11,7 @@ #include "base/bind.h" #include "base/mac/foundation_util.h" #include "base/strings/sys_string_conversions.h" +#include "base/task/post_task.h" #include "components/browsing_data/core/pref_names.h" #include "components/metrics/metrics_pref_names.h" #include "components/prefs/pref_member.h" @@ -39,6 +40,7 @@ #include "ios/web/public/test/http_server/http_server_util.h" #import "ios/web/public/test/web_view_interaction_test_util.h" #import "ios/web/public/web_state/web_state.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/ssl/channel_id_service.h" #include "net/ssl/channel_id_store.h" @@ -142,7 +144,7 @@ if (channel_id_service->channel_id_count() == 0) { // If the channel_id_count is still 0, no certs have been added yet. // Re-post this task and check again later. - web::WebThread::PostTask(web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::IO}, base::Bind(&CheckCertificate, getter, semaphore)); } else { // If certs have been added, signal the calling thread. @@ -157,8 +159,8 @@ dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); scoped_refptr<net::URLRequestContextGetter> getter = browserState->GetRequestContext(); - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::BindOnce(^{ net::ChannelIDService* channel_id_service = getter->GetURLRequestContext()->channel_id_service(); net::ChannelIDStore* channel_id_store = @@ -172,7 +174,7 @@ // The ChannelIDStore may not be loaded, so adding the new cert may not happen // immediately. This posted task signals the semaphore if the cert was added, // or re-posts itself to check again later otherwise. - web::WebThread::PostTask(web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::IO}, base::Bind(&CheckCertificate, getter, semaphore)); dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); @@ -192,8 +194,8 @@ dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); scoped_refptr<net::URLRequestContextGetter> getter = browserState->GetRequestContext(); - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::BindOnce(^{ net::ChannelIDService* channel_id_service = getter->GetURLRequestContext()->channel_id_service(); std::unique_ptr<crypto::ECPrivateKey> dummy_key;
diff --git a/ios/chrome/browser/ui/toolbar/adaptive/primary_toolbar_view_controller.mm b/ios/chrome/browser/ui/toolbar/adaptive/primary_toolbar_view_controller.mm index 7b76573..04f673fe 100644 --- a/ios/chrome/browser/ui/toolbar/adaptive/primary_toolbar_view_controller.mm +++ b/ios/chrome/browser/ui/toolbar/adaptive/primary_toolbar_view_controller.mm
@@ -185,21 +185,7 @@ [self updateForFullscreenProgress:1.0]; } -- (void)finishFullscreenScrollWithAnimator:(FullscreenAnimator*)animator { - [self addFullscreenAnimationsToAnimator:animator]; -} - -- (void)scrollFullscreenToTopWithAnimator:(FullscreenAnimator*)animator { - [self addFullscreenAnimationsToAnimator:animator]; -} - -- (void)showToolbarWithAnimator:(FullscreenAnimator*)animator { - [self addFullscreenAnimationsToAnimator:animator]; -} - -#pragma mark - FullscreenUIElement helpers - -- (void)addFullscreenAnimationsToAnimator:(FullscreenAnimator*)animator { +- (void)animateFullscreenWithAnimator:(FullscreenAnimator*)animator { CGFloat finalProgress = animator.finalProgress; [animator addAnimations:^{ [self updateForFullscreenProgress:finalProgress];
diff --git a/ios/chrome/browser/ui/toolbar/clean/toolbar_view_controller.mm b/ios/chrome/browser/ui/toolbar/clean/toolbar_view_controller.mm index db88a201..634923e45 100644 --- a/ios/chrome/browser/ui/toolbar/clean/toolbar_view_controller.mm +++ b/ios/chrome/browser/ui/toolbar/clean/toolbar_view_controller.mm
@@ -589,21 +589,7 @@ [self updateForFullscreenProgress:1.0]; } -- (void)finishFullscreenScrollWithAnimator:(FullscreenAnimator*)animator { - [self addFullscreenAnimationsToAnimator:animator]; -} - -- (void)scrollFullscreenToTopWithAnimator:(FullscreenAnimator*)animator { - [self addFullscreenAnimationsToAnimator:animator]; -} - -- (void)showToolbarWithAnimator:(FullscreenAnimator*)animator { - [self addFullscreenAnimationsToAnimator:animator]; -} - -#pragma mark - FullscreenUIElement helpers - -- (void)addFullscreenAnimationsToAnimator:(FullscreenAnimator*)animator { +- (void)animateFullscreenWithAnimator:(FullscreenAnimator*)animator { CGFloat finalProgress = animator.finalProgress; [animator addAnimations:^{ [self updateForFullscreenProgress:finalProgress];
diff --git a/ios/chrome/browser/ui/toolbar/legacy/toolbar_controller.mm b/ios/chrome/browser/ui/toolbar/legacy/toolbar_controller.mm index 36e58333..0d984daf 100644 --- a/ios/chrome/browser/ui/toolbar/legacy/toolbar_controller.mm +++ b/ios/chrome/browser/ui/toolbar/legacy/toolbar_controller.mm
@@ -709,21 +709,7 @@ [self updateForFullscreenProgress:1.0]; } -- (void)finishFullscreenScrollWithAnimator:(FullscreenAnimator*)animator { - [self addFullscreenAnimationsToAnimator:animator]; -} - -- (void)scrollFullscreenToTopWithAnimator:(FullscreenAnimator*)animator { - [self addFullscreenAnimationsToAnimator:animator]; -} - -- (void)showToolbarWithAnimator:(FullscreenAnimator*)animator { - [self addFullscreenAnimationsToAnimator:animator]; -} - -#pragma mark - FullscreenUIElement helpers - -- (void)addFullscreenAnimationsToAnimator:(FullscreenAnimator*)animator { +- (void)animateFullscreenWithAnimator:(FullscreenAnimator*)animator { CGFloat finalProgress = animator.finalProgress; [animator addAnimations:^{ [self updateForFullscreenProgress:finalProgress];
diff --git a/ios/chrome/browser/web/image_fetch_js_unittest.mm b/ios/chrome/browser/web/image_fetch_js_unittest.mm index 26d51e1c..393c9bd7 100644 --- a/ios/chrome/browser/web/image_fetch_js_unittest.mm +++ b/ios/chrome/browser/web/image_fetch_js_unittest.mm
@@ -146,6 +146,10 @@ [UIImage imageWithData:[NSData dataWithBytes:decoded_data.c_str() length:decoded_data.size()]]; EXPECT_TRUE(image); + const base::Value* from = message_.FindKey("from"); + ASSERT_TRUE(from); + ASSERT_TRUE(from->is_string()); + EXPECT_EQ("canvas", from->GetString()); } // Tests that __gCrWeb.imageFetch.getImageData works when the image is @@ -176,6 +180,10 @@ ASSERT_TRUE(data); ASSERT_TRUE(data->is_string()); EXPECT_EQ(kImageBase64, data->GetString()); + const base::Value* from = message_.FindKey("from"); + ASSERT_TRUE(from); + ASSERT_TRUE(from->is_string()); + EXPECT_EQ("xhr", from->GetString()); } // Tests that __gCrWeb.imageFetch.getImageData fails for timeout when the image @@ -201,4 +209,5 @@ ASSERT_TRUE(id_key->is_double()); EXPECT_EQ(kCallJavaScriptId, static_cast<int>(id_key->GetDouble())); EXPECT_FALSE(message_.FindKey("data")); + EXPECT_FALSE(message_.FindKey("from")); }
diff --git a/ios/chrome/browser/web/image_fetch_tab_helper.h b/ios/chrome/browser/web/image_fetch_tab_helper.h index bcca5826..20d7b4b 100644 --- a/ios/chrome/browser/web/image_fetch_tab_helper.h +++ b/ios/chrome/browser/web/image_fetch_tab_helper.h
@@ -12,6 +12,21 @@ #include "ios/web/public/web_state/web_state_observer.h" #import "ios/web/public/web_state/web_state_user_data.h" +// Key of the UMA ContextMenu.iOS.GetImageDataByJsResult histogram. +extern const char kUmaGetImageDataByJsResult[]; + +// These values are persisted to logs. Entries should not be renumbered and +// numeric values should never be reused. +// Enum for the ContextMenu.iOS.GetImageDataByJsResult UMA histogram to report +// the results of GetImageDataByJs. +enum class ContextMenuGetImageDataByJsResult { + kCanvasSucceed = 0, + kXMLHttpRequestSucceed = 1, + kFail = 2, + kTimeout = 3, + kMaxValue = kTimeout, +}; + // Gets the image data by JavaScript or // image_fetcher::IOSImageDataFetcherWrapper. Always use this class by // ImageFetchTabHelper::FromWebState on UI thread. All callbacks will also be @@ -58,6 +73,9 @@ base::TimeDelta timeout, JsCallback&& callback); + // Records ContextMenu.iOS.GetImageDataByJsResult UMA histogram. + void RecordGetImageDataByJsResult(ContextMenuGetImageDataByJsResult result); + // Handler for messages sent back from injected JavaScript. bool OnJsMessage(const base::DictionaryValue& message);
diff --git a/ios/chrome/browser/web/image_fetch_tab_helper.mm b/ios/chrome/browser/web/image_fetch_tab_helper.mm index 03ef956..9c2a898 100644 --- a/ios/chrome/browser/web/image_fetch_tab_helper.mm +++ b/ios/chrome/browser/web/image_fetch_tab_helper.mm
@@ -5,13 +5,16 @@ #import "ios/chrome/browser/web/image_fetch_tab_helper.h" #include "base/base64.h" +#include "base/metrics/histogram_macros.h" #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" +#include "base/task/post_task.h" #include "base/values.h" #include "components/image_fetcher/ios/ios_image_data_fetcher_wrapper.h" #include "ios/web/public/browser_state.h" #include "ios/web/public/referrer_util.h" #import "ios/web/public/web_state/navigation_context.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "services/network/public/cpp/shared_url_loader_factory.h" @@ -21,11 +24,16 @@ DEFINE_WEB_STATE_USER_DATA_KEY(ImageFetchTabHelper); +const char kUmaGetImageDataByJsResult[] = + "ContextMenu.iOS.GetImageDataByJsResult"; + namespace { // Command prefix for injected JavaScript. const char kCommandPrefix[] = "imageFetch"; // Key for image_fetcher const char kImageFetcherKeyName[] = "0"; +// Timeout for GetImageDataByJs in milliseconds. +const int kGetImageDataByJsTimeout = 300; // Wrapper class for image_fetcher::IOSImageDataFetcherWrapper. ImageFetcher is // attached to web::BrowserState instead of web::WebState, because if a user @@ -99,7 +107,7 @@ // |this| is captured into the callback of GetImageDataByJs, which will always // be invoked before the |this| is destroyed, so it's safe. GetImageDataByJs( - url, base::TimeDelta::FromMilliseconds(300), + url, base::TimeDelta::FromMilliseconds(kGetImageDataByJsTimeout), base::BindOnce(&ImageFetchTabHelper::JsCallbackOfGetImageData, base::Unretained(this), url, referrer, callback)); } @@ -130,8 +138,8 @@ DCHECK_EQ(js_callbacks_.count(call_id_), 0UL); js_callbacks_.insert({call_id_, std::move(callback)}); - web::WebThread::PostDelayedTask( - web::WebThread::UI, FROM_HERE, + base::PostDelayedTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, base::BindRepeating(&ImageFetchTabHelper::OnJsTimeout, weak_ptr_factory_.GetWeakPtr(), call_id_), timeout); @@ -143,12 +151,18 @@ web_state_->ExecuteJavaScript(base::UTF8ToUTF16(js)); } +void ImageFetchTabHelper::RecordGetImageDataByJsResult( + ContextMenuGetImageDataByJsResult result) { + UMA_HISTOGRAM_ENUMERATION(kUmaGetImageDataByJsResult, result); +} + // The expected message from JavaScript has format: // // For success: // {'command': 'image.getImageData', // 'id': id_sent_to_gCrWeb_image_getImageData, -// 'data': image_data_in_base64} +// 'data': image_data_in_base64, +// 'from': 'canvas' or 'xhr'} // // For failure: // {'command': 'image.getImageData', @@ -170,8 +184,19 @@ if (data && data->is_string() && !data->GetString().empty() && base::Base64Decode(data->GetString(), &decoded_data)) { std::move(callback).Run(&decoded_data); + const base::Value* from = message.FindKey("from"); + if (from && from->is_string() && + (from->GetString() == "canvas" || from->GetString() == "xhr")) { + RecordGetImageDataByJsResult( + (from->GetString() == "canvas") + ? ContextMenuGetImageDataByJsResult::kCanvasSucceed + : ContextMenuGetImageDataByJsResult::kXMLHttpRequestSucceed); + } else { + return false; + } } else { std::move(callback).Run(nullptr); + RecordGetImageDataByJsResult(ContextMenuGetImageDataByJsResult::kFail); } return true; } @@ -181,5 +206,6 @@ JsCallback callback = std::move(js_callbacks_[call_id]); js_callbacks_.erase(call_id); std::move(callback).Run(nullptr); + RecordGetImageDataByJsResult(ContextMenuGetImageDataByJsResult::kTimeout); } }
diff --git a/ios/chrome/browser/web/image_fetch_tab_helper_unittest.mm b/ios/chrome/browser/web/image_fetch_tab_helper_unittest.mm index a732a18..4ad6cf1a2 100644 --- a/ios/chrome/browser/web/image_fetch_tab_helper_unittest.mm +++ b/ios/chrome/browser/web/image_fetch_tab_helper_unittest.mm
@@ -6,6 +6,7 @@ #include "base/strings/sys_string_conversions.h" #import "base/test/ios/wait_util.h" +#include "base/test/metrics/histogram_tester.h" #import "ios/web/public/test/web_test_with_web_state.h" #include "net/http/http_util.h" #include "services/network/public/cpp/weak_wrapper_shared_url_loader_factory.h" @@ -72,21 +73,21 @@ } network::TestURLLoaderFactory test_url_loader_factory_; + base::HistogramTester histogram_tester_; DISALLOW_COPY_AND_ASSIGN(ImageFetchTabHelperTest); }; // Tests that ImageFetchTabHelper::GetImageData can get image data from Js. -TEST_F(ImageFetchTabHelperTest, GetImageDataWithJsSucceed) { - // Injects fake |__gCrWeb.imageFetch.getImageData| that returns |kImageData| +TEST_F(ImageFetchTabHelperTest, GetImageDataWithJsSucceedFromCanvas) { + // Inject fake |__gCrWeb.imageFetch.getImageData| that returns |kImageData| // in base64 format. id script_result = ExecuteJavaScript([NSString stringWithFormat: @"__gCrWeb.imageFetch = {}; __gCrWeb.imageFetch.getImageData = " - "function(id, url)" - "{ __gCrWeb.message.invokeOnHost({'command': " - "'imageFetch.getImageData', " - "'id': id, 'data': btoa('%s')}); }; true;", + "function(id, url) { __gCrWeb.message.invokeOnHost({'command': " + "'imageFetch.getImageData', 'id': id, 'data': btoa('%s'), " + "'from':'canvas'}); }; true;", kImageData]); ASSERT_NSEQ(@YES, script_result); @@ -102,16 +103,22 @@ base::RunLoop().RunUntilIdle(); return callback_invoked; })); + histogram_tester_.ExpectUniqueSample( + kUmaGetImageDataByJsResult, + ContextMenuGetImageDataByJsResult::kCanvasSucceed, 1); } -// Tests that ImageFetchTabHelper::GetImageData gets image data from server when -// Js fails. -TEST_F(ImageFetchTabHelperTest, GetImageDataWithJsFail) { - id script_result = ExecuteJavaScript( - @"__gCrWeb.imageFetch = {}; __gCrWeb.imageFetch.getImageData = " - "function(id, url)" - "{ __gCrWeb.message.invokeOnHost({'command': 'imageFetch.getImageData'," - "'id': id}); }; true;"); +// Tests that ImageFetchTabHelper::GetImageData can get image data from Js. +TEST_F(ImageFetchTabHelperTest, GetImageDataWithJsSucceedFromXmlHttpRequest) { + // Inject fake |__gCrWeb.imageFetch.getImageData| that returns |kImageData| + // in base64 format. + id script_result = ExecuteJavaScript([NSString + stringWithFormat: + @"__gCrWeb.imageFetch = {}; __gCrWeb.imageFetch.getImageData = " + "function(id, url) { __gCrWeb.message.invokeOnHost({'command': " + "'imageFetch.getImageData', 'id': id, 'data': btoa('%s'), " + "'from':'xhr'}); }; true;", + kImageData]); ASSERT_NSEQ(@YES, script_result); __block bool callback_invoked = false; @@ -126,12 +133,40 @@ base::RunLoop().RunUntilIdle(); return callback_invoked; })); + histogram_tester_.ExpectUniqueSample( + kUmaGetImageDataByJsResult, + ContextMenuGetImageDataByJsResult::kXMLHttpRequestSucceed, 1); +} + +// Tests that ImageFetchTabHelper::GetImageData gets image data from server when +// Js fails. +TEST_F(ImageFetchTabHelperTest, GetImageDataWithJsFail) { + id script_result = ExecuteJavaScript( + @"__gCrWeb.imageFetch = {}; __gCrWeb.imageFetch.getImageData = " + "function(id, url) { __gCrWeb.message.invokeOnHost({'command': " + "'imageFetch.getImageData', 'id': id}); }; true;"); + ASSERT_NSEQ(@YES, script_result); + + __block bool callback_invoked = false; + image_fetch_tab_helper()->GetImageData(GURL(kImageUrl), web::Referrer(), + ^(NSData* data) { + ASSERT_TRUE(data); + EXPECT_NSEQ(GetExpectedData(), data); + callback_invoked = true; + }); + + EXPECT_TRUE(WaitUntilConditionOrTimeout(kWaitForGetImageDataTimeout, ^{ + base::RunLoop().RunUntilIdle(); + return callback_invoked; + })); + histogram_tester_.ExpectUniqueSample( + kUmaGetImageDataByJsResult, ContextMenuGetImageDataByJsResult::kFail, 1); } // Tests that ImageFetchTabHelper::GetImageData gets image data from server when // Js does not send a message back. TEST_F(ImageFetchTabHelperTest, GetImageDataWithJsTimeout) { - // Injects fake |__gCrWeb.imageFetch.getImageData| that does not do anything. + // Inject fake |__gCrWeb.imageFetch.getImageData| that does not do anything. id script_result = ExecuteJavaScript( @"__gCrWeb.imageFetch = {}; __gCrWeb.imageFetch.getImageData = " @"function(id, url) {}; true;"); @@ -149,12 +184,15 @@ base::RunLoop().RunUntilIdle(); return callback_invoked; })); + histogram_tester_.ExpectUniqueSample( + kUmaGetImageDataByJsResult, ContextMenuGetImageDataByJsResult::kTimeout, + 1); } // Tests that ImageFetchTabHelper::GetImageData gets image data from server when // WebState is destroyed. TEST_F(ImageFetchTabHelperTest, GetImageDataWithWebStateDestroy) { - // Injects fake |__gCrWeb.imageFetch.getImageData| that does not do anything. + // Inject fake |__gCrWeb.imageFetch.getImageData| that does not do anything. id script_result = ExecuteJavaScript( @"__gCrWeb.imageFetch = {}; __gCrWeb.imageFetch.getImageData = " @"function(id, url) {}; true;"); @@ -174,12 +212,13 @@ base::RunLoop().RunUntilIdle(); return callback_invoked; })); + histogram_tester_.ExpectTotalCount(kUmaGetImageDataByJsResult, 0); } // Tests that ImageFetchTabHelper::GetImageData gets image data from server when // WebState navigates to a new web page. TEST_F(ImageFetchTabHelperTest, GetImageDataWithWebStateNavigate) { - // Injects fake |__gCrWeb.imageFetch.getImageData| that does not do anything. + // Inject fake |__gCrWeb.imageFetch.getImageData| that does not do anything. id script_result = ExecuteJavaScript( @"__gCrWeb.imageFetch = {}; __gCrWeb.imageFetch.getImageData = " @"function(id, url) {}; true;"); @@ -199,4 +238,5 @@ base::RunLoop().RunUntilIdle(); return callback_invoked; })); + histogram_tester_.ExpectTotalCount(kUmaGetImageDataByJsResult, 0); }
diff --git a/ios/chrome/browser/web/resources/image_fetch.js b/ios/chrome/browser/web/resources/image_fetch.js index a0e4002..321dd604 100644 --- a/ios/chrome/browser/web/resources/image_fetch.js +++ b/ios/chrome/browser/web/resources/image_fetch.js
@@ -33,9 +33,14 @@ * @param {string} url The URL of the requested image. */ __gCrWeb.imageFetch.getImageData = function(id, url) { - var onData = function(data) { - __gCrWeb.message.invokeOnHost( - {'command': 'imageFetch.getImageData', 'id': id, 'data': data}); + // |from| indicates where the |data| is fetched from. + var onData = function(data, from) { + __gCrWeb.message.invokeOnHost({ + 'command': 'imageFetch.getImageData', + 'id': id, + 'data': data, + 'from': from + }); }; var onError = function() { __gCrWeb.message.invokeOnHost( @@ -44,7 +49,7 @@ var data = getImageDataByCanvas(url); if (data) { - onData(data); + onData(data, 'canvas'); } else { getImageDataByXMLHttpRequest(url, 100, onData, onError); } @@ -62,9 +67,9 @@ * 3. Exporting data from <img> failed. */ function getImageDataByCanvas(url) { - var extension = url.split('.').pop().toLowerCase(); - if (extension == 'gif') - return null; + var extension = url.split('.').pop().toLowerCase(); + if (extension == 'gif') + return null; for (var key in document.images) { var img = document.images[key]; @@ -111,7 +116,7 @@ var fr = new FileReader(); fr.onload = function() { - onData(btoa(/** @type{string} */ (fr.result))); + onData(btoa(/** @type{string} */ (fr.result)), 'xhr'); }; fr.onabort = onError; fr.onerror = onError;
diff --git a/ios/chrome/browser/web_data_service_factory.cc b/ios/chrome/browser/web_data_service_factory.cc index 1b8d2ef..a465b77 100644 --- a/ios/chrome/browser/web_data_service_factory.cc +++ b/ios/chrome/browser/web_data_service_factory.cc
@@ -8,6 +8,7 @@ #include "base/files/file_path.h" #include "base/logging.h" #include "base/memory/singleton.h" +#include "base/task/post_task.h" #include "components/autofill/core/browser/webdata/autofill_webdata_service.h" #include "components/keyed_service/core/service_access_type.h" #include "components/keyed_service/ios/browser_state_dependency_manager.h" @@ -18,6 +19,7 @@ #include "ios/chrome/browser/browser_state/browser_state_otr_helper.h" #include "ios/chrome/browser/browser_state/chrome_browser_state.h" #include "ios/chrome/browser/sync/glue/sync_start_util.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" namespace ios { @@ -101,7 +103,7 @@ const base::FilePath& browser_state_path = context->GetStatePath(); return std::make_unique<WebDataServiceWrapper>( browser_state_path, GetApplicationContext()->GetApplicationLocale(), - web::WebThread::GetTaskRunnerForThread(web::WebThread::UI), + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::UI}), ios::sync_start_util::GetFlareForSyncableService(browser_state_path), base::DoNothing()); }
diff --git a/ios/components/io_thread/ios_io_thread.mm b/ios/components/io_thread/ios_io_thread.mm index df06d85..80a2868 100644 --- a/ios/components/io_thread/ios_io_thread.mm +++ b/ios/components/io_thread/ios_io_thread.mm
@@ -23,6 +23,7 @@ #include "base/strings/string_number_conversions.h" #include "base/strings/string_split.h" #include "base/strings/string_util.h" +#include "base/task/post_task.h" #include "base/threading/thread.h" #include "base/time/time.h" #include "base/trace_event/trace_event.h" @@ -35,6 +36,7 @@ #include "components/version_info/version_info.h" #include "ios/web/public/user_agent.h" #include "ios/web/public/web_client.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/base/logging_network_change_observer.h" #include "net/cert/cert_verifier.h" @@ -130,7 +132,7 @@ IOSIOThread* io_thread) : io_thread_(io_thread), network_task_runner_( - web::WebThread::GetTaskRunnerForThread(web::WebThread::IO)) {} + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO})) {} SystemURLRequestContextGetter::~SystemURLRequestContextGetter() {} @@ -212,8 +214,8 @@ void IOSIOThread::ChangedToOnTheRecord() { DCHECK_CURRENTLY_ON(web::WebThread::UI); - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::Bind(&IOSIOThread::ChangedToOnTheRecordOnIOThread, base::Unretained(this))); }
diff --git a/ios/components/io_thread/ios_io_thread_unittest.mm b/ios/components/io_thread/ios_io_thread_unittest.mm index 42f0562c..e231bd3 100644 --- a/ios/components/io_thread/ios_io_thread_unittest.mm +++ b/ios/components/io_thread/ios_io_thread_unittest.mm
@@ -11,7 +11,7 @@ #include "components/prefs/pref_service_factory.h" #include "components/prefs/testing_pref_store.h" #include "components/proxy_config/pref_proxy_config_tracker_impl.h" -#include "ios/web/public/test/test_web_thread.h" +#include "ios/web/public/test/test_web_thread_bundle.h" #include "net/test/url_request/url_request_failed_job.h" #include "net/url_request/url_request_filter.h" #include "testing/gtest/include/gtest/gtest.h" @@ -42,10 +42,7 @@ class IOSIOThreadTest : public PlatformTest { public: - IOSIOThreadTest() - : loop_(base::MessageLoop::TYPE_IO), - ui_thread_(web::WebThread::UI, &loop_), - io_thread_(web::WebThread::IO, &loop_) { + IOSIOThreadTest() : thread_bundle_(web::TestWebThreadBundle::IO_MAINLOOP) { net::URLRequestFailedJob::AddUrlHandler(); } @@ -54,9 +51,7 @@ } private: - base::MessageLoop loop_; - web::TestWebThread ui_thread_; - web::TestWebThread io_thread_; + web::TestWebThreadBundle thread_bundle_; }; // Tests the creation of an IOSIOThread and verifies that it returns a system
diff --git a/ios/third_party/material_components_ios/README.chromium b/ios/third_party/material_components_ios/README.chromium index 18939f12..bc4282c6 100644 --- a/ios/third_party/material_components_ios/README.chromium +++ b/ios/third_party/material_components_ios/README.chromium
@@ -1,7 +1,7 @@ Name: Material Components for iOS URL: https://github.com/material-components/material-components-ios Version: 0 -Revision: 531f9d8e97167feecdb12696991b50fbd1f8019a +Revision: 827c67034ba293e6e4676689979571e471ec5486 License: Apache 2.0 License File: LICENSE Security Critical: yes
diff --git a/ios/web/app/web_main_loop.mm b/ios/web/app/web_main_loop.mm index 90921eb..19061ece 100644 --- a/ios/web/app/web_main_loop.mm +++ b/ios/web/app/web_main_loop.mm
@@ -17,6 +17,7 @@ #include "base/power_monitor/power_monitor.h" #include "base/power_monitor/power_monitor_device_source.h" #include "base/process/process_metrics.h" +#include "base/task/post_task.h" #include "base/task/task_scheduler/scheduler_worker_pool_params.h" #include "base/task/task_scheduler/task_scheduler.h" #include "base/threading/thread_restrictions.h" @@ -24,6 +25,7 @@ #include "ios/web/public/app/web_main_parts.h" #include "ios/web/public/global_state/ios_global_state.h" #import "ios/web/public/web_client.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/service_manager_context.h" #include "ios/web/web_thread_impl.h" #include "ios/web/webui/url_data_manager_ios.h" @@ -158,8 +160,8 @@ // Teardown may start in PostMainMessageLoopRun, and during teardown we // need to be able to perform IO. base::ThreadRestrictions::SetIOAllowed(true); - WebThread::PostTask( - WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {WebThread::IO}, base::Bind(base::IgnoreResult(&base::ThreadRestrictions::SetIOAllowed), true));
diff --git a/ios/web/browser_state.mm b/ios/web/browser_state.mm index 37c8d2e..25a9ed8 100644 --- a/ios/web/browser_state.mm +++ b/ios/web/browser_state.mm
@@ -13,11 +13,13 @@ #include "base/location.h" #include "base/memory/ref_counted.h" #include "base/process/process_handle.h" +#include "base/task/post_task.h" #include "ios/web/public/certificate_policy_cache.h" #include "ios/web/public/network_context_owner.h" #include "ios/web/public/service_manager_connection.h" #include "ios/web/public/service_names.mojom.h" #include "ios/web/public/web_client.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "ios/web/webui/url_data_manager_ios_backend.h" #include "mojo/public/cpp/bindings/interface_request.h" @@ -94,7 +96,7 @@ service_manager::mojom::ServiceRequest request) : service_manager_connection_(ServiceManagerConnection::Create( std::move(request), - WebThread::GetTaskRunnerForThread(WebThread::IO))) {} + base::CreateSingleThreadTaskRunnerWithTraits({WebThread::IO}))) {} ~BrowserStateServiceManagerConnectionHolder() override {} ServiceManagerConnection* service_manager_connection() {
diff --git a/ios/web/download/download_task_impl.mm b/ios/web/download/download_task_impl.mm index ffc2e4be7..679ab41 100644 --- a/ios/web/download/download_task_impl.mm +++ b/ios/web/download/download_task_impl.mm
@@ -9,10 +9,12 @@ #include "base/bind.h" #include "base/strings/sys_string_conversions.h" +#include "base/task/post_task.h" #import "ios/web/net/cookies/wk_cookie_util.h" #include "ios/web/public/browser_state.h" #import "ios/web/public/download/download_task_observer.h" #import "ios/web/public/web_state/web_state.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #import "ios/web/web_state/error_translation_util.h" #include "net/base/filename_util.h" @@ -107,11 +109,11 @@ task:(NSURLSessionTask*)task didCompleteWithError:(nullable NSError*)error { __weak CRWURLSessionDelegate* weakSelf = self; - WebThread::PostTask(WebThread::UI, FROM_HERE, base::BindOnce(^{ - CRWURLSessionDelegate* strongSelf = weakSelf; - if (strongSelf.propertiesBlock) - strongSelf.propertiesBlock(task, error); - })); + base::PostTaskWithTraits(FROM_HERE, {WebThread::UI}, base::BindOnce(^{ + CRWURLSessionDelegate* strongSelf = weakSelf; + if (strongSelf.propertiesBlock) + strongSelf.propertiesBlock(task, error); + })); } - (void)URLSession:(NSURLSession*)session @@ -123,25 +125,25 @@ using Bytes = const void* _Nonnull; [data enumerateByteRangesUsingBlock:^(Bytes bytes, NSRange range, BOOL*) { auto buffer = GetBuffer(bytes, range.length); - WebThread::PostTask(WebThread::UI, FROM_HERE, base::BindOnce(^{ - CRWURLSessionDelegate* strongSelf = weakSelf; - if (!strongSelf.dataBlock) { - dispatch_semaphore_signal(semaphore); - return; - } - strongSelf.dataBlock(std::move(buffer), ^{ - // Data was written to disk, unblock queue to read - // the next chunk of downloaded data. - dispatch_semaphore_signal(semaphore); - }); - })); + base::PostTaskWithTraits(FROM_HERE, {WebThread::UI}, base::BindOnce(^{ + CRWURLSessionDelegate* strongSelf = weakSelf; + if (!strongSelf.dataBlock) { + dispatch_semaphore_signal(semaphore); + return; + } + strongSelf.dataBlock(std::move(buffer), ^{ + // Data was written to disk, unblock queue to + // read the next chunk of downloaded data. + dispatch_semaphore_signal(semaphore); + }); + })); dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); }]; - WebThread::PostTask(WebThread::UI, FROM_HERE, base::BindOnce(^{ - CRWURLSessionDelegate* strongSelf = weakSelf; - if (strongSelf.propertiesBlock) - weakSelf.propertiesBlock(task, nil); - })); + base::PostTaskWithTraits(FROM_HERE, {WebThread::UI}, base::BindOnce(^{ + CRWURLSessionDelegate* strongSelf = weakSelf; + if (strongSelf.propertiesBlock) + weakSelf.propertiesBlock(task, nil); + })); } - (void)URLSession:(NSURLSession*)session @@ -381,9 +383,9 @@ if (@available(iOS 11, *)) { GetWKCookies(callback); } else { - WebThread::PostTask(WebThread::UI, FROM_HERE, base::BindOnce(^{ - callback.Run([NSArray array]); - })); + base::PostTaskWithTraits(FROM_HERE, {WebThread::UI}, base::BindOnce(^{ + callback.Run([NSArray array]); + })); } }
diff --git a/ios/web/net/cookie_notification_bridge.mm b/ios/web/net/cookie_notification_bridge.mm index 0b6cdddac..ff3a7a4 100644 --- a/ios/web/net/cookie_notification_bridge.mm +++ b/ios/web/net/cookie_notification_bridge.mm
@@ -8,7 +8,9 @@ #include "base/bind.h" #include "base/location.h" +#include "base/task/post_task.h" #import "ios/net/cookies/cookie_store_ios.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #if !defined(__has_feature) || !__has_feature(objc_arc) @@ -36,8 +38,8 @@ NSNotification* notification) { DCHECK([[notification name] isEqualToString:NSHTTPCookieManagerCookiesChangedNotification]); - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::Bind(&net::CookieStoreIOS::NotifySystemCookiesChanged)); }
diff --git a/ios/web/net/cookies/wk_http_system_cookie_store.mm b/ios/web/net/cookies/wk_http_system_cookie_store.mm index ac1d734..3547691 100644 --- a/ios/web/net/cookies/wk_http_system_cookie_store.mm +++ b/ios/web/net/cookies/wk_http_system_cookie_store.mm
@@ -6,8 +6,10 @@ #include "base/bind.h" #import "base/ios/block_types.h" +#include "base/task/post_task.h" #import "ios/net/cookies/cookie_creation_time_manager.h" #include "ios/net/cookies/system_cookie_util.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #import "net/base/mac/url_conversions.h" #include "net/cookies/canonical_cookie.h" @@ -27,7 +29,7 @@ // SystemCookieStore should operate on IO thread. void RunBlockOnIOThread(ProceduralBlock block) { DCHECK(block != nil); - web::WebThread::PostTask(web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::IO}, base::BindOnce(block)); } @@ -70,8 +72,8 @@ base::WeakPtr<net::CookieCreationTimeManager> weak_time_manager = creation_time_manager_->GetWeakPtr(); GURL block_url = url; - web::WebThread::PostTask( - web::WebThread::UI, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ [cookie_store_ getAllCookies:^(NSArray<NSHTTPCookie*>* cookies) { NSMutableArray* result = [NSMutableArray array]; for (NSHTTPCookie* cookie in cookies) { @@ -95,8 +97,8 @@ __block SystemCookieCallbackForCookies shared_callback = std::move(callback); base::WeakPtr<net::CookieCreationTimeManager> weak_time_manager = creation_time_manager_->GetWeakPtr(); - web::WebThread::PostTask( - web::WebThread::UI, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ [cookie_store_ getAllCookies:^(NSArray<NSHTTPCookie*>* cookies) { RunSystemCookieCallbackForCookies(std::move(shared_callback), weak_time_manager, cookies); @@ -112,8 +114,8 @@ base::WeakPtr<net::CookieCreationTimeManager> weak_time_manager = creation_time_manager_->GetWeakPtr(); NSHTTPCookie* block_cookie = cookie; - web::WebThread::PostTask( - web::WebThread::UI, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ [cookie_store_ deleteCookie:block_cookie completionHandler:^{ RunBlockOnIOThread(^{ @@ -139,8 +141,8 @@ if (optional_creation_time && !optional_creation_time->is_null()) cookie_time = *optional_creation_time; - web::WebThread::PostTask( - web::WebThread::UI, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ [cookie_store_ setCookie:block_cookie completionHandler:^{ @@ -161,8 +163,8 @@ __block SystemCookieCallback shared_callback = std::move(callback); base::WeakPtr<net::CookieCreationTimeManager> weak_time_manager = creation_time_manager_->GetWeakPtr(); - web::WebThread::PostTask( - web::WebThread::UI, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ [cookie_store_ getAllCookies:^(NSArray<NSHTTPCookie*>* cookies) { ProceduralBlock completionHandler = ^{ RunBlockOnIOThread(^{
diff --git a/ios/web/net/crw_cert_verification_controller.mm b/ios/web/net/crw_cert_verification_controller.mm index b6c36254..8a521fd 100644 --- a/ios/web/net/crw_cert_verification_controller.mm +++ b/ios/web/net/crw_cert_verification_controller.mm
@@ -14,6 +14,7 @@ #include "base/task/post_task.h" #include "ios/web/public/browser_state.h" #include "ios/web/public/certificate_policy_cache.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #import "ios/web/web_state/wk_web_view_security_util.h" #include "net/cert/cert_verify_proc_ios.h" @@ -127,7 +128,7 @@ DCHECK(cert); } DCHECK(cert->intermediate_buffers().empty()); - web::WebThread::PostTask(web::WebThread::IO, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::IO}, base::BindOnce(^{ _certPolicyCache->AllowCertForHost( cert.get(), base::SysNSStringToUTF8(host), status); @@ -164,8 +165,8 @@ completionHandler:(web::PolicyDecisionHandler)handler { DCHECK_CURRENTLY_ON(web::WebThread::UI); DCHECK(handler); - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::BindOnce(^{ // |loadPolicyForRejectedTrustResult:certStatus:serverTrust:host:| can // only be called on IO thread. net::CertStatus certStatus = @@ -177,7 +178,7 @@ serverTrust:trust.get() host:host]; - web::WebThread::PostTask(web::WebThread::UI, FROM_HERE, + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ handler(policy, certStatus); }));
diff --git a/ios/web/net/request_tracker_impl.mm b/ios/web/net/request_tracker_impl.mm index 8c56c16..1ca660a 100644 --- a/ios/web/net/request_tracker_impl.mm +++ b/ios/web/net/request_tracker_impl.mm
@@ -13,10 +13,12 @@ #include "base/macros.h" #include "base/strings/sys_string_conversions.h" #include "base/synchronization/lock.h" +#include "base/task/post_task.h" #include "ios/web/history_state_util.h" #include "ios/web/public/browser_state.h" #include "ios/web/public/certificate_policy_cache.h" #include "ios/web/public/url_util.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #import "net/base/mac/url_conversions.h" #include "net/url_request/url_request.h" @@ -184,8 +186,8 @@ DCHECK(policy_cache); // Take care of the IO-thread init. - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::Bind(&RequestTrackerImpl::InitOnIOThread, tracker, policy_cache)); RegisterTracker(tracker.get(), request_group_id); return tracker; @@ -194,22 +196,22 @@ void RequestTrackerImpl::StartPageLoad(const GURL& url, id user_info) { DCHECK_CURRENTLY_ON(web::WebThread::UI); id scoped_user_info = user_info; - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::Bind(&RequestTrackerImpl::TrimToURL, this, url, scoped_user_info)); } void RequestTrackerImpl::FinishPageLoad(const GURL& url, bool load_success) { DCHECK_CURRENTLY_ON(web::WebThread::UI); - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::Bind(&RequestTrackerImpl::StopPageLoad, this, url, load_success)); } void RequestTrackerImpl::HistoryStateChange(const GURL& url) { DCHECK_CURRENTLY_ON(web::WebThread::UI); - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::Bind(&RequestTrackerImpl::HistoryStateChangeToURL, this, url)); } @@ -223,12 +225,11 @@ // scoped_refptr here retains |this|, we a are guaranteed that destruiction // won't begin until the block completes, and thus |is_closing_| will always // be set before destruction begins. - web::WebThread::PostTask(web::WebThread::IO, FROM_HERE, - base::Bind( - [](RequestTrackerImpl* tracker) { - tracker->is_closing_ = true; - }, - base::RetainedRef(this))); + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, + base::Bind( + [](RequestTrackerImpl* tracker) { tracker->is_closing_ = true; }, + base::RetainedRef(this))); // The user_info is no longer needed. user_info_ = nil; @@ -240,7 +241,7 @@ // Post a no-op to the IO thread, and after that has executed, run |callback|. // This ensures that |callback| runs after anything elese queued on the IO // thread, in particular CancelRequest() calls made from closing trackers. - web::WebThread::PostTaskAndReply(web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraitsAndReply(FROM_HERE, {web::WebThread::IO}, base::DoNothing(), callback); } @@ -261,7 +262,7 @@ base::AutoLock scoped_lock(*g_waiting_on_io_thread_lock); g_waiting_on_io_thread = true; } - web::WebThread::PostTask(web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::IO}, base::Bind(&StopIOThreadWaiting)); // Poll endlessly until the wait flag is unset on the IO thread by @@ -446,7 +447,7 @@ void RequestTrackerImpl::ScheduleIOTask(const base::Closure& task) { DCHECK_CURRENTLY_ON(web::WebThread::IO); - web::WebThread::PostTask(web::WebThread::IO, FROM_HERE, task); + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::IO}, task); } #pragma mark Private Object Lifecycle API @@ -490,7 +491,7 @@ // method is the mechanism by which all RequestTrackerImpl instances are // destroyed, the object inconstant_t points to won't be deleted while // the block is executing (and Destruct() itself will do the deleting). - web::WebThread::PostTask(web::WebThread::IO, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::IO}, base::BindOnce(^{ inconstant_t->Destruct(); })); } @@ -507,7 +508,7 @@ } InvalidateWeakPtrs(); // Delete on the UI thread. - web::WebThread::PostTask(web::WebThread::UI, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ delete this; })); } @@ -522,8 +523,8 @@ // thread. This is used to collate notifications together, avoiding // blanketing the UI with a stream of information. notification_depth_ += 1; - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::Bind(&RequestTrackerImpl::StackNotification, this)); } @@ -863,7 +864,7 @@ // the tracker is closing). if (is_closing_ && web::WebThread::CurrentlyOn(web::WebThread::IO)) return; - web::WebThread::PostTask(thread, FROM_HERE, task); + base::PostTaskWithTraits(FROM_HERE, {thread}, task); } #pragma mark Other internal methods.
diff --git a/ios/web/net/request_tracker_impl_unittest.mm b/ios/web/net/request_tracker_impl_unittest.mm index 287f933..c733982a 100644 --- a/ios/web/net/request_tracker_impl_unittest.mm +++ b/ios/web/net/request_tracker_impl_unittest.mm
@@ -19,7 +19,7 @@ #include "ios/web/public/certificate_policy_cache.h" #include "ios/web/public/ssl_status.h" #include "ios/web/public/test/fakes/test_browser_state.h" -#include "ios/web/public/test/test_web_thread.h" +#include "ios/web/public/test/test_web_thread_bundle.h" #include "net/cert/x509_certificate.h" #include "net/http/http_response_headers.h" #include "net/test/cert_test_util.h" @@ -95,9 +95,7 @@ class RequestTrackerTest : public PlatformTest { public: RequestTrackerTest() - : loop_(base::MessageLoop::TYPE_IO), - ui_thread_(web::WebThread::UI, &loop_), - io_thread_(web::WebThread::IO, &loop_){}; + : thread_bundle_(web::TestWebThreadBundle::IO_MAINLOOP) {} ~RequestTrackerTest() override {} @@ -114,9 +112,7 @@ tracker_->Close(); } - base::MessageLoop loop_; - web::TestWebThread ui_thread_; - web::TestWebThread io_thread_; + web::TestWebThreadBundle thread_bundle_; scoped_refptr<web::RequestTrackerImpl> tracker_; NSString* request_group_id_;
diff --git a/ios/web/network_context_owner.cc b/ios/web/network_context_owner.cc index 2da202f..77039d0 100644 --- a/ios/web/network_context_owner.cc +++ b/ios/web/network_context_owner.cc
@@ -6,6 +6,8 @@ #include <memory> +#include "base/task/post_task.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/url_request/url_request_context_getter.h" #include "net/url_request/url_request_context_getter_observer.h" @@ -18,8 +20,8 @@ network::mojom::NetworkContextPtr* network_context_client) : request_context_(request_context) { DCHECK_CURRENTLY_ON(WebThread::UI); - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::BindOnce(&NetworkContextOwner::InitializeOnIOThread, // This is safe, since |this| will be deleted on the IO // thread, which would have to happen afterwards.
diff --git a/ios/web/network_context_owner_unittest.cc b/ios/web/network_context_owner_unittest.cc index ab81ce6b..459d823 100644 --- a/ios/web/network_context_owner_unittest.cc +++ b/ios/web/network_context_owner_unittest.cc
@@ -5,7 +5,9 @@ #include "ios/web/public/network_context_owner.h" #include "base/run_loop.h" +#include "base/task/post_task.h" #include "ios/web/public/test/test_web_thread_bundle.h" +#include "ios/web/public/web_task_traits.h" #include "net/url_request/url_request_context.h" #include "net/url_request/url_request_context_getter.h" #include "net/url_request/url_request_test_util.h" @@ -19,7 +21,7 @@ NetworkContextOwnerTest() : saw_connection_error_(false), context_getter_(base::MakeRefCounted<net::TestURLRequestContextGetter>( - WebThread::GetTaskRunnerForThread(WebThread::IO))) {} + base::CreateSingleThreadTaskRunnerWithTraits({WebThread::IO}))) {} ~NetworkContextOwnerTest() override { // Tests should cleanup after themselves. @@ -69,8 +71,8 @@ base::RunLoop().RunUntilIdle(); EXPECT_FALSE(saw_connection_error_); - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::BindOnce( &net::TestURLRequestContextGetter::NotifyContextShuttingDown, context_getter_));
diff --git a/ios/web/public/test/fakes/test_browser_state.cc b/ios/web/public/test/fakes/test_browser_state.cc index 9d86787..7f3980b 100644 --- a/ios/web/public/test/fakes/test_browser_state.cc +++ b/ios/web/public/test/fakes/test_browser_state.cc
@@ -6,6 +6,8 @@ #include "base/files/file_path.h" #include "base/single_thread_task_runner.h" +#include "base/task/post_task.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "ios/web/test/test_url_constants.h" #include "ios/web/webui/url_data_manager_ios_backend.h" @@ -31,7 +33,7 @@ scoped_refptr<base::SingleThreadTaskRunner> GetNetworkTaskRunner() const override { - return web::WebThread::GetTaskRunnerForThread(web::WebThread::IO); + return base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO}); } private:
diff --git a/ios/web/service_manager_connection_impl_unittest.cc b/ios/web/service_manager_connection_impl_unittest.cc index 64bcb6a..6d86dec 100644 --- a/ios/web/service_manager_connection_impl_unittest.cc +++ b/ios/web/service_manager_connection_impl_unittest.cc
@@ -5,7 +5,9 @@ #include "ios/web/service_manager_connection_impl.h" #include "base/synchronization/waitable_event.h" +#include "base/task/post_task.h" #include "ios/web/public/test/test_web_thread_bundle.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "services/service_manager/public/cpp/identity.h" #include "services/service_manager/public/cpp/service.h" @@ -38,13 +40,14 @@ service_manager::mojom::ServicePtr service; ServiceManagerConnectionImpl connection_impl( mojo::MakeRequest(&service), - WebThread::GetTaskRunnerForThread(WebThread::IO)); + base::CreateSingleThreadTaskRunnerWithTraits({WebThread::IO})); ServiceManagerConnection& connection = connection_impl; service_manager::EmbeddedServiceInfo info; base::WaitableEvent event(base::WaitableEvent::ResetPolicy::MANUAL, base::WaitableEvent::InitialState::NOT_SIGNALED); info.factory = base::Bind(&LaunchService, &event); - info.task_runner = WebThread::GetTaskRunnerForThread(WebThread::IO); + info.task_runner = + base::CreateSingleThreadTaskRunnerWithTraits({WebThread::IO}); connection.AddEmbeddedService(kTestServiceName, info); connection.Start(); service_manager::BindSourceInfo source_info(
diff --git a/ios/web/service_manager_context.mm b/ios/web/service_manager_context.mm index afbd0cc4..6e6476ef 100644 --- a/ios/web/service_manager_context.mm +++ b/ios/web/service_manager_context.mm
@@ -17,10 +17,12 @@ #include "base/process/process_handle.h" #include "base/single_thread_task_runner.h" #include "base/strings/utf_string_conversions.h" +#include "base/task/post_task.h" #include "ios/web/grit/ios_web_resources.h" #include "ios/web/public/service_manager_connection.h" #include "ios/web/public/service_names.mojom.h" #include "ios/web/public/web_client.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "ios/web/service_manager_connection_impl.h" #include "services/catalog/manifest_provider.h" @@ -98,18 +100,17 @@ void Start( service_manager::mojom::ServicePtrInfo packaged_services_service_info, std::unique_ptr<BuiltinManifestProvider> manifest_provider) { - WebThread::GetTaskRunnerForThread(WebThread::IO) - ->PostTask(FROM_HERE, - base::Bind(&InProcessServiceManagerContext::StartOnIOThread, - this, base::Passed(&manifest_provider), - base::Passed(&packaged_services_service_info))); + base::PostTaskWithTraits( + FROM_HERE, {WebThread::IO}, + base::BindOnce(&InProcessServiceManagerContext::StartOnIOThread, this, + base::Passed(&manifest_provider), + base::Passed(&packaged_services_service_info))); } void ShutDown() { - WebThread::GetTaskRunnerForThread(WebThread::IO) - ->PostTask( - FROM_HERE, - base::Bind(&InProcessServiceManagerContext::ShutDownOnIOThread, + base::PostTaskWithTraits( + FROM_HERE, {WebThread::IO}, + base::BindOnce(&InProcessServiceManagerContext::ShutDownOnIOThread, this)); } @@ -171,12 +172,12 @@ packaged_services_connection_ = ServiceManagerConnection::Create( std::move(packaged_services_request), - WebThread::GetTaskRunnerForThread(WebThread::IO)); + base::CreateSingleThreadTaskRunnerWithTraits({WebThread::IO})); service_manager::mojom::ServicePtr root_browser_service; ServiceManagerConnection::Set(ServiceManagerConnection::Create( mojo::MakeRequest(&root_browser_service), - WebThread::GetTaskRunnerForThread(WebThread::IO))); + base::CreateSingleThreadTaskRunnerWithTraits({WebThread::IO}))); auto* browser_connection = ServiceManagerConnection::Get(); service_manager::mojom::PIDReceiverPtr pid_receiver;
diff --git a/ios/web/shell/shell_browser_state.mm b/ios/web/shell/shell_browser_state.mm index 9feb8c39..9ef4ab0 100644 --- a/ios/web/shell/shell_browser_state.mm +++ b/ios/web/shell/shell_browser_state.mm
@@ -7,7 +7,9 @@ #include "base/base_paths.h" #include "base/files/file_path.h" #include "base/path_service.h" +#include "base/task/post_task.h" #include "base/threading/thread_restrictions.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "ios/web/shell/shell_url_request_context_getter.h" #include "services/test/user_id/user_id_service.h" @@ -23,7 +25,7 @@ request_context_getter_ = new ShellURLRequestContextGetter( GetStatePath(), - web::WebThread::GetTaskRunnerForThread(web::WebThread::IO)); + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO})); BrowserState::Initialize(this, path_); }
diff --git a/ios/web/web_state/session_certificate_policy_cache_impl.mm b/ios/web/web_state/session_certificate_policy_cache_impl.mm index 1e5ae16..f115c4e2 100644 --- a/ios/web/web_state/session_certificate_policy_cache_impl.mm +++ b/ios/web/web_state/session_certificate_policy_cache_impl.mm
@@ -5,8 +5,10 @@ #import "ios/web/web_state/session_certificate_policy_cache_impl.h" #include "base/bind.h" +#include "base/task/post_task.h" #include "ios/web/public/certificate_policy_cache.h" #import "ios/web/public/crw_session_certificate_policy_cache_storage.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #if !defined(__has_feature) || !__has_feature(objc_arc) @@ -71,8 +73,8 @@ DCHECK(cache.get()); NSSet* allowed_certs = [NSSet setWithSet:allowed_certs_]; const scoped_refptr<web::CertificatePolicyCache> cache_copy = cache; - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::BindOnce(^{ for (CRWSessionCertificateStorage* cert in allowed_certs) { cache_copy->AllowCertForHost(cert.certificate, cert.host, cert.status);
diff --git a/ios/web/web_state/session_certificate_policy_cache_impl_unittest.mm b/ios/web/web_state/session_certificate_policy_cache_impl_unittest.mm index 3600aa35..93da74fd 100644 --- a/ios/web/web_state/session_certificate_policy_cache_impl_unittest.mm +++ b/ios/web/web_state/session_certificate_policy_cache_impl_unittest.mm
@@ -5,11 +5,13 @@ #import "ios/web/web_state/session_certificate_policy_cache_impl.h" #include "base/bind.h" +#include "base/task/post_task.h" #import "base/test/ios/wait_util.h" #include "ios/web/public/certificate_policy_cache.h" #import "ios/web/public/crw_session_certificate_policy_cache_storage.h" #include "ios/web/public/test/fakes/test_browser_state.h" #include "ios/web/public/test/test_web_thread_bundle.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "net/cert/x509_certificate.h" #include "net/test/cert_test_util.h" @@ -35,7 +37,7 @@ __block web::CertPolicy::Judgment judgement = web::CertPolicy::Judgment::UNKNOWN; __block bool completed = false; - web::WebThread::PostTask(web::WebThread::IO, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::IO}, base::BindOnce(^{ completed = true; judgement = cache->QueryPolicy(cert.get(), host, status);
diff --git a/ios/web/web_state/web_state_unittest.mm b/ios/web/web_state/web_state_unittest.mm index ab84c53..bb54925 100644 --- a/ios/web/web_state/web_state_unittest.mm +++ b/ios/web/web_state/web_state_unittest.mm
@@ -15,6 +15,7 @@ #import "ios/web/public/crw_navigation_item_storage.h" #import "ios/web/public/crw_session_storage.h" #include "ios/web/public/features.h" +#import "ios/web/public/navigation_item.h" #import "ios/web/public/navigation_manager.h" #import "ios/web/public/test/fakes/test_web_state_delegate.h" #import "ios/web/public/test/web_test_with_web_state.h" @@ -302,6 +303,7 @@ CRWSessionStorage* session_storage = [[CRWSessionStorage alloc] init]; session_storage.itemStorages = item_storages; auto web_state = WebState::CreateWithStorageSession(params, session_storage); + WebState* web_state_ptr = web_state.get(); NavigationManager* navigation_manager = web_state->GetNavigationManager(); // TODO(crbug.com/873729): The session will not be restored until // LoadIfNecessary call. Fix the bug and remove extra call. @@ -312,14 +314,49 @@ ? wk_navigation_util::kMaxSessionSize : kItemCount; EXPECT_TRUE(WaitUntilConditionOrTimeout(kWaitForPageLoadTimeout, ^{ - bool restored = navigation_manager->GetItemCount() == kExpectedItemCount; + bool restored = navigation_manager->GetItemCount() == kExpectedItemCount && + navigation_manager->CanGoForward(); if (!restored) { - EXPECT_FALSE(navigation_manager->CanGoBack()); EXPECT_FALSE(navigation_manager->CanGoForward()); + // TODO(crbug.com/877671): Ensure that the following API work correctly: + // - WebState::GetLastCommittedURL + // - NavigationManager::GetBackwardItems + // - NavigationManager::GetForwardItems + // - NavigationManager::GetLastCommittedItem + // - NavigationManager::GetPendingItem + // - NavigationManager::GetLastCommittedItemIndex + // - NavigationManager::GetPendingItemIndex + } else { + EXPECT_EQ("http://www.0.com/", web_state_ptr->GetLastCommittedURL()); + NavigationItem* last_committed_item = + navigation_manager->GetLastCommittedItem(); + EXPECT_TRUE(last_committed_item); + EXPECT_TRUE(last_committed_item && + last_committed_item->GetURL() == "http://www.0.com/"); + EXPECT_FALSE(navigation_manager->GetPendingItem()); + EXPECT_EQ(0, navigation_manager->GetLastCommittedItemIndex()); + EXPECT_EQ(-1, navigation_manager->GetPendingItemIndex()); + EXPECT_TRUE(navigation_manager->GetBackwardItems().empty()); + EXPECT_EQ(std::max(navigation_manager->GetItemCount() - 1, 0), + static_cast<int>(navigation_manager->GetForwardItems().size())); } + // TODO(crbug.com/877671): Ensure that the following API work correctly: + // - WebState::GetTitle + // - WebState::IsLoading + // - WebState::GetLoadingProgress + EXPECT_FALSE(web_state_ptr->IsCrashed()); + EXPECT_FALSE(web_state_ptr->IsEvicted()); + EXPECT_EQ("http://www.0.com/", web_state_ptr->GetVisibleURL()); + NavigationItem* visible_item = navigation_manager->GetVisibleItem(); + EXPECT_TRUE(visible_item); + EXPECT_TRUE(visible_item && visible_item->GetURL() == "http://www.0.com/"); + EXPECT_FALSE(navigation_manager->CanGoBack()); + EXPECT_FALSE(navigation_manager->GetTransientItem()); + return restored; })); EXPECT_EQ(kExpectedItemCount, navigation_manager->GetItemCount()); + EXPECT_TRUE(navigation_manager->CanGoForward()); } INSTANTIATE_TEST_CASE_P(
diff --git a/ios/web/web_thread_impl.cc b/ios/web/web_thread_impl.cc index 1882b792..627fcb7 100644 --- a/ios/web/web_thread_impl.cc +++ b/ios/web/web_thread_impl.cc
@@ -15,6 +15,7 @@ #include "base/message_loop/message_loop.h" #include "base/run_loop.h" #include "base/single_thread_task_runner.h" +#include "base/task/post_task.h" #include "base/task/task_executor.h" #include "base/threading/thread_restrictions.h" #include "ios/web/public/web_task_traits.h" @@ -47,14 +48,15 @@ bool PostDelayedTask(const base::Location& from_here, base::OnceClosure task, base::TimeDelta delay) override { - return WebThread::PostDelayedTask(id_, from_here, std::move(task), delay); + return base::PostDelayedTaskWithTraits(from_here, {id_}, std::move(task), + delay); } bool PostNonNestableDelayedTask(const base::Location& from_here, base::OnceClosure task, base::TimeDelta delay) override { - return WebThread::PostNonNestableDelayedTask(id_, from_here, - std::move(task), delay); + return base::PostDelayedTaskWithTraits(from_here, {id_, NonNestable()}, + std::move(task), delay); } bool RunsTasksInCurrentSequence() const override {
diff --git a/ios/web/webui/url_data_manager_ios.cc b/ios/web/webui/url_data_manager_ios.cc index 522c6ce6..746cfe5 100644 --- a/ios/web/webui/url_data_manager_ios.cc +++ b/ios/web/webui/url_data_manager_ios.cc
@@ -15,8 +15,10 @@ #include "base/stl_util.h" #include "base/strings/string_util.h" #include "base/synchronization/lock.h" +#include "base/task/post_task.h" #include "ios/web/public/browser_state.h" #include "ios/web/public/url_data_source_ios.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "ios/web/webui/url_data_manager_ios_backend.h" #include "ios/web/webui/url_data_source_ios_impl.h" @@ -62,8 +64,8 @@ void URLDataManagerIOS::AddDataSource(URLDataSourceIOSImpl* source) { DCHECK_CURRENTLY_ON(web::WebThread::UI); - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::Bind(&AddDataSourceOnIOThread, base::Unretained(browser_state_), base::WrapRefCounted(source))); } @@ -104,7 +106,7 @@ } if (schedule_delete) { // Schedule a task to delete the DataSource back on the UI thread. - web::WebThread::PostTask(web::WebThread::UI, FROM_HERE, + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::UI}, base::Bind(&URLDataManagerIOS::DeleteDataSources)); } }
diff --git a/ios/web/webui/url_data_manager_ios_backend.mm b/ios/web/webui/url_data_manager_ios_backend.mm index 26ba89a7..747febe 100644 --- a/ios/web/webui/url_data_manager_ios_backend.mm +++ b/ios/web/webui/url_data_manager_ios_backend.mm
@@ -19,9 +19,11 @@ #include "base/stl_util.h" #include "base/strings/string_util.h" #include "base/strings/stringprintf.h" +#include "base/task/post_task.h" #include "base/trace_event/trace_event.h" #include "ios/web/public/browser_state.h" #import "ios/web/public/web_client.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "ios/web/webui/shared_resources_data_source_ios.h" #include "ios/web/webui/url_data_source_ios_impl.h" @@ -393,9 +395,10 @@ const base::WeakPtr<URLRequestChromeJob>& job) { DCHECK_CURRENTLY_ON(WebThread::UI); std::string mime_type = source->source()->GetMimeType(path); - WebThread::PostTask(WebThread::IO, FROM_HERE, - base::Bind(&URLRequestChromeJob::MimeTypeAvailable, job, - base::RetainedRef(source), mime_type)); + base::PostTaskWithTraits( + FROM_HERE, {WebThread::IO}, + base::Bind(&URLRequestChromeJob::MimeTypeAvailable, job, + base::RetainedRef(source), mime_type)); } } // namespace @@ -512,7 +515,7 @@ // message loop before request for data. And correspondingly their // replies are put on the IO thread in the same order. scoped_refptr<base::SingleThreadTaskRunner> target_runner = - web::WebThread::GetTaskRunnerForThread(web::WebThread::UI); + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::UI}); target_runner->PostTask( FROM_HERE, base::Bind(&GetMimeTypeOnUI, base::RetainedRef(source), path, job->weak_factory_.GetWeakPtr()));
diff --git a/ios/web/webui/url_data_source_ios_impl.cc b/ios/web/webui/url_data_source_ios_impl.cc index b09d61ad..9257cec2 100644 --- a/ios/web/webui/url_data_source_ios_impl.cc +++ b/ios/web/webui/url_data_source_ios_impl.cc
@@ -8,7 +8,9 @@ #include "base/location.h" #include "base/memory/ref_counted_memory.h" #include "base/strings/string_util.h" +#include "base/task/post_task.h" #include "ios/web/public/url_data_source_ios.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "ios/web/webui/url_data_manager_ios_backend.h" @@ -40,8 +42,8 @@ // when the object is deleted. return; } - web::WebThread::PostTask( - web::WebThread::IO, FROM_HERE, + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::IO}, base::Bind(&URLDataSourceIOSImpl::SendResponseOnIOThread, this, request_id, std::move(bytes))); }
diff --git a/ios/web_view/internal/autofill/cwv_autofill_data_manager.mm b/ios/web_view/internal/autofill/cwv_autofill_data_manager.mm index 3849a73b..30aeaa7 100644 --- a/ios/web_view/internal/autofill/cwv_autofill_data_manager.mm +++ b/ios/web_view/internal/autofill/cwv_autofill_data_manager.mm
@@ -7,8 +7,10 @@ #include <memory> #include "base/bind.h" +#include "base/task/post_task.h" #include "components/autofill/core/browser/personal_data_manager.h" #include "components/autofill/core/browser/personal_data_manager_observer.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #import "ios/web_view/internal/autofill/cwv_autofill_profile_internal.h" #import "ios/web_view/internal/autofill/cwv_credit_card_internal.h" @@ -103,7 +105,7 @@ // |personalDataDidChange| to be invoked. if (_personalDataManager->IsDataLoaded()) { NSArray<CWVAutofillProfile*>* profiles = [self profiles]; - web::WebThread::PostTask(web::WebThread::UI, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ completionHandler(profiles); })); } else { @@ -126,7 +128,7 @@ // |personalDataDidChange| to be invoked. if (_personalDataManager->IsDataLoaded()) { NSArray<CWVCreditCard*>* creditCards = [self creditCards]; - web::WebThread::PostTask(web::WebThread::UI, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits(FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ completionHandler(creditCards); })); } else {
diff --git a/ios/web_view/internal/autofill/cwv_credit_card_verifier_unittest.mm b/ios/web_view/internal/autofill/cwv_credit_card_verifier_unittest.mm index 9704a82..4dce241 100644 --- a/ios/web_view/internal/autofill/cwv_credit_card_verifier_unittest.mm +++ b/ios/web_view/internal/autofill/cwv_credit_card_verifier_unittest.mm
@@ -13,6 +13,7 @@ #include "base/path_service.h" #include "base/run_loop.h" #include "base/strings/sys_string_conversions.h" +#include "base/task/post_task.h" #import "base/test/ios/wait_util.h" #include "components/autofill/core/browser/autofill_test_utils.h" #include "components/autofill/core/browser/card_unmask_delegate.h" @@ -21,6 +22,7 @@ #include "components/prefs/pref_registry_simple.h" #include "components/prefs/testing_pref_service.h" #include "ios/web/public/test/test_web_thread_bundle.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #import "ios/web_view/internal/autofill/cwv_credit_card_internal.h" #include "testing/gtest/include/gtest/gtest.h" @@ -49,8 +51,8 @@ void OnUnmaskResponse(const UnmaskResponse& unmask_response) override { unmask_response_ = unmask_response; // Fake the actual verification and just respond with success. - web::WebThread::PostTask( - web::WebThread::UI, FROM_HERE, base::BindOnce(^{ + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, base::BindOnce(^{ autofill::AutofillClient::PaymentsRpcResult result = autofill::AutofillClient::SUCCESS; [credit_card_verifier_ didReceiveUnmaskVerificationResult:result];
diff --git a/ios/web_view/internal/ios_global_state_web_view_configuration.cc b/ios/web_view/internal/ios_global_state_web_view_configuration.cc index 7d8d1d1..8f5feeb5 100644 --- a/ios/web_view/internal/ios_global_state_web_view_configuration.cc +++ b/ios/web_view/internal/ios_global_state_web_view_configuration.cc
@@ -5,6 +5,8 @@ #include "ios/web/public/global_state/ios_global_state_configuration.h" #include "base/single_thread_task_runner.h" +#include "base/task/post_task.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "ios/web_view/internal/web_view_global_state_util.h" @@ -16,7 +18,7 @@ dispatch_once(&once_token, ^{ ios_web_view::InitializeGlobalState(); }); - return web::WebThread::GetTaskRunnerForThread(web::WebThread::IO); + return base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO}); } } // namespace ios_global_state
diff --git a/ios/web_view/internal/sync/web_view_gcm_profile_service_factory.mm b/ios/web_view/internal/sync/web_view_gcm_profile_service_factory.mm index 6f908c35..e56b39a0 100644 --- a/ios/web_view/internal/sync/web_view_gcm_profile_service_factory.mm +++ b/ios/web_view/internal/sync/web_view_gcm_profile_service_factory.mm
@@ -12,6 +12,7 @@ #include "components/gcm_driver/gcm_client_factory.h" #include "components/gcm_driver/gcm_profile_service.h" #include "components/keyed_service/ios/browser_state_dependency_manager.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "ios/web_view/internal/signin/web_view_identity_manager_factory.h" #include "ios/web_view/internal/web_view_browser_state.h" @@ -43,11 +44,10 @@ web::BrowserState* context, base::WeakPtr<gcm::GCMProfileService> service, network::mojom::ProxyResolvingSocketFactoryRequest request) { - web::WebThread::GetTaskRunnerForThread(web::WebThread::UI) - ->PostTask( - FROM_HERE, - base::BindOnce(&RequestProxyResolvingSocketFactoryOnUIThread, context, - std::move(service), std::move(request))); + base::PostTaskWithTraits( + FROM_HERE, {web::WebThread::UI}, + base::BindOnce(&RequestProxyResolvingSocketFactoryOnUIThread, context, + std::move(service), std::move(request))); } } // namespace @@ -97,8 +97,8 @@ version_info::Channel::UNKNOWN, GetProductCategoryForSubtypes(), WebViewIdentityManagerFactory::GetForBrowserState(browser_state), base::WrapUnique(new gcm::GCMClientFactory), - web::WebThread::GetTaskRunnerForThread(web::WebThread::UI), - web::WebThread::GetTaskRunnerForThread(web::WebThread::IO), + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::UI}), + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO}), blocking_task_runner); } } // namespace ios_web_view
diff --git a/ios/web_view/internal/sync/web_view_sync_client.mm b/ios/web_view/internal/sync/web_view_sync_client.mm index 63bca2fb..787fa58 100644 --- a/ios/web_view/internal/sync/web_view_sync_client.mm +++ b/ios/web_view/internal/sync/web_view_sync_client.mm
@@ -6,6 +6,7 @@ #include "base/command_line.h" #include "base/logging.h" +#include "base/task/post_task.h" #include "components/autofill/core/browser/webdata/autofill_profile_sync_bridge.h" #include "components/autofill/core/browser/webdata/autofill_profile_syncable_service.h" #include "components/autofill/core/browser/webdata/autofill_wallet_metadata_syncable_service.h" @@ -27,6 +28,7 @@ #include "components/sync/user_events/user_event_service.h" #include "components/version_info/version_info.h" #include "components/version_info/version_string.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "ios/web_view/internal/autofill/web_view_personal_data_manager_factory.h" #include "ios/web_view/internal/passwords/web_view_password_store_factory.h" @@ -85,8 +87,9 @@ this, version_info::Channel::UNKNOWN, version_info::GetVersionNumber(), ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET, prefs::kSavingBrowserHistoryDisabled, - web::WebThread::GetTaskRunnerForThread(web::WebThread::UI), db_thread_, - profile_web_data_service_, account_web_data_service_, password_store_, + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::UI}), + db_thread_, profile_web_data_service_, account_web_data_service_, + password_store_, /*bookmark_sync_service=*/nullptr)); } @@ -218,7 +221,7 @@ return new syncer::SequencedModelWorker(db_thread_, syncer::GROUP_DB); case syncer::GROUP_UI: return new syncer::UIModelWorker( - web::WebThread::GetTaskRunnerForThread(web::WebThread::UI)); + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::UI})); case syncer::GROUP_PASSIVE: return new syncer::PassiveModelWorker(); case syncer::GROUP_PASSWORD:
diff --git a/ios/web_view/internal/web_view_browser_state.mm b/ios/web_view/internal/web_view_browser_state.mm index d0fde647..e444cc1 100644 --- a/ios/web_view/internal/web_view_browser_state.mm +++ b/ios/web_view/internal/web_view_browser_state.mm
@@ -10,6 +10,7 @@ #include "base/files/file_path.h" #include "base/memory/ptr_util.h" #include "base/path_service.h" +#include "base/task/post_task.h" #include "base/threading/thread_restrictions.h" #include "components/autofill/core/common/autofill_prefs.h" #include "components/gcm_driver/gcm_channel_status_syncer.h" @@ -25,6 +26,7 @@ #include "components/sync/base/sync_prefs.h" #include "components/translate/core/browser/translate_pref_names.h" #include "components/translate/core/browser/translate_prefs.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "ios/web_view/cwv_web_view_features.h" #include "ios/web_view/internal/autofill/web_view_personal_data_manager_factory.h" @@ -84,7 +86,7 @@ request_context_getter_ = new WebViewURLRequestContextGetter( GetStatePath(), - web::WebThread::GetTaskRunnerForThread(web::WebThread::IO)); + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::IO})); BrowserState::Initialize(this, path_);
diff --git a/ios/web_view/internal/webdata_services/web_view_web_data_service_wrapper_factory.cc b/ios/web_view/internal/webdata_services/web_view_web_data_service_wrapper_factory.cc index 7110b22..8f00467 100644 --- a/ios/web_view/internal/webdata_services/web_view_web_data_service_wrapper_factory.cc +++ b/ios/web_view/internal/webdata_services/web_view_web_data_service_wrapper_factory.cc
@@ -9,12 +9,14 @@ #include "base/files/file_path.h" #include "base/logging.h" #include "base/memory/singleton.h" +#include "base/task/post_task.h" #include "components/autofill/core/browser/webdata/autofill_webdata_service.h" #include "components/keyed_service/core/service_access_type.h" #include "components/keyed_service/ios/browser_state_dependency_manager.h" #include "components/signin/core/browser/webdata/token_web_data.h" #include "components/sync/model/syncable_service.h" #include "components/webdata_services/web_data_service_wrapper.h" +#include "ios/web/public/web_task_traits.h" #include "ios/web/public/web_thread.h" #include "ios/web_view/internal/app/application_context.h" #include "ios/web_view/internal/web_view_browser_state.h" @@ -81,7 +83,7 @@ return std::make_unique<WebDataServiceWrapper>( browser_state_path, ApplicationContext::GetInstance()->GetApplicationLocale(), - web::WebThread::GetTaskRunnerForThread(web::WebThread::UI), + base::CreateSingleThreadTaskRunnerWithTraits({web::WebThread::UI}), base::Callback<void(syncer::ModelType)>(), base::DoNothing()); }
diff --git a/media/capture/video/linux/v4l2_capture_delegate.cc b/media/capture/video/linux/v4l2_capture_delegate.cc index 2954c57..d78b067 100644 --- a/media/capture/video/linux/v4l2_capture_delegate.cc +++ b/media/capture/video/linux/v4l2_capture_delegate.cc
@@ -268,11 +268,10 @@ return; } - ResetUserAndCameraControlsToDefault(device_fd_.get()); + ResetUserAndCameraControlsToDefault(); v4l2_capability cap = {}; - if (!((HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), VIDIOC_QUERYCAP, &cap)) == - 0) && + if (!(DoIoctl(VIDIOC_QUERYCAP, &cap) == 0 && ((cap.capabilities & V4L2_CAP_VIDEO_CAPTURE) && !(cap.capabilities & V4L2_CAP_VIDEO_OUTPUT)))) { device_fd_.reset(); @@ -289,11 +288,9 @@ v4l2_fmtdesc fmtdesc = {}; fmtdesc.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - for (; HANDLE_EINTR( - v4l2_->ioctl(device_fd_.get(), VIDIOC_ENUM_FMT, &fmtdesc)) == 0; - ++fmtdesc.index) { + for (; DoIoctl(VIDIOC_ENUM_FMT, &fmtdesc) == 0; ++fmtdesc.index) best = std::find(desired_v4l2_formats.begin(), best, fmtdesc.pixelformat); - } + if (best == desired_v4l2_formats.end()) { SetErrorState(VideoCaptureError::kV4L2FailedToFindASupportedCameraFormat, FROM_HERE, "Failed to find a supported camera format."); @@ -303,8 +300,7 @@ DVLOG(1) << "Chosen pixel format is " << FourccToString(*best); FillV4L2Format(&video_fmt_, width, height, *best); - if (HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), VIDIOC_S_FMT, &video_fmt_)) < - 0) { + if (DoIoctl(VIDIOC_S_FMT, &video_fmt_) < 0) { SetErrorState(VideoCaptureError::kV4L2FailedToSetVideoCaptureFormat, FROM_HERE, "Failed to set video capture format"); return; @@ -321,8 +317,7 @@ v4l2_streamparm streamparm = {}; streamparm.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; // The following line checks that the driver knows about framerate get/set. - if (HANDLE_EINTR( - v4l2_->ioctl(device_fd_.get(), VIDIOC_G_PARM, &streamparm)) >= 0) { + if (DoIoctl(VIDIOC_G_PARM, &streamparm) >= 0) { // Now check if the device is able to accept a capture framerate set. if (streamparm.parm.capture.capability & V4L2_CAP_TIMEPERFRAME) { // |frame_rate| is float, approximate by a fraction. @@ -331,8 +326,7 @@ (frame_rate) ? (frame_rate * kFrameRatePrecision) : (kTypicalFramerate * kFrameRatePrecision); - if (HANDLE_EINTR( - v4l2_->ioctl(device_fd_.get(), VIDIOC_S_PARM, &streamparm)) < 0) { + if (DoIoctl(VIDIOC_S_PARM, &streamparm) < 0) { SetErrorState(VideoCaptureError::kV4L2FailedToSetCameraFramerate, FROM_HERE, "Failed to set camera framerate"); return; @@ -353,8 +347,7 @@ struct v4l2_control control = {}; control.id = V4L2_CID_POWER_LINE_FREQUENCY; control.value = power_line_frequency_; - const int retval = - HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), VIDIOC_S_CTRL, &control)); + const int retval = DoIoctl(VIDIOC_S_CTRL, &control); if (retval != 0) DVLOG(1) << "Error setting power line frequency removal"; } @@ -366,8 +359,7 @@ v4l2_requestbuffers r_buffer; FillV4L2RequestBuffer(&r_buffer, kNumVideoBuffers); - if (HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), VIDIOC_REQBUFS, &r_buffer)) < - 0) { + if (DoIoctl(VIDIOC_REQBUFS, &r_buffer) < 0) { SetErrorState(VideoCaptureError::kV4L2ErrorRequestingMmapBuffers, FROM_HERE, "Error requesting MMAP buffers from V4L2"); return; @@ -381,8 +373,7 @@ } v4l2_buf_type capture_type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - if (HANDLE_EINTR( - v4l2_->ioctl(device_fd_.get(), VIDIOC_STREAMON, &capture_type)) < 0) { + if (DoIoctl(VIDIOC_STREAMON, &capture_type) < 0) { SetErrorState(VideoCaptureError::kV4L2VidiocStreamonFailed, FROM_HERE, "VIDIOC_STREAMON failed"); return; @@ -401,8 +392,7 @@ // The order is important: stop streaming, clear |buffer_pool_|, // thus munmap()ing the v4l2_buffers, and then return them to the OS. v4l2_buf_type capture_type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - if (HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), VIDIOC_STREAMOFF, - &capture_type)) < 0) { + if (DoIoctl(VIDIOC_STREAMOFF, &capture_type) < 0) { SetErrorState(VideoCaptureError::kV4L2VidiocStreamoffFailed, FROM_HERE, "VIDIOC_STREAMOFF failed"); return; @@ -412,10 +402,10 @@ v4l2_requestbuffers r_buffer; FillV4L2RequestBuffer(&r_buffer, 0); - if (HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), VIDIOC_REQBUFS, &r_buffer)) < - 0) + if (DoIoctl(VIDIOC_REQBUFS, &r_buffer) < 0) { SetErrorState(VideoCaptureError::kV4L2FailedToVidiocReqbufsWithCount0, FROM_HERE, "Failed to VIDIOC_REQBUFS with count = 0"); + } // At this point we can close the device. // This is also needed for correctly changing settings later via VIDIOC_S_FMT. @@ -438,17 +428,16 @@ mojom::PhotoStatePtr photo_capabilities = mojom::PhotoState::New(); - photo_capabilities->zoom = - RetrieveUserControlRange(device_fd_.get(), V4L2_CID_ZOOM_ABSOLUTE); + photo_capabilities->zoom = RetrieveUserControlRange(V4L2_CID_ZOOM_ABSOLUTE); v4l2_queryctrl manual_focus_ctrl = {}; manual_focus_ctrl.id = V4L2_CID_FOCUS_ABSOLUTE; - if (RunIoctl(device_fd_.get(), VIDIOC_QUERYCTRL, &manual_focus_ctrl)) + if (RunIoctl(VIDIOC_QUERYCTRL, &manual_focus_ctrl)) photo_capabilities->supported_focus_modes.push_back(MeteringMode::MANUAL); v4l2_queryctrl auto_focus_ctrl = {}; auto_focus_ctrl.id = V4L2_CID_FOCUS_AUTO; - if (RunIoctl(device_fd_.get(), VIDIOC_QUERYCTRL, &auto_focus_ctrl)) { + if (RunIoctl(VIDIOC_QUERYCTRL, &auto_focus_ctrl)) { photo_capabilities->supported_focus_modes.push_back( MeteringMode::CONTINUOUS); } @@ -456,19 +445,18 @@ photo_capabilities->current_focus_mode = MeteringMode::NONE; v4l2_control auto_focus_current = {}; auto_focus_current.id = V4L2_CID_FOCUS_AUTO; - if (HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), VIDIOC_G_CTRL, - &auto_focus_current)) >= 0) { + if (DoIoctl(VIDIOC_G_CTRL, &auto_focus_current) >= 0) { photo_capabilities->current_focus_mode = auto_focus_current.value ? MeteringMode::CONTINUOUS : MeteringMode::MANUAL; } photo_capabilities->focus_distance = - RetrieveUserControlRange(device_fd_.get(), V4L2_CID_FOCUS_ABSOLUTE); + RetrieveUserControlRange(V4L2_CID_FOCUS_ABSOLUTE); v4l2_queryctrl auto_exposure_ctrl = {}; auto_exposure_ctrl.id = V4L2_CID_EXPOSURE_AUTO; - if (RunIoctl(device_fd_.get(), VIDIOC_QUERYCTRL, &auto_exposure_ctrl)) { + if (RunIoctl(VIDIOC_QUERYCTRL, &auto_exposure_ctrl)) { photo_capabilities->supported_exposure_modes.push_back( MeteringMode::MANUAL); photo_capabilities->supported_exposure_modes.push_back( @@ -478,8 +466,7 @@ photo_capabilities->current_exposure_mode = MeteringMode::NONE; v4l2_control exposure_current = {}; exposure_current.id = V4L2_CID_EXPOSURE_AUTO; - if (HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), VIDIOC_G_CTRL, - &exposure_current)) >= 0) { + if (DoIoctl(VIDIOC_G_CTRL, &exposure_current) >= 0) { photo_capabilities->current_exposure_mode = exposure_current.value == V4L2_EXPOSURE_MANUAL ? MeteringMode::MANUAL @@ -487,10 +474,10 @@ } photo_capabilities->exposure_compensation = - RetrieveUserControlRange(device_fd_.get(), V4L2_CID_EXPOSURE_ABSOLUTE); + RetrieveUserControlRange(V4L2_CID_EXPOSURE_ABSOLUTE); - photo_capabilities->color_temperature = RetrieveUserControlRange( - device_fd_.get(), V4L2_CID_WHITE_BALANCE_TEMPERATURE); + photo_capabilities->color_temperature = + RetrieveUserControlRange(V4L2_CID_WHITE_BALANCE_TEMPERATURE); if (photo_capabilities->color_temperature) { photo_capabilities->supported_white_balance_modes.push_back( MeteringMode::MANUAL); @@ -498,7 +485,7 @@ v4l2_queryctrl white_balance_ctrl = {}; white_balance_ctrl.id = V4L2_CID_AUTO_WHITE_BALANCE; - if (RunIoctl(device_fd_.get(), VIDIOC_QUERYCTRL, &white_balance_ctrl)) { + if (RunIoctl(VIDIOC_QUERYCTRL, &white_balance_ctrl)) { photo_capabilities->supported_white_balance_modes.push_back( MeteringMode::CONTINUOUS); } @@ -506,8 +493,7 @@ photo_capabilities->current_white_balance_mode = MeteringMode::NONE; v4l2_control white_balance_current = {}; white_balance_current.id = V4L2_CID_AUTO_WHITE_BALANCE; - if (HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), VIDIOC_G_CTRL, - &white_balance_current)) >= 0) { + if (DoIoctl(VIDIOC_G_CTRL, &white_balance_current) >= 0) { photo_capabilities->current_white_balance_mode = white_balance_current.value ? MeteringMode::CONTINUOUS : MeteringMode::MANUAL; @@ -524,13 +510,11 @@ photo_capabilities->torch = false; photo_capabilities->brightness = - RetrieveUserControlRange(device_fd_.get(), V4L2_CID_BRIGHTNESS); - photo_capabilities->contrast = - RetrieveUserControlRange(device_fd_.get(), V4L2_CID_CONTRAST); + RetrieveUserControlRange(V4L2_CID_BRIGHTNESS); + photo_capabilities->contrast = RetrieveUserControlRange(V4L2_CID_CONTRAST); photo_capabilities->saturation = - RetrieveUserControlRange(device_fd_.get(), V4L2_CID_SATURATION); - photo_capabilities->sharpness = - RetrieveUserControlRange(device_fd_.get(), V4L2_CID_SHARPNESS); + RetrieveUserControlRange(V4L2_CID_SATURATION); + photo_capabilities->sharpness = RetrieveUserControlRange(V4L2_CID_SHARPNESS); std::move(callback).Run(std::move(photo_capabilities)); } @@ -546,8 +530,7 @@ v4l2_control zoom_current = {}; zoom_current.id = V4L2_CID_ZOOM_ABSOLUTE; zoom_current.value = settings->zoom; - if (HANDLE_EINTR( - v4l2_->ioctl(device_fd_.get(), VIDIOC_S_CTRL, &zoom_current)) < 0) + if (DoIoctl(VIDIOC_S_CTRL, &zoom_current) < 0) DPLOG(ERROR) << "setting zoom to " << settings->zoom; } @@ -556,8 +539,7 @@ v4l2_control set_focus_distance_ctrl = {}; set_focus_distance_ctrl.id = V4L2_CID_FOCUS_ABSOLUTE; set_focus_distance_ctrl.value = settings->focus_distance; - if (HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), VIDIOC_S_CTRL, - &set_focus_distance_ctrl)) < 0) + if (DoIoctl(VIDIOC_S_CTRL, &set_focus_distance_ctrl) < 0) DPLOG(ERROR) << "setting focus distance to " << settings->focus_distance; } @@ -568,22 +550,19 @@ white_balance_set.id = V4L2_CID_AUTO_WHITE_BALANCE; white_balance_set.value = settings->white_balance_mode == mojom::MeteringMode::CONTINUOUS; - HANDLE_EINTR( - v4l2_->ioctl(device_fd_.get(), VIDIOC_S_CTRL, &white_balance_set)); + DoIoctl(VIDIOC_S_CTRL, &white_balance_set); } if (settings->has_color_temperature) { v4l2_control auto_white_balance_current = {}; auto_white_balance_current.id = V4L2_CID_AUTO_WHITE_BALANCE; - const int result = HANDLE_EINTR(v4l2_->ioctl( - device_fd_.get(), VIDIOC_G_CTRL, &auto_white_balance_current)); + const int result = DoIoctl(VIDIOC_G_CTRL, &auto_white_balance_current); // Color temperature can only be applied if Auto White Balance is off. if (result >= 0 && !auto_white_balance_current.value) { v4l2_control set_temperature = {}; set_temperature.id = V4L2_CID_WHITE_BALANCE_TEMPERATURE; set_temperature.value = settings->color_temperature; - HANDLE_EINTR( - v4l2_->ioctl(device_fd_.get(), VIDIOC_S_CTRL, &set_temperature)); + DoIoctl(VIDIOC_S_CTRL, &set_temperature); } } @@ -596,22 +575,19 @@ settings->exposure_mode == mojom::MeteringMode::CONTINUOUS ? V4L2_EXPOSURE_APERTURE_PRIORITY : V4L2_EXPOSURE_MANUAL; - HANDLE_EINTR( - v4l2_->ioctl(device_fd_.get(), VIDIOC_S_CTRL, &exposure_mode_set)); + DoIoctl(VIDIOC_S_CTRL, &exposure_mode_set); } if (settings->has_exposure_compensation) { v4l2_control auto_exposure_current = {}; auto_exposure_current.id = V4L2_CID_EXPOSURE_AUTO; - const int result = HANDLE_EINTR( - v4l2_->ioctl(device_fd_.get(), VIDIOC_G_CTRL, &auto_exposure_current)); + const int result = DoIoctl(VIDIOC_G_CTRL, &auto_exposure_current); // Exposure Compensation can only be applied if Auto Exposure is off. if (result >= 0 && auto_exposure_current.value == V4L2_EXPOSURE_MANUAL) { v4l2_control set_exposure = {}; set_exposure.id = V4L2_CID_EXPOSURE_ABSOLUTE; set_exposure.value = settings->exposure_compensation; - HANDLE_EINTR( - v4l2_->ioctl(device_fd_.get(), VIDIOC_S_CTRL, &set_exposure)); + DoIoctl(VIDIOC_S_CTRL, &set_exposure); } } @@ -619,32 +595,28 @@ v4l2_control current = {}; current.id = V4L2_CID_BRIGHTNESS; current.value = settings->brightness; - if (HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), VIDIOC_S_CTRL, ¤t)) < - 0) + if (DoIoctl(VIDIOC_S_CTRL, ¤t) < 0) DPLOG(ERROR) << "setting brightness to " << settings->brightness; } if (settings->has_contrast) { v4l2_control current = {}; current.id = V4L2_CID_CONTRAST; current.value = settings->contrast; - if (HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), VIDIOC_S_CTRL, ¤t)) < - 0) + if (DoIoctl(VIDIOC_S_CTRL, ¤t) < 0) DPLOG(ERROR) << "setting contrast to " << settings->contrast; } if (settings->has_saturation) { v4l2_control current = {}; current.id = V4L2_CID_SATURATION; current.value = settings->saturation; - if (HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), VIDIOC_S_CTRL, ¤t)) < - 0) + if (DoIoctl(VIDIOC_S_CTRL, ¤t) < 0) DPLOG(ERROR) << "setting saturation to " << settings->saturation; } if (settings->has_sharpness) { v4l2_control current = {}; current.id = V4L2_CID_SHARPNESS; current.value = settings->sharpness; - if (HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), VIDIOC_S_CTRL, ¤t)) < - 0) + if (DoIoctl(VIDIOC_S_CTRL, ¤t) < 0) DPLOG(ERROR) << "setting sharpness to " << settings->sharpness; } @@ -665,14 +637,9 @@ V4L2CaptureDelegate::~V4L2CaptureDelegate() = default; -// Running v4l2_->ioctl() on some devices, especially shortly after (re)opening -// the device file descriptor or (re)starting streaming, can fail but works -// after retrying (https://crbug.com/670262). Returns false if the |request| -// ioctl fails too many times. -bool V4L2CaptureDelegate::RunIoctl(int fd, int request, void* argp) { +bool V4L2CaptureDelegate::RunIoctl(int request, void* argp) { int num_retries = 0; - for (; HANDLE_EINTR(v4l2_->ioctl(fd, request, argp)) < 0 && - num_retries < kMaxIOCtrlRetries; + for (; DoIoctl(request, argp) < 0 && num_retries < kMaxIOCtrlRetries; ++num_retries) { DPLOG(WARNING) << "ioctl"; } @@ -680,16 +647,17 @@ return num_retries != kMaxIOCtrlRetries; } -// Creates a mojom::RangePtr with the (min, max, current, step) values of the -// control associated with |control_id|. Returns an empty Range otherwise. -mojom::RangePtr V4L2CaptureDelegate::RetrieveUserControlRange(int device_fd, - int control_id) { +int V4L2CaptureDelegate::DoIoctl(int request, void* argp) { + return HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), request, argp)); +} + +mojom::RangePtr V4L2CaptureDelegate::RetrieveUserControlRange(int control_id) { mojom::RangePtr capability = mojom::Range::New(); v4l2_queryctrl range = {}; range.id = control_id; range.type = V4L2_CTRL_TYPE_INTEGER; - if (!RunIoctl(device_fd, VIDIOC_QUERYCTRL, &range)) + if (!RunIoctl(VIDIOC_QUERYCTRL, &range)) return mojom::Range::New(); capability->max = range.maximum; capability->min = range.minimum; @@ -697,23 +665,19 @@ v4l2_control current = {}; current.id = control_id; - if (!RunIoctl(device_fd, VIDIOC_G_CTRL, ¤t)) + if (!RunIoctl(VIDIOC_G_CTRL, ¤t)) return mojom::Range::New(); capability->current = current.value; return capability; } -// Sets all user control to their default. Some controls are enabled by another -// flag, usually having the word "auto" in the name, see IsSpecialControl(). -// These flags are preset beforehand, then set to their defaults individually -// afterwards. -void V4L2CaptureDelegate::ResetUserAndCameraControlsToDefault(int device_fd) { +void V4L2CaptureDelegate::ResetUserAndCameraControlsToDefault() { // Set V4L2_CID_AUTO_WHITE_BALANCE to false first. v4l2_control auto_white_balance = {}; auto_white_balance.id = V4L2_CID_AUTO_WHITE_BALANCE; auto_white_balance.value = false; - if (!RunIoctl(device_fd, VIDIOC_S_CTRL, &auto_white_balance)) + if (!RunIoctl(VIDIOC_S_CTRL, &auto_white_balance)) return; std::vector<struct v4l2_ext_control> special_camera_controls; @@ -737,8 +701,7 @@ ext_controls.ctrl_class = V4L2_CID_CAMERA_CLASS; ext_controls.count = special_camera_controls.size(); ext_controls.controls = special_camera_controls.data(); - if (HANDLE_EINTR(v4l2_->ioctl(device_fd, VIDIOC_S_EXT_CTRLS, &ext_controls)) < - 0) + if (DoIoctl(VIDIOC_S_EXT_CTRLS, &ext_controls) < 0) DPLOG(INFO) << "VIDIOC_S_EXT_CTRLS"; std::vector<struct v4l2_ext_control> camera_controls; @@ -747,8 +710,7 @@ v4l2_queryctrl range = {}; range.id = control.control_base | V4L2_CTRL_FLAG_NEXT_CTRL; - while (0 == - HANDLE_EINTR(v4l2_->ioctl(device_fd, VIDIOC_QUERYCTRL, &range))) { + while (0 == DoIoctl(VIDIOC_QUERYCTRL, &range)) { if (V4L2_CTRL_ID2CLASS(range.id) != V4L2_CTRL_ID2CLASS(control.class_id)) break; range.id |= V4L2_CTRL_FLAG_NEXT_CTRL; @@ -765,12 +727,11 @@ } if (!camera_controls.empty()) { - struct v4l2_ext_controls ext_controls = {}; - ext_controls.ctrl_class = control.class_id; - ext_controls.count = camera_controls.size(); - ext_controls.controls = camera_controls.data(); - if (HANDLE_EINTR( - v4l2_->ioctl(device_fd, VIDIOC_S_EXT_CTRLS, &ext_controls)) < 0) + struct v4l2_ext_controls ext_controls2 = {}; + ext_controls2.ctrl_class = control.class_id; + ext_controls2.count = camera_controls.size(); + ext_controls2.controls = camera_controls.data(); + if (DoIoctl(VIDIOC_S_EXT_CTRLS, &ext_controls2) < 0) DPLOG(INFO) << "VIDIOC_S_EXT_CTRLS"; } } @@ -778,35 +739,34 @@ // Now set the special flags to the default values v4l2_queryctrl range = {}; range.id = V4L2_CID_AUTO_WHITE_BALANCE; - HANDLE_EINTR(v4l2_->ioctl(device_fd, VIDIOC_QUERYCTRL, &range)); + DoIoctl(VIDIOC_QUERYCTRL, &range); auto_white_balance.value = range.default_value; - HANDLE_EINTR(v4l2_->ioctl(device_fd, VIDIOC_S_CTRL, &auto_white_balance)); + DoIoctl(VIDIOC_S_CTRL, &auto_white_balance); special_camera_controls.clear(); - memset(&range, 0, sizeof(struct v4l2_queryctrl)); + memset(&range, 0, sizeof(range)); range.id = V4L2_CID_EXPOSURE_AUTO; - HANDLE_EINTR(v4l2_->ioctl(device_fd, VIDIOC_QUERYCTRL, &range)); + DoIoctl(VIDIOC_QUERYCTRL, &range); auto_exposure.value = range.default_value; special_camera_controls.push_back(auto_exposure); - memset(&range, 0, sizeof(struct v4l2_queryctrl)); + memset(&range, 0, sizeof(range)); range.id = V4L2_CID_EXPOSURE_AUTO_PRIORITY; - HANDLE_EINTR(v4l2_->ioctl(device_fd, VIDIOC_QUERYCTRL, &range)); + DoIoctl(VIDIOC_QUERYCTRL, &range); priority_auto_exposure.value = range.default_value; special_camera_controls.push_back(priority_auto_exposure); - memset(&range, 0, sizeof(struct v4l2_queryctrl)); + memset(&range, 0, sizeof(range)); range.id = V4L2_CID_FOCUS_AUTO; - HANDLE_EINTR(v4l2_->ioctl(device_fd, VIDIOC_QUERYCTRL, &range)); + DoIoctl(VIDIOC_QUERYCTRL, &range); auto_focus.value = range.default_value; special_camera_controls.push_back(auto_focus); - memset(&ext_controls, 0, sizeof(struct v4l2_ext_controls)); + memset(&ext_controls, 0, sizeof(ext_controls)); ext_controls.ctrl_class = V4L2_CID_CAMERA_CLASS; ext_controls.count = special_camera_controls.size(); ext_controls.controls = special_camera_controls.data(); - if (HANDLE_EINTR(v4l2_->ioctl(device_fd, VIDIOC_S_EXT_CTRLS, &ext_controls)) < - 0) + if (DoIoctl(VIDIOC_S_EXT_CTRLS, &ext_controls) < 0) DPLOG(INFO) << "VIDIOC_S_EXT_CTRLS"; } @@ -814,8 +774,7 @@ v4l2_buffer buffer; FillV4L2Buffer(&buffer, index); - if (HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), VIDIOC_QUERYBUF, &buffer)) < - 0) { + if (DoIoctl(VIDIOC_QUERYBUF, &buffer) < 0) { DLOG(ERROR) << "Error querying status of a MMAP V4L2 buffer"; return false; } @@ -828,7 +787,7 @@ buffer_tracker_pool_.push_back(buffer_tracker); // Enqueue the buffer in the drivers incoming queue. - if (HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), VIDIOC_QBUF, &buffer)) < 0) { + if (DoIoctl(VIDIOC_QBUF, &buffer) < 0) { DLOG(ERROR) << "Error enqueuing a V4L2 buffer back into the driver"; return false; } @@ -871,8 +830,7 @@ v4l2_buffer buffer; FillV4L2Buffer(&buffer, 0); - if (HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), VIDIOC_DQBUF, &buffer)) < - 0) { + if (DoIoctl(VIDIOC_DQBUF, &buffer) < 0) { SetErrorState(VideoCaptureError::kV4L2FailedToDequeueCaptureBuffer, FROM_HERE, "Failed to dequeue capture buffer"); return; @@ -929,8 +887,7 @@ std::move(cb).Run(std::move(blob)); } - if (HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), VIDIOC_QBUF, &buffer)) < - 0) { + if (DoIoctl(VIDIOC_QBUF, &buffer) < 0) { SetErrorState(VideoCaptureError::kV4L2FailedToEnqueueCaptureBuffer, FROM_HERE, "Failed to enqueue capture buffer"); return;
diff --git a/media/capture/video/linux/v4l2_capture_delegate.h b/media/capture/video/linux/v4l2_capture_delegate.h index 694fb7df..11a779d 100644 --- a/media/capture/video/linux/v4l2_capture_delegate.h +++ b/media/capture/video/linux/v4l2_capture_delegate.h
@@ -76,11 +76,24 @@ class BufferTracker; - bool RunIoctl(int fd, int request, void* argp); - mojom::RangePtr RetrieveUserControlRange(int device_fd, int control_id); - void ResetUserAndCameraControlsToDefault(int device_fd); + // Running DoIoctl() on some devices, especially shortly after (re)opening the + // device file descriptor or (re)starting streaming, can fail but works after + // retrying (https://crbug.com/670262). Returns false if the |request| ioctl + // fails too many times. + bool RunIoctl(int request, void* argp); - // void CloseDevice(); + // Simple wrapper to do HANDLE_EINTR(v4l2_->ioctl(device_fd_.get(), ...)). + int DoIoctl(int request, void* argp); + + // Creates a mojom::RangePtr with the (min, max, current, step) values of the + // control associated with |control_id|. Returns an empty Range otherwise. + mojom::RangePtr RetrieveUserControlRange(int control_id); + + // Sets all user control to their default. Some controls are enabled by + // another flag, usually having the word "auto" in the name, see + // IsSpecialControl() in the .cc file. These flags are preset beforehand, then + // set to their defaults individually afterwards. + void ResetUserAndCameraControlsToDefault(); // VIDIOC_QUERYBUFs a buffer from V4L2, creates a BufferTracker for it and // enqueues it (VIDIOC_QBUF) back into V4L2.
diff --git a/media/capture/video/linux/video_capture_device_factory_linux.cc b/media/capture/video/linux/video_capture_device_factory_linux.cc index 6e7d965b..e59b937b 100644 --- a/media/capture/video/linux/video_capture_device_factory_linux.cc +++ b/media/capture/video/linux/video_capture_device_factory_linux.cc
@@ -205,7 +205,7 @@ // capabilities at the same time are memory-to-memory and are skipped, see // http://crbug.com/139356. v4l2_capability cap; - if ((HANDLE_EINTR(v4l2_->ioctl(fd.get(), VIDIOC_QUERYCAP, &cap)) == 0) && + if ((DoIoctl(fd.get(), VIDIOC_QUERYCAP, &cap) == 0) && (cap.capabilities & V4L2_CAP_VIDEO_CAPTURE && !(cap.capabilities & V4L2_CAP_VIDEO_OUTPUT)) && HasUsableFormats(fd.get(), cap.capabilities)) { @@ -250,6 +250,10 @@ GetSupportedFormatsForV4L2BufferType(fd.get(), supported_formats); } +int VideoCaptureDeviceFactoryLinux::DoIoctl(int fd, int request, void* argp) { + return HANDLE_EINTR(v4l2_->ioctl(fd, request, argp)); +} + bool VideoCaptureDeviceFactoryLinux::HasUsableFormats(int fd, uint32_t capabilities) { if (!(capabilities & V4L2_CAP_VIDEO_CAPTURE)) @@ -259,8 +263,7 @@ VideoCaptureDeviceLinux::GetListOfUsableFourCCs(false); v4l2_fmtdesc fmtdesc = {}; fmtdesc.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - for (; HANDLE_EINTR(v4l2_->ioctl(fd, VIDIOC_ENUM_FMT, &fmtdesc)) == 0; - ++fmtdesc.index) { + for (; DoIoctl(fd, VIDIOC_ENUM_FMT, &fmtdesc) == 0; ++fmtdesc.index) { if (base::ContainsValue(usable_fourccs, fmtdesc.pixelformat)) return true; } @@ -280,8 +283,7 @@ frame_interval.pixel_format = fourcc; frame_interval.width = width; frame_interval.height = height; - for (; HANDLE_EINTR(v4l2_->ioctl(fd, VIDIOC_ENUM_FRAMEINTERVALS, - &frame_interval)) == 0; + for (; DoIoctl(fd, VIDIOC_ENUM_FRAMEINTERVALS, &frame_interval) == 0; ++frame_interval.index) { if (frame_interval.type == V4L2_FRMIVAL_TYPE_DISCRETE) { if (frame_interval.discrete.numerator != 0) { @@ -308,8 +310,7 @@ VideoCaptureFormats* supported_formats) { v4l2_fmtdesc v4l2_format = {}; v4l2_format.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - for (; HANDLE_EINTR(v4l2_->ioctl(fd, VIDIOC_ENUM_FMT, &v4l2_format)) == 0; - ++v4l2_format.index) { + for (; DoIoctl(fd, VIDIOC_ENUM_FMT, &v4l2_format) == 0; ++v4l2_format.index) { VideoCaptureFormat supported_format; supported_format.pixel_format = VideoCaptureDeviceLinux::V4l2FourCcToChromiumPixelFormat( @@ -320,8 +321,7 @@ v4l2_frmsizeenum frame_size = {}; frame_size.pixel_format = v4l2_format.pixelformat; - for (; HANDLE_EINTR( - v4l2_->ioctl(fd, VIDIOC_ENUM_FRAMESIZES, &frame_size)) == 0; + for (; DoIoctl(fd, VIDIOC_ENUM_FRAMESIZES, &frame_size) == 0; ++frame_size.index) { if (frame_size.type == V4L2_FRMSIZE_TYPE_DISCRETE) { supported_format.frame_size.SetSize(frame_size.discrete.width,
diff --git a/media/capture/video/linux/video_capture_device_factory_linux.h b/media/capture/video/linux/video_capture_device_factory_linux.h index d642793b..08c7a83 100644 --- a/media/capture/video/linux/video_capture_device_factory_linux.h +++ b/media/capture/video/linux/video_capture_device_factory_linux.h
@@ -64,6 +64,9 @@ VideoCaptureFormats* supported_formats) override; private: + // Simple wrapper to do HANDLE_EINTR(v4l2_->ioctl(fd, ...)). + int DoIoctl(int fd, int request, void* argp); + bool HasUsableFormats(int fd, uint32_t capabilities); std::vector<float> GetFrameRateList(int fd, uint32_t fourcc,
diff --git a/media/gpu/ipc/service/vda_video_decoder.cc b/media/gpu/ipc/service/vda_video_decoder.cc index 63a88b3..9aba7f33 100644 --- a/media/gpu/ipc/service/vda_video_decoder.cc +++ b/media/gpu/ipc/service/vda_video_decoder.cc
@@ -318,11 +318,13 @@ return; } - // TODO(sandersd): TryToSetupDecodeOnSeparateThread(). gpu_weak_vda_factory_.reset( new base::WeakPtrFactory<VideoDecodeAccelerator>(vda_.get())); gpu_weak_vda_ = gpu_weak_vda_factory_->GetWeakPtr(); + vda_initialized_ = true; + decode_on_parent_thread_ = vda_->TryToSetupDecodeOnSeparateThread( + parent_weak_this_, parent_task_runner_); parent_task_runner_->PostTask(FROM_HERE, base::BindOnce(&VdaVideoDecoder::InitializeDone, @@ -374,6 +376,11 @@ timestamps_.Put(bitstream_buffer_id, buffer->timestamp()); decode_cbs_[bitstream_buffer_id] = decode_cb; + if (decode_on_parent_thread_) { + vda_->Decode(std::move(buffer), bitstream_buffer_id); + return; + } + gpu_task_runner_->PostTask( FROM_HERE, base::BindOnce(&VdaVideoDecoder::DecodeOnGpuThread, gpu_weak_this_,
diff --git a/media/gpu/ipc/service/vda_video_decoder.h b/media/gpu/ipc/service/vda_video_decoder.h index 0d08797..6eacc05 100644 --- a/media/gpu/ipc/service/vda_video_decoder.h +++ b/media/gpu/ipc/service/vda_video_decoder.h
@@ -188,15 +188,16 @@ base::MRUCache<int32_t, base::TimeDelta> timestamps_; // - // GPU thread state. - // - std::unique_ptr<VideoDecodeAccelerator> vda_; - bool vda_initialized_ = false; - - // // Shared state. // + // Only read on GPU thread during initialization, which is mutually exclusive + // with writes on the parent thread. VideoDecoderConfig config_; + // Only written on the GPU thread during initialization, which is mutually + // exclusive with reads on the parent thread. + std::unique_ptr<VideoDecodeAccelerator> vda_; + bool vda_initialized_ = false; + bool decode_on_parent_thread_ = false; // // Weak pointers, prefixed by bound thread.
diff --git a/media/gpu/ipc/service/vda_video_decoder_unittest.cc b/media/gpu/ipc/service/vda_video_decoder_unittest.cc index 93d743f..5af911db 100644 --- a/media/gpu/ipc/service/vda_video_decoder_unittest.cc +++ b/media/gpu/ipc/service/vda_video_decoder_unittest.cc
@@ -12,6 +12,7 @@ #include "base/single_thread_task_runner.h" #include "base/test/mock_callback.h" #include "base/test/scoped_task_environment.h" +#include "base/threading/thread.h" #include "base/time/time.h" #include "gpu/command_buffer/common/sync_token.h" #include "media/base/decode_status.h" @@ -92,13 +93,16 @@ } // namespace -class VdaVideoDecoderTest : public testing::Test { +// Parameterized by |decode_on_parent_thread|. +class VdaVideoDecoderTest : public testing::TestWithParam<bool> { public: - explicit VdaVideoDecoderTest() { - // TODO(sandersd): Use a separate thread for the GPU task runner. - scoped_refptr<base::SingleThreadTaskRunner> task_runner = + explicit VdaVideoDecoderTest() : gpu_thread_("GPU Thread") { + gpu_thread_.Start(); + scoped_refptr<base::SingleThreadTaskRunner> parent_task_runner = environment_.GetMainThreadTaskRunner(); - cbh_ = base::MakeRefCounted<FakeCommandBufferHelper>(task_runner); + scoped_refptr<base::SingleThreadTaskRunner> gpu_task_runner = + gpu_thread_.task_runner(); + cbh_ = base::MakeRefCounted<FakeCommandBufferHelper>(gpu_task_runner); // |owned_vda_| exists to delete |vda_| when |this| is destructed. Ownership // is passed to |vdavd_| by CreateVda(), but |vda_| remains to be used for @@ -110,7 +114,8 @@ EXPECT_CALL(*vda_, Destroy()); vdavd_.reset(new VdaVideoDecoder( - task_runner, task_runner, media_log_.Clone(), gfx::ColorSpace(), + parent_task_runner, gpu_task_runner, media_log_.Clone(), + gfx::ColorSpace(), base::BindOnce(&VdaVideoDecoderTest::CreatePictureBufferManager, base::Unretained(this)), base::BindOnce(&VdaVideoDecoderTest::CreateCommandBufferHelper, @@ -124,73 +129,140 @@ ~VdaVideoDecoderTest() override { // Drop ownership of anything that may have an async destruction process, // then allow destruction to complete. - cbh_->StubLost(); + gpu_thread_.task_runner()->PostTask( + FROM_HERE, base::BindOnce(&FakeCommandBufferHelper::StubLost, cbh_)); cbh_ = nullptr; owned_vda_ = nullptr; pbm_ = nullptr; vdavd_ = nullptr; - environment_.RunUntilIdle(); + RunUntilIdle(); } protected: + void RunUntilIdle() { + // FlushForTesting() only runs tasks that have already been posted. + // TODO(sandersd): Find a more reliable way to run all tasks. + gpu_thread_.FlushForTesting(); + gpu_thread_.FlushForTesting(); + environment_.RunUntilIdle(); + } + void InitializeWithConfig(const VideoDecoderConfig& config) { vdavd_->Initialize(config, false, nullptr, init_cb_.Get(), output_cb_.Get(), waiting_cb_.Get()); } void Initialize() { + EXPECT_CALL(*vda_, Initialize(_, vdavd_.get())).WillOnce(Return(true)); + EXPECT_CALL(*vda_, TryToSetupDecodeOnSeparateThread(_, _)) + .WillOnce(Return(GetParam())); + EXPECT_CALL(init_cb_, Run(true)); InitializeWithConfig(VideoDecoderConfig( kCodecVP9, VP9PROFILE_PROFILE0, PIXEL_FORMAT_I420, COLOR_SPACE_HD_REC709, VIDEO_ROTATION_0, gfx::Size(1920, 1088), gfx::Rect(1920, 1080), gfx::Size(1920, 1080), EmptyExtraData(), Unencrypted())); - - EXPECT_CALL(*vda_, Initialize(_, vdavd_.get())).WillOnce(Return(true)); - EXPECT_CALL(init_cb_, Run(true)); - environment_.RunUntilIdle(); + RunUntilIdle(); } int32_t ProvidePictureBuffer() { std::vector<PictureBuffer> picture_buffers; - client_->ProvidePictureBuffers(1, PIXEL_FORMAT_XRGB, 1, - gfx::Size(1920, 1088), GL_TEXTURE_2D); EXPECT_CALL(*vda_, AssignPictureBuffers(_)) .WillOnce(SaveArg<0>(&picture_buffers)); - environment_.RunUntilIdle(); - + gpu_thread_.task_runner()->PostTask( + FROM_HERE, + base::BindOnce(&VideoDecodeAccelerator::Client::ProvidePictureBuffers, + base::Unretained(client_), 1, PIXEL_FORMAT_XRGB, 1, + gfx::Size(1920, 1088), GL_TEXTURE_2D)); + RunUntilIdle(); DCHECK_EQ(picture_buffers.size(), 1U); return picture_buffers[0].id(); } int32_t Decode(base::TimeDelta timestamp) { int32_t bitstream_id = 0; - vdavd_->Decode(CreateDecoderBuffer(timestamp), decode_cb_.Get()); EXPECT_CALL(*vda_, Decode(_, _)).WillOnce(SaveArg<1>(&bitstream_id)); - environment_.RunUntilIdle(); + vdavd_->Decode(CreateDecoderBuffer(timestamp), decode_cb_.Get()); + RunUntilIdle(); return bitstream_id; } void NotifyEndOfBitstreamBuffer(int32_t bitstream_id) { - // Expectation must go before the call because NotifyEndOfBitstreamBuffer() - // implements the same-thread optimization. EXPECT_CALL(decode_cb_, Run(DecodeStatus::OK)); - client_->NotifyEndOfBitstreamBuffer(bitstream_id); - environment_.RunUntilIdle(); + if (GetParam()) { + // TODO(sandersd): The VDA could notify on either thread. Test both. + client_->NotifyEndOfBitstreamBuffer(bitstream_id); + } else { + gpu_thread_.task_runner()->PostTask( + FROM_HERE, + base::BindOnce( + &VideoDecodeAccelerator::Client::NotifyEndOfBitstreamBuffer, + base::Unretained(client_), bitstream_id)); + } + RunUntilIdle(); } - scoped_refptr<VideoFrame> PictureReady(int32_t bitstream_buffer_id, - int32_t picture_buffer_id) { - // Expectation must go before the call because PictureReady() implements the - // same-thread optimization. + scoped_refptr<VideoFrame> PictureReady( + int32_t bitstream_buffer_id, + int32_t picture_buffer_id, + gfx::Rect visible_rect = gfx::Rect(1920, 1080)) { scoped_refptr<VideoFrame> frame; + Picture picture(picture_buffer_id, bitstream_buffer_id, visible_rect, + gfx::ColorSpace::CreateSRGB(), true); EXPECT_CALL(output_cb_, Run(_)).WillOnce(SaveArg<0>(&frame)); - client_->PictureReady(Picture(picture_buffer_id, bitstream_buffer_id, - gfx::Rect(1920, 1080), - gfx::ColorSpace::CreateSRGB(), true)); - environment_.RunUntilIdle(); + if (GetParam()) { + // TODO(sandersd): The first time a picture is output, VDAs will do so on + // the GPU thread (because GpuVideoDecodeAccelerator required that). Test + // both. + client_->PictureReady(picture); + } else { + gpu_thread_.task_runner()->PostTask( + FROM_HERE, + base::BindOnce(&VideoDecodeAccelerator::Client::PictureReady, + base::Unretained(client_), picture)); + } + RunUntilIdle(); return frame; } + void DismissPictureBuffer(int32_t picture_buffer_id) { + gpu_thread_.task_runner()->PostTask( + FROM_HERE, + base::BindOnce(&VideoDecodeAccelerator::Client::DismissPictureBuffer, + base::Unretained(client_), picture_buffer_id)); + RunUntilIdle(); + } + + void NotifyFlushDone() { + gpu_thread_.task_runner()->PostTask( + FROM_HERE, + base::BindOnce(&VideoDecodeAccelerator::Client::NotifyFlushDone, + base::Unretained(client_))); + RunUntilIdle(); + } + + void NotifyResetDone() { + gpu_thread_.task_runner()->PostTask( + FROM_HERE, + base::BindOnce(&VideoDecodeAccelerator::Client::NotifyResetDone, + base::Unretained(client_))); + RunUntilIdle(); + } + + void NotifyError(VideoDecodeAccelerator::Error error) { + gpu_thread_.task_runner()->PostTask( + FROM_HERE, base::BindOnce(&VideoDecodeAccelerator::Client::NotifyError, + base::Unretained(client_), error)); + RunUntilIdle(); + } + + void ReleaseSyncToken(gpu::SyncToken sync_token) { + gpu_thread_.task_runner()->PostTask( + FROM_HERE, base::BindOnce(&FakeCommandBufferHelper::ReleaseSyncToken, + cbh_, sync_token)); + RunUntilIdle(); + } + // TODO(sandersd): This exact code is also used in // PictureBufferManagerImplTest. Share the implementation. gpu::SyncToken GenerateSyncToken(scoped_refptr<VideoFrame> video_frame) { @@ -225,6 +297,7 @@ } base::test::ScopedTaskEnvironment environment_; + base::Thread gpu_thread_; testing::NiceMock<MockMediaLog> media_log_; testing::StrictMock<base::MockCallback<VideoDecoder::InitCB>> init_cb_; @@ -247,79 +320,75 @@ DISALLOW_COPY_AND_ASSIGN(VdaVideoDecoderTest); }; -TEST_F(VdaVideoDecoderTest, CreateAndDestroy) {} +TEST_P(VdaVideoDecoderTest, CreateAndDestroy) {} -TEST_F(VdaVideoDecoderTest, Initialize) { +TEST_P(VdaVideoDecoderTest, Initialize) { Initialize(); } -TEST_F(VdaVideoDecoderTest, Initialize_UnsupportedSize) { +TEST_P(VdaVideoDecoderTest, Initialize_UnsupportedSize) { InitializeWithConfig(VideoDecoderConfig( kCodecVP9, VP9PROFILE_PROFILE0, PIXEL_FORMAT_I420, COLOR_SPACE_SD_REC601, VIDEO_ROTATION_0, gfx::Size(320, 240), gfx::Rect(320, 240), gfx::Size(320, 240), EmptyExtraData(), Unencrypted())); EXPECT_CALL(init_cb_, Run(false)); - environment_.RunUntilIdle(); + RunUntilIdle(); } -TEST_F(VdaVideoDecoderTest, Initialize_UnsupportedCodec) { +TEST_P(VdaVideoDecoderTest, Initialize_UnsupportedCodec) { InitializeWithConfig(VideoDecoderConfig( kCodecH264, H264PROFILE_BASELINE, PIXEL_FORMAT_I420, COLOR_SPACE_HD_REC709, VIDEO_ROTATION_0, gfx::Size(1920, 1088), gfx::Rect(1920, 1080), gfx::Size(1920, 1080), EmptyExtraData(), Unencrypted())); EXPECT_CALL(init_cb_, Run(false)); - environment_.RunUntilIdle(); + RunUntilIdle(); } -TEST_F(VdaVideoDecoderTest, Initialize_RejectedByVda) { +TEST_P(VdaVideoDecoderTest, Initialize_RejectedByVda) { + EXPECT_CALL(*vda_, Initialize(_, vdavd_.get())).WillOnce(Return(false)); InitializeWithConfig(VideoDecoderConfig( kCodecVP9, VP9PROFILE_PROFILE0, PIXEL_FORMAT_I420, COLOR_SPACE_HD_REC709, VIDEO_ROTATION_0, gfx::Size(1920, 1088), gfx::Rect(1920, 1080), gfx::Size(1920, 1080), EmptyExtraData(), Unencrypted())); - - EXPECT_CALL(*vda_, Initialize(_, vdavd_.get())).WillOnce(Return(false)); EXPECT_CALL(init_cb_, Run(false)); - environment_.RunUntilIdle(); + RunUntilIdle(); } -TEST_F(VdaVideoDecoderTest, ProvideAndDismissPictureBuffer) { +TEST_P(VdaVideoDecoderTest, ProvideAndDismissPictureBuffer) { Initialize(); int32_t id = ProvidePictureBuffer(); - client_->DismissPictureBuffer(id); - environment_.RunUntilIdle(); + DismissPictureBuffer(id); } -TEST_F(VdaVideoDecoderTest, Decode) { +TEST_P(VdaVideoDecoderTest, Decode) { Initialize(); int32_t bitstream_id = Decode(base::TimeDelta()); NotifyEndOfBitstreamBuffer(bitstream_id); } -TEST_F(VdaVideoDecoderTest, Decode_Reset) { +TEST_P(VdaVideoDecoderTest, Decode_Reset) { Initialize(); Decode(base::TimeDelta()); - vdavd_->Reset(reset_cb_.Get()); EXPECT_CALL(*vda_, Reset()); - environment_.RunUntilIdle(); + vdavd_->Reset(reset_cb_.Get()); + RunUntilIdle(); - client_->NotifyResetDone(); EXPECT_CALL(decode_cb_, Run(DecodeStatus::ABORTED)); EXPECT_CALL(reset_cb_, Run()); - environment_.RunUntilIdle(); + NotifyResetDone(); } -TEST_F(VdaVideoDecoderTest, Decode_NotifyError) { +TEST_P(VdaVideoDecoderTest, Decode_NotifyError) { Initialize(); Decode(base::TimeDelta()); - client_->NotifyError(VideoDecodeAccelerator::PLATFORM_FAILURE); EXPECT_CALL(decode_cb_, Run(DecodeStatus::DECODE_ERROR)); - environment_.RunUntilIdle(); + NotifyError(VideoDecodeAccelerator::PLATFORM_FAILURE); } -TEST_F(VdaVideoDecoderTest, Decode_OutputAndReuse) { +TEST_P(VdaVideoDecoderTest, Decode_OutputAndReuse) { Initialize(); int32_t bitstream_id = Decode(base::TimeDelta()); NotifyEndOfBitstreamBuffer(bitstream_id); @@ -330,44 +399,42 @@ // Dropping the frame triggers reuse, which will wait on the SyncPoint. gpu::SyncToken sync_token = GenerateSyncToken(frame); frame = nullptr; - environment_.RunUntilIdle(); + RunUntilIdle(); // But the VDA won't be notified until the SyncPoint wait completes. EXPECT_CALL(*vda_, ReusePictureBuffer(picture_buffer_id)); - cbh_->ReleaseSyncToken(sync_token); - environment_.RunUntilIdle(); + ReleaseSyncToken(sync_token); } -TEST_F(VdaVideoDecoderTest, Decode_OutputAndDismiss) { +TEST_P(VdaVideoDecoderTest, Decode_OutputAndDismiss) { Initialize(); int32_t bitstream_id = Decode(base::TimeDelta()); NotifyEndOfBitstreamBuffer(bitstream_id); int32_t picture_buffer_id = ProvidePictureBuffer(); scoped_refptr<VideoFrame> frame = PictureReady(bitstream_id, picture_buffer_id); - - client_->DismissPictureBuffer(picture_buffer_id); - environment_.RunUntilIdle(); + DismissPictureBuffer(picture_buffer_id); // Dropping the frame still requires a SyncPoint to wait on. gpu::SyncToken sync_token = GenerateSyncToken(frame); frame = nullptr; - environment_.RunUntilIdle(); + RunUntilIdle(); // But the VDA should not be notified when it completes. - cbh_->ReleaseSyncToken(sync_token); - environment_.RunUntilIdle(); + ReleaseSyncToken(sync_token); } -TEST_F(VdaVideoDecoderTest, Decode_Output_MaintainsAspect) { +TEST_P(VdaVideoDecoderTest, Decode_Output_MaintainsAspect) { // Initialize with a config that has a 2:1 pixel aspect ratio. + EXPECT_CALL(*vda_, Initialize(_, vdavd_.get())).WillOnce(Return(true)); + EXPECT_CALL(*vda_, TryToSetupDecodeOnSeparateThread(_, _)) + .WillOnce(Return(GetParam())); InitializeWithConfig(VideoDecoderConfig( kCodecVP9, VP9PROFILE_PROFILE0, PIXEL_FORMAT_I420, COLOR_SPACE_HD_REC709, VIDEO_ROTATION_0, gfx::Size(640, 480), gfx::Rect(640, 480), gfx::Size(1280, 480), EmptyExtraData(), Unencrypted())); - EXPECT_CALL(*vda_, Initialize(_, vdavd_.get())).WillOnce(Return(true)); EXPECT_CALL(init_cb_, Run(true)); - environment_.RunUntilIdle(); + RunUntilIdle(); // Assign a picture buffer that has size 1920x1088. int32_t picture_buffer_id = ProvidePictureBuffer(); @@ -376,12 +443,8 @@ int32_t bitstream_id = Decode(base::TimeDelta()); NotifyEndOfBitstreamBuffer(bitstream_id); - scoped_refptr<VideoFrame> frame; - EXPECT_CALL(output_cb_, Run(_)).WillOnce(SaveArg<0>(&frame)); - client_->PictureReady(Picture(picture_buffer_id, bitstream_id, - gfx::Rect(320, 240), - gfx::ColorSpace::CreateSRGB(), true)); - environment_.RunUntilIdle(); + scoped_refptr<VideoFrame> frame = + PictureReady(bitstream_id, picture_buffer_id, gfx::Rect(320, 240)); // The frame should have |natural_size| 640x240 (pixel aspect ratio // preserved). @@ -391,15 +454,18 @@ EXPECT_EQ(frame->visible_rect(), gfx::Rect(320, 240)); } -TEST_F(VdaVideoDecoderTest, Flush) { +TEST_P(VdaVideoDecoderTest, Flush) { Initialize(); - vdavd_->Decode(DecoderBuffer::CreateEOSBuffer(), decode_cb_.Get()); EXPECT_CALL(*vda_, Flush()); - environment_.RunUntilIdle(); + vdavd_->Decode(DecoderBuffer::CreateEOSBuffer(), decode_cb_.Get()); + RunUntilIdle(); - client_->NotifyFlushDone(); EXPECT_CALL(decode_cb_, Run(DecodeStatus::OK)); - environment_.RunUntilIdle(); + NotifyFlushDone(); } +INSTANTIATE_TEST_CASE_P(VdaVideoDecoder, + VdaVideoDecoderTest, + ::testing::Values(false, true)); + } // namespace media
diff --git a/media/mojo/clients/BUILD.gn b/media/mojo/clients/BUILD.gn index 9c6ae36..ab24a49f 100644 --- a/media/mojo/clients/BUILD.gn +++ b/media/mojo/clients/BUILD.gn
@@ -21,6 +21,8 @@ "//media/test/*", + "//chrome/browser:*", + "//content/gpu:*", # TODO(liberato): can we avoid this?
diff --git a/media/video/gpu_video_accelerator_factories.h b/media/video/gpu_video_accelerator_factories.h index 63b866c5..df18c36 100644 --- a/media/video/gpu_video_accelerator_factories.h +++ b/media/video/gpu_video_accelerator_factories.h
@@ -145,8 +145,6 @@ // Sets the current pipeline rendering color space. virtual void SetRenderingColorSpace(const gfx::ColorSpace& color_space) = 0; - protected: - friend class base::RefCounted<GpuVideoAcceleratorFactories>; virtual ~GpuVideoAcceleratorFactories() = default; };
diff --git a/mojo/public/cpp/platform/tests/platform_handle_unittest.cc b/mojo/public/cpp/platform/tests/platform_handle_unittest.cc index d68733a..6c570fd 100644 --- a/mojo/public/cpp/platform/tests/platform_handle_unittest.cc +++ b/mojo/public/cpp/platform/tests/platform_handle_unittest.cc
@@ -105,7 +105,8 @@ base::File test_file(temp_dir_.GetPath().AppendASCII("test"), base::File::FLAG_CREATE | base::File::FLAG_WRITE | base::File::FLAG_READ); - test_file.WriteAtCurrentPos(kTestData.data(), kTestData.size()); + test_file.WriteAtCurrentPos(kTestData.data(), + static_cast<int>(kTestData.size())); #if defined(OS_WIN) return PlatformHandle( @@ -127,7 +128,7 @@ base::File file(handle.GetFD().get()); #endif std::vector<char> buffer(kTestData.size()); - file.Read(0, buffer.data(), buffer.size()); + file.Read(0, buffer.data(), static_cast<int>(buffer.size())); std::string contents(buffer.begin(), buffer.end()); // Let |handle| retain ownership.
diff --git a/net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java b/net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java index 4a8007af..12006477 100644 --- a/net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java +++ b/net/android/java/src/org/chromium/net/AndroidNetworkLibrary.java
@@ -28,6 +28,7 @@ import org.chromium.base.VisibleForTesting; import org.chromium.base.annotations.CalledByNative; import org.chromium.base.annotations.CalledByNativeUnchecked; +import org.chromium.base.compat.ApiHelperForM; import java.io.FileDescriptor; import java.io.IOException; @@ -205,7 +206,7 @@ Context.CONNECTIVITY_SERVICE); if (connectivityManager == null) return false; - Network network = connectivityManager.getActiveNetwork(); + Network network = ApiHelperForM.getActiveNetwork(connectivityManager); if (network == null) return false; NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(network); @@ -295,7 +296,7 @@ if (connectivityManager == null) { return new byte[0][0]; } - Network network = connectivityManager.getActiveNetwork(); + Network network = ApiHelperForM.getActiveNetwork(connectivityManager); if (network == null) { return new byte[0][0]; }
diff --git a/net/android/java/src/org/chromium/net/NetworkChangeNotifier.java b/net/android/java/src/org/chromium/net/NetworkChangeNotifier.java index 3a3a380b..2b6f1aa 100644 --- a/net/android/java/src/org/chromium/net/NetworkChangeNotifier.java +++ b/net/android/java/src/org/chromium/net/NetworkChangeNotifier.java
@@ -5,7 +5,6 @@ package org.chromium.net; import android.annotation.SuppressLint; -import android.annotation.TargetApi; import android.content.Context; import android.net.ConnectivityManager; import android.os.Build; @@ -16,6 +15,7 @@ import org.chromium.base.annotations.CalledByNative; import org.chromium.base.annotations.JNINamespace; import org.chromium.base.annotations.NativeClassQualifiedName; +import org.chromium.base.compat.ApiHelperForM; import java.util.ArrayList; @@ -390,7 +390,6 @@ /** * Is the process bound to a network? */ - @TargetApi(Build.VERSION_CODES.M) private boolean isProcessBoundToNetworkInternal() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { return false; @@ -399,7 +398,7 @@ boolean returnValue = ConnectivityManager.getProcessDefaultNetwork() != null; return returnValue; } else { - return mConnectivityManager.getBoundNetworkForProcess() != null; + return ApiHelperForM.getBoundNetworkForProcess(mConnectivityManager) != null; } }
diff --git a/net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java b/net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java index bb1cac0..8f607e8 100644 --- a/net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java +++ b/net/android/java/src/org/chromium/net/NetworkChangeNotifierAutoDetect.java
@@ -35,6 +35,7 @@ import org.chromium.base.BuildConfig; import org.chromium.base.ContextUtils; import org.chromium.base.VisibleForTesting; +import org.chromium.base.compat.ApiHelperForM; import java.io.IOException; import java.net.Socket; @@ -212,7 +213,7 @@ NetworkInfo networkInfo; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { network = getDefaultNetwork(); - networkInfo = mConnectivityManager.getNetworkInfo(network); + networkInfo = ApiHelperForM.getNetworkInfo(mConnectivityManager, network); } else { networkInfo = mConnectivityManager.getActiveNetworkInfo(); } @@ -352,7 +353,7 @@ Network getDefaultNetwork() { Network defaultNetwork = null; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - defaultNetwork = mConnectivityManager.getActiveNetwork(); + defaultNetwork = ApiHelperForM.getActiveNetwork(mConnectivityManager); // getActiveNetwork() returning null cannot be trusted to indicate disconnected // as it suffers from https://crbug.com/677365. if (defaultNetwork != null) { @@ -1073,7 +1074,7 @@ @VisibleForTesting static long networkToNetId(Network network) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - return network.getNetworkHandle(); + return ApiHelperForM.getNetworkHandle(network); } else { // NOTE(pauljensen): This depends on Android framework implementation details. These // details cannot change because Lollipop is long since released.
diff --git a/net/log/net_log_event_type_list.h b/net/log/net_log_event_type_list.h index ca1429f4..002ba87 100644 --- a/net/log/net_log_event_type_list.h +++ b/net/log/net_log_event_type_list.h
@@ -1726,6 +1726,14 @@ // } EVENT_TYPE(QUIC_SESSION_PACKET_RETRANSMITTED) +// Session declared a QUIC packet lost. +// { +// "transmission_type": <The quic::TransmissionType of the packet>, +// "packet_number": <The packet's full 64-bit number as a base-10 string>, +// "detection_time": <The time at which the packet was declared lost> +// } +EVENT_TYPE(QUIC_SESSION_PACKET_LOST) + // Session received a QUIC packet with a sequence number that had previously // been received. // {
diff --git a/net/quic/quic_connection_logger.cc b/net/quic/quic_connection_logger.cc index 1063b31..9269e53 100644 --- a/net/quic/quic_connection_logger.cc +++ b/net/quic/quic_connection_logger.cc
@@ -73,6 +73,19 @@ return std::move(dict); } +std::unique_ptr<base::Value> NetLogQuicPacketLostCallback( + quic::QuicPacketNumber packet_number, + quic::TransmissionType transmission_type, + quic::QuicTime detection_time, + NetLogCaptureMode /*capture_mode*/) { + auto dict = std::make_unique<base::DictionaryValue>(); + dict->SetInteger("transmission_type", transmission_type); + dict->SetString("packet_number", base::NumberToString(packet_number)); + dict->SetString("detection_time_us", + base::Int64ToString(detection_time.ToDebuggingValue())); + return dict; +} + std::unique_ptr<base::Value> NetLogQuicDuplicatePacketCallback( quic::QuicPacketNumber packet_number, NetLogCaptureMode /* capture_mode */) { @@ -469,6 +482,18 @@ } } +void QuicConnectionLogger::OnPacketLoss( + quic::QuicPacketNumber lost_packet_number, + quic::TransmissionType transmission_type, + quic::QuicTime detection_time) { + if (!net_log_is_capturing_) + return; + net_log_.AddEvent( + NetLogEventType::QUIC_SESSION_PACKET_LOST, + base::Bind(&NetLogQuicPacketLostCallback, lost_packet_number, + transmission_type, detection_time)); +} + void QuicConnectionLogger::OnPingSent() { no_packet_received_after_ping_ = true; }
diff --git a/net/quic/quic_connection_logger.h b/net/quic/quic_connection_logger.h index 3c8ae21..e320098 100644 --- a/net/quic/quic_connection_logger.h +++ b/net/quic/quic_connection_logger.h
@@ -50,6 +50,9 @@ quic::QuicPacketNumber original_packet_number, quic::TransmissionType transmission_type, quic::QuicTime sent_time) override; + void OnPacketLoss(quic::QuicPacketNumber lost_packet_number, + quic::TransmissionType transmission_type, + quic::QuicTime detection_time) override; void OnPingSent() override; void OnPacketReceived(const quic::QuicSocketAddress& self_address, const quic::QuicSocketAddress& peer_address,
diff --git a/remoting/android/java/src/org/chromium/chromoting/Desktop.java b/remoting/android/java/src/org/chromium/chromoting/Desktop.java index ea90844..d266b0d 100644 --- a/remoting/android/java/src/org/chromium/chromoting/Desktop.java +++ b/remoting/android/java/src/org/chromium/chromoting/Desktop.java
@@ -33,7 +33,7 @@ import org.chromium.chromoting.help.HelpContext; import org.chromium.chromoting.help.HelpSingleton; import org.chromium.chromoting.jni.Client; -import org.chromium.ui.UiUtils; +import org.chromium.ui.KeyboardVisibilityDelegate; import java.util.List; @@ -526,7 +526,7 @@ */ public void showKeyboard() { if (!mHasPhysicalKeyboard) { - UiUtils.showKeyboard(mRemoteHostDesktop); + KeyboardVisibilityDelegate.getInstance().showKeyboard(mRemoteHostDesktop); } }
diff --git a/remoting/host/disconnect_window_win.cc b/remoting/host/disconnect_window_win.cc index 00285cd..1cd366e 100644 --- a/remoting/host/disconnect_window_win.cc +++ b/remoting/host/disconnect_window_win.cc
@@ -78,7 +78,9 @@ // Returns |control| rectangle in the dialog coordinates. bool GetControlRect(HWND control, RECT* rect); - // Trys to position the dialog window above the taskbar. + // Positions the dialog window based on the current auto-hide state. + // If auto-hide is enabled, the window is displayed near the center of the + // display, otherwise it is displayed just above the taskbar. void SetDialogPosition(); // Applies localization string and resizes the dialog. @@ -345,6 +347,9 @@ if (!was_auto_hidden_) return; + // Make sure the dialog is fully visible when it is reshown. + SetDialogPosition(); + if (!AnimateWindow(hwnd_, kAnimationDurationMs, AW_BLEND)) { PLOG(ERROR) << "AnimateWindow() failed to show dialog: "; ShowWindow(hwnd_, SW_SHOW); @@ -354,9 +359,6 @@ client_session_control_->DisconnectSession(protocol::OK); } was_auto_hidden_ = false; - - // Make sure the dialog is fully visible when it is reshown. - SetDialogPosition(); } void DisconnectWindowWin::HideDialog() { @@ -416,15 +418,27 @@ HMONITOR monitor = MonitorFromWindow(taskbar, MONITOR_DEFAULTTOPRIMARY); MONITORINFO monitor_info = {sizeof(monitor_info)}; RECT window_rect; - if (GetMonitorInfo(monitor, &monitor_info) && - GetWindowRect(hwnd_, &window_rect)) { - int window_width = window_rect.right - window_rect.left; - int window_height = window_rect.bottom - window_rect.top; - int top = monitor_info.rcWork.bottom - window_height; - int left = (monitor_info.rcWork.right + monitor_info.rcWork.left - - window_width) / 2; - SetWindowPos(hwnd_, nullptr, left, top, 0, 0, SWP_NOSIZE | SWP_NOZORDER); + if (!GetMonitorInfo(monitor, &monitor_info) || + !GetWindowRect(hwnd_, &window_rect)) { + return; } + + int window_width = window_rect.right - window_rect.left; + int window_height = window_rect.bottom - window_rect.top; + + // Default settings will display the window above the taskbar and centered + // along the x axis. + int top = monitor_info.rcWork.bottom - window_height; + int left = + (monitor_info.rcWork.right + monitor_info.rcWork.left - window_width) / 2; + + // Adjust the top value if the window is in auto-hide mode. We adjust the + // position to make the dialog a bit more obtrusive so that a local user will + // notice it before it auto-hides. + if (local_input_monitor_) + top = top * 0.7; + + SetWindowPos(hwnd_, nullptr, left, top, 0, 0, SWP_NOSIZE | SWP_NOZORDER); } bool DisconnectWindowWin::SetStrings() {
diff --git a/remoting/protocol/webrtc_dummy_video_encoder.cc b/remoting/protocol/webrtc_dummy_video_encoder.cc index 2aa53fd..ee31185 100644 --- a/remoting/protocol/webrtc_dummy_video_encoder.cc +++ b/remoting/protocol/webrtc_dummy_video_encoder.cc
@@ -162,7 +162,7 @@ int64_t encode_finished_time_ms = (encode_finished_time - base::TimeTicks()).InMilliseconds(); encoded_image.capture_time_ms_ = capture_time_ms; - encoded_image._timeStamp = static_cast<uint32_t>(capture_time_ms * 90); + encoded_image.SetTimestamp(static_cast<uint32_t>(capture_time_ms * 90)); encoded_image.playout_delay_.min_ms = 0; encoded_image.playout_delay_.max_ms = 0; encoded_image.timing_.encode_start_ms = encode_started_time_ms;
diff --git a/remoting/resources/remoting_strings_am.xtb b/remoting/resources/remoting_strings_am.xtb index bdb42f6..96d5c78 100644 --- a/remoting/resources/remoting_strings_am.xtb +++ b/remoting/resources/remoting_strings_am.xtb
@@ -330,6 +330,8 @@ <translation id="8525306231823319788">ሙሉ ማያ ገጽ</translation> <translation id="8548209692293300397">ከዚህ ቀደም እንደ <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) ሆነው ገብተዋል። በዚያ መለያ ውስጥ የእርስዎን ኮምፒውተሮች ለመድረስ በዚያ መለያ <ph name="LINK_BEGIN" />ወደ Google Chrome ይግቡ<ph name="LINK_END" />ና የChrome ርቀት ዴስክቶፕን ዳግም ይጫኑት።</translation> <translation id="8642984861538780905">ደህና</translation> +<translation id="8705151241155781642">• ለAndroid 9.0 Pie ድጋፍ ታክሏል። +• ከAndroid መሣሪያዎ ማያ ገጽ ጋር ለማመጣጠን የርቀት ዴስክቶፕ ጥራት መጠንን የመቀየር ድጋፍ።</translation> <translation id="8712909229180978490">የእኔን በGoogle አንጻፊ ላይ የተቀመጡ ፋይሎች ማየት አልችልም።</translation> <translation id="8743328882720071828"><ph name="CLIENT_USERNAME" /> የእርስዎን ኮምፒውተር እንዲመለከት እና እንዲቆጣጠር እንዲፈቀድለት ይፈልጋሉr?</translation> <translation id="8747048596626351634">ክፍለ ጊዜው ተበላሽቷል ወይም ለመጀመር አልቻለም። ~/.chrome-የርቀት-ዴስክቶፕ-ክፍለ ጊዜ በርቀት ኮምፒውተሩ ላይ የሚገኝ ከሆነ እንደ የዴስክቶፕ ድባብ ወይም የመስኮት አስተዳዳሪ የመሰለ ከፊት ገጽ የሚሄድ ሂደትን በመጠቀም እንደሚጀምር ያረጋግጡ።</translation>
diff --git a/remoting/resources/remoting_strings_ar.xtb b/remoting/resources/remoting_strings_ar.xtb index 91a4e44a..15fc4ad 100644 --- a/remoting/resources/remoting_strings_ar.xtb +++ b/remoting/resources/remoting_strings_ar.xtb
@@ -123,7 +123,7 @@ <translation id="3718805989288361841">هناك خطأ في إعدادات السياسة لسطح المكتب البعيد من Chrome. اتصل بمشرف النظام لتلقي المساعدة.</translation> <translation id="3776024066357219166">انتهت جلسة سطح المكتب البعيد من Chrome.</translation> <translation id="3846148461359626420">• تجربة أفضل للتحريك والتكبير/التصغير على iPhone X -• تحسينات الثبات وإصلاح الأخطاء</translation> +• تحسين الثبات وإصلاح الأخطاء</translation> <translation id="3870154837782082782">Google Inc.</translation> <translation id="3884839335308961732">يُرجى التأكيد على حسابك ورقم تعريفك الشخصي أدناه للسماح بالدخول من خلال سطح المكتب البعيد من Chrome.</translation> <translation id="3897092660631435901">قائمة</translation> @@ -331,6 +331,8 @@ <translation id="8525306231823319788">ملء الشاشة</translation> <translation id="8548209692293300397">لقد سجّلت الدخول سابقًا كالآتي <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />). للوصول إلى أجهزة الكمبيوتر من خلال هذا الحساب، <ph name="LINK_BEGIN" />سجّل الدخول إلى Google Chrome<ph name="LINK_END" /> بهذا الحساب ثم أعد تثبيت سطح المكتب البعيد من Chrome.</translation> <translation id="8642984861538780905">متوسطة</translation> +<translation id="8705151241155781642">• توفير دعم إضافي لنظام Android 9.0 Pie. +• الدعم من أجل تغيير حجم درجة دقة سطح المكتب البعيد للمطابقة مع شاشة جهاز Android.</translation> <translation id="8712909229180978490">لا أستطيع أن أرى الملفات المحفوظة على الإنترنت في Google Drive.</translation> <translation id="8743328882720071828">هل تريد السماح لـ <ph name="CLIENT_USERNAME" /> برؤية جهاز الكمبيوتر والتحكم فيه؟</translation> <translation id="8747048596626351634">تعطلت الجلسة أو تعذّر بدء تشغيلها. في حال وجود ~/.chrome-remote-desktop-session على جهاز الكمبيوتر البعيد، تأكد من بدء تشغيلها لعملية مقدمة لفترة زمنية طويلة، مثل بيئة سطح المكتب أو مدير النوافذ.</translation>
diff --git a/remoting/resources/remoting_strings_cs.xtb b/remoting/resources/remoting_strings_cs.xtb index b8009241..eb7347b 100644 --- a/remoting/resources/remoting_strings_cs.xtb +++ b/remoting/resources/remoting_strings_cs.xtb
@@ -122,7 +122,7 @@ <translation id="3695446226812920698">Postup</translation> <translation id="3718805989288361841">Nastavení zásad Vzdálené plochy Chrome je chybné. Požádejte o pomoc administrátora systému.</translation> <translation id="3776024066357219166">Relace Vzdálené plochy Chrome byla ukončena.</translation> -<translation id="3846148461359626420">• Zdokonalení posouvání a změny velikosti zobrazení v telefonu iPhone X +<translation id="3846148461359626420">• Zdokonalení posouvání a změny velikosti zobrazení na iPhonu X • Vylepšení stability a opravy chyb</translation> <translation id="3870154837782082782">Google Inc.</translation> <translation id="3884839335308961732">K povolení přístupu prostřednictvím Vzdálené plochy Chrome je třeba potvrdit účet a kód PIN níže.</translation>
diff --git a/remoting/resources/remoting_strings_et.xtb b/remoting/resources/remoting_strings_et.xtb index edd67283..bb9eefb 100644 --- a/remoting/resources/remoting_strings_et.xtb +++ b/remoting/resources/remoting_strings_et.xtb
@@ -330,6 +330,8 @@ <translation id="8525306231823319788">Täisekraan</translation> <translation id="8548209692293300397">Olete varem sisse loginud kasutajana <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />). Sellel kontol oma arvutitele juurdepääsemiseks <ph name="LINK_BEGIN" />logige Google Chrome'i sisse<ph name="LINK_END" /> selle kontoga ja installige Chrome Remote Desktop uuesti.</translation> <translation id="8642984861538780905">Rahuldav</translation> +<translation id="8705151241155781642">• Lisati Android 9.0 Pie tugi. +• Toetab kaugtöölaua lahutusvõime ühitamist Android-seadme ekraaniga.</translation> <translation id="8712909229180978490">Ma ei näe võrgus oma salvestatud faile Google Drive'is.</translation> <translation id="8743328882720071828">Kas lubate kasutajal <ph name="CLIENT_USERNAME" /> oma arvutit vaadata ja juhtida?</translation> <translation id="8747048596626351634">Seanss jooksis kokku või selle käivitamine ebaõnnestus. Kui seanss ~/.chrome-remote-desktop-session on kaugarvutis olemas, veenduge, et see käivitaks pikaajalise taustaprotsessi (nt töölauakeskkond või aknahaldur).</translation>
diff --git a/remoting/resources/remoting_strings_fa.xtb b/remoting/resources/remoting_strings_fa.xtb index b511213c..5d7c9ec 100644 --- a/remoting/resources/remoting_strings_fa.xtb +++ b/remoting/resources/remoting_strings_fa.xtb
@@ -331,6 +331,8 @@ <translation id="8525306231823319788">تمام صفحه</translation> <translation id="8548209692293300397">قبلاً با <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) وارد سیستم شده بودید. برای دسترسی به رایانههای آن حساب، با آن حساب <ph name="LINK_BEGIN" />وارد Google Chrome شوید<ph name="LINK_END" /> و کنترل رایانه ازراهدور Chrome را دوباره نصب کنید.</translation> <translation id="8642984861538780905">متوسط</translation> +<translation id="8705151241155781642">• اضافه شدن پشتیبانی از Android نسخه ۹٫۰ (Pie). +• پشتیبانی از تغییر اندازه وضوح کنترل دسک تاپ از راه دور برای مطابقت با صفحه دستگاه Android.</translation> <translation id="8712909229180978490">نمیتوانم فایلهای ذخیره شدهام را آنلاین در Google Drive ببینم.</translation> <translation id="8743328882720071828">میخواهید به <ph name="CLIENT_USERNAME" /> اجازه دهید که رایانهتان را ببیند و کنترل کند؟</translation> <translation id="8747048596626351634">جلسه خراب شد یا شروع نشد. درصورت وجود ~/.chrome-remote-desktop-session در رایانه راه دور، مطمئن شوید که یک فرآیند پیشزمینه طولانیمدت مثل محیط دسکتاپ یا مدیر پنجره را راهاندازی میکند.</translation>
diff --git a/remoting/resources/remoting_strings_fil.xtb b/remoting/resources/remoting_strings_fil.xtb index 67a9c5d..e345c2e 100644 --- a/remoting/resources/remoting_strings_fil.xtb +++ b/remoting/resources/remoting_strings_fil.xtb
@@ -330,6 +330,8 @@ <translation id="8525306231823319788">Buong screen</translation> <translation id="8548209692293300397">Nag-sign in ka dati bilang <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />). Upang ma-access ang iyong mga computer sa account na iyon, <ph name="LINK_BEGIN" />mag-sign in sa Google Chrome<ph name="LINK_END" /> gamit ang account na iyon at muling i-install ang Remote na Desktop ng Chrome.</translation> <translation id="8642984861538780905">Medyo Malakas</translation> +<translation id="8705151241155781642">• Nagdagdag ng suporta para sa Android 9.0 Pie. +• Suporta para sa pagre-resize ng resolution ng remote na desktop para tumugma sa screen ng iyong Android device.</translation> <translation id="8712909229180978490">Hindi ko makita ang aking mga naka-save file habang on-line sa Google Drive.</translation> <translation id="8743328882720071828">Gusto mo bang payagan si <ph name="CLIENT_USERNAME" /> na tingnan at kontrolin ang iyong computer?</translation> <translation id="8747048596626351634">Nag-crash o hindi nagsimula ang session. Kung may ~/.chrome-remote-desktop-session sa malayuang computer, tiyaking nagsisimula ito ng matagal na paggana ng proseso sa foreground gaya ng desktop environment o window manager.</translation>
diff --git a/remoting/resources/remoting_strings_hi.xtb b/remoting/resources/remoting_strings_hi.xtb index 8ebed0c..ab233095c 100644 --- a/remoting/resources/remoting_strings_hi.xtb +++ b/remoting/resources/remoting_strings_hi.xtb
@@ -84,8 +84,8 @@ <translation id="2888969873284818612">नेटवर्क गड़बड़ी हुई. आपके डिवाइस के फिर से ऑन-लाइन होने पर हम ऐप को पुनः प्रारंभ करेंगे.</translation> <translation id="289405675947420287">अपने iOS डिवाइस से अपना कंप्यूटर सुरक्षित तरीके से एक्सेस करें. यह तेज़, आसान और मुफ़्त है. -• आप जिस कंप्यूटर को दूर से एक्सेस करना चाहते हैं, उस पर Chrome वेब स्टोर से Chrome दूरस्थ डेस्कटॉप ऐप डाउनलोड करें. -• Chrome दूरस्थ डेस्कटॉप सॉफ़्टवेयर इंस्टॉल करें और सेटअप पूरा करने के निर्देशों का पालन करें. +• आप जिस कंप्यूटर को दूर से एक्सेस करना चाहते हैं, उस पर Chrome वेब स्टोर से Chrome रिमोट डेस्कटॉप ऐप डाउनलोड करें. +• Chrome रिमोट डेस्कटॉप सॉफ़्टवेयर इंस्टॉल करें और सेटअप पूरा करने के निर्देशों का पालन करें. • अपने iOS डिवाइस पर, ऐप खोलें और कनेक्ट करने के लिए अपने किसी भी ऑनलाइन कंप्यूटर पर टैप करें.</translation> <translation id="2894654864775534701">यह कंप्यूटर वर्तमान में किसी भिन्न खाते के अंतर्गत शेयर किया गया है.</translation> <translation id="2919669478609886916">आप फ़िलहाल में किसी अन्य उपयोगकर्ता के साथ यह मशीन शेयर कर रहे हैं. क्या आप शेयर करना जारी रखना चाहते हैं?</translation>
diff --git a/remoting/resources/remoting_strings_hr.xtb b/remoting/resources/remoting_strings_hr.xtb index 9a92580..dac5e4c 100644 --- a/remoting/resources/remoting_strings_hr.xtb +++ b/remoting/resources/remoting_strings_hr.xtb
@@ -330,6 +330,8 @@ <translation id="8525306231823319788">Cijeli zaslon</translation> <translation id="8548209692293300397">Prethodno ste se prijavili kao <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />). Da biste pristupali svojim računalima putem tog računa, <ph name="LINK_BEGIN" />prijavite se na Google Chrome<ph name="LINK_END" /> tim računom i ponovo instalirajte Udaljenu radnu površinu Chrome.</translation> <translation id="8642984861538780905">Solidna</translation> +<translation id="8705151241155781642">• Dodana je podrška za Android 9.0 Pie. +• Podrška za promjenu razlučivosti udaljene radne površine tako da odgovara zaslonu Android uređaja.</translation> <translation id="8712909229180978490">Ne vidim svoje spremljene datoteke na mreži na Google disku.</translation> <translation id="8743328882720071828">Želite li dopustiti da <ph name="CLIENT_USERNAME" /> vidi ovo računalo i upravlja njime?</translation> <translation id="8747048596626351634">Sesija se srušila ili se nije pokrenula. Ako ~/.chrome-remote-desktop-session postoji na udaljenom računalu, neka pokrene dugotrajan postupak u prednjem planu kao što je okruženje radnje površine ili upravitelj prozora.</translation>
diff --git a/remoting/resources/remoting_strings_hu.xtb b/remoting/resources/remoting_strings_hu.xtb index cc5231a6b..fd62948 100644 --- a/remoting/resources/remoting_strings_hu.xtb +++ b/remoting/resources/remoting_strings_hu.xtb
@@ -330,6 +330,8 @@ <translation id="8525306231823319788">Teljes képernyő</translation> <translation id="8548209692293300397">Korábban <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) felhasználóként jelentkezett be. A fiók számítógépeinek eléréséhez <ph name="LINK_BEGIN" />jelentkezzen be a Google Chrome-ba<ph name="LINK_END" /> az adott fiókkal, majd telepítse újra a Chrome távoliasztal-szolgáltatást.</translation> <translation id="8642984861538780905">Közepes</translation> +<translation id="8705151241155781642">• Az Android 9.0 Pie támogatásának hozzáadása. +• A távoli asztal felbontása átméretezésének engedélyezése annak érdekében, hogy egyezzen az Android-eszköz képernyőméretével.</translation> <translation id="8712909229180978490">Nem látom a mentett fájlokat online, a Google Drive-on.</translation> <translation id="8743328882720071828">Szeretné engedélyezni <ph name="CLIENT_USERNAME" /> számára, hogy lássa és irányítsa a számítógépet?</translation> <translation id="8747048596626351634">A munkamenet összeomlott vagy nem tudott elindulni. Ha található ~/.chrome-remote-desktop-session munkamenet a távoli számítógépen, győződjön meg arról, hogy hosszú ideig, előtérben futó folyamatot indít el, például asztali környezetet vagy ablakkezelőt.</translation>
diff --git a/remoting/resources/remoting_strings_id.xtb b/remoting/resources/remoting_strings_id.xtb index 1b9e621..3bdcd67 100644 --- a/remoting/resources/remoting_strings_id.xtb +++ b/remoting/resources/remoting_strings_id.xtb
@@ -330,6 +330,8 @@ <translation id="8525306231823319788">Layar penuh</translation> <translation id="8548209692293300397">Sebelumnya, Anda telah masuk sebagai <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />). Untuk mengakses komputer menggunakan akun tersebut, <ph name="LINK_BEGIN" />masuk ke Google Chrome<ph name="LINK_END" /> dengan akun tersebut dan instal kembali Chrome Desktop Jarak Jauh.</translation> <translation id="8642984861538780905">Sedang</translation> +<translation id="8705151241155781642">• Dukungan tambahan untuk Android 9.0 Pie. +• Dukungan untuk mengubah ukuran resolusi desktop jarak jauh agar cocok dengan layar perangkat Android Anda.</translation> <translation id="8712909229180978490">Saya tidak dapat melihat file saya yang tersimpan secara online di Google Drive.</translation> <translation id="8743328882720071828">Izinkan <ph name="CLIENT_USERNAME" /> melihat dan mengontrol komputer Anda?</translation> <translation id="8747048596626351634">Sesi error atau gagal dimulai. Jika ~/.chrome-remote-desktop-session terdapat di komputer jarak jauh, pastikan file tersebut memulai proses latar depan (foreground) yang berjalan lama seperti lingkungan desktop atau pengelola jendela.</translation>
diff --git a/remoting/resources/remoting_strings_it.xtb b/remoting/resources/remoting_strings_it.xtb index 9586dd0..f9d86484 100644 --- a/remoting/resources/remoting_strings_it.xtb +++ b/remoting/resources/remoting_strings_it.xtb
@@ -330,6 +330,8 @@ <translation id="8525306231823319788">Schermo intero</translation> <translation id="8548209692293300397">Hai già eseguito l'accesso come <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />). Per accedere ai tuoi computer nell'account in questione, <ph name="LINK_BEGIN" />accedi a Google Chrome<ph name="LINK_END" /> con tale account e installa di nuovo Chrome Remote Desktop.</translation> <translation id="8642984861538780905">Media</translation> +<translation id="8705151241155781642">• È stato aggiunto il supporto di Android 9.0 Pie. +• Supporto della regolazione della risoluzione del desktop remoto in base allo schermo del dispositivo Android.</translation> <translation id="8712909229180978490">Non riesco a trovare i miei file salvati online su Google Drive.</translation> <translation id="8743328882720071828">Vuoi consentire a <ph name="CLIENT_USERNAME" /> di visualizzare e controllare il tuo computer?</translation> <translation id="8747048596626351634">La sessione si è arrestata in modo anomalo o non si è avviata. Se sul computer remoto esiste la sessione ~/.chrome-remote-desktop-session, assicurati che avvii un processo in primo piano con esecuzione prolungata come un ambiente desktop o gestione finestre.</translation>
diff --git a/remoting/resources/remoting_strings_ja.xtb b/remoting/resources/remoting_strings_ja.xtb index cb79a72..29811f2d 100644 --- a/remoting/resources/remoting_strings_ja.xtb +++ b/remoting/resources/remoting_strings_ja.xtb
@@ -330,6 +330,8 @@ <translation id="8525306231823319788">全画面表示</translation> <translation id="8548209692293300397">以前に <ph name="USER_NAME" />(<ph name="USER_EMAIL" />)としてログインしています。このアカウントでパソコンにアクセスするには、このアカウントで <ph name="LINK_BEGIN" />Google Chrome にログイン<ph name="LINK_END" />し、Chrome リモート デスクトップを再インストールしてください。</translation> <translation id="8642984861538780905">中程度</translation> +<translation id="8705151241155781642">• Android 9.0 Pie のサポートを追加しました。 +• Android 搭載端末の画面に合わせてリモート デスクトップの解像度を変更できるようになりました。</translation> <translation id="8712909229180978490">Google ドライブに保存したファイルをオンラインで表示できない。</translation> <translation id="8743328882720071828"><ph name="CLIENT_USERNAME" /> にパソコンの閲覧と制御を許可しますか?</translation> <translation id="8747048596626351634">セッションがクラッシュしたか、セッションを開始できませんでした。~/.chrome-remote-desktop-session がリモートのパソコンにある場合は、このスクリプトによって、デスクトップ環境やウィンドウ マネージャのような長時間実行のフォアグラウンド プロセスが開始されることを確認してください。</translation>
diff --git a/remoting/resources/remoting_strings_kn.xtb b/remoting/resources/remoting_strings_kn.xtb index 99f6fb1..ec388f87 100644 --- a/remoting/resources/remoting_strings_kn.xtb +++ b/remoting/resources/remoting_strings_kn.xtb
@@ -93,7 +93,7 @@ <translation id="2926340305933667314">ಈ ಕಂಪ್ಯೂಟರ್ಗೆ ರಿಮೋಟ್ ಪ್ರವೇಶವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ವಿಫಲವಾಗಿದೆ. ದಯವಿಟ್ಟು ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="2930135165929238380">ಕೆಲವು ಅಗತ್ಯವಿರುವ ಅಂಶಗಳು ಕಾಣೆಯಾಗಿವೆ. chrome://plugins ಗೆ ಹೋಗಿ, ಸ್ಥಳೀಯ ಕ್ಲೈಂಟ್ ಸಕ್ರಿಯಗೊಂಡಿದೆಯೇ ಎಂಬುದನ್ನ ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.</translation> <translation id="2939145106548231838">ಹೋಸ್ಟ್ ಮಾಡಲು ದೃಢೀಕರಿಸಿ</translation> -<translation id="3020807351229499221">PIN ಅನ್ನು ನವೀಕರಿಸಲು ವಿಫಲವಾಗಿದೆ, ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> +<translation id="3020807351229499221">PIN ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಲು ವಿಫಲವಾಗಿದೆ, ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="3025388528294795783">ನಿಮ್ಮ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು ನಮಗೆ ಸಹಾಯ ಮಾಡಲು, ಎಲ್ಲಿ ತಪ್ಪು ಸಂಭವಿಸಿದೆ ಎಂಬುದನ್ನು ನಮಗೆ ತಿಳಿಸಿ:</translation> <translation id="3027681561976217984">ಸ್ಪರ್ಶಿಸುವಿಕೆ ಮೋಡ್</translation> <translation id="3106379468611574572">ಸಂಪರ್ಕ ವಿನಂತಿಗಳಿಗೆ ರಿಮೋಟ್ ಕಂಪ್ಯೂಟರ್ ಪ್ರತಿಕ್ರಿಯೆ ನೀಡುವುದಿಲ್ಲ. ದಯವಿಟ್ಟು ಆನ್ಲೈನ್ನಲ್ಲಿ ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಮತ್ತೊಮ್ಮೆ ಪ್ರಯತ್ನಿಸಿ.</translation>
diff --git a/remoting/resources/remoting_strings_lt.xtb b/remoting/resources/remoting_strings_lt.xtb index 667ad1e..a4e518c 100644 --- a/remoting/resources/remoting_strings_lt.xtb +++ b/remoting/resources/remoting_strings_lt.xtb
@@ -330,6 +330,8 @@ <translation id="8525306231823319788">Viso ekrano režimas</translation> <translation id="8548209692293300397">Anksčiau prisijungėte kaip <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />). Kad pasiektumėte kompiuterius toje paskyroje, <ph name="LINK_BEGIN" />prisijunkite prie „Google Chrome“<ph name="LINK_END" /> naudodami tą paskyrą ir iš naujo įdiekite „Chrome“ nuotolinį kompiuterio valdymą.</translation> <translation id="8642984861538780905">Neblogas</translation> +<translation id="8705151241155781642">• Pridėtas 9.0 („Pie“) versijos „Android“ palaikymas. +• Nuotolinio kompiuterio skyros dydžio keitimo, kad atitiktų „Android“ įrenginio ekraną, palaikymas.</translation> <translation id="8712909229180978490">Prisijungus nerodomi „Google“ diske išsaugoti failai.</translation> <translation id="8743328882720071828">Ar norite leisti <ph name="CLIENT_USERNAME" /> matyti kompiuterio informaciją ir jį valdyti?</translation> <translation id="8747048596626351634">Sesija užstrigo arba jos nepavyko paleisti. Jei nuotoliniame kompiuteryje yra ~/.chrome-remote-desktop-session, įsitikinkite, kad jis paleidžia ilgai vykdomą priekinio plano procesą, pvz., darbalaukio aplinką ar langų tvarkytuvę.</translation>
diff --git a/remoting/resources/remoting_strings_ml.xtb b/remoting/resources/remoting_strings_ml.xtb index 4e0fee3..84af8bfe 100644 --- a/remoting/resources/remoting_strings_ml.xtb +++ b/remoting/resources/remoting_strings_ml.xtb
@@ -110,7 +110,7 @@ <translation id="3360306038446926262">Windows</translation> <translation id="3362124771485993931">PIN വീണ്ടും ടൈപ്പുചെയ്യുക</translation> <translation id="337167041784729019">സ്ഥിതിവിവരക്കണക്കുകൾ കാണിക്കുക</translation> -<translation id="3385242214819933234">ഹോസ്റ്റ് ഉടമ അസാധുവാണ്.</translation> +<translation id="3385242214819933234">അസാധുവായ ഹോസ്റ്റ് ഉടമ</translation> <translation id="3403830762023901068">ഈ കമ്പ്യൂട്ടറിനെ ക്രോമോട്ടിംഗ് ഡെസ്ക്ടോപ്പ് ഹോസ്റ്റായി പങ്കിടാൻ നയ ക്രമീകരണങ്ങൾ അനുവദിക്കുന്നില്ല. സഹായത്തിനായി നിങ്ങളുടെ സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്ററുമായി ബന്ധപ്പെടുക.</translation> <translation id="3423542133075182604">സുരക്ഷാ കീ റിമോട്ടിംഗ് പ്രോസസ്സ്</translation> <translation id="3581045510967524389">നെറ്റ്വർക്കിലേക്ക് കണക്റ്റുചെയ്യാനായില്ല. നിങ്ങളുടെ ഉപകരണം കണക്റ്റുചെയ്തിട്ടുണ്ടോ എന്ന് പരിശോധിക്കുക.</translation> @@ -126,7 +126,7 @@ <translation id="3870154837782082782">Google Inc.</translation> <translation id="3884839335308961732">Chrome വിദൂര ഡെസ്ക്ടോപ്പിലൂടെ ആക്സസ്സ് അനുവദിക്കുന്നതിന് ചുവടെയുള്ള നിങ്ങളുടെ അക്കൗണ്ടും PIN-ഉം സ്ഥിരീകരിക്കുക.</translation> <translation id="3897092660631435901">മെനു</translation> -<translation id="3905196214175737742">ഹോസ്റ്റ് ഉടമ ഡൊമെയ്ൻ അസാധുവാണ്.</translation> +<translation id="3905196214175737742">അസാധുവായ ഹോസ്റ്റ് ഉടമ ഡൊമെയ്ൻ.</translation> <translation id="3908017899227008678">യുക്തമാക്കുന്നതിനായി ചുരുക്കുക</translation> <translation id="3931191050278863510">ഹോസ്റ്റ് നിർത്തി.</translation> <translation id="3933246213702324812"><ph name="HOSTNAME" /> എന്നതിലെ ക്രോമോട്ടിംഗ് കാലഹരണപ്പെട്ടതായതിനാൽ അത് അപ്ഡേറ്റുചെയ്യേണ്ടതുണ്ട്.</translation> @@ -192,7 +192,7 @@ <translation id="507204348399810022"><ph name="HOSTNAME" /> എന്നതിലേക്കുള്ള റിമോട്ട് കണക്ഷനുകൾ പ്രവർത്തനരഹിതമാക്കണമെന്ന് തീർച്ചയാണോ?</translation> <translation id="5081343395220691640">സെർവറുമായി ബന്ധപ്പെടാനായില്ല: <ph name="ERROR" /></translation> <translation id="5156271271724754543">രണ്ട് ബോക്സുകളിലും സമാന PIN നൽകുക.</translation> -<translation id="5170982930780719864">ഹോസ്റ്റ് ഐഡി അസാധുവാണ്.</translation> +<translation id="5170982930780719864">അസാധുവായ ഹോസ്റ്റ് ഐഡി.</translation> <translation id="518094545883702183">നിങ്ങൾ റിപ്പോർട്ടുചെയ്യുന്ന പ്രശ്നം പരിഹരിക്കാനായി മാത്രമേ ഈ വിവരങ്ങൾ ഉപയോഗിക്കൂ, ഇത് നിങ്ങളുടെ റിപ്പോർട്ട് അന്വേഷിക്കുന്നവർക്ക് മാത്രമേ ലഭ്യമാകൂ ഒപ്പം 30 ദിവസത്തിൽ കൂടുതൽ നിലനിർത്തുകയുമില്ല.</translation> <translation id="5204575267916639804">പതിവ് ചോദ്യങ്ങൾ</translation> <translation id="5222676887888702881">പുറത്തുകടക്കുക</translation> @@ -264,7 +264,7 @@ <translation id="6939719207673461467">കീബോർഡ് ദൃശ്യമാക്കുക/മറയ്ക്കുക.</translation> <translation id="6944854424004126054">വിൻഡോ പുനഃസ്ഥാപിക്കുക</translation> <translation id="6948905685698011662">Chrome വിദൂര ഡെസ്ക്ടോപ്പ് ഇപ്പോൾ വെബിൽ ലഭ്യമാണ്! ഞങ്ങളുടെ <ph name="LINK_BEGIN" />സൗജന്യ വെബ് ആപ്പ്<ph name="LINK_END" /> പരീക്ഷിച്ചുനോക്കൂ.</translation> -<translation id="6963936880795878952">അസാധുവായ പിൻ ഉപയോഗിച്ച് ഒരാൾ റിമോട്ട് കമ്പ്യൂട്ടറിലേക്ക് കണക്റ്റുചെയ്യാൻ ശ്രമിച്ചതിനാൽ അതിലേക്കുള്ള കണക്ഷനുകൾ തൽക്കാലം ബ്ലോക്കുചെയ്തിരിക്കുന്നു. പിന്നീട് വീണ്ടും ശ്രമിക്കുക.</translation> +<translation id="6963936880795878952">അസാധുവായ പിൻ ഉപയോഗിച്ച് ഒരാൾ റിമോട്ട് കമ്പ്യൂട്ടറിലേക്ക് കണക്റ്റ് ചെയ്യാൻ ശ്രമിച്ചതിനാൽ അതിലേക്കുള്ള കണക്ഷനുകൾ തൽക്കാലം ബ്ലോക്ക് ചെയ്തിരിക്കുന്നു. പിന്നീട് വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="6965382102122355670">ശരി</translation> <translation id="6985691951107243942"><ph name="HOSTNAME" /> എന്നതിലേക്കുള്ള വിദൂര കണക്ഷനുകൾ അപ്രാപ്തമാക്കാൻ നിങ്ങൾ താൽപ്പര്യപ്പെടുന്നുവെന്ന് തീർച്ചയാണോ? നിങ്ങൾ മനസ്സ് മാറ്റുകയാണെങ്കിൽ, കണക്ഷനുകൾ പുനഃപ്രാപ്തമാക്കുന്നതിന് ആ കമ്പ്യൂട്ടർ സന്ദർശിക്കേണ്ടതുണ്ട്.</translation> <translation id="6998989275928107238">സ്വീകര്ത്താവ്</translation> @@ -345,7 +345,7 @@ <translation id="9149580767411232853">വിദൂര ഡെസ്ക്ടോപ്പ് പൂർണ്ണമായും ദൃശ്യമാക്കുക</translation> <translation id="9149992051684092333">നിങ്ങളുടെ ഡെസ്ക്ടോപ്പ് പങ്കിടുന്നത് ആരംഭിക്കാൻ, നിങ്ങളെ സഹായിക്കുന്ന വ്യക്തിക്ക് താഴെയുള്ള ആക്സസ് കോഡ് നൽകുക.</translation> <translation id="9188433529406846933">അംഗീകരിക്കുക</translation> -<translation id="9213184081240281106">ഹോസ്റ്റ് കോൺഫിഗറേഷൻ അസാധുവാണ്.</translation> +<translation id="9213184081240281106">അസാധുവായ ഹോസ്റ്റ് കോൺഫിഗറേഷൻ.</translation> <translation id="951991426597076286">നിരസിക്കുക</translation> <translation id="962733587145768554">പ്രോസസ്സ് പൂർത്തിയാക്കാൻ, കണക്ഷൻ ഡയലോഗ് ബോക്സിൽ '<ph name="SHARE" />' തിരഞ്ഞെടുക്കുക.</translation> <translation id="979100198331752041"><ph name="HOSTNAME" /> എന്നതിലെ Chrome വിദൂര ഡെസ്ക്ടോപ്പ് കാലഹരണപ്പെട്ടതായതിനാൽ അപ്ഡേറ്റുചെയ്യേണ്ടതുണ്ട്.</translation>
diff --git a/remoting/resources/remoting_strings_ms.xtb b/remoting/resources/remoting_strings_ms.xtb index b220180..1619b57 100644 --- a/remoting/resources/remoting_strings_ms.xtb +++ b/remoting/resources/remoting_strings_ms.xtb
@@ -330,6 +330,8 @@ <translation id="8525306231823319788">Skrin penuh</translation> <translation id="8548209692293300397">Sebelum ini anda telah log masuk sebagai <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />). Untuk mengakses komputer anda dalam akaun itu, <ph name="LINK_BEGIN" />log masuk ke Google Chrome<ph name="LINK_END" /> dengan akaun itu dan pasang semula Desktop Jauh Chrome.</translation> <translation id="8642984861538780905">Sederhana</translation> +<translation id="8705151241155781642">• Sokongan tambahan untuk Android 9.0 Pie. +• Sokongan untuk mengubah saiz peleraian desktop jauh supaya sepadan dengan skrin peranti Android anda.</translation> <translation id="8712909229180978490">Saya tidak nampak fail saya yang disimpan dalam talian di Google Drive.</translation> <translation id="8743328882720071828">Adakah anda ingin membenarkan <ph name="CLIENT_USERNAME" /> melihat dan mengawal komputer anda?</translation> <translation id="8747048596626351634">Sesi mengalami ranap sistem atau gagal dimulakan. Jika sesi ~/.chrome-remote-desktop-session wujud pada komputer jauh, pastikan komputer tersebut memulakan proses latar depan yang memakan masa yang lama, seperti persekitaran desktop atau pengurus tetingkap.</translation>
diff --git a/remoting/resources/remoting_strings_pl.xtb b/remoting/resources/remoting_strings_pl.xtb index c32050d..e6c9c77 100644 --- a/remoting/resources/remoting_strings_pl.xtb +++ b/remoting/resources/remoting_strings_pl.xtb
@@ -330,6 +330,8 @@ <translation id="8525306231823319788">Pełny ekran</translation> <translation id="8548209692293300397">Poprzednio logowałeś się jako <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />). Aby uzyskać dostęp do swoich komputerów na tym koncie, <ph name="LINK_BEGIN" />zaloguj się na to konto w Google Chrome<ph name="LINK_END" /> i ponownie zainstaluj Pulpit zdalny Chrome.</translation> <translation id="8642984861538780905">Średnia</translation> +<translation id="8705151241155781642">• Dodano obsługę Androida 9.0 Pie. +• Umożliwiono zmianę rozdzielczości pulpitu zdalnego, by dopasować ją do ekranu urządzenia z Androidem.</translation> <translation id="8712909229180978490">Nie widzę moich plików zapisanych na Dysku Google, gdy jestem online.</translation> <translation id="8743328882720071828">Czy chcesz zezwolić użytkownikowi <ph name="CLIENT_USERNAME" /> na przeglądanie zawartości Twojego komputera i sterowanie nim?</translation> <translation id="8747048596626351634">Sesja została zerwana lub nie udało się jej rozpocząć. Jeśli sesja ~/.chrome-remote-desktop-session istnieje na komputerze zdalnym, upewnij się, że spowodowała ona uruchomienie długotrwałego procesu na pierwszym planie, takiego jak środowisko pulpitu lub menedżer okien.</translation>
diff --git a/remoting/resources/remoting_strings_pt-BR.xtb b/remoting/resources/remoting_strings_pt-BR.xtb index 4728f3e..3de3c31 100644 --- a/remoting/resources/remoting_strings_pt-BR.xtb +++ b/remoting/resources/remoting_strings_pt-BR.xtb
@@ -330,6 +330,8 @@ <translation id="8525306231823319788">Tela cheia</translation> <translation id="8548209692293300397">Você fez login anteriormente como <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />). Para acessar seus computadores nessa conta, <ph name="LINK_BEGIN" />faça login no Google Chrome<ph name="LINK_END" /> usando essa conta e reinstale a Área de trabalho remota do Google Chrome.</translation> <translation id="8642984861538780905">Regular</translation> +<translation id="8705151241155781642">• Compatibilidade com o Android 9.0 Pie adicionada. +• Compatibilidade com redimensionamento da resolução da área de trabalho remota para correspondência com a tela do seu dispositivo Android.</translation> <translation id="8712909229180978490">Não consigo ver meus arquivos salvos on-line no Google Drive.</translation> <translation id="8743328882720071828">Quer permitir que <ph name="CLIENT_USERNAME" /> veja e controle seu computador?</translation> <translation id="8747048596626351634">Ocorreu uma falha na sessão ou não foi possível iniciá-la. Se ~/.chrome-remote-desktop-session existe no computador remoto, verifique se ele inicia um processo de execução longa em primeiro plano, como um ambiente de área de trabalho ou um gerenciador de janelas.</translation>
diff --git a/remoting/resources/remoting_strings_sk.xtb b/remoting/resources/remoting_strings_sk.xtb index 966e576..704b039 100644 --- a/remoting/resources/remoting_strings_sk.xtb +++ b/remoting/resources/remoting_strings_sk.xtb
@@ -330,6 +330,8 @@ <translation id="8525306231823319788">Celá obrazovka</translation> <translation id="8548209692293300397">Predtým ste sa prihlásili ako používateľ <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />). Ak chcete získať prístup k počítačom v danom účte, musíte sa <ph name="LINK_BEGIN" />prihlásiť do prehliadača Google Chrome<ph name="LINK_END" /> pomocou daného účtu a znova nainštalovať aplikáciu Vzdialená plocha Chrome.</translation> <translation id="8642984861538780905">Priemerné</translation> +<translation id="8705151241155781642">• Pridaná podpora platformy Android 9.0 Pie. +• Podpora zmeny rozlíšenia vzdialenej plochy tak, aby zodpovedalo obrazovke vášho zariadenia s Androidom.</translation> <translation id="8712909229180978490">Nevidím svoje uložené súbory online na Disku Google.</translation> <translation id="8743328882720071828">Chcete povoliť používateľovi <ph name="CLIENT_USERNAME" /> zobraziť a ovládať váš počítač?</translation> <translation id="8747048596626351634">Relácia zlyhala alebo sa ju nepodarilo spustiť. Ak vo vzdialenom počítači existuje relácia ~/.chrome-remote-desktop-session, zaistite, aby spustila dlhotrvajúci proces v popredí, ako napríklad prostredie pracovnej plochy alebo správcu okien.</translation>
diff --git a/remoting/resources/remoting_strings_sw.xtb b/remoting/resources/remoting_strings_sw.xtb index ce10c237..1c88ec0 100644 --- a/remoting/resources/remoting_strings_sw.xtb +++ b/remoting/resources/remoting_strings_sw.xtb
@@ -330,6 +330,8 @@ <translation id="8525306231823319788">Skrini nzima</translation> <translation id="8548209692293300397">Mwanzoni uliingia katika akaunti kama <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />). Ili kufikia kompyuta zako katika akaunti hiyo, <ph name="LINK_BEGIN" />ingia katika Google Chrome<ph name="LINK_END" /> kwa akaunti hiyo na usakinishe tena Kompyuta ya Mbali kwenye Chrome.</translation> <translation id="8642984861538780905">Wastani</translation> +<translation id="8705151241155781642">• Tumeongeza uwezo wa kutumia Android 9.0 Pie. +• Uwezo wa kubadilisha ukubwa wa ubora wa kompyuta ya mbali ili ulingane na skrini yako ya kifaa cha Android.</translation> <translation id="8712909229180978490">Siwezi kuona faili zangu zilizohifadhiwa mtandaoni katika Hifadhi ya Google.</translation> <translation id="8743328882720071828">Ungependa kuruhusu <ph name="CLIENT_USERNAME" /> aone na adhibiti kompyuta yako?</translation> <translation id="8747048596626351634">Kipindi kiliacha kufanya kazi au kilishindwa kuanza. Ikiwa ~/.chrome-remote-desktop-session iko kwenye kompyuta yako ya mbali, hakikisha kwamba inaanza kutekeleza mchakato kwenye skrini utakaochukua muda mrefu kama vile kidhibiti cha dirisha au mazingira ya eneo kazi.</translation>
diff --git a/remoting/resources/remoting_strings_ta.xtb b/remoting/resources/remoting_strings_ta.xtb index 78c3464..90f43ea 100644 --- a/remoting/resources/remoting_strings_ta.xtb +++ b/remoting/resources/remoting_strings_ta.xtb
@@ -331,6 +331,8 @@ <translation id="8525306231823319788">முழுத்திரை</translation> <translation id="8548209692293300397">நீங்கள் இதற்கு முன்பு <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) என உள்நுழைந்துள்ளீர்கள். அந்தக் கணக்கில் உங்கள் கணினிகளை அணுக, அந்தக் கணக்கினைக் கொண்டு <ph name="LINK_BEGIN" />Google Chrome இல் உள்நுழைக<ph name="LINK_END" /> மற்றும் Chrome தொலைநிலை டெஸ்க்டாப்பை மீண்டும் நிறுவுக.</translation> <translation id="8642984861538780905">மோசமில்லை</translation> +<translation id="8705151241155781642">• Android 9.0 Pie பதிப்புக்கான ஆதரவு சேர்க்கப்பட்டுள்ளது. +• உங்கள் Android சாதனத்தின் திரைக்கு ஏற்ப, தொலைநிலை டெஸ்க்டாப்பின் தெளிவுத்திறன் அளவை மாற்றுவதற்கான ஆதரவு.</translation> <translation id="8712909229180978490">Google இயக்ககத்தில் ஆன்லைனில் நான் சேமித்த கோப்புகள் இல்லை.</translation> <translation id="8743328882720071828">உங்கள் கணினியைப் பார்க்கவும் கட்டுப்படுத்தவும் <ph name="CLIENT_USERNAME" />ஐ அனுமதிக்கவா?</translation> <translation id="8747048596626351634">அமர்வு சிதைந்தது அல்லது தொடங்க முடியவில்லை. தொலைநிலைக் கணினியில் ~/.chrome-remote-desktop-session இருந்தால், டெஸ்க்டாப் சூழல் அல்லது சாளர நிர்வாகி போன்ற நீண்ட நேரம் இயங்கும் முன்புலச் செயல்முறையை அது தொடங்குவதை உறுதிப்படுத்தவும்.</translation>
diff --git a/remoting/resources/remoting_strings_te.xtb b/remoting/resources/remoting_strings_te.xtb index ce2351b..f5b5957 100644 --- a/remoting/resources/remoting_strings_te.xtb +++ b/remoting/resources/remoting_strings_te.xtb
@@ -123,7 +123,7 @@ <translation id="3718805989288361841">Chrome రిమోట్ డెస్క్టాప్ యొక్క విధాన సెట్టింగ్లలో లోపం ఉంది. సహాయం కావాలంటే మీ సిస్టమ్ నిర్వాహకులను సంప్రదించండి.</translation> <translation id="3776024066357219166">మీ Chrome రిమోట్ డెస్క్టాప్ సెషన్ ముగిసింది.</translation> <translation id="3846148461359626420">• iPhone Xలో మరింత మెరుగ్గా ప్యాన్ చేసే, జూమ్ చేసే అనుభవం. -• స్థిరమైన మెరుగుదలలు మరియు బగ్ పరిష్కారాలు.</translation> +• స్థిరత్వ మెరుగుదలలు మరియు బగ్ పరిష్కారాలు.</translation> <translation id="3870154837782082782">Google Inc.</translation> <translation id="3884839335308961732">దయచేసి Chrome రిమోట్ డెస్క్టాప్ ద్వారా ప్రాప్యతను అనుమతించడానికి దిగువ మీ ఖాతా మరియు PINను నిర్ధారించండి.</translation> <translation id="3897092660631435901">మెను</translation>
diff --git a/remoting/resources/remoting_strings_th.xtb b/remoting/resources/remoting_strings_th.xtb index 03a217a..0cf428f 100644 --- a/remoting/resources/remoting_strings_th.xtb +++ b/remoting/resources/remoting_strings_th.xtb
@@ -330,6 +330,8 @@ <translation id="8525306231823319788">เต็มหน้าจอ</translation> <translation id="8548209692293300397">ก่อนหน้านี้คุณได้ลงชื่อเข้าใช้เป็น <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) หากต้องการเข้าถึงคอมพิวเตอร์ในบัญชีนั้น ให้<ph name="LINK_BEGIN" />ลงชื่อเข้าใช้ Google Chrome<ph name="LINK_END" /> ด้วยบัญชีนั้นและติดตั้ง Chrome Remote Desktop อีกครั้ง</translation> <translation id="8642984861538780905">พอใช้</translation> +<translation id="8705151241155781642">• เพิ่มการรองรับ Android 9.0 Pie +• รองรับการปรับขนาดความละเอียดของเดสก์ท็อปเครื่องอื่นให้พอดีกับหน้าจออุปกรณ์ Android ของคุณ</translation> <translation id="8712909229180978490">ฉันไม่เห็นไฟล์ที่บันทึกไว้แบบออนไลน์ใน Google ไดรฟ์</translation> <translation id="8743328882720071828">คุณต้องการให้ <ph name="CLIENT_USERNAME" /> มองเห็นและควบคุมคอมพิวเตอร์ของคุณไหม</translation> <translation id="8747048596626351634">เซสชันขัดข้องหรือเริ่มต้นไม่สำเร็จ หากมี ~/.chrome-remote-desktop-session ในคอมพิวเตอร์ระยะไกล ให้ตรวจดูว่าได้เริ่มกระบวนการพื้นหน้าแบบระยะยาว เช่น สภาพแวดล้อมเดสก์ท็อปหรือตัวจัดการหน้าต่างแล้ว</translation>
diff --git a/remoting/resources/remoting_strings_tr.xtb b/remoting/resources/remoting_strings_tr.xtb index 0d19e1f..e7b10aad 100644 --- a/remoting/resources/remoting_strings_tr.xtb +++ b/remoting/resources/remoting_strings_tr.xtb
@@ -122,7 +122,7 @@ <translation id="3695446226812920698">Nasıl yapacağınızı öğrenin</translation> <translation id="3718805989288361841">Chrome Uzaktan Masaüstü politika ayarında bir hata oluştu. Yardım için sistem yöneticinizle görüşün.</translation> <translation id="3776024066357219166">Chrome Uzaktan Masaüstü oturumunuz sonlandı.</translation> -<translation id="3846148461359626420">• iPhone X'da daha iyi kaydırma ve yakınlaştırma deneyimi. +<translation id="3846148461359626420">• iPhone X'de daha iyi kaydırma ve yakınlaştırma deneyimi. • Kararlılıkla ilgili iyileştirmeler ve hata düzeltmeleri.</translation> <translation id="3870154837782082782">Google Inc.</translation> <translation id="3884839335308961732">Chrome Uzaktan Masaüstü tarafından erişime izin vermek için lütfen aşağıda hesabınızı ve PIN kodunuzu onaylayın.</translation>
diff --git a/remoting/resources/remoting_strings_uk.xtb b/remoting/resources/remoting_strings_uk.xtb index c0ea9b1..92a38d0 100644 --- a/remoting/resources/remoting_strings_uk.xtb +++ b/remoting/resources/remoting_strings_uk.xtb
@@ -330,6 +330,8 @@ <translation id="8525306231823319788">На весь екран</translation> <translation id="8548209692293300397">Ви раніше входили як <ph name="USER_NAME" /> (<ph name="USER_EMAIL" />). Щоб отримати доступ до комп’ютерів, <ph name="LINK_BEGIN" />увійдіть у свій обліковий запис Google Chrome<ph name="LINK_END" /> і перевстановіть Віддалене керування Chrome.</translation> <translation id="8642984861538780905">Надійний сигнал</translation> +<translation id="8705151241155781642">• Додано підтримку Android 9.0 Pie. +• Підтримується змінення роздільної здатності віддаленого робочого стола відповідно до екрана пристрою Android.</translation> <translation id="8712909229180978490">Мої збережені файли не відображаються на Google Диску в Інтернеті.</translation> <translation id="8743328882720071828">Дозволити користувачу <ph name="CLIENT_USERNAME" /> бачити ваш комп’ютер і керувати ним?</translation> <translation id="8747048596626351634">Сеанс не почався або аварійно завершився. Якщо на віддаленому комп’ютері є сеанс ~/.chrome-remote-desktop-session, переконайтеся, що він запускає тривалий процес в активному режимі (як-от середовище робочого стола чи диспетчер вікон).</translation>
diff --git a/remoting/resources/remoting_strings_vi.xtb b/remoting/resources/remoting_strings_vi.xtb index cadde1b..8e3c554e 100644 --- a/remoting/resources/remoting_strings_vi.xtb +++ b/remoting/resources/remoting_strings_vi.xtb
@@ -122,7 +122,7 @@ <translation id="3695446226812920698">Tìm hiểu cách thức</translation> <translation id="3718805989288361841">Đã xảy ra lỗi với cài đặt chính sách cho Chrome Remote Desktop. Hãy liên hệ với quản trị viên hệ thống của bạn để được hỗ trợ.</translation> <translation id="3776024066357219166">Phiên Chrome Remote Desktop của bạn đã kết thúc.</translation> -<translation id="3846148461359626420">• Trải nghiệm xoay và thu phóng tốt hơn trên iPhone X. +<translation id="3846148461359626420">• Nâng cao trải nghiệm xoay và thu phóng trên iPhone X. • Cải thiện độ ổn định và sửa lỗi.</translation> <translation id="3870154837782082782">Google Inc.</translation> <translation id="3884839335308961732">Vui lòng xác nhận tài khoản và mã PIN của bạn bên dưới để cho phép Chrome Remote Desktop truy cập.</translation>
diff --git a/remoting/resources/remoting_strings_zh-TW.xtb b/remoting/resources/remoting_strings_zh-TW.xtb index 9ab4d6f5..3185aa7 100644 --- a/remoting/resources/remoting_strings_zh-TW.xtb +++ b/remoting/resources/remoting_strings_zh-TW.xtb
@@ -330,6 +330,8 @@ <translation id="8525306231823319788">全螢幕</translation> <translation id="8548209692293300397">您先前曾以<ph name="USER_NAME" /> (<ph name="USER_EMAIL" />) 身分登入。如要透過該帳戶存取您的電腦,請使用該帳戶<ph name="LINK_BEGIN" />登入 Google Chrome<ph name="LINK_END" />,並重新安裝 Chrome 遠端桌面。</translation> <translation id="8642984861538780905">普通</translation> +<translation id="8705151241155781642">• 支援 Android 9.0 Pie。 +• 可根據你使用的 Android 裝置螢幕大小,調整遠端桌面解析度。</translation> <translation id="8712909229180978490">我已儲存的檔案未顯示在線上 Google 雲端硬碟中。</translation> <translation id="8743328882720071828">你要將電腦的瀏覽及控制權限授予 <ph name="CLIENT_USERNAME" /> 嗎?</translation> <translation id="8747048596626351634">工作階段當機或無法啟動。如果遠端電腦有 ~/.chrome-remote-desktop-session,請確認該檔案開始執行長期運作的前景程序,例如桌面環境或視窗管理員。</translation>
diff --git a/services/device/geolocation/BUILD.gn b/services/device/geolocation/BUILD.gn index 0a139b7..fb39939 100644 --- a/services/device/geolocation/BUILD.gn +++ b/services/device/geolocation/BUILD.gn
@@ -141,6 +141,7 @@ "$google_play_services_package:google_play_services_basement_java", "$google_play_services_package:google_play_services_location_java", "//base:base_java", + "//components/location/android:location_java", "//services/device/public/java:geolocation_java", ] }
diff --git a/services/device/geolocation/DEPS b/services/device/geolocation/DEPS index 0687f47a..5bcd2371 100644 --- a/services/device/geolocation/DEPS +++ b/services/device/geolocation/DEPS
@@ -1,5 +1,6 @@ include_rules = [ "+chromeos", + "+components/location", "+dbus", "+jni", "+net/base",
diff --git a/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java b/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java index 87b6556..9f88da9 100644 --- a/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java +++ b/services/device/geolocation/android/java/src/org/chromium/device/geolocation/LocationProviderGmsCore.java
@@ -20,6 +20,7 @@ import org.chromium.base.Log; import org.chromium.base.ThreadUtils; +import org.chromium.components.location.LocationUtils; /** * This is a LocationProvider using Google Play Services. @@ -67,11 +68,23 @@ mLocationRequest = LocationRequest.create(); if (mEnablehighAccuracy) { + // With enableHighAccuracy, request a faster update interval and configure the provider + // for high accuracy mode. mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY) .setInterval(UPDATE_INTERVAL_FAST_MS); } else { - mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY) - .setInterval(UPDATE_INTERVAL_MS); + // Use balanced mode by default. In this mode, the API will prefer the network provider + // but may use sensor data (for instance, GPS) if high accuracy is requested by another + // app. + // + // If location is configured for sensors-only then elevate the priority to ensure GPS + // and other sensors are used. + if (LocationUtils.getInstance().isSystemLocationSettingSensorsOnly()) { + mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); + } else { + mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY); + } + mLocationRequest.setInterval(UPDATE_INTERVAL_MS); } final Location location = mLocationProviderApi.getLastLocation(mGoogleApiClient);
diff --git a/services/network/p2p/socket_tcp.cc b/services/network/p2p/socket_tcp.cc index d1fc56a..3b6ec6a 100644 --- a/services/network/p2p/socket_tcp.cc +++ b/services/network/p2p/socket_tcp.cc
@@ -228,9 +228,9 @@ void P2PSocketTcpBase::OnRead(int result) { DidCompleteRead(result); - if (state_ == STATE_OPEN) { + // DidCompleteRead() destroys the socket on error or EOF. + if (result > 0 && state_ == STATE_OPEN) DoRead(); - } } void P2PSocketTcpBase::OnPacket(std::vector<int8_t> data) { @@ -272,13 +272,14 @@ } void P2PSocketTcpBase::DoWrite() { - while (write_buffer_.buffer.get() && state_ == STATE_OPEN && - !write_pending_) { + while (write_buffer_.buffer.get()) { int result = socket_->Write( write_buffer_.buffer.get(), write_buffer_.buffer->BytesRemaining(), base::BindOnce(&P2PSocketTcp::OnWritten, base::Unretained(this)), net::NetworkTrafficAnnotationTag(write_buffer_.traffic_annotation)); HandleWriteResult(result); + if (result < 0) + return; } } @@ -288,7 +289,9 @@ write_pending_ = false; HandleWriteResult(result); - DoWrite(); + // HandleWriteResult() destroys the socket on error. + if (result > 0) + DoWrite(); } void P2PSocketTcpBase::HandleWriteResult(int result) {
diff --git a/services/network/p2p/socket_udp.cc b/services/network/p2p/socket_udp.cc index e2c6774..fe5d5c0 100644 --- a/services/network/p2p/socket_udp.cc +++ b/services/network/p2p/socket_udp.cc
@@ -187,25 +187,21 @@ } void P2PSocketUdp::DoRead() { - int result; do { - result = socket_->RecvFrom( + int result = socket_->RecvFrom( recv_buffer_.get(), kUdpReadBufferSize, &recv_address_, base::BindOnce(&P2PSocketUdp::OnRecv, base::Unretained(this))); - if (result == net::ERR_IO_PENDING) + if (result == net::ERR_IO_PENDING || !HandleReadResult(result)) return; - HandleReadResult(result); } while (state_ == STATE_OPEN); } void P2PSocketUdp::OnRecv(int result) { - HandleReadResult(result); - if (state_ == STATE_OPEN) { + if (HandleReadResult(result)) DoRead(); - } } -void P2PSocketUdp::HandleReadResult(int result) { +bool P2PSocketUdp::HandleReadResult(int result) { DCHECK_EQ(STATE_OPEN, state_); if (result > 0) { @@ -222,7 +218,7 @@ LOG(ERROR) << "Received unexpected data packet from " << recv_address_.ToString() << " before STUN binding is finished."; - return; + return true; } } @@ -234,10 +230,13 @@ } else if (result < 0 && !IsTransientError(result)) { LOG(ERROR) << "Error when reading from UDP socket: " << result; OnError(); + return false; } + + return true; } -void P2PSocketUdp::DoSend(const PendingPacket& packet) { +bool P2PSocketUdp::DoSend(const PendingPacket& packet) { base::TimeTicks send_time = base::TimeTicks::Now(); // The peer is considered not connected until the first incoming STUN @@ -254,7 +253,7 @@ LOG(ERROR) << "Page tried to send a data packet to " << packet.to.ToString() << " before STUN binding is finished."; OnError(); - return; + return false; } if (throttler_->DropNextPacket(packet.size)) { @@ -265,7 +264,7 @@ client_->SendComplete(P2PSendPacketMetrics( packet.id, packet.packet_options.packet_id, send_time)); // Do not reset the socket. - return; + return true; } } @@ -314,14 +313,18 @@ if (result == net::ERR_IO_PENDING) { send_pending_ = true; } else { - HandleSendResult(packet.id, packet.packet_options.packet_id, send_time, - result); + if (!HandleSendResult(packet.id, packet.packet_options.packet_id, send_time, + result)) { + return false; + } } delegate_->DumpPacket( base::make_span(reinterpret_cast<const uint8_t*>(packet.data->data()), packet.size), false); + + return true; } void P2PSocketUdp::OnSend(uint64_t packet_id, @@ -333,18 +336,22 @@ send_pending_ = false; - HandleSendResult(packet_id, transport_sequence_number, send_time, result); + if (!HandleSendResult(packet_id, transport_sequence_number, send_time, + result)) { + return; + } // Send next packets if we have them waiting in the buffer. while (state_ == STATE_OPEN && !send_queue_.empty() && !send_pending_) { PendingPacket packet = send_queue_.front(); send_queue_.pop_front(); - DoSend(packet); + if (!DoSend(packet)) + return; DecrementDelayedBytes(packet.size); } } -void P2PSocketUdp::HandleSendResult(uint64_t packet_id, +bool P2PSocketUdp::HandleSendResult(uint64_t packet_id, int32_t transport_sequence_number, base::TimeTicks send_time, int result) { @@ -355,7 +362,7 @@ if (!IsTransientError(result)) { LOG(ERROR) << "Error when sending data in UDP socket: " << result; OnError(); - return; + return false; } VLOG(0) << "sendto() has failed twice returning a " " transient error " @@ -369,6 +376,8 @@ client_->SendComplete( P2PSendPacketMetrics(packet_id, transport_sequence_number, send_time)); + + return true; } void P2PSocketUdp::Send(
diff --git a/services/network/p2p/socket_udp.h b/services/network/p2p/socket_udp.h index 876515cd..e6798317 100644 --- a/services/network/p2p/socket_udp.h +++ b/services/network/p2p/socket_udp.h
@@ -88,17 +88,21 @@ void DoRead(); void OnRecv(int result); - void HandleReadResult(int result); - void DoSend(const PendingPacket& packet); + // Following 3 methods return false if the result was an error and the socket + // was destroyed. The caller should stop using |this| in that case. + bool HandleReadResult(int result); + bool HandleSendResult(uint64_t packet_id, + int32_t transport_sequence_number, + base::TimeTicks send_time, + int result); + bool DoSend(const PendingPacket& packet); + void OnSend(uint64_t packet_id, int32_t transport_sequence_number, base::TimeTicks send_time, int result); - void HandleSendResult(uint64_t packet_id, - int32_t transport_sequence_number, - base::TimeTicks send_time, - int result); + int SetSocketDiffServCodePointInternal(net::DiffServCodePoint dscp); static std::unique_ptr<net::DatagramServerSocket> DefaultSocketFactory( net::NetLog* net_log);
diff --git a/services/service_manager/tests/lifecycle/lifecycle_unittest.cc b/services/service_manager/tests/lifecycle/lifecycle_unittest.cc index 5bc56f07..f43e7435 100644 --- a/services/service_manager/tests/lifecycle/lifecycle_unittest.cc +++ b/services/service_manager/tests/lifecycle/lifecycle_unittest.cc
@@ -322,11 +322,11 @@ EXPECT_TRUE(instances()->HasInstanceForName(kTestPackageAppNameB)); EXPECT_TRUE(instances()->HasInstanceForName(kTestPackageName)); size_t instance_count = instances()->GetNewInstanceCount(); - EXPECT_EQ(3u, instance_count); + ASSERT_EQ(3u, instance_count); base::RunLoop loop; - base::RepeatingClosure quit_on_last = - base::BarrierClosure(instance_count, loop.QuitClosure()); + base::RepeatingClosure quit_on_last = base::BarrierClosure( + static_cast<int>(instance_count), loop.QuitClosure()); lifecycle_a.set_connection_error_handler(quit_on_last); lifecycle_b.set_connection_error_handler(quit_on_last); lifecycle_package.set_connection_error_handler(quit_on_last); @@ -358,11 +358,11 @@ EXPECT_TRUE(instances()->HasInstanceForName(kTestPackageAppNameB)); EXPECT_TRUE(instances()->HasInstanceForName(kTestPackageName)); size_t instance_count = instances()->GetNewInstanceCount(); - EXPECT_EQ(3u, instance_count); + ASSERT_EQ(3u, instance_count); base::RunLoop loop; - base::RepeatingClosure quit_on_last = - base::BarrierClosure(instance_count, loop.QuitClosure()); + base::RepeatingClosure quit_on_last = base::BarrierClosure( + static_cast<int>(instance_count), loop.QuitClosure()); lifecycle_a.set_connection_error_handler(quit_on_last); lifecycle_b.set_connection_error_handler(quit_on_last); lifecycle_package.set_connection_error_handler(quit_on_last);
diff --git a/storage/browser/blob/blob_reader.cc b/storage/browser/blob/blob_reader.cc index 2d849b83..a90e31cc 100644 --- a/storage/browser/blob/blob_reader.cc +++ b/storage/browser/blob/blob_reader.cc
@@ -14,7 +14,6 @@ #include "base/bind.h" #include "base/callback_helpers.h" -#include "base/debug/alias.h" #include "base/memory/ptr_util.h" #include "base/task/post_task.h" #include "base/time/time.h" @@ -482,21 +481,7 @@ // Do the reading. const BlobDataItem& item = *items.at(current_item_index_); - - // TODO(https://crbug.com/864351): Temporary diagnostics. - uint64_t item_offset = item.offset(); - base::debug::Alias(&item_offset); - uint64_t item_length = item.length(); - base::debug::Alias(&item_length); - int buf_bytes_remaining = read_buf_->BytesRemaining(); - base::debug::Alias(&buf_bytes_remaining); - base::debug::Alias(&bytes_to_read); - if (item.type() == BlobDataItem::Type::kBytes) { - // TODO(https://crbug.com/864351): Temporary diagnostics. - const char* item_bytes = item.bytes().data(); - base::debug::Alias(&item_bytes); - ReadBytesItem(item, bytes_to_read); return Status::DONE; }
diff --git a/storage/browser/blob/mojo_blob_reader.cc b/storage/browser/blob/mojo_blob_reader.cc index 3f11019..0c4e8f06 100644 --- a/storage/browser/blob/mojo_blob_reader.cc +++ b/storage/browser/blob/mojo_blob_reader.cc
@@ -4,7 +4,6 @@ #include "storage/browser/blob/mojo_blob_reader.h" -#include "base/debug/alias.h" #include "base/trace_event/trace_event.h" #include "net/base/io_buffer.h" #include "services/network/public/cpp/net_adapters.h" @@ -100,28 +99,17 @@ TRACE_EVENT_ASYNC_END2("Blob", "BlobReader::CountSize", this, "result", "success", "size", blob_reader_->total_size()); - // TODO(https://crbug.com/864351): Temporary diagnostics. - net::HttpByteRange pre_bounds_range = byte_range_; - base::debug::Alias(&pre_bounds_range); - // Apply the range requirement. if (!byte_range_.ComputeBounds(blob_reader_->total_size())) { NotifyCompletedAndDeleteIfNeeded(net::ERR_REQUEST_RANGE_NOT_SATISFIABLE); return; } - // TODO(https://crbug.com/864351): Temporary diagnostics. - net::HttpByteRange post_bounds_range = byte_range_; - base::debug::Alias(&post_bounds_range); - DCHECK_LE(byte_range_.first_byte_position(), byte_range_.last_byte_position() + 1); uint64_t length = base::checked_cast<uint64_t>( byte_range_.last_byte_position() - byte_range_.first_byte_position() + 1); - // TODO(https://crbug.com/864351): Temporary diagnostics. - base::debug::Alias(&length); - if (blob_reader_->SetReadRange(byte_range_.first_byte_position(), length) != BlobReader::Status::DONE) { NotifyCompletedAndDeleteIfNeeded(blob_reader_->net_error());
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json index 8f34be5..290646c9 100644 --- a/testing/buildbot/chromium.chromiumos.json +++ b/testing/buildbot/chromium.chromiumos.json
@@ -465,8 +465,7 @@ "name": "mash_browser_tests", "swarming": { "can_use_on_swarming_builders": true, - "hard_timeout": 1800, - "shards": 20 + "hard_timeout": 1800 }, "test": "browser_tests" }, @@ -479,8 +478,8 @@ "name": "single_process_mash_browser_tests", "swarming": { "can_use_on_swarming_builders": true, - "hard_timeout": 3600, - "shards": 10 + "hard_timeout": 1800, + "shards": 20 }, "test": "browser_tests" }, @@ -1169,7 +1168,7 @@ "name": "single_process_mash_browser_tests", "swarming": { "can_use_on_swarming_builders": true, - "hard_timeout": 3600, + "hard_timeout": 1800, "shards": 10 }, "test": "browser_tests"
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json index 02e1424d..8d906e2 100644 --- a/testing/buildbot/chromium.fyi.json +++ b/testing/buildbot/chromium.fyi.json
@@ -1371,53 +1371,6 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [ - "--bucket", - "chromium-result-details", - "--test-name", - "viz_content_browsertests" - ], - "script": "//build/android/pylib/results/presentation/test_results_presentation.py" - }, - "name": "viz_content_browsertests", - "swarming": { - "can_use_on_swarming_builders": true, - "cipd_packages": [ - { - "cipd_package": "infra/tools/luci/logdog/butler/${platform}", - "location": "bin", - "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" - } - ], - "dimension_sets": [ - { - "device_os": "MMB29Q", - "device_type": "bullhead", - "os": "Android" - } - ], - "hard_timeout": 3600, - "output_links": [ - { - "link": [ - "https://luci-logdog.appspot.com/v/?s", - "=android%2Fswarming%2Flogcats%2F", - "${TASK_ID}%2F%2B%2Funified_logcats" - ], - "name": "shard #${SHARD_INDEX} logcats" - } - ], - "shards": 10 - }, - "test": "content_browsertests" - }, - { - "args": [ "--enable-features=NetworkService", "--gs-results-bucket=chromium-result-details", "--recover-devices" @@ -2936,52 +2889,6 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--gs-results-bucket=chromium-result-details", - "--recover-devices" - ], - "merge": { - "args": [ - "--bucket", - "chromium-result-details", - "--test-name", - "viz_content_browsertests" - ], - "script": "//build/android/pylib/results/presentation/test_results_presentation.py" - }, - "name": "viz_content_browsertests", - "swarming": { - "can_use_on_swarming_builders": true, - "cipd_packages": [ - { - "cipd_package": "infra/tools/luci/logdog/butler/${platform}", - "location": "bin", - "revision": "git_revision:ff387eadf445b24c935f1cf7d6ddd279f8a6b04c" - } - ], - "dimension_sets": [ - { - "device_os": "MMB29Q", - "device_type": "bullhead", - "os": "Android" - } - ], - "output_links": [ - { - "link": [ - "https://luci-logdog.appspot.com/v/?s", - "=android%2Fswarming%2Flogcats%2F", - "${TASK_ID}%2F%2B%2Funified_logcats" - ], - "name": "shard #${SHARD_INDEX} logcats" - } - ], - "shards": 10 - }, - "test": "content_browsertests" - }, - { - "args": [ "--enable-features=NetworkService", "--gs-results-bucket=chromium-result-details", "--recover-devices" @@ -3196,8 +3103,7 @@ "--remote=127.0.0.1", "--remote-ssh-port=9222", "--skip=telemetry.internal.app.android_app_unittest.AndroidAppTest.testWebView", - "--skip=telemetry.internal.backends.browser_backend_unittest.BrowserBackendIntegrationTest.testSmokeIsBrowserRunningReturnFalse", - "--extra-browser-args=--disable-gpu" + "--skip=telemetry.internal.backends.browser_backend_unittest.BrowserBackendIntegrationTest.testSmokeIsBrowserRunningReturnFalse" ], "isolate_name": "telemetry_unittests", "name": "telemetry_unittests",
diff --git a/testing/buildbot/chromium.memory.json b/testing/buildbot/chromium.memory.json index 3b157f7..013cf5d 100644 --- a/testing/buildbot/chromium.memory.json +++ b/testing/buildbot/chromium.memory.json
@@ -4278,8 +4278,7 @@ "name": "mash_browser_tests", "swarming": { "can_use_on_swarming_builders": true, - "hard_timeout": 1800, - "shards": 30 + "hard_timeout": 1800 }, "test": "browser_tests" }, @@ -4292,8 +4291,8 @@ "name": "single_process_mash_browser_tests", "swarming": { "can_use_on_swarming_builders": true, - "hard_timeout": 3600, - "shards": 10 + "hard_timeout": 1800, + "shards": 30 }, "test": "browser_tests" }, @@ -4968,8 +4967,7 @@ "name": "mash_browser_tests", "swarming": { "can_use_on_swarming_builders": true, - "hard_timeout": 1800, - "shards": 20 + "hard_timeout": 1800 }, "test": "browser_tests" }, @@ -4982,8 +4980,8 @@ "name": "single_process_mash_browser_tests", "swarming": { "can_use_on_swarming_builders": true, - "hard_timeout": 3600, - "shards": 10 + "hard_timeout": 1800, + "shards": 20 }, "test": "browser_tests" },
diff --git a/testing/buildbot/filters/README.md b/testing/buildbot/filters/README.md index f8a82b4..44d1ba1 100644 --- a/testing/buildbot/filters/README.md +++ b/testing/buildbot/filters/README.md
@@ -45,13 +45,22 @@ ## Usage When running tests on desktop platforms, the test filter file can be specified -using `--test-launcher-filter-file` command line flag. Example test invocation: +using `--test-launcher-filter-file` command line flag. Example test invocation +(single filter file): ```bash $ out/dbg/content_browsertests \ --test-launcher-filter-file=testing/buildbot/filters/foo.content_browsertests.filter ``` +Example test invocation (multiple filter files, separated by ';'): + +```bash +$ out/dbg/content_browsertests \ + --test-launcher-filter-file=testing/buildbot/filters/foo.content_browsertests.filter;\ + testing/buildbot/filters/foo.chromeos.content_browsertests.filter +``` + When running tests on Android, the test filter file can also be specified using `--test-launcher-filter-file` command line flag. Example test invocation:
diff --git a/testing/buildbot/filters/chromeos.mash.fyi.browser_tests.filter b/testing/buildbot/filters/chromeos.mash.fyi.browser_tests.filter index c8fb0b9..8429370 100644 --- a/testing/buildbot/filters/chromeos.mash.fyi.browser_tests.filter +++ b/testing/buildbot/filters/chromeos.mash.fyi.browser_tests.filter
@@ -183,7 +183,7 @@ # content::WaitForChildFrameSurfaceReady hangs. -SitePerProcessDevToolsSanityTest.InputDispatchEventsToOOPIF --WebViewGuestTouchFocusBrowserPluginSpecificTest.TouchFocusesBrowserPluginInEmbedder +-ChromeMimeHandlerViewBrowserPluginTest.TouchFocusesBrowserPluginInEmbedder # Function under test uses ash::Shell for window list. -SortWindowsByZIndexBrowserTest.*
diff --git a/testing/buildbot/filters/chromeos.single_process_mash.browser_tests.filter b/testing/buildbot/filters/chromeos.single_process_mash.browser_tests.filter index d709a1b9..dc3e335 100644 --- a/testing/buildbot/filters/chromeos.single_process_mash.browser_tests.filter +++ b/testing/buildbot/filters/chromeos.single_process_mash.browser_tests.filter
@@ -33,10 +33,11 @@ # Touch gestures don't work in webcontents. https://crbug.com/866991. -TopControlsSlideControllerTest.DisplayRotation --TopControlsSlideControllerTest.TestScrollingPage --TopControlsSlideControllerTest.TestScrollingPageAndSwitchingToNTP -TopControlsSlideControllerTest.TestClosingATab -TopControlsSlideControllerTest.TestFocusEditableElements +-TopControlsSlideControllerTest.TestScrollingMaximizedPageBeforeGoingToTabletMode +-TopControlsSlideControllerTest.TestScrollingPage +-TopControlsSlideControllerTest.TestScrollingPageAndSwitchingToNTP # Direct access to ash window frames, tablet mode, overview mode, etc. -NonHomeLauncherBrowserNonClientFrameViewAshTest.* @@ -103,7 +104,7 @@ -WebViewScrollBubbling/WebViewGuestScrollTest.TestGuestWheelScrollsBubble/* # FATAL:hit_test_region_observer.cc(164)] Check failed: frame_sink_id.is_valid(). --WebViewGuestTouchFocusBrowserPluginSpecificTest.TouchFocusesBrowserPluginInEmbedder +-ChromeMimeHandlerViewBrowserPluginTest.TouchFocusesBrowserPluginInEmbedder # Picture-in-Picture does not work with mash because VideoSurfaceLayer is # disabled. @@ -160,6 +161,10 @@ # Context menu tests. -ContextMenuBrowserTest.ContextMenuEntriesAreDisabledInLockedFullscreen +# Flaky test. crbug.com/880584 +# Not implemented reached in virtual base::i18n::TextDirection content::RenderWidgetHostViewAura::GetTextDirection() +-CrSettingsResetPageTest.All + # Default extension tests. -DefaultProfileExtensionBrowserTest.NoExtensionHosts @@ -175,6 +180,9 @@ -SRC_ClearKey/EncryptedMediaTest.* -SRC_ExternalClearKey/EncryptedMediaTest.* +# Failing on ASAN bot. crbug.com/882631 +-ExtensionWebRequestApiTest.WebRequestTypes + # Immersive mode tests. -ImmersiveModeBrowserViewTest.TabNavigationAcceleratorsFullscreenBrowser/material
diff --git a/testing/buildbot/filters/webui_polymer2_browser_tests.filter b/testing/buildbot/filters/webui_polymer2_browser_tests.filter index 0efaffe..8d1f5bdc 100644 --- a/testing/buildbot/filters/webui_polymer2_browser_tests.filter +++ b/testing/buildbot/filters/webui_polymer2_browser_tests.filter
@@ -15,7 +15,6 @@ # --gtest_repeat=5, but might pass on a single invocation). # Chrome Desktop failures (Mac, Linux, Windows). --CrSettingsAllSitesTest.All -CrSettingsLanguagesPageTest.InputMethods -CrSettingsMainPageTest.MainPage -CrSettingsMenuTest.SettingsMenu
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl index 2ef900d..e87051b 100644 --- a/testing/buildbot/test_suite_exceptions.pyl +++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -723,11 +723,7 @@ }, }, }, - 'mash_browser_tests': { - 'remove_from': [ - # Not needed on chromium.fyi because suite is on main waterfall. - 'Mojo ChromiumOS', - ], + 'single_process_mash_browser_tests': { 'modifications': { # chromium.chromiumos 'linux-chromeos-dbg': {
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl index 9ee2485..853e08df 100644 --- a/testing/buildbot/test_suites.pyl +++ b/testing/buildbot/test_suites.pyl
@@ -483,9 +483,6 @@ # Always fails. '--skip=telemetry.internal.app.android_app_unittest.AndroidAppTest.testWebView', '--skip=telemetry.internal.backends.browser_backend_unittest.BrowserBackendIntegrationTest.testSmokeIsBrowserRunningReturnFalse', - # Disable GPU compositing, telemetry_unittests runs on VMs. - # https://crbug.com/871955 - '--extra-browser-args=--disable-gpu', ], 'swarming': { 'hard_timeout': 1200, @@ -1938,7 +1935,7 @@ '--test-launcher-filter-file=../../testing/buildbot/filters/chromeos.single_process_mash.browser_tests.filter', ], 'swarming': { - 'hard_timeout': 3600, + 'hard_timeout': 1800, 'shards': 10, }, }, @@ -2712,7 +2709,6 @@ 'mojo_android_gtests': [ 'network_service_android_gtests', - 'viz_gtests', ], 'mojo_windows_gtests': [
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees index c209534..ba92866c 100644 --- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees +++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees
@@ -115,6 +115,8 @@ # These tests failed in normal mode but are fixed with BlinkGenPropertyTrees. Bug(none) compositing/overflow/clip-escaping-reverse-order-should-not-crash.html [ Pass ] Bug(none) compositing/overflow/composited-scroll-with-fractional-translation.html [ Pass ] +Bug(none) virtual/prefer_compositing_to_lcd_text/compositing/overflow/clip-escaping-reverse-order-should-not-crash.html [ Pass ] +Bug(none) virtual/prefer_compositing_to_lcd_text/compositing/overflow/composited-scroll-with-fractional-translation.html [ Pass ] crbug.com/865039 compositing/masks/mask-with-added-filters.html [ Pass ] # Link highlights are no longer affected by ancestor effects. crbug.com/857501 compositing/gestures/gesture-tapHighlight-with-filter.html [ Pass ] @@ -127,8 +129,6 @@ crbug.com/854189 css3/filters/backdrop-filter-rendering-no-background.html [ Failure ] crbug.com/854189 css3/filters/backdrop-filter-rendering.html [ Failure ] -crbug.com/861824 virtual/threaded/fast/animationworklet/animation-worklet-inside-iframe.html [ Failure ] - # These scrollbar tests should pass. crbug.com/836912 compositing/squashing/no-squashing-into-another-clip-layer.html [ Failure ] crbug.com/836912 compositing/scrollbars/nested-overlay-scrollbars.html [ Failure ] @@ -211,7 +211,14 @@ crbug.com/879173 compositing/overflow/nested-render-surfaces-with-rotation.html [ Failure ] crbug.com/879173 virtual/prefer_compositing_to_lcd_text/compositing/overflow/nested-render-surfaces-with-rotation.html [ Failure ] -crbug.com/879610 virtual/android/rootscroller/nested-rootscroller-browser-controls-bounds-hidden.html [ Failure ] +crbug.com/882975 virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchpad.html [ Failure Pass ] +crbug.com/882975 virtual/threaded/fast/events/pinch/gesture-pinch-zoom-prevent-in-handler.html [ Failure Pass ] +crbug.com/882975 virtual/threaded/fast/events/pinch/scroll-visual-viewport-send-boundary-events.html [ Failure Pass ] -Bug(none) virtual/threaded/synthetic_gestures/synthetic-pinch-zoom-gesture-touchpad.html [ Failure ] crbug.com/879169 transforms/3d/point-mapping/3d-point-mapping-2.html [ Failure ] + +crbug.com/882973 http/tests/devtools/layers/layer-tree-model.js [ Failure ] + +# Check failed: 1u == property_trees()->element_id_to_effect_node_index.count(element_id) (1 vs. 0) +crbug.com/882974 virtual/threaded/fast/animationworklet/animation-worklet-inside-iframe.html [ Crash ] +crbug.com/882974 virtual/threaded/fast/animationworklet/worklet-animation-local-time-undefined.html [ Crash ]
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index c6640ee4a..dd5e91c 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -4368,7 +4368,6 @@ crbug.com/773122 [ Win7 ] fast/text/word-break.html [ Failure Pass ] # Sheriff failures 2017-10-13 -crbug.com/774437 paint/invalidation/selection/selection-partial-invalidation-between-blocks.html [ Pass Failure ] crbug.com/774463 [ Win7 Debug ] fast/events/autoscroll-should-not-stop-on-keypress.html [ Failure Pass ] crbug.com/774463 [ Win7 Debug ] virtual/mouseevent_fractional/fast/events/autoscroll-should-not-stop-on-keypress.html [ Failure Pass ] crbug.com/774688 [ Mac ] fast/spatial-navigation/snav-container-white-space.html [ Pass Failure ]
diff --git a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST_5.json b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST_5.json index 1c864b82..6a7fe356 100644 --- a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST_5.json +++ b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST_5.json
@@ -88168,7 +88168,7 @@ "/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-layout-formatting-context-margin-001.html", [ [ - "/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-formatting-context-margin-001-ref.html", + "/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-layout-formatting-context-margin-001-ref.html", "==" ] ], @@ -88511,6 +88511,18 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-grid-001.html": [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-grid-001.html", + [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-grid-001-ref.html", + "==" + ] + ], + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-inline-block-001.html": [ [ "/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-inline-block-001.html", @@ -91463,6 +91475,18 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-writing-mode-016.html": [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-writing-mode-016.html", + [ + [ + "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-writing-mode-016-ref.html", + "==" + ] + ], + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001.html": [ [ "/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001.html", @@ -95363,18 +95387,6 @@ {} ] ], - "feature-policy/experimental-features/intrinsicsize-svg-image.tentative.html": [ - [ - "/feature-policy/experimental-features/intrinsicsize-svg-image.tentative.html", - [ - [ - "/feature-policy/experimental-features/intrinsicsize-svg-image-ref.html", - "==" - ] - ], - {} - ] - ], "fetch/corb/img-html-correctly-labeled.sub.html": [ [ "/fetch/corb/img-html-correctly-labeled.sub.html", @@ -98147,6 +98159,18 @@ {} ] ], + "html/semantics/embedded-content/svg/intrinsicsize/intrinsicsize-svg-image.tentative.html": [ + [ + "/html/semantics/embedded-content/svg/intrinsicsize/intrinsicsize-svg-image.tentative.html", + [ + [ + "/html/semantics/embedded-content/svg/intrinsicsize/intrinsicsize-svg-image-ref.html", + "==" + ] + ], + {} + ] + ], "html/semantics/embedded-content/the-audio-element/audio_001.htm": [ [ "/html/semantics/embedded-content/the-audio-element/audio_001.htm", @@ -142899,6 +142923,11 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-grid-001-ref.html": [ + [ + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-inline-block-001-ref.html": [ [ {} @@ -143904,6 +143933,11 @@ {} ] ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-writing-mode-016-ref.html": [ + [ + {} + ] + ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001-ref.html": [ [ {} @@ -147784,12 +147818,7 @@ {} ] ], - "feature-policy/experimental-features/intrinsicsize-svg-image-ref.html": [ - [ - {} - ] - ], - "feature-policy/experimental-features/intrinsicsize-without-unsized-media.tentative.https.sub.html.headers": [ + "feature-policy/experimental-features/intrinsicsize-with-unsized-media.tentative.https.sub.html.headers": [ [ {} ] @@ -147879,7 +147908,7 @@ {} ] ], - "feature-policy/experimental-features/unsized-image.tentative.https.sub.html.headers": [ + "feature-policy/experimental-features/unsized-media.tentative.https.sub.html.headers": [ [ {} ] @@ -159324,6 +159353,11 @@ {} ] ], + "html/semantics/embedded-content/svg/intrinsicsize/intrinsicsize-svg-image-ref.html": [ + [ + {} + ] + ], "html/semantics/embedded-content/the-area-element/.gitkeep": [ [ {} @@ -159939,6 +159973,11 @@ {} ] ], + "html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html.headers": [ + [ + {} + ] + ], "html/semantics/embedded-content/the-img-element/ismap/img-ismap-coordinates-iframe-after.html": [ [ {} @@ -160074,6 +160113,11 @@ {} ] ], + "html/semantics/embedded-content/the-video-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html.headers": [ + [ + {} + ] + ], "html/semantics/embedded-content/the-video-element/video_content-ref.htm": [ [ {} @@ -164189,6 +164233,11 @@ {} ] ], + "interfaces/font-metrics-api.idl": [ + [ + {} + ] + ], "interfaces/fullscreen.idl": [ [ {} @@ -165649,6 +165698,46 @@ {} ] ], + "mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], "mixed-content/fetch-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ [ {} @@ -165894,6 +165983,86 @@ {} ] ], + "mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], "mixed-content/object-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ [ {} @@ -166144,6 +166313,326 @@ {} ] ], + "mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + [ + {} + ] + ], "mixed-content/xhr-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ [ {} @@ -176589,6 +177078,11 @@ {} ] ], + "webaudio/the-audio-api/the-audioworklet-interface/processors/channel-count-processor.js": [ + [ + {} + ] + ], "webaudio/the-audio-api/the-audioworklet-interface/processors/dummy-processor.js": [ [ {} @@ -218474,15 +218968,9 @@ {} ] ], - "feature-policy/experimental-features/intrinsicsize-with-responsive-images.tentative.html": [ + "feature-policy/experimental-features/intrinsicsize-with-unsized-media.tentative.https.sub.html": [ [ - "/feature-policy/experimental-features/intrinsicsize-with-responsive-images.tentative.html", - {} - ] - ], - "feature-policy/experimental-features/intrinsicsize-without-unsized-media.tentative.https.sub.html": [ - [ - "/feature-policy/experimental-features/intrinsicsize-without-unsized-media.tentative.https.sub.html", + "/feature-policy/experimental-features/intrinsicsize-with-unsized-media.tentative.https.sub.html", {} ] ], @@ -218492,9 +218980,9 @@ {} ] ], - "feature-policy/experimental-features/unsized-image.tentative.https.sub.html": [ + "feature-policy/experimental-features/unsized-media.tentative.https.sub.html": [ [ - "/feature-policy/experimental-features/unsized-image.tentative.https.sub.html", + "/feature-policy/experimental-features/unsized-media.tentative.https.sub.html", {} ] ], @@ -223768,6 +224256,12 @@ {} ] ], + "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-generated-content.html": [ + [ + "/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-generated-content.html", + {} + ] + ], "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-grid.html": [ [ "/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-grid.html", @@ -226858,6 +227352,18 @@ {} ] ], + "html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-with-responsive-images.tentative.html": [ + [ + "/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-with-responsive-images.tentative.html", + {} + ] + ], + "html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html": [ + [ + "/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html", + {} + ] + ], "html/semantics/embedded-content/the-img-element/invalid-src.html": [ [ "/html/semantics/embedded-content/the-img-element/invalid-src.html", @@ -227020,6 +227526,12 @@ {} ] ], + "html/semantics/embedded-content/the-video-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html": [ + [ + "/html/semantics/embedded-content/the-video-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html", + {} + ] + ], "html/semantics/embedded-content/the-video-element/video-tabindex.html": [ [ "/html/semantics/embedded-content/the-video-element/video-tabindex.html", @@ -235010,6 +235522,120 @@ {} ] ], + "mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/classic-data-worker-fetch/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/classic-data-worker-fetch/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/classic-data-worker-fetch/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], "mixed-content/fetch-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ [ "/mixed-content/fetch-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", @@ -235472,6 +236098,234 @@ {} ] ], + "mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/module-data-worker-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/module-data-worker-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-data-worker-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/module-data-worker-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-data-worker-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/module-data-worker-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/module-worker-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/module-worker-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/module-worker-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], "mixed-content/object-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ [ "/mixed-content/object-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", @@ -236156,6 +237010,918 @@ {} ] ], + "mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-animation-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html", + {} + ] + ], + "mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + [ + "/mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html", + {} + ] + ], "mixed-content/xhr-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ [ "/mixed-content/xhr-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html", @@ -263398,6 +265164,12 @@ {} ] ], + "webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html": [ + [ + "/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html", + {} + ] + ], "webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-options.https.html": [ [ "/webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-options.https.html", @@ -286080,11 +287852,11 @@ "testharness" ], "background-fetch/fetch.https.window-expected.txt": [ - "2c482da082d950ccfd187e2e62b53e87611c2522", + "6f60272f439f8077ce8040255575fd392ed991d1", "support" ], "background-fetch/fetch.https.window.js": [ - "fca3066e3b69068f1383bbdbf9e512d7a78ae87e", + "b730c8909de945e01059ec4de9bcb39a2f9b8b41", "testharness" ], "background-fetch/get-ids.https.window.js": [ @@ -286092,11 +287864,11 @@ "testharness" ], "background-fetch/get.https.window.js": [ - "31bf8bd6d1e80118aadaf84de06a5423bf50a97e", + "e4dd16cacd2e65a607854988e36b620ec4f1e301", "testharness" ], "background-fetch/idlharness.https.any-expected.txt": [ - "a8ecd9b77cd98e316661671c09e31a46c5898bd3", + "51725bcb6d551da4141cfe41fb2d5304b758ff6e", "support" ], "background-fetch/idlharness.https.any.js": [ @@ -286104,15 +287876,15 @@ "testharness" ], "background-fetch/idlharness.https.any.serviceworker-expected.txt": [ - "54e1a49eebff7bd7a68442ff9298269c9aa61689", + "53336a46c4042c6fc9b778263f0b93b7b1d09817", "support" ], "background-fetch/idlharness.https.any.sharedworker-expected.txt": [ - "baf5ba307fdaf360701139b991b40265fc7c9197", + "3fc3189180e76e267b9c00f201a094f28ce79d39", "support" ], "background-fetch/idlharness.https.any.worker-expected.txt": [ - "baf5ba307fdaf360701139b991b40265fc7c9197", + "3fc3189180e76e267b9c00f201a094f28ce79d39", "support" ], "background-fetch/mixed-content-and-allowed-schemes.https.window.js": [ @@ -359116,7 +360888,7 @@ "support" ], "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-layout-formatting-context-margin-001.html": [ - "c346a529284b908ed4419f1626c96319242a1b76", + "a8520ee2d1c81d46dac54d8fb4bcb667fa22d40f", "reftest" ], "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-layout-ignored-cases-no-principal-box-001.html": [ @@ -359323,6 +361095,14 @@ "1866dfd230b71189d9bc7d89665cd36ea917f05a", "reftest" ], + "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-grid-001-ref.html": [ + "b2fdf4b887692798c73a1a27c4c0c76150ee08c1", + "support" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-grid-001.html": [ + "a85b0a3138def29659fee120966850905628fe43", + "reftest" + ], "css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-inline-block-001-ref.html": [ "56d1cdd8cee77b81d3229e6843b8a646608928ae", "support" @@ -361111,6 +362891,14 @@ "6a6de33e2252fdda88d52bcde750d18415cd1b1a", "reftest" ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-writing-mode-016-ref.html": [ + "c3a223389d0455b2fe71d74837e5ff6121567432", + "support" + ], + "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-writing-mode-016.html": [ + "94c732358351f990c2a4d7533b2e36598c2ec197", + "reftest" + ], "css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/position-absolute-containing-block-001-ref.html": [ "5f8bcaf539f7004b226ab625d4357e4c831d6ac7", "support" @@ -368551,24 +370339,12 @@ "f0148783f1246b6bd60dabd837c64fc6d903e542", "testharness" ], - "feature-policy/experimental-features/intrinsicsize-svg-image-ref.html": [ - "1f142880428067d73ce5caf58e1bdc246b994de0", - "support" - ], - "feature-policy/experimental-features/intrinsicsize-svg-image.tentative.html": [ - "d16ac03766a46e23a029b9cb20aeefe14b65e09c", - "reftest" - ], - "feature-policy/experimental-features/intrinsicsize-with-responsive-images.tentative.html": [ - "60bc00ddc3ece7f3bb1c0d6e07ffbe9be735188d", + "feature-policy/experimental-features/intrinsicsize-with-unsized-media.tentative.https.sub.html": [ + "9d4757f81ebe83544d428ff5a7161d6c69cdc795", "testharness" ], - "feature-policy/experimental-features/intrinsicsize-without-unsized-media.tentative.https.sub.html": [ - "4a3526425d7add2eb9b144ac3f8498bcbcf7890e", - "testharness" - ], - "feature-policy/experimental-features/intrinsicsize-without-unsized-media.tentative.https.sub.html.headers": [ - "4fbf3f5adddbcb8ec95fc0e2192f4da841e93b8c", + "feature-policy/experimental-features/intrinsicsize-with-unsized-media.tentative.https.sub.html.headers": [ + "db2dcbc1929b9e1264855e9b80f77dfbda5d4f38", "support" ], "feature-policy/experimental-features/resources/async-script.js": [ @@ -368643,11 +370419,11 @@ "b468c8b1822d57cbf8c78523397a43813cefe51c", "support" ], - "feature-policy/experimental-features/unsized-image.tentative.https.sub.html": [ - "3731f0be276c7cdfbee4be11cdfd7d13d3b42f51", + "feature-policy/experimental-features/unsized-media.tentative.https.sub.html": [ + "172e4c8e4fed765d9c6d37bff298c9cdd299ae9e", "testharness" ], - "feature-policy/experimental-features/unsized-image.tentative.https.sub.html.headers": [ + "feature-policy/experimental-features/unsized-media.tentative.https.sub.html.headers": [ "db2dcbc1929b9e1264855e9b80f77dfbda5d4f38", "support" ], @@ -381159,6 +382935,10 @@ "cace814a8ce9f51ee4eaa1626b6e5377f528f22a", "support" ], + "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-generated-content.html": [ + "a4e7a490c770613bcc1d6170b64291c75c3cf074", + "testharness" + ], "html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-grid.html": [ "bbb71dfa7027aad90392ec39112eafe1dc9abf65", "testharness" @@ -383723,6 +385503,14 @@ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", "support" ], + "html/semantics/embedded-content/svg/intrinsicsize/intrinsicsize-svg-image-ref.html": [ + "41ddd757eca501dcf7e8b059d021d730bab2c729", + "support" + ], + "html/semantics/embedded-content/svg/intrinsicsize/intrinsicsize-svg-image.tentative.html": [ + "a0943169d0a5d960b97d4af9ccc629197e72a175", + "reftest" + ], "html/semantics/embedded-content/the-area-element/.gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", "support" @@ -385131,6 +386919,18 @@ "4be8d4db848ad259a508e1a8091feaae7733e784", "testharness" ], + "html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-with-responsive-images.tentative.html": [ + "739765c0d441aaf0d91c5f90ce544c5e1d81e14b", + "testharness" + ], + "html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html": [ + "4192e567fcc1921041e6a98d210df41199f701a6", + "testharness" + ], + "html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html.headers": [ + "4fbf3f5adddbcb8ec95fc0e2192f4da841e93b8c", + "support" + ], "html/semantics/embedded-content/the-img-element/invalid-src.html": [ "49e956565cc7c386cf548eab37097a9b995d4f1b", "testharness" @@ -385355,6 +387155,14 @@ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", "support" ], + "html/semantics/embedded-content/the-video-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html": [ + "d749d5576e6881ea900f7cd26e0ff6adad2610f3", + "testharness" + ], + "html/semantics/embedded-content/the-video-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html.headers": [ + "4fbf3f5adddbcb8ec95fc0e2192f4da841e93b8c", + "support" + ], "html/semantics/embedded-content/the-video-element/video-tabindex.html": [ "30448747892203f3d53ef4b9615a5a50bb62c62f", "testharness" @@ -392959,6 +394767,10 @@ "16e6f0a546902e155d398c8225216f4525a4ae4b", "support" ], + "interfaces/font-metrics-api.idl": [ + "b13def2d74c74b12821b9691f84088e23dc35040", + "support" + ], "interfaces/fullscreen.idl": [ "604dd3fe10a1fe35cfffd264c88f79ef1485c154", "support" @@ -395047,6 +396859,114 @@ "efc6ce6881d38b80be1b5daa67b2d8c5c338b53a", "testharness" ], + "mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "a6c8fe82b59ed5a908b6c4faa5b38bec85906c5e", + "testharness" + ], + "mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "035904520990a2bfa75bff3e7f1d1cb9fb82097c", + "testharness" + ], + "mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "3772f3b64ae282f59f82bd5f85509b3668370747", + "testharness" + ], + "mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "92d7db06f96e0b76baa16c32bfd51908309a9461", + "testharness" + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "bd51356e2f9a22a27f9dde778fdd33ac4bd9eb3d", + "testharness" + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "51b84997e39f97d62ec8138e75924a35999aacf8", + "testharness" + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "eff7b592dbb1406ebfa564f6e3a437f2949b6123", + "testharness" + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "1b7257dc861219b2a48b7ee7c649848a5ca4790d", + "testharness" + ], + "mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/classic-data-worker-fetch/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "b3bb1383564f43ce32f02eaea719e3d23532a357", + "testharness" + ], + "mixed-content/classic-data-worker-fetch/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "eb3b0a9eb5110d74d501e93d0ea2ac74ab7d6595", + "testharness" + ], + "mixed-content/classic-data-worker-fetch/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "9c7b75354009f000b662800be90ca631e94a75f2", + "testharness" + ], + "mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "61288bb8c772fe96846369f44953b6205eea7dfe", + "testharness" + ], + "mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "4b326660bbb965156174c18f393d1637962790ba", + "testharness" + ], + "mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "031a3728534a0d9ddff17a46e736de375007c4ea", + "testharness" + ], + "mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "253234f3b3efa4cbdc3479b4aaac445318ff41ba", + "testharness" + ], + "mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "61ef1c2d3bc0b7ebf0394a7a8d4be439905dd75e", + "testharness" + ], + "mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "d4dd6daccf5bc7bfe405221d3bac24a96d3c636d", + "testharness" + ], + "mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "9b28a62a9a989bde0742b2fa1269f85929aabfe2", + "testharness" + ], + "mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "c1496d038023dc66b083182962b0190cc4ad3bc4", + "testharness" + ], "mixed-content/fetch-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ "012bd3540a1a10571942f7b0185d3997eeb4a52b", "testharness" @@ -395551,6 +397471,222 @@ "4c59111539119b51143b5fa7d9071e238026aa5c", "testharness" ], + "mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "ae4ebff13cedd09fee7befefd5525a71fe6d4a96", + "testharness" + ], + "mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "aa3fc778fc4769953f474d76d10bbbf4a2db0619", + "testharness" + ], + "mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "c9d2d22c8a095447ba7f6ceb7756fb4af42a759a", + "testharness" + ], + "mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "5202090bc564b8823af995daac2dddcf6bce2dd9", + "testharness" + ], + "mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "2013b19c6b64890492ebdcb7f13c57d2a8f11cd1", + "testharness" + ], + "mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "fbe8606d65613214e6971278067f2c2f3bc7440c", + "testharness" + ], + "mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "c6c56e0c9f4c7686ff7c0ff311d3b29f01a5415b", + "testharness" + ], + "mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "c62ca1208dad25c8271a6214cc5f0e8029b827dc", + "testharness" + ], + "mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/module-data-worker-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "349a3731fca66bfafadafb354ad332b8793cec0e", + "testharness" + ], + "mixed-content/module-data-worker-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "6536bef9032bb65e98e0c76eb1f4c1a0984bfba7", + "testharness" + ], + "mixed-content/module-data-worker-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "9632f6963f3b212827daa01905545f7471a843af", + "testharness" + ], + "mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "fde3d3ab49c948ce33de11f8ccbf5fa0ca6908e7", + "testharness" + ], + "mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "4fe1a650df7a17b5f22ac2eaf85bd9797d7e08df", + "testharness" + ], + "mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "93d5a1b631bf246e5f5ec92a661cf3339c142b6d", + "testharness" + ], + "mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "2810c3c159bb827e976d39524f89ba29bceabb9e", + "testharness" + ], + "mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "afb1ac17cec58fe6c8ec3e83e57a4035012a21db", + "testharness" + ], + "mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "e54f7ba9618b0775a3c52d0c41a4e46458d688f1", + "testharness" + ], + "mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "7791db2e61f7c0e16f45992518d56ffc587eaf6b", + "testharness" + ], + "mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "d50981f6dad51a632d83b56f62d16a060376decc", + "testharness" + ], + "mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "65c121204d4fc078c6ba5f897ae80ba40e4e2bc0", + "testharness" + ], + "mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "29d56963e7987de3d061c1e3bbf07cfcaeda854c", + "testharness" + ], + "mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "25bbcf1e9e8a05163c23951d173d40b213af0ded", + "testharness" + ], + "mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "5d34ff67cc53f856d3f5adea69f7b73af362c274", + "testharness" + ], + "mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "347c57cb3a66faf991e4c589a3297c7e47654fa6", + "testharness" + ], + "mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "ab991d2c8d25e2bc2495d9aef99c4f22019b774e", + "testharness" + ], + "mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "775fcabb1beb8aa642ab5218aadf8d1607e01ae9", + "testharness" + ], + "mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "6a9a6437c8d1daf2b843e0eadbe7a0cf17c1d046", + "testharness" + ], + "mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/module-worker-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "e873d4a73d12fa1d3e1becf56227ab4ef293cb6d", + "testharness" + ], + "mixed-content/module-worker-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "ee6c6da0c3f66611c0457645f183f6636dcf5e6f", + "testharness" + ], + "mixed-content/module-worker-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "2393202ae06da4689725b1fd10fab939fd5aef97", + "testharness" + ], + "mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "64f777ea3d0477da70d4c977547036df85e91eb9", + "testharness" + ], + "mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "4950c32ae14fc3d62e320f3f35b976127ed69c03", + "testharness" + ], + "mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "7301b826e84c97e99b65a61833cb776fda4c201c", + "testharness" + ], + "mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "b9a59ad493481273578f14704dcebf7e5b1503fc", + "testharness" + ], + "mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "f1d99109db61000faa070dfdb3b2f1b80a67c224", + "testharness" + ], + "mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "17e86bac43a92b4668b8f16c25f0abf6253d6c3c", + "testharness" + ], + "mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "744ad87bb24fa0c32dafb93e087f24d4efed7320", + "testharness" + ], + "mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "e04e9baeed863aa47d259b3e42174e93dbb47303", + "testharness" + ], "mixed-content/object-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ "8ebd99b0118ef4ee214bb56a9a1153aef34e0945", "testharness" @@ -395876,11 +398012,11 @@ "testharness" ], "mixed-content/spec.src.json": [ - "54479ef42821d500adc9231794026aa3e9359e6e", + "06d381d363eeaeb825629f70c912a132d3551646", "support" ], "mixed-content/spec_json.js": [ - "1bd1ecc8a26f0970179e646e866f770fd5225e5c", + "0868df220fb9fbe3eb5700f662c2321d708ea9ca", "support" ], "mixed-content/video-tag/http-csp/cross-origin-http/top-level/keep-scheme-redirect/optionally-blockable/opt-in-blocks.https.html": [ @@ -396207,6 +398343,870 @@ "bd69a14a9dee83efd7fc0d70ec2c061a6597e29e", "testharness" ], + "mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "99c2795851f6ff97e3e9912cedf545ab36487007", + "testharness" + ], + "mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "ea193eadbb0a1918966ffcc362ea6ea743d27cb3", + "testharness" + ], + "mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "f410e1cf8e8bc0fa27040b0cc97bc1820494417a", + "testharness" + ], + "mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "cfda98f785f15bc37918a4da640ed53cdc776700", + "testharness" + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "a85242a83345971e145eae86fb9153a50372c08d", + "testharness" + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "48d74bc30817ad37f6a85c985b91e2f87754cd41", + "testharness" + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "7d0cdae613eece8ba3b267a3016b9ed95590b395", + "testharness" + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "94f97850ea7e9a66c6808b4ad0496ccec013ede7", + "testharness" + ], + "mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-animation-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "1a895d0fd70a5d6d24c4b3bd49e0a60db4275e43", + "testharness" + ], + "mixed-content/worklet-animation-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "ab90656e54ce2f2459a1c4e82ff06a3a46e64f8c", + "testharness" + ], + "mixed-content/worklet-animation-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "113460364e35acd4bed4b591ed82f2579bac0175", + "testharness" + ], + "mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "a636eef658b909f9a72b554d574783f26aa9d176", + "testharness" + ], + "mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "8aa7d05881f0a95f2e553c011ce508b382b0ba9a", + "testharness" + ], + "mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "5ef502f0c29f8189e0c6e250cd6b0189c551e2c4", + "testharness" + ], + "mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "34b6be42bb5ef26330b92944b50be0fcc23c05de", + "testharness" + ], + "mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "1586df97fc5af16dcd3286ccdad1dc39638095a7", + "testharness" + ], + "mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "73f621edff11c115e5fa8a11ad73598e27fbde5b", + "testharness" + ], + "mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "2b32f598852c15ead544b7d37022807dcfd9bda5", + "testharness" + ], + "mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "35995bb976f0f8211b2121ef5726dcbb54ab625e", + "testharness" + ], + "mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "c858da0c4b60ff29747ce9e915276cc647469710", + "testharness" + ], + "mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "0387b165e1b7fd435d927d3dc37db4f540408cf8", + "testharness" + ], + "mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "34a4e1e532aae2644d64daee7bd785e5b4c40317", + "testharness" + ], + "mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "b683d8267eb6fb2b7ea6947434186b37c6389e75", + "testharness" + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "5655510609ffb7f3c39b6bbbf48cf2b2982895d9", + "testharness" + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "0ccf4bc4229c5150a5ac82594c29e34479260cbe", + "testharness" + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "7c54048c0a9cb68a83c0371775fb7a7686bd75b9", + "testharness" + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "2d3eb78d6186e411f56ce651fd441d2a77803ff0", + "testharness" + ], + "mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-animation-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "989f1ad507802cf299f70a51b7f45bf1f1264dcc", + "testharness" + ], + "mixed-content/worklet-animation-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "46bca306999c4ba0865a3343e9786d0ee42ffdd6", + "testharness" + ], + "mixed-content/worklet-animation-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "313f7755b48205a19b2370e571311771603a72af", + "testharness" + ], + "mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "033b1d9798f0967bae1204aab8216237fb45fc1a", + "testharness" + ], + "mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "c4d4629746b36b8a5b49f6f02cb68333094a0f2a", + "testharness" + ], + "mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "90ad6006617bc7e947c49032b2c8fd448529838a", + "testharness" + ], + "mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "5111667254f67dcc684a7d8610699dd423429aaf", + "testharness" + ], + "mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "7d54c015391f9459c30b4c7a9ec78a08d80c3a0b", + "testharness" + ], + "mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "e1a0ac5a997a0bd3f1384aa1d106204557f78488", + "testharness" + ], + "mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "812cec20e183e442d905608174db0bdba5c3246e", + "testharness" + ], + "mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "a3611976131860574ef43436ce4b10c183611eda", + "testharness" + ], + "mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "81e57b110c0beb38e1b0bc8e80258e151ccf1359", + "testharness" + ], + "mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "ec537f5792331dfb420c2572264668f01c457bc6", + "testharness" + ], + "mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "0b8ddb9cc9293ef86de47a67e0ec985b8ec2de94", + "testharness" + ], + "mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "d2ab9e1e32510155a301074236d04b978197646b", + "testharness" + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "e3b0cb8117978366000fd08530072073aecd591d", + "testharness" + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "063c7b77c21cb6821116bab4fbdfce8e149c2ed1", + "testharness" + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "802b84c1899da2ce51375a566fe437610457ca35", + "testharness" + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "7e40482d496ef5f69edebbec5b040f04cba60abe", + "testharness" + ], + "mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-audio-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "1c77b65b666a0a13577c521ddffbc9b99b3e4a67", + "testharness" + ], + "mixed-content/worklet-audio-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "c5ec8343c9052ca28f905171bfd097be776aefe9", + "testharness" + ], + "mixed-content/worklet-audio-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "918aec37a419430a8cb42afe4bf1efdadf919ed1", + "testharness" + ], + "mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "b801db0de2e4a137c6884951ba36d66c6f497a52", + "testharness" + ], + "mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "65d7c00892ce6843cd6c572fd74c8c3d46614f92", + "testharness" + ], + "mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "bd3afe9856e09f1b95b287e9a594b40c4b2a9210", + "testharness" + ], + "mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "45759c1b31776383026ec6d2661610029c0a272f", + "testharness" + ], + "mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "5d2f67b7fff589312caa31550640dc5d57dfce76", + "testharness" + ], + "mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "fbf57e8b64799a0f13b0e64c9eba25597fe64995", + "testharness" + ], + "mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "e297efb9433c63a4bcaad6db6c893d343e84477a", + "testharness" + ], + "mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "6e1e6cba39cc9a4378754d97b004ecc874287c8e", + "testharness" + ], + "mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "68329ff582ed7d5bbb88b5affa6988d859efdb87", + "testharness" + ], + "mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "862abf012b55d586e91a4b3e74484e0791720db0", + "testharness" + ], + "mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "9e8ca3cd5731b0cc4bd385e8662297f5d689117c", + "testharness" + ], + "mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "341e9584d94d79e46c43970229cf4cf853206074", + "testharness" + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "0bf45c0d5114d6190e5bf8959e5400f0a6c3079d", + "testharness" + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "017a388848358f7b52782e4b5fcc003baa251e0f", + "testharness" + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "c7f37dee35c366a95a8b01516618b68d33e6b4be", + "testharness" + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "84c5ae0d05ac74bfae97bfc6bc2bef541b8d1e61", + "testharness" + ], + "mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-audio-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "b7f5cdc9c9c5637d5ff82a4b925ce224fdd2d8c5", + "testharness" + ], + "mixed-content/worklet-audio-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "adb418f61a912beb67f1a0aba73f0c39dabb0ac2", + "testharness" + ], + "mixed-content/worklet-audio-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "ce31e04d1b1c4eea33af796b39d0369a615dd996", + "testharness" + ], + "mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "8197d981d8beaa20049ba1e78c8004a18a8dfd17", + "testharness" + ], + "mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "60a5b9ec6e24b76a555a3c313af591fba5d987e4", + "testharness" + ], + "mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "035fe3bb0b132624bb9d64dd343b7bc190c11126", + "testharness" + ], + "mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "56c5e14673e17db4d0ecc02368a635f3ce3504e3", + "testharness" + ], + "mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "f1e134adbed18a9ed295536a34ed501cdf13f31d", + "testharness" + ], + "mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "ce5d3e1c06576394619fb80f0b90971d2a146103", + "testharness" + ], + "mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "5c123ed6cb1a8b30d5c3c6fb37cd19ba314c5ce6", + "testharness" + ], + "mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "06aadc3c3ce3edf8b0809a0cc8c7e31e8f453a25", + "testharness" + ], + "mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "bcc60543ae09b84877d4411c34e4a038ad558090", + "testharness" + ], + "mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "e56443cb86bb6b98fca22eb3ff2a4630ebd86e05", + "testharness" + ], + "mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "40569b7188d9dd0b069c255633fb98172faaddf2", + "testharness" + ], + "mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "17226d674591f43976cc64e259ef66d9f15ef5c7", + "testharness" + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "034c2f727de6dd945541c13f475e0f0d57fd0583", + "testharness" + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "1ecd9d94e024decd21bca928de6acb4e9cc01eab", + "testharness" + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "a60c79d490ff67b18047306dc6b2bc54b36289de", + "testharness" + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "88efeaf094551471e55f72f5a9d63f301164e2f6", + "testharness" + ], + "mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-layout-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "2e33579ee35bf7c094be49835fd43b7132bc61a2", + "testharness" + ], + "mixed-content/worklet-layout-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "7f1353c5477fe8bef4ebcc721ae4f27a608d1269", + "testharness" + ], + "mixed-content/worklet-layout-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "5cc77dd2e6bdbdf3fec827adb4f71da6d50c59b8", + "testharness" + ], + "mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "6af86dd96b3a65df28a71731831f84814601c646", + "testharness" + ], + "mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "e6a9c4c426d22664e2530c49b16b2cfc475c74c1", + "testharness" + ], + "mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "400622006fcfc2b5eb70d6c9974e1150524cf38c", + "testharness" + ], + "mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "b4be536c9232548d97941af8cb4ec5195364755d", + "testharness" + ], + "mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "0d7b7210a99f472b738184b8a14becbc70c375f9", + "testharness" + ], + "mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "708c0a5d75f25389e08b8f2b4a104ecea580964e", + "testharness" + ], + "mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "2414d5f321c1868c340adfffc305762fc34408e9", + "testharness" + ], + "mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "f0fa9aa60766f615fa90a02226c2cc0859dbfbfa", + "testharness" + ], + "mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "440630b5c2992992318574008eccfe02fa941e44", + "testharness" + ], + "mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "51cf26bcc86d8485fe3f9d4eb00766bcdbd391cf", + "testharness" + ], + "mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "d38c0259e95bb7d214d8cd35126f855facede25a", + "testharness" + ], + "mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "f32666f28ac951258726c2bb836b771730d3a742", + "testharness" + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "016ea765f53e5597bc32c8746811a2f4281fe29f", + "testharness" + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "47ba0d806743f000233b04e672de42ca4bbdad24", + "testharness" + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "6b339518948baf060cfd07cd0e971b327a7df2f6", + "testharness" + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "349d1ae1e630c7f8cedb7533f1f5893e1bcc5a61", + "testharness" + ], + "mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-layout-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "ba7834dff565fc04140c987e16d9c3d7d2f9a9c9", + "testharness" + ], + "mixed-content/worklet-layout-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "d1514320a5c9c997a70b4ae2d0830fee14e97064", + "testharness" + ], + "mixed-content/worklet-layout-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "42b9de520ea1a8c3616da5d737cdd198546acfd0", + "testharness" + ], + "mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "3a03aeae626722ad0595bfdea6f2b4f205db6c5a", + "testharness" + ], + "mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "c087917e88dd39c37f4f2adfe9e10427c067ddf3", + "testharness" + ], + "mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "f4192c219a49491089a0e489c19159f66011dede", + "testharness" + ], + "mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "82713253b046a9a96d5720d3ee2b161938b690a3", + "testharness" + ], + "mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "35ad440c528533853f33df9dca27c915601366c5", + "testharness" + ], + "mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "58227b988f35685e973a16a7d253417a6d30766b", + "testharness" + ], + "mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "e43a2542b1b386beb0571e3550940ddee95edb48", + "testharness" + ], + "mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "4e0db8fc4486c3a061469776b06dd7df49ed7f6c", + "testharness" + ], + "mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "84345fb74a58d0172377f7f642d8df65983d2fa8", + "testharness" + ], + "mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "52595a63b0f0178873a02f1bd6496db6d40deedc", + "testharness" + ], + "mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "0844824ea72a6e5e42d3560c0ea318f1692c39e2", + "testharness" + ], + "mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "8b5df2cacc7175aaf424eb58a9045fa084e0417e", + "testharness" + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "b03a99c5e6a2be3d29f5502582b1e2f5aa5148fe", + "testharness" + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "7180a72690d41cb07a2ef5ed68d18d02a0e10023", + "testharness" + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "f228ae5dc8e835e66d40600ceb3a20a0ca1fdb59", + "testharness" + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "ca0a9f47db39d98227d5e2947755014061f2b756", + "testharness" + ], + "mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-paint-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "7d38ae9f8d468e27cc6e5d5332b018414ea8bfca", + "testharness" + ], + "mixed-content/worklet-paint-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "c8bb0051668a8dc1a1ca3e24253348cd54522c2c", + "testharness" + ], + "mixed-content/worklet-paint-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "e97507d57490bc390ec11e711fa4c01ae6ca8090", + "testharness" + ], + "mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "a9b350b5c9dffcb38aabb20d71cf388251184303", + "testharness" + ], + "mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "81db7898f321970f5c5ffc3d84fc968da6c00604", + "testharness" + ], + "mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "999411c6297b12632f471e31bdd649a3efa0cc8c", + "testharness" + ], + "mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "de2d00317561424189967b2c2631cdea3accb513", + "testharness" + ], + "mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "453c5cb95d01dc95a105f98e3d2bc7a7ba3eec62", + "testharness" + ], + "mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "fbf362903e17644fe760197abeeeaa43314bc46a", + "testharness" + ], + "mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "a34698e9f7ad0498c5337a5d6098e77e445cf6d0", + "testharness" + ], + "mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "bbd268ab31c2debc8fb6324a1f7b51c9daeaf8d4", + "testharness" + ], + "mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "45472963891f1fc2690540fce6f4558477f48c68", + "testharness" + ], + "mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "6d519a352c425bdeb1a8013d71ba9f748240c61c", + "testharness" + ], + "mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "2a317beae4e9f63546b3ce4a2dd7648b6846e19b", + "testharness" + ], + "mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "44d4b3d88524d6f016487ab5f927a3b7c0908e4a", + "testharness" + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "f1af455623f28726236b979f5b27d71774e27a29", + "testharness" + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html": [ + "6eb6e95ef68aa994075a0e0a1bb669a4c1f845e7", + "testharness" + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "9b5656b9613831a4323fd22f1305a499e7bc6eec", + "testharness" + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "4fbf140e66032e538f502bab8673416ddbd11b57", + "testharness" + ], + "mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers": [ + "46e2255e388e9e08377d625b55653a007d59c14e", + "support" + ], + "mixed-content/worklet-paint-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "d1b9d5d6139a7525f8cd673082a28f9a0bb4db16", + "testharness" + ], + "mixed-content/worklet-paint-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html": [ + "c328f8fe8a525f8a81fdfc0e02ef9b586a1a2526", + "testharness" + ], + "mixed-content/worklet-paint-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "dc7cd63dceabb6ba3b6a9d76cb94be7a3dcd9737", + "testharness" + ], + "mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "1c7d29835bb84bae1a071a91e68eba12bc8fb582", + "testharness" + ], + "mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "cea0a88bacb62a3d14de770e5b19112edc152145", + "testharness" + ], + "mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "224d7c767b5cc47ec5b842efc376fdbd588660cc", + "testharness" + ], + "mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "b1432e78ac28ce3b16c8b3bb0e0fcffa40204e96", + "testharness" + ], + "mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html": [ + "ce845cb3d521bbe85cd33f50e0a9d30efc9fc835", + "testharness" + ], + "mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html": [ + "1e9acdf88e2930b242b2131ea3ad75e0155272b9", + "testharness" + ], + "mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html": [ + "0ff9576d6038a0735b0d9104aaaf269a3baef9ad", + "testharness" + ], + "mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html": [ + "d0e64b29b2dda75cbc11d4480c3b5b59a408efae", + "testharness" + ], "mixed-content/xhr-request/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html": [ "314f097890579c1dee9bd9de7cfb58caa263cbcf", "testharness" @@ -423655,6 +426655,10 @@ "0a9966add85c6cdd35ce54eb05aae0986c5d9b8e", "testharness" ], + "webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html": [ + "9d65d872b987943491cace95b8cdf729158fbd0d", + "testharness" + ], "webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-options.https.html": [ "ea840ed11ad59bdcbb62773b43c4e404a2903233", "testharness" @@ -423663,6 +426667,10 @@ "4281f56379bb20f1e173c22c99ab208d2be0fdd4", "testharness" ], + "webaudio/the-audio-api/the-audioworklet-interface/processors/channel-count-processor.js": [ + "556459f46b3074f03578c53ba7b967387bab071b", + "support" + ], "webaudio/the-audio-api/the-audioworklet-interface/processors/dummy-processor.js": [ "11155d508c51956ee07dcf4cf7c68829920c2af6", "support"
diff --git a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/fetch.https.window-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/fetch.https.window-expected.txt index 2c482da..6f60272 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/fetch.https.window-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/fetch.https.window-expected.txt
@@ -5,5 +5,6 @@ PASS Using Background Fetch to successfully fetch a single resource PASS Background Fetch that exceeds the quota throws a QuotaExceededError FAIL Fetches can have requests with duplicate URLs promise_test: Unhandled rejection with value: object "TypeError: Fetches with duplicate requests are not yet supported. Consider adding query params to make the requests unique. For updates check http://crbug.com/871174" +FAIL Fetches can have requests with a body promise_test: Unhandled rejection with value: object "TypeError: Requests with a body are not yet supported. For updates check http://crbug.com/774054" Harness: the test ran to completion.
diff --git a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/fetch.https.window.js b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/fetch.https.window.js index fca3066e..b730c890 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/fetch.https.window.js +++ b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/fetch.https.window.js
@@ -73,7 +73,7 @@ assert_equals(registration.uploadTotal, 0); assert_equals(registration.uploaded, 0); assert_equals(registration.downloadTotal, 0); - assert_equals(registration.state, 'pending'); + assert_equals(registration.result, ''); assert_equals(registration.failureReason, ''); // Skip `downloaded`, as the transfer may have started already. @@ -82,7 +82,7 @@ assert_equals(results.length, 1); assert_equals(eventRegistration.id, registration.id); - assert_equals(eventRegistration.state, 'success'); + assert_equals(eventRegistration.result, 'success'); assert_equals(eventRegistration.failureReason, ''); assert_true(results[0].url.includes('resources/feature-name.txt')); @@ -112,7 +112,7 @@ assert_equals(results.length, 2); assert_equals(eventRegistration.id, registration.id); - assert_equals(eventRegistration.state, 'success'); + assert_equals(eventRegistration.result, 'success'); assert_equals(eventRegistration.failureReason, ''); for (const result of results) { @@ -122,3 +122,26 @@ } }, 'Fetches can have requests with duplicate URLs'); + +backgroundFetchTest(async (test, backgroundFetch) => { + const request = + new Request('resources/feature-name.txt', + {method: 'POST', body: 'TestBody'}); + + const registration = await backgroundFetch.fetch('my-id', request); + + const {type, eventRegistration, results} = await getMessageFromServiceWorker(); + assert_equals('backgroundfetchsuccess', type); + assert_equals(results.length, 1); + + assert_equals(eventRegistration.id, registration.id); + assert_equals(eventRegistration.state, 'success'); + assert_equals(eventRegistration.failureReason, ''); + + for (const result of results) { + assert_true(result.url.includes('resources/feature-name.txt')); + assert_equals(result.status, 200); + assert_equals(result.text, 'Background Fetch'); + } + +}, 'Fetches can have requests with a body');
diff --git a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/get.https.window.js b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/get.https.window.js index 31bf8bd6..e4dd16c 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/get.https.window.js +++ b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/get.https.window.js
@@ -41,7 +41,7 @@ assert_equals(registration.uploadTotal, 0); assert_equals(registration.uploaded, 0); assert_equals(registration.downloadTotal, 1234); - assert_equals(registration.state, 'pending'); + assert_equals(registration.result, ''); assert_equals(registration.failureReason, ''); // Skip `downloaded`, as the transfer may have started already.
diff --git a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/idlharness.https.any-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/idlharness.https.any-expected.txt index a8ecd9b7..51725bcb 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/idlharness.https.any-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/idlharness.https.any-expected.txt
@@ -22,7 +22,7 @@ PASS BackgroundFetchRegistration interface: attribute uploaded PASS BackgroundFetchRegistration interface: attribute downloadTotal PASS BackgroundFetchRegistration interface: attribute downloaded -FAIL BackgroundFetchRegistration interface: attribute result assert_true: The prototype object must have a property "result" expected true got false +PASS BackgroundFetchRegistration interface: attribute result PASS BackgroundFetchRegistration interface: attribute failureReason FAIL BackgroundFetchRegistration interface: attribute recordsAvailable assert_true: The prototype object must have a property "recordsAvailable" expected true got false PASS BackgroundFetchRegistration interface: attribute onprogress
diff --git a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/idlharness.https.any.serviceworker-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/idlharness.https.any.serviceworker-expected.txt index 54e1a49e..53336a4 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/idlharness.https.any.serviceworker-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/idlharness.https.any.serviceworker-expected.txt
@@ -22,7 +22,7 @@ PASS BackgroundFetchRegistration interface: attribute uploaded PASS BackgroundFetchRegistration interface: attribute downloadTotal PASS BackgroundFetchRegistration interface: attribute downloaded -FAIL BackgroundFetchRegistration interface: attribute result assert_true: The prototype object must have a property "result" expected true got false +PASS BackgroundFetchRegistration interface: attribute result PASS BackgroundFetchRegistration interface: attribute failureReason FAIL BackgroundFetchRegistration interface: attribute recordsAvailable assert_true: The prototype object must have a property "recordsAvailable" expected true got false PASS BackgroundFetchRegistration interface: attribute onprogress
diff --git a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/idlharness.https.any.sharedworker-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/idlharness.https.any.sharedworker-expected.txt index baf5ba3..3fc31891 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/idlharness.https.any.sharedworker-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/idlharness.https.any.sharedworker-expected.txt
@@ -22,7 +22,7 @@ PASS BackgroundFetchRegistration interface: attribute uploaded PASS BackgroundFetchRegistration interface: attribute downloadTotal PASS BackgroundFetchRegistration interface: attribute downloaded -FAIL BackgroundFetchRegistration interface: attribute result assert_true: The prototype object must have a property "result" expected true got false +PASS BackgroundFetchRegistration interface: attribute result PASS BackgroundFetchRegistration interface: attribute failureReason FAIL BackgroundFetchRegistration interface: attribute recordsAvailable assert_true: The prototype object must have a property "recordsAvailable" expected true got false PASS BackgroundFetchRegistration interface: attribute onprogress
diff --git a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/idlharness.https.any.worker-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/idlharness.https.any.worker-expected.txt index baf5ba3..3fc31891 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/background-fetch/idlharness.https.any.worker-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/background-fetch/idlharness.https.any.worker-expected.txt
@@ -22,7 +22,7 @@ PASS BackgroundFetchRegistration interface: attribute uploaded PASS BackgroundFetchRegistration interface: attribute downloadTotal PASS BackgroundFetchRegistration interface: attribute downloaded -FAIL BackgroundFetchRegistration interface: attribute result assert_true: The prototype object must have a property "result" expected true got false +PASS BackgroundFetchRegistration interface: attribute result PASS BackgroundFetchRegistration interface: attribute failureReason FAIL BackgroundFetchRegistration interface: attribute recordsAvailable assert_true: The prototype object must have a property "recordsAvailable" expected true got false PASS BackgroundFetchRegistration interface: attribute onprogress
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-layout-formatting-context-margin-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-layout-formatting-context-margin-001.html index c346a52..a8520ee 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-layout-formatting-context-margin-001.html +++ b/third_party/WebKit/LayoutTests/external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-layout-formatting-context-margin-001.html
@@ -6,7 +6,7 @@ <link rel="author" title="Kyle Zentner" href="mailto:zentner.kyle@gmail.com"> <link rel="author" title="Morgan Rae Reschenberg" href="mailto:mreschenberg@berkeley.edu"> <link rel="help" href="http://www.w3.org/TR/css-containment-1/#containment-layout"> - <link rel="match" href="contain-paint-formatting-context-margin-001-ref.html"> + <link rel="match" href="contain-layout-formatting-context-margin-001-ref.html"> <style> #a { contain:layout;
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-grid-001-ref.html b/third_party/WebKit/LayoutTests/external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-grid-001-ref.html new file mode 100644 index 0000000..b2fdf4b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-grid-001-ref.html
@@ -0,0 +1,49 @@ +<!DOCTYPE HTML> +<html> +<head> + <meta charset="utf-8"> + <title>CSS Reftest Reference</title> + <link rel="author" title="Gerald Squelart" href="mailto:gsquelart@mozilla.com"> + <style> + .basic { + display: grid; + border: 1em solid green; + } + .height-ref { + height: 40px; + background: lightblue; + } + .width-ref { + width: 40px; + } + .floatLBasic-ref { + float: left; + } + .floatLWidth-ref { + float: left; + width: 40px; + } + </style> +</head> +<body> + <div class="basic"></div> + <br> + + <div class="basic height-ref"></div> + <br> + + <div class="basic height-ref"></div> + <br> + + <div class="basic width-ref"></div> + <br> + + <div class="basic width-ref"></div> + <br> + + <div class="basic floatLBasic-ref"></div> + <br> + + <div class="basic floatLWidth-ref"></div> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-grid-001.html b/third_party/WebKit/LayoutTests/external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-grid-001.html new file mode 100644 index 0000000..a85b0a31 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-size-grid-001.html
@@ -0,0 +1,72 @@ +<!DOCTYPE HTML> +<html> +<head> + <meta charset="utf-8"> + <title>CSS Test: 'contain: size' on grid elements should cause them to be sized and baseline-aligned as if they had no contents.</title> + <link rel="author" title="Gerald Squelart" href="mailto:gsquelart@mozilla.com"> + <link rel="help" href="https://drafts.csswg.org/css-contain/#containment-size"> + <link rel="match" href="contain-size-grid-001-ref.html"> + <style> + .contain { + display: grid; + contain:size; + border: 1em solid green; + background: red; + } + .innerContents { + color: transparent; + height: 100px; + width: 100px; + } + .minHeight { + min-height: 40px; + background: lightblue; + } + .height { + height: 40px; + background: lightblue; + } + .maxWidth { + max-width: 40px; + } + .width { + width: 40px; + } + .floatLBasic { + float: left; + } + .floatLWidth { + float: left; + width: 40px; + } + </style> +</head> +<body> + <!--CSS Test: A size-contained grid element with no specified size should render at 0 height regardless of content.--> + <div class="contain"><div class="innerContents">inner</div></div> + <br> + + <!--CSS Test: A size-contained grid element with specified min-height should render at given min-height regardless of content.--> + <div class="contain minHeight"><div class="innerContents">inner</div></div> + <br> + + <!--CSS Test: A size-contained grid element with specified height should render at given height regardless of content.--> + <div class="contain height"><div class="innerContents">inner</div></div> + <br> + + <!--CSS Test: A size-contained grid element with specified max-width should render at given max-width and zero height regardless of content.--> + <div class="contain maxWidth"><div class="innerContents">inner</div></div> + <br> + + <!--CSS Test: A size-contained grid element with specified width should render at given width and zero height regardless of content.--> + <div class="contain width"><div class="innerContents">inner</div></div> + <br> + + <!--CSS Test: A size-contained floated grid element with no specified size should render at 0px by 0px regardless of content.--> + <div class="contain floatLBasic"><div class="innerContents">inner</div></div> + <br> + + <!--CSS Test: A size-contained floated grid element with specified width and no specified height should render at given width and 0 height regardless of content.--> + <div class="contain floatLWidth"><div class="innerContents">inner</div></div> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-writing-mode-016-ref.html b/third_party/WebKit/LayoutTests/external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-writing-mode-016-ref.html new file mode 100644 index 0000000..c3a2233 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-writing-mode-016-ref.html
@@ -0,0 +1,136 @@ +<!DOCTYPE html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html> +<head> + <title>CSS Reftest Reference</title> + <meta charset="utf-8"> + <link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com"> + <style> + .container { + display: block; + border: 2px solid purple; + margin: 3px; + /* This red should't be visible, because each container should shrinkwrap + its sole child (and the child should cover up this background). */ + background: red; + /* Float the containers, to test in "rows", with 1 row per writing-mode. */ + float: left; + } + br { clear: both; } + + .container > * { + width: 10px; + height: 10px; + background: teal; + border: 1px solid yellow; + } + .container > * > * { + background: pink; + height: 4px; + width: 4px; + border: 1px solid black; + } + + .pad_top { padding-top: 3px; } + .pad_right { padding-right: 4px; } + .pad_bottom { padding-bottom: 5px; } + .pad_left { padding-left: 6px; } + + .hl { writing-mode: horizontal-tb; direction: ltr; } + .hr { writing-mode: horizontal-tb; direction: rtl; } + .vl { writing-mode: vertical-lr; direction: ltr; } + .vr { writing-mode: vertical-rl; direction: ltr; } + .vl_rtl { writing-mode: vertical-lr; direction: rtl; } + .vr_rtl { writing-mode: vertical-rl; direction: rtl; } + </style> +</head> +<body> + <!-- Here, we test padding on each side of a flex item, across 6 different + writing-mode combinations (writing-mode X direction). --> + <div class="container hl"> + <div class="pad_top"><div></div></div> + </div> + <div class="container hl"> + <div class="pad_right"><div></div></div> + </div> + <div class="container hl"> + <div class="pad_bottom"><div></div></div> + </div> + <div class="container hl"> + <div class="pad_left"><div></div></div> + </div> + <br> + + <div class="container hr"> + <div class="pad_top"><div></div></div> + </div> + <div class="container hr"> + <div class="pad_right"><div></div></div> + </div> + <div class="container hr"> + <div class="pad_bottom"><div></div></div> + </div> + <div class="container hr"> + <div class="pad_left"><div></div></div> + </div> + <br> + + <div class="container vl"> + <div class="pad_top"><div></div></div> + </div> + <div class="container vl"> + <div class="pad_right"><div></div></div> + </div> + <div class="container vl"> + <div class="pad_bottom"><div></div></div> + </div> + <div class="container vl"> + <div class="pad_left"><div></div></div> + </div> + <br> + + <div class="container vr"> + <div class="pad_top"><div></div></div> + </div> + <div class="container vr"> + <div class="pad_right"><div></div></div> + </div> + <div class="container vr"> + <div class="pad_bottom"><div></div></div> + </div> + <div class="container vr"> + <div class="pad_left"><div></div></div> + </div> + <br> + + <div class="container vl_rtl"> + <div class="pad_top"><div></div></div> + </div> + <div class="container vl_rtl"> + <div class="pad_right"><div></div></div> + </div> + <div class="container vl_rtl"> + <div class="pad_bottom"><div></div></div> + </div> + <div class="container vl_rtl"> + <div class="pad_left"><div></div></div> + </div> + <br> + + <div class="container vr_rtl"> + <div class="pad_top"><div></div></div> + </div> + <div class="container vr_rtl"> + <div class="pad_right"><div></div></div> + </div> + <div class="container vr_rtl"> + <div class="pad_bottom"><div></div></div> + </div> + <div class="container vr_rtl"> + <div class="pad_left"><div></div></div> + </div> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-writing-mode-016.html b/third_party/WebKit/LayoutTests/external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-writing-mode-016.html new file mode 100644 index 0000000..94c73235 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-writing-mode-016.html
@@ -0,0 +1,144 @@ +<!DOCTYPE html> +<!-- + Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ +--> +<html> +<head> + <title> + CSS Test: Testing auto-sized flex containers + with various 'writing-mode' values + and various padding amounts on flex items. + </title> + <meta charset="utf-8"> + <link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com"> + <link rel="help" href="https://www.w3.org/TR/css-flexbox-1/#flex-direction-property"> + <link rel="help" href="https://www.w3.org/TR/css-writing-modes-3/#propdef-writing-mode"> + <link rel="match" href="flexbox-writing-mode-016-ref.html"> + <style> + .container { + display: flex; + flex-direction: row; + border: 2px solid purple; + margin: 3px; + /* This red should't be visible, because each container should shrinkwrap + its sole child (and the child should cover up this background). */ + background: red; + /* Float the containers, to test in "rows", with 1 row per writing-mode. */ + float: left; + } + br { clear: both; } + + .container > * { + width: 10px; + height: 10px; + background: teal; + border: 1px solid yellow; + } + .container > * > * { + background: pink; + height: 4px; + width: 4px; + border: 1px solid black; + } + + .pad_top { padding-top: 3px; } + .pad_right { padding-right: 4px; } + .pad_bottom { padding-bottom: 5px; } + .pad_left { padding-left: 6px; } + + .hl { writing-mode: horizontal-tb; direction: ltr; } + .hr { writing-mode: horizontal-tb; direction: rtl; } + .vl { writing-mode: vertical-lr; direction: ltr; } + .vr { writing-mode: vertical-rl; direction: ltr; } + .vl_rtl { writing-mode: vertical-lr; direction: rtl; } + .vr_rtl { writing-mode: vertical-rl; direction: rtl; } + </style> +</head> +<body> + <!-- Here, we test padding on each side of a flex item, across 6 different + writing-mode combinations (writing-mode X direction). --> + <div class="container hl"> + <div class="pad_top"><div></div></div> + </div> + <div class="container hl"> + <div class="pad_right"><div></div></div> + </div> + <div class="container hl"> + <div class="pad_bottom"><div></div></div> + </div> + <div class="container hl"> + <div class="pad_left"><div></div></div> + </div> + <br> + + <div class="container hr"> + <div class="pad_top"><div></div></div> + </div> + <div class="container hr"> + <div class="pad_right"><div></div></div> + </div> + <div class="container hr"> + <div class="pad_bottom"><div></div></div> + </div> + <div class="container hr"> + <div class="pad_left"><div></div></div> + </div> + <br> + + <div class="container vl"> + <div class="pad_top"><div></div></div> + </div> + <div class="container vl"> + <div class="pad_right"><div></div></div> + </div> + <div class="container vl"> + <div class="pad_bottom"><div></div></div> + </div> + <div class="container vl"> + <div class="pad_left"><div></div></div> + </div> + <br> + + <div class="container vr"> + <div class="pad_top"><div></div></div> + </div> + <div class="container vr"> + <div class="pad_right"><div></div></div> + </div> + <div class="container vr"> + <div class="pad_bottom"><div></div></div> + </div> + <div class="container vr"> + <div class="pad_left"><div></div></div> + </div> + <br> + + <div class="container vl_rtl"> + <div class="pad_top"><div></div></div> + </div> + <div class="container vl_rtl"> + <div class="pad_right"><div></div></div> + </div> + <div class="container vl_rtl"> + <div class="pad_bottom"><div></div></div> + </div> + <div class="container vl_rtl"> + <div class="pad_left"><div></div></div> + </div> + <br> + + <div class="container vr_rtl"> + <div class="pad_top"><div></div></div> + </div> + <div class="container vr_rtl"> + <div class="pad_right"><div></div></div> + </div> + <div class="container vr_rtl"> + <div class="pad_bottom"><div></div></div> + </div> + <div class="container vr_rtl"> + <div class="pad_left"><div></div></div> + </div> +</body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-svg-image-ref.html b/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-svg-image-ref.html deleted file mode 100644 index 1f14288..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-svg-image-ref.html +++ /dev/null
@@ -1,22 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<body> -<svg width=200 height=200> - <image href="/feature-policy/experimental-features/resources/image.png" width="32" height="32"/> -</svg> -<svg width=200 height=200> - <image href="/feature-policy/experimental-features/resources/image.png" width="300" height="150"/> -</svg> -<svg width=400 height=400> - <image href="/feature-policy/experimental-features/resources/image.png" width="300" height="150"/> -</svg> -<svg width=200 height=200> - <image href="/feature-policy/experimental-features/resources/image.png" width="300" height="150"/> -</svg> -<svg width=200 height=200> - <image href="/feature-policy/experimental-features/resources/image.png" height="50" width="100"/> -</svg> -<svg width=200 height=200> - <image href="/feature-policy/experimental-features/resources/image.png" width="100" height="100"/> -</svg> -</body>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-svg-image.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-svg-image.tentative.html deleted file mode 100644 index d16ac03..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-svg-image.tentative.html +++ /dev/null
@@ -1,24 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<link rel="match" href="intrinsicsize-svg-image-ref.html"> -<meta name="assert" content="test"> -<body> -<svg width=200 height=200> - <image href="/feature-policy/experimental-features/resources/image.png"/> -</svg> -<svg width=200 height=200> - <image href="/feature-policy/experimental-features/resources/image.png" intrinsicsize="300x150"/> -</svg> -<svg width=400 height=400> - <image href="/feature-policy/experimental-features/resources/image.png" intrinsicsize="300x150"/> -</svg> -<svg width=200 height=200> - <image href="/feature-policy/experimental-features/resources/image.png" intrinsicsize="300x150" width="300"/> -</svg> -<svg width=200 height=200> - <image href="/feature-policy/experimental-features/resources/image.png" intrinsicsize="300x150" height="50"/> -</svg> -<svg width=200 height=200> - <image href="/feature-policy/experimental-features/resources/image.png" intrinsicsize="300x150" width="100" height="100"/> -</svg> -</body>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-with-unsized-media.tentative.https.sub.html b/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-with-unsized-media.tentative.https.sub.html new file mode 100644 index 0000000..9d4757f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-with-unsized-media.tentative.https.sub.html
@@ -0,0 +1,122 @@ +<!DOCTYPE html> +<body> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +'use strict'; + +const srcs = [ + "/feature-policy/experimental-features/resources/image.svg", + "/feature-policy/experimental-features/resources/image.jpg", + "/feature-policy/experimental-features/resources/image.png", +]; + +// Set new attribute, and wait til the media element is repainted. +function updateAttribute(e, attribute, value) { + return new Promise(resolve => { + requestAnimationFrame(() => requestAnimationFrame(() => resolve())); + e.setAttribute(attribute, value); + }); +} + +// Test intrinsicSize attribute with image element. +for (var src of srcs) { + promise_test(async() => { + var img = document.createElement('IMG'); + document.body.appendChild(img); + img.src = src; + await new Promise(resolve => + img.addEventListener('load', () => resolve(), {once: true})); + assert_equals(img.width, 300, 'width'); + assert_equals(img.height, 150, 'height'); + assert_equals(img.naturalWidth, 300, 'naturalWidth'); + assert_equals(img.naturalHeight, 150, 'naturalHeight'); + + await updateAttribute(img, 'width', '800'); + assert_equals(img.width, 800, 'width'); + assert_equals(img.height, 400, 'height'); + assert_equals(img.naturalWidth, 300, 'naturalWidth'); + assert_equals(img.naturalHeight, 150, 'naturalHeight'); + + await updateAttribute(img, 'intrinsicSize', '400 x 500'); + assert_equals(img.width, 800, 'width'); + assert_equals(img.height, 1000, 'height'); + assert_equals(img.naturalWidth, 400, 'naturalWidth'); + assert_equals(img.naturalHeight, 500, 'naturalHeight'); + + await updateAttribute(img, 'style', 'height:800px;'); + assert_equals(img.width, 800, 'width'); + assert_equals(img.height, 800, 'height'); + assert_equals(img.naturalWidth, 400, 'naturalWidth'); + assert_equals(img.naturalHeight, 500, 'naturalHeight'); + + await updateAttribute(img, 'width', ''); + assert_equals(img.width, 640, 'width'); + assert_equals(img.height, 800, 'height'); + assert_equals(img.naturalWidth, 400, 'naturalWidth'); + assert_equals(img.naturalHeight, 500, 'naturalHeight'); + + await updateAttribute(img, 'intrinsicSize', ''); + assert_equals(img.width, 1600, 'width'); + assert_equals(img.height, 800, 'height'); + assert_equals(img.naturalWidth, 300, 'naturalWidth'); + assert_equals(img.naturalHeight, 150, 'naturalHeight'); + + await updateAttribute(img, 'style', ''); + assert_equals(img.width, 300, 'width'); + assert_equals(img.height, 150, 'height'); + assert_equals(img.naturalWidth, 300, 'naturalWidth'); + assert_equals(img.naturalHeight, 150, 'naturalHeight'); + }, 'Test image with src=' + src); +} + +// Test intrinsicSize attribute with video element. +promise_test(async() => { + var video = document.createElement('video'); + document.body.appendChild(video); + video.src = "/feature-policy/experimental-features/resources/video.ogv"; + await new Promise(resolve => + video.addEventListener('canplaythrough', () => resolve(), {once: true})); + assert_equals(video.getBoundingClientRect().width, 300, 'width'); + assert_equals(video.getBoundingClientRect().height, 150, 'height'); + assert_equals(video.videoWidth, 300, 'videoWidth'); + assert_equals(video.videoHeight, 150, 'videoHeight'); + + await updateAttribute(video, 'width', '800'); + assert_equals(video.getBoundingClientRect().width, 800, 'width'); + assert_equals(video.getBoundingClientRect().height, 400, 'height'); + assert_equals(video.videoWidth, 300, 'videoWidth'); + assert_equals(video.videoHeight, 150, 'videoHeight'); + + await updateAttribute(video, 'intrinsicSize', '400 x 500'); + assert_equals(video.getBoundingClientRect().width, 800, 'width'); + assert_equals(video.getBoundingClientRect().height, 1000, 'width'); + assert_equals(video.videoWidth, 400, 'videoWidth'); + assert_equals(video.videoHeight, 500, 'videoHeight'); + + await updateAttribute(video, 'style', 'height:800px;'); + assert_equals(video.getBoundingClientRect().width, 800, 'width'); + assert_equals(video.getBoundingClientRect().height, 800, 'height'); + assert_equals(video.videoWidth, 400, 'videoWidth'); + assert_equals(video.videoHeight, 500, 'videoHeight'); + + await updateAttribute(video, 'width', ''); + assert_equals(video.getBoundingClientRect().width, 640, 'width'); + assert_equals(video.getBoundingClientRect().height, 800, 'height'); + assert_equals(video.videoWidth, 400, 'videoWidth'); + assert_equals(video.videoHeight, 500, 'videoHeight'); + + await updateAttribute(video, 'intrinsicSize', ''); + assert_equals(video.getBoundingClientRect().width, 1600, 'width'); + assert_equals(video.getBoundingClientRect().height, 800, 'height'); + assert_equals(video.videoWidth, 300, 'videoWidth'); + assert_equals(video.videoHeight, 150, 'videoHeight'); + + await updateAttribute(video, 'style', ''); + assert_equals(video.getBoundingClientRect().width, 300, 'width'); + assert_equals(video.getBoundingClientRect().height, 150, 'height'); + assert_equals(video.videoWidth, 300, 'videoWidth'); + assert_equals(video.videoHeight, 150, 'videoHeight'); +}, 'Test video'); +</script> +</body>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/unsized-image.tentative.https.sub.html.headers b/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-with-unsized-media.tentative.https.sub.html.headers similarity index 100% copy from third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/unsized-image.tentative.https.sub.html.headers copy to third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-with-unsized-media.tentative.https.sub.html.headers
diff --git a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-without-unsized-media.tentative.https.sub.html b/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-without-unsized-media.tentative.https.sub.html deleted file mode 100644 index 4a352642..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-without-unsized-media.tentative.https.sub.html +++ /dev/null
@@ -1,100 +0,0 @@ -<!DOCTYPE html> -<body> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script> -'use strict'; - -const srcs = [ - "/feature-policy/experimental-features/resources/image.svg", - "/feature-policy/experimental-features/resources/image.jpg", - "/feature-policy/experimental-features/resources/image.png", -]; - -// Set new attribute, and wait til the media element is repainted. -function updateAttribute(e, attribute, value) { - return new Promise(resolve => { - requestAnimationFrame(() => requestAnimationFrame(() => resolve())); - e.setAttribute(attribute, value); - }); -} - -// Test intrinsicSize attribute with image element. -for (var src of srcs) { - promise_test(async() => { - var img = document.createElement('IMG'); - document.body.appendChild(img); - img.src = src; - await new Promise(resolve => - img.addEventListener('load', () => resolve(), {once: true})); - await updateAttribute(img, 'intrinsicSize', '400 x 500'); - assert_equals(img.width, 400, 'width'); - assert_equals(img.height, 500, 'height'); - assert_equals(img.naturalWidth, 400, 'naturalWidth'); - assert_equals(img.naturalHeight, 500, 'naturalHeight'); - - await updateAttribute(img, 'width', '800'); - assert_equals(img.width, 800, 'width'); - assert_equals(img.height, 1000, 'height'); - assert_equals(img.naturalWidth, 400, 'naturalWidth'); - assert_equals(img.naturalHeight, 500, 'naturalHeight'); - - await updateAttribute(img, 'style', 'height:800px;'); - assert_equals(img.width, 800, 'width'); - assert_equals(img.height, 800, 'height'); - assert_equals(img.naturalWidth, 400, 'naturalWidth'); - assert_equals(img.naturalHeight, 500, 'naturalHeight'); - - await updateAttribute(img, 'width', ''); - assert_equals(img.width, 640, 'width'); - assert_equals(img.height, 800, 'height'); - assert_equals(img.naturalWidth, 400, 'naturalWidth'); - assert_equals(img.naturalHeight, 500, 'naturalHeight'); - - await updateAttribute(img, 'style', 'height:800px; writing-mode: vertical-rl;'); - assert_equals(img.width, 640, 'width'); - assert_equals(img.height, 800, 'height'); - assert_equals(img.naturalWidth, 400, 'naturalWidth'); - assert_equals(img.naturalHeight, 500, 'naturalHeight'); - - await updateAttribute(img, 'style', 'height:800px; writing-mode: horizontal-tb;'); - assert_equals(img.width, 640, 'width'); - assert_equals(img.height, 800, 'height'); - assert_equals(img.naturalWidth, 400, 'naturalWidth'); - assert_equals(img.naturalHeight, 500, 'naturalHeight'); - }, 'Test image with src=' + src); -} - -// Test intrinsicSize attribute with video element. -promise_test(async() => { - var video = document.createElement('video'); - document.body.appendChild(video); - video.src = "/feature-policy/experimental-features/resources/video.ogv"; - await new Promise(resolve => - video.addEventListener('canplaythrough', () => resolve(), {once: true})); - video.intrinsicSize = '400 x 500'; - assert_equals(video.getBoundingClientRect().width, 400, 'width'); - assert_equals(video.getBoundingClientRect().height, 500, 'height'); - assert_equals(video.videoWidth, 400, 'naturalWidth'); - assert_equals(video.videoHeight, 500, 'naturalHeight'); - - video.width = '800'; - assert_equals(video.getBoundingClientRect().width, 800, 'width'); - assert_equals(video.getBoundingClientRect().height, 1000, 'height'); - assert_equals(video.videoWidth, 400, 'naturalWidth'); - assert_equals(video.videoHeight, 500, 'naturalHeight'); - - video.style = 'height:800px;'; - assert_equals(video.getBoundingClientRect().width, 800, 'width'); - assert_equals(video.getBoundingClientRect().height, 800, 'height'); - assert_equals(video.videoWidth, 400, 'naturalWidth'); - assert_equals(video.videoHeight, 500, 'naturalHeight'); - - video.removeAttribute('width'); - assert_equals(video.getBoundingClientRect().width, 640, 'width'); - assert_equals(video.getBoundingClientRect().height, 800, 'height'); - assert_equals(video.videoWidth, 400, 'naturalWidth'); - assert_equals(video.videoHeight, 500, 'naturalHeight'); -}, 'Test video'); -</script> -</body>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/unsized-image.tentative.https.sub.html b/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/unsized-media.tentative.https.sub.html similarity index 93% rename from third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/unsized-image.tentative.https.sub.html rename to third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/unsized-media.tentative.https.sub.html index 3731f0be..172e4c8 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/unsized-image.tentative.https.sub.html +++ b/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/unsized-media.tentative.https.sub.html
@@ -17,12 +17,12 @@ {expected_width: default_width, expected_height: default_height}, // Test when only one dimension is specified, img/video uses the default length for // the other dimension. -{attribute: "width", value: 500, expected_width: 500, expected_height: default_height}, -{attribute: "height", value: 800, expected_width: default_width, expected_height: 800}, +{attribute: "width", value: 500, expected_width: 500, expected_height: 500 / 2}, +{attribute: "height", value: 800, expected_width: 800 * 2, expected_height: 800}, // Test when only one dimension is specified by CSS style, img/video uses the // default length for the other dimension. -{attribute: "style", value: "width:500px;", expected_width: 500, expected_height: default_height}, -{attribute: "style", value: "height:800px;", expected_width: default_width, expected_height: 800}, +{attribute: "style", value: "width:500px;", expected_width: 500, expected_height: 500 / 2}, +{attribute: "style", value: "height:800px;", expected_width: 800 * 2, expected_height: 800}, // Test when the size of the image is specified, img/video is laid out by the // specified size. {attribute: "width", value: 500, attribute1: "height", value1: 800, expected_width: 500, expected_height:800},
diff --git a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/unsized-image.tentative.https.sub.html.headers b/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/unsized-media.tentative.https.sub.html.headers similarity index 100% rename from third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/unsized-image.tentative.https.sub.html.headers rename to third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/unsized-media.tentative.https.sub.html.headers
diff --git a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/reporting/vr-reporting.https.html b/third_party/WebKit/LayoutTests/external/wpt/feature-policy/reporting/vr-reporting.https.html new file mode 100644 index 0000000..12cae05 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/feature-policy/reporting/vr-reporting.https.html
@@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html> + <head> + <script src='/resources/testharness.js'></script> + <script src='/resources/testharnessreport.js'></script> + </head> + <body> + <script> +var check_report_format = (reports, observer) => { + let report = reports[0]; + assert_equals(report.type, "feature-policy"); + assert_equals(report.url, document.location.href); + assert_equals(report.body.feature, "vr"); + assert_equals(report.body.sourceFile, document.location.href); + assert_equals(typeof report.body.message, "string"); + assert_equals(typeof report.body.lineNumber, "number"); + assert_equals(typeof report.body.columnNumber, "number"); +}; + +promise_test(async (t) => { + const report = new Promise(resolve => { + new ReportingObserver((reports, observer) => resolve([reports, observer]), + {types: ['feature-policy']}).observe(); + }); + await promise_rejects(t, 'SecurityError', navigator.getVRDisplays(), + "VR device access should not be allowed in this document."); + const [reports, observer] = await report; + check_report_format(reports, observer); +}, "VR Report Format"); + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/reporting/vr-reporting.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/feature-policy/reporting/vr-reporting.https.html.headers new file mode 100644 index 0000000..d021af7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/feature-policy/reporting/vr-reporting.https.html.headers
@@ -0,0 +1 @@ +Feature-Policy: vr 'none'
diff --git a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/reporting/xr-reporting.https.html b/third_party/WebKit/LayoutTests/external/wpt/feature-policy/reporting/xr-reporting.https.html new file mode 100644 index 0000000..a7a1222 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/feature-policy/reporting/xr-reporting.https.html
@@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html> + <head> + <script src='/resources/testharness.js'></script> + <script src='/resources/testharnessreport.js'></script> + </head> + <body> + <script> +var check_report_format = (reports, observer) => { + let report = reports[0]; + assert_equals(report.type, "feature-policy"); + assert_equals(report.url, document.location.href); + assert_equals(report.body.feature, "vr"); + assert_equals(report.body.sourceFile, document.location.href); + assert_equals(typeof report.body.message, "string"); + assert_equals(typeof report.body.lineNumber, "number"); + assert_equals(typeof report.body.columnNumber, "number"); +}; + +promise_test(async (t) => { + const report = new Promise(resolve => { + new ReportingObserver((reports, observer) => resolve([reports, observer]), + {types: ['feature-policy']}).observe(); + }); + await promise_rejects(t, 'SecurityError', navigator.xr.requestDevice(), + "XR device access should not be allowed in this document."); + const [reports, observer] = await report; + check_report_format(reports, observer); +}, "XR Report Format"); + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/reporting/xr-reporting.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/feature-policy/reporting/xr-reporting.https.html.headers new file mode 100644 index 0000000..d021af7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/feature-policy/reporting/xr-reporting.https.html.headers
@@ -0,0 +1 @@ +Feature-Policy: vr 'none'
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-generated-content.html b/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-generated-content.html new file mode 100644 index 0000000..a4e7a490c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-generated-content.html
@@ -0,0 +1,18 @@ +<!doctype html> +<title>fieldset generated content</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<style> +fieldset { display: inline-block; } +#test::before, #test::after { content:"X"; } +</style> +<fieldset id=test><legend>A</legend>Y</fieldset> +<fieldset id=ref><legend>A</legend>XYX</fieldset> +<script> +test(() => { + const testElm = document.querySelector('#test'); + const refElm = document.querySelector('#ref'); + assert_equals(testElm.clientWidth, refElm.clientWidth, 'clientWidth'); + assert_equals(testElm.clientHeight, refElm.clientHeight, 'clientHeight'); +}); +</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/svg/intrinsicsize/intrinsicsize-svg-image-ref.html b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/svg/intrinsicsize/intrinsicsize-svg-image-ref.html new file mode 100644 index 0000000..41ddd75 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/svg/intrinsicsize/intrinsicsize-svg-image-ref.html
@@ -0,0 +1,22 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<body> +<svg width=200 height=200> + <image href="/images/background.png" width="32" height="32"/> +</svg> +<svg width=200 height=200> + <image href="/images/background.png" width="300" height="150"/> +</svg> +<svg width=400 height=400> + <image href="/images/background.png" width="300" height="150"/> +</svg> +<svg width=200 height=200> + <image href="/images/background.png" width="300" height="150"/> +</svg> +<svg width=200 height=200> + <image href="/images/background.png" height="50" width="100"/> +</svg> +<svg width=200 height=200> + <image href="/images/background.png" width="100" height="100"/> +</svg> +</body>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/svg/intrinsicsize/intrinsicsize-svg-image.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/svg/intrinsicsize/intrinsicsize-svg-image.tentative.html new file mode 100644 index 0000000..a094316 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/svg/intrinsicsize/intrinsicsize-svg-image.tentative.html
@@ -0,0 +1,24 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<link rel="match" href="intrinsicsize-svg-image-ref.html"> +<meta name="assert" content="test"> +<body> +<svg width=200 height=200> + <image href="/images/background.png"/> +</svg> +<svg width=200 height=200> + <image href="/images/background.png" intrinsicsize="300x150"/> +</svg> +<svg width=400 height=400> + <image href="/images/background.png" intrinsicsize="300x150"/> +</svg> +<svg width=200 height=200> + <image href="/images/background.png" intrinsicsize="300x150" width="300"/> +</svg> +<svg width=200 height=200> + <image href="/images/background.png" intrinsicsize="300x150" height="50"/> +</svg> +<svg width=200 height=200> + <image href="/images/background.png" intrinsicsize="300x150" width="100" height="100"/> +</svg> +</body>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-with-responsive-images.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-with-responsive-images.tentative.html similarity index 93% rename from third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-with-responsive-images.tentative.html rename to third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-with-responsive-images.tentative.html index 60bc00d..739765c 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-with-responsive-images.tentative.html +++ b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-with-responsive-images.tentative.html
@@ -6,9 +6,8 @@ 'use strict'; const srcs = [ - "/feature-policy/experimental-features/resources/image.svg", - "/feature-policy/experimental-features/resources/image.jpg", - "/feature-policy/experimental-features/resources/image.png", + "/images/green.svg", + "/images/green.png", ]; for (var src of srcs) { @@ -90,7 +89,7 @@ assert_equals(img.naturalHeight, expected_intrinsic_height, 'naturalHeigh'); t.done(); })); - img.srcset = srcs[2] + ' 32w'; + img.srcset = '/images/background.png 32w'; }, 'Test image (32 x 32) with sizes = 100 and srcset descriptor = 32w'); </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html new file mode 100644 index 0000000..4192e567 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html
@@ -0,0 +1,66 @@ +<!DOCTYPE html> +<body> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +'use strict'; + +const srcs = [ + "/images/green.svg", + "/images/green.png", +]; + +// Set new attribute, and wait til the media element is repainted. +function updateAttribute(e, attribute, value) { + return new Promise(resolve => { + requestAnimationFrame(() => requestAnimationFrame(() => resolve())); + e.setAttribute(attribute, value); + }); +} + +for (var src of srcs) { + promise_test(async() => { + var img = document.createElement('IMG'); + document.body.appendChild(img); + img.src = src; + await new Promise(resolve => + img.addEventListener('load', () => resolve(), {once: true})); + await updateAttribute(img, 'intrinsicSize', '400 x 500'); + assert_equals(img.width, 400, 'width'); + assert_equals(img.height, 500, 'height'); + assert_equals(img.naturalWidth, 400, 'naturalWidth'); + assert_equals(img.naturalHeight, 500, 'naturalHeight'); + + await updateAttribute(img, 'width', '800'); + assert_equals(img.width, 800, 'width'); + assert_equals(img.height, 1000, 'height'); + assert_equals(img.naturalWidth, 400, 'naturalWidth'); + assert_equals(img.naturalHeight, 500, 'naturalHeight'); + + await updateAttribute(img, 'style', 'height:800px;'); + assert_equals(img.width, 800, 'width'); + assert_equals(img.height, 800, 'height'); + assert_equals(img.naturalWidth, 400, 'naturalWidth'); + assert_equals(img.naturalHeight, 500, 'naturalHeight'); + + await updateAttribute(img, 'width', ''); + assert_equals(img.width, 640, 'width'); + assert_equals(img.height, 800, 'height'); + assert_equals(img.naturalWidth, 400, 'naturalWidth'); + assert_equals(img.naturalHeight, 500, 'naturalHeight'); + + await updateAttribute(img, 'style', 'height:800px; writing-mode: vertical-rl;'); + assert_equals(img.width, 640, 'width'); + assert_equals(img.height, 800, 'height'); + assert_equals(img.naturalWidth, 400, 'naturalWidth'); + assert_equals(img.naturalHeight, 500, 'naturalHeight'); + + await updateAttribute(img, 'style', 'height:800px; writing-mode: horizontal-tb;'); + assert_equals(img.width, 640, 'width'); + assert_equals(img.height, 800, 'height'); + assert_equals(img.naturalWidth, 400, 'naturalWidth'); + assert_equals(img.naturalHeight, 500, 'naturalHeight'); + }, 'Test intrinsicsize for html image element, src=' + src); +} +</script> +</body>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-without-unsized-media.tentative.https.sub.html.headers b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html.headers similarity index 100% rename from third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-without-unsized-media.tentative.https.sub.html.headers rename to third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/the-img-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html.headers
diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/the-video-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/the-video-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html new file mode 100644 index 0000000..d749d55 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/the-video-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html
@@ -0,0 +1,39 @@ +<!DOCTYPE html> +<body> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> +'use strict'; + +promise_test(async() => { + var video = document.createElement('video'); + document.body.appendChild(video); + video.src = "/images/pattern.ogv"; + await new Promise(resolve => + video.addEventListener('canplaythrough', () => resolve(), {once: true})); + video.intrinsicSize = '400 x 500'; + assert_equals(video.getBoundingClientRect().width, 400, 'width'); + assert_equals(video.getBoundingClientRect().height, 500, 'height'); + assert_equals(video.videoWidth, 400, 'naturalWidth'); + assert_equals(video.videoHeight, 500, 'naturalHeight'); + + video.width = '800'; + assert_equals(video.getBoundingClientRect().width, 800, 'width'); + assert_equals(video.getBoundingClientRect().height, 1000, 'height'); + assert_equals(video.videoWidth, 400, 'naturalWidth'); + assert_equals(video.videoHeight, 500, 'naturalHeight'); + + video.style = 'height:800px;'; + assert_equals(video.getBoundingClientRect().width, 800, 'width'); + assert_equals(video.getBoundingClientRect().height, 800, 'height'); + assert_equals(video.videoWidth, 400, 'naturalWidth'); + assert_equals(video.videoHeight, 500, 'naturalHeight'); + + video.removeAttribute('width'); + assert_equals(video.getBoundingClientRect().width, 640, 'width'); + assert_equals(video.getBoundingClientRect().height, 800, 'height'); + assert_equals(video.videoWidth, 400, 'naturalWidth'); + assert_equals(video.videoHeight, 500, 'naturalHeight'); +}, 'Test intrinsicsize for html video element'); +</script> +</body>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-without-unsized-media.tentative.https.sub.html.headers b/third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/the-video-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html.headers similarity index 100% copy from third_party/WebKit/LayoutTests/external/wpt/feature-policy/experimental-features/intrinsicsize-without-unsized-media.tentative.https.sub.html.headers copy to third_party/WebKit/LayoutTests/external/wpt/html/semantics/embedded-content/the-video-element/intrinsicsize/intrinsicsize-without-unsized-media.tentative.https.sub.html.headers
diff --git a/third_party/WebKit/LayoutTests/external/wpt/interfaces/font-metrics-api.idl b/third_party/WebKit/LayoutTests/external/wpt/interfaces/font-metrics-api.idl new file mode 100644 index 0000000..b13def2d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/interfaces/font-metrics-api.idl
@@ -0,0 +1,39 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content was automatically extracted by Reffy into reffy-reports +// (https://github.com/tidoust/reffy-reports) +// Source: Font Metrics API Level 1 (https://drafts.css-houdini.org/font-metrics-api/) + +partial interface Document { + FontMetrics measureElement(Element element); + FontMetrics measureText(DOMString text, StylePropertyMapReadOnly styleMap); +}; + +interface FontMetrics { + readonly attribute double width; + readonly attribute sequence<double> advances; + + readonly attribute double boundingBoxLeft; + readonly attribute double boundingBoxRight; + + readonly attribute double height; + readonly attribute double emHeightAscent; + readonly attribute double emHeightDescent; + readonly attribute double boundingBoxAscent; + readonly attribute double boundingBoxDescent; + readonly attribute double fontBoundingBoxAscent; + readonly attribute double fontBoundingBoxDescent; + + readonly attribute Baseline dominantBaseline; + readonly attribute sequence<Baseline> baselines; + readonly attribute sequence<Font> fonts; +}; + +interface Baseline { + readonly attribute DOMString name; + readonly attribute double value; +}; + +interface Font { + readonly attribute DOMString name; + readonly attribute unsigned long glyphsRendered; +};
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..a6c8fe8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: classic-data-worker-fetch + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..0359045 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: classic-data-worker-fetch + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..3772f3b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: classic-data-worker-fetch + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..92d7db0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: classic-data-worker-fetch + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..bd51356e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: classic-data-worker-fetch + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..51b84997 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: classic-data-worker-fetch + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..eff7b59 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: classic-data-worker-fetch + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..1b7257d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: classic-data-worker-fetch + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..b3bb138 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: classic-data-worker-fetch + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..eb3b0a9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: classic-data-worker-fetch + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..9c7b753 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: classic-data-worker-fetch + expectation: allowed"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..61288bb8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: classic-data-worker-fetch + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..4b32666 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: classic-data-worker-fetch + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..031a3728 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: classic-data-worker-fetch + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..253234f3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: classic-data-worker-fetch + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..61ef1c2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: classic-data-worker-fetch + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..d4dd6da --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: classic-data-worker-fetch + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..9b28a62 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: classic-data-worker-fetch + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..c1496d03 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/classic-data-worker-fetch/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: classic-data-worker-fetch + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "classic-data-worker-fetch", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..ae4ebff1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: module-data-worker-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "module-data-worker-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..aa3fc778 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: module-data-worker-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "module-data-worker-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..c9d2d22 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: module-data-worker-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "module-data-worker-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..5202090b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: module-data-worker-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "module-data-worker-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..2013b19c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: module-data-worker-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "module-data-worker-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..fbe8606 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: module-data-worker-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "module-data-worker-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..c6c56e0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: module-data-worker-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "module-data-worker-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..c62ca12 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: module-data-worker-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "module-data-worker-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..349a3731 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: module-data-worker-import + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "module-data-worker-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..6536bef --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: module-data-worker-import + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "module-data-worker-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..9632f696 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: module-data-worker-import + expectation: allowed"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "module-data-worker-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..fde3d3a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: module-data-worker-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "module-data-worker-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..4fe1a65 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: module-data-worker-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "module-data-worker-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..93d5a1b6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: module-data-worker-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "module-data-worker-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..2810c3c1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: module-data-worker-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "module-data-worker-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..afb1ac1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: module-data-worker-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "module-data-worker-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..e54f7ba --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: module-data-worker-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "module-data-worker-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..7791db2e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: module-data-worker-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "module-data-worker-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..d50981f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-data-worker-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: module-data-worker-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "module-data-worker-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..65c121204d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: module-worker-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "module-worker-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..29d5696 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: module-worker-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "module-worker-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..25bbcf1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: module-worker-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "module-worker-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..5d34ff6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: module-worker-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "module-worker-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..347c57c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: module-worker-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "module-worker-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..ab991d2c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: module-worker-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "module-worker-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..775fcabb --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: module-worker-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "module-worker-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..6a9a643 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: module-worker-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "module-worker-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..e873d4a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: module-worker-top-level + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "module-worker-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..ee6c6da --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: module-worker-top-level + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "module-worker-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..2393202a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: module-worker-top-level + expectation: allowed"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "module-worker-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..64f777e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: module-worker-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "module-worker-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..4950c32a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: module-worker-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "module-worker-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..7301b826 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: module-worker-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "module-worker-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..b9a59ad --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: module-worker-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "module-worker-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..f1d9910 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: module-worker-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "module-worker-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..17e86bac --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: module-worker-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "module-worker-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..744ad87b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: module-worker-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "module-worker-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..e04e9ba --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/module-worker-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: module-worker-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "module-worker-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/spec.src.json b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/spec.src.json index 54479ef..06d381d 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/spec.src.json +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/spec.src.json
@@ -235,6 +235,17 @@ "link-css-tag", "xhr-request", "worker-request", + "module-worker-top-level", + "module-data-worker-import", + "classic-data-worker-fetch", + "worklet-animation-top-level", + "worklet-audio-top-level", + "worklet-layout-top-level", + "worklet-paint-top-level", + "worklet-animation-data-import", + "worklet-audio-data-import", + "worklet-layout-data-import", + "worklet-paint-data-import", "fetch-request", "a-tag", "object-tag",
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/spec_json.js b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/spec_json.js index 1bd1ecc8a..0868df2 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/spec_json.js +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/spec_json.js
@@ -1 +1 @@ -var SPEC_JSON = {"test_expansion_schema": {"origin": ["same-host-https", "same-host-http", "cross-origin-https", "cross-origin-http", "same-host-wss", "same-host-ws", "cross-origin-wss", "cross-origin-ws"], "subresource": {"blockable": ["script-tag", "link-css-tag", "xhr-request", "worker-request", "fetch-request", "a-tag", "object-tag", "picture-tag", "websocket-request", "link-prefetch-tag", "beacon-request"], "optionally-blockable": ["img-tag", "audio-tag", "video-tag"]}, "context_nesting": ["top-level", "sub-level"], "expectation": ["allowed", "blocked"], "expansion": ["default", "override"], "redirection": ["no-redirect", "keep-scheme-redirect", "swap-scheme-redirect"], "opt_in_method": ["no-opt-in", "http-csp", "meta-csp", "img-crossorigin"], "source_scheme": ["http", "https"]}, "specification": [{"test_expansion": [{"origin": ["cross-origin-http", "same-host-http"], "name": "opt-in-blocks", "redirection": "*", "expectation": "blocked", "expansion": "default", "context_nesting": "top-level", "opt_in_method": ["http-csp", "meta-csp"], "source_scheme": "https", "subresource": {"blockable": [], "optionally-blockable": "*"}}, {"origin": ["cross-origin-http", "same-host-http"], "name": "no-opt-in-allows", "redirection": "*", "expectation": "allowed", "expansion": "default", "context_nesting": "top-level", "opt_in_method": "no-opt-in", "source_scheme": "https", "subresource": {"blockable": [], "optionally-blockable": "*"}}], "description": "Test behavior of optionally-blockable content", "specification_url": "http://www.w3.org/TR/mixed-content/#category-optionally-blockable", "name": "optionally-blockable", "title": "Optionally-blockable content"}, {"test_expansion": [{"origin": ["cross-origin-http", "same-host-http"], "name": "opt-in-blocks", "redirection": "*", "expectation": "blocked", "expansion": "default", "context_nesting": "top-level", "opt_in_method": ["http-csp", "meta-csp"], "source_scheme": "https", "subresource": {"blockable": "*", "optionally-blockable": []}}, {"origin": ["cross-origin-http", "same-host-http"], "name": "no-opt-in-blocks", "redirection": "*", "expectation": "blocked", "expansion": "default", "context_nesting": "top-level", "opt_in_method": "no-opt-in", "source_scheme": "https", "subresource": {"blockable": "*", "optionally-blockable": []}}, {"origin": ["cross-origin-ws", "same-host-ws"], "name": "ws-downgrade-blocks", "redirection": "*", "expectation": "blocked", "expansion": "default", "context_nesting": "top-level", "opt_in_method": ["no-opt-in", "http-csp", "meta-csp"], "source_scheme": "https", "subresource": {"blockable": "websocket-request", "optionally-blockable": []}}], "description": "Test behavior of blockable content.", "specification_url": "http://www.w3.org/TR/mixed-content/#category-blockable", "name": "blockable", "title": "Blockable content"}, {"test_expansion": [{"origin": ["same-host-https"], "name": "allowed", "redirection": ["no-redirect", "keep-scheme-redirect"], "expectation": "allowed", "expansion": "default", "context_nesting": "top-level", "opt_in_method": "*", "source_scheme": "https", "subresource": {"blockable": "*", "optionally-blockable": "*"}}, {"origin": ["same-host-wss"], "name": "websocket-allowed", "redirection": ["no-redirect", "keep-scheme-redirect"], "expectation": "allowed", "expansion": "default", "context_nesting": "top-level", "opt_in_method": "*", "source_scheme": "https", "subresource": {"blockable": "websocket-request", "optionally-blockable": []}}], "description": "Test behavior of allowed content.", "specification_url": "http://www.w3.org/TR/mixed-content/", "name": "allowed", "title": "Allowed content"}], "excluded_tests": [{"origin": "*", "name": "Redundant-subresources", "redirection": "*", "expectation": "*", "expansion": "*", "context_nesting": "*", "opt_in_method": "*", "source_scheme": "*", "subresource": {"blockable": ["a-tag"], "optionally-blockable": []}}, {"origin": ["same-host-https", "same-host-http", "cross-origin-https", "cross-origin-http"], "name": "Skip-origins-not-applicable-to-websockets", "redirection": "*", "expectation": "*", "expansion": "*", "context_nesting": "*", "opt_in_method": "*", "source_scheme": "*", "subresource": {"blockable": ["websocket-request"], "optionally-blockable": []}}, {"origin": "*", "name": "TODO-opt-in-method-img-cross-origin", "redirection": "*", "expectation": "*", "expansion": "*", "context_nesting": "*", "opt_in_method": "img-crossorigin", "source_scheme": "*", "subresource": {"blockable": "*", "optionally-blockable": "*"}}, {"origin": "*", "name": "Skip-redundant-for-opt-in-method", "redirection": ["keep-scheme-redirect", "swap-scheme-redirect"], "expectation": "*", "expansion": "*", "context_nesting": "*", "opt_in_method": ["meta-csp", "img-crossorigin"], "source_scheme": "*", "subresource": {"blockable": "*", "optionally-blockable": "*"}}]}; +var SPEC_JSON = {"test_expansion_schema": {"origin": ["same-host-https", "same-host-http", "cross-origin-https", "cross-origin-http", "same-host-wss", "same-host-ws", "cross-origin-wss", "cross-origin-ws"], "subresource": {"blockable": ["script-tag", "link-css-tag", "xhr-request", "worker-request", "module-worker-top-level", "module-data-worker-import", "classic-data-worker-fetch", "worklet-animation-top-level", "worklet-audio-top-level", "worklet-layout-top-level", "worklet-paint-top-level", "worklet-animation-data-import", "worklet-audio-data-import", "worklet-layout-data-import", "worklet-paint-data-import", "fetch-request", "a-tag", "object-tag", "picture-tag", "websocket-request", "link-prefetch-tag", "beacon-request"], "optionally-blockable": ["img-tag", "audio-tag", "video-tag"]}, "context_nesting": ["top-level", "sub-level"], "expectation": ["allowed", "blocked"], "expansion": ["default", "override"], "redirection": ["no-redirect", "keep-scheme-redirect", "swap-scheme-redirect"], "opt_in_method": ["no-opt-in", "http-csp", "meta-csp", "img-crossorigin"], "source_scheme": ["http", "https"]}, "specification": [{"test_expansion": [{"origin": ["cross-origin-http", "same-host-http"], "name": "opt-in-blocks", "redirection": "*", "expectation": "blocked", "expansion": "default", "context_nesting": "top-level", "opt_in_method": ["http-csp", "meta-csp"], "source_scheme": "https", "subresource": {"blockable": [], "optionally-blockable": "*"}}, {"origin": ["cross-origin-http", "same-host-http"], "name": "no-opt-in-allows", "redirection": "*", "expectation": "allowed", "expansion": "default", "context_nesting": "top-level", "opt_in_method": "no-opt-in", "source_scheme": "https", "subresource": {"blockable": [], "optionally-blockable": "*"}}], "description": "Test behavior of optionally-blockable content", "specification_url": "http://www.w3.org/TR/mixed-content/#category-optionally-blockable", "name": "optionally-blockable", "title": "Optionally-blockable content"}, {"test_expansion": [{"origin": ["cross-origin-http", "same-host-http"], "name": "opt-in-blocks", "redirection": "*", "expectation": "blocked", "expansion": "default", "context_nesting": "top-level", "opt_in_method": ["http-csp", "meta-csp"], "source_scheme": "https", "subresource": {"blockable": "*", "optionally-blockable": []}}, {"origin": ["cross-origin-http", "same-host-http"], "name": "no-opt-in-blocks", "redirection": "*", "expectation": "blocked", "expansion": "default", "context_nesting": "top-level", "opt_in_method": "no-opt-in", "source_scheme": "https", "subresource": {"blockable": "*", "optionally-blockable": []}}, {"origin": ["cross-origin-ws", "same-host-ws"], "name": "ws-downgrade-blocks", "redirection": "*", "expectation": "blocked", "expansion": "default", "context_nesting": "top-level", "opt_in_method": ["no-opt-in", "http-csp", "meta-csp"], "source_scheme": "https", "subresource": {"blockable": "websocket-request", "optionally-blockable": []}}], "description": "Test behavior of blockable content.", "specification_url": "http://www.w3.org/TR/mixed-content/#category-blockable", "name": "blockable", "title": "Blockable content"}, {"test_expansion": [{"origin": ["same-host-https"], "name": "allowed", "redirection": ["no-redirect", "keep-scheme-redirect"], "expectation": "allowed", "expansion": "default", "context_nesting": "top-level", "opt_in_method": "*", "source_scheme": "https", "subresource": {"blockable": "*", "optionally-blockable": "*"}}, {"origin": ["same-host-wss"], "name": "websocket-allowed", "redirection": ["no-redirect", "keep-scheme-redirect"], "expectation": "allowed", "expansion": "default", "context_nesting": "top-level", "opt_in_method": "*", "source_scheme": "https", "subresource": {"blockable": "websocket-request", "optionally-blockable": []}}], "description": "Test behavior of allowed content.", "specification_url": "http://www.w3.org/TR/mixed-content/", "name": "allowed", "title": "Allowed content"}], "excluded_tests": [{"origin": "*", "name": "Redundant-subresources", "redirection": "*", "expectation": "*", "expansion": "*", "context_nesting": "*", "opt_in_method": "*", "source_scheme": "*", "subresource": {"blockable": ["a-tag"], "optionally-blockable": []}}, {"origin": ["same-host-https", "same-host-http", "cross-origin-https", "cross-origin-http"], "name": "Skip-origins-not-applicable-to-websockets", "redirection": "*", "expectation": "*", "expansion": "*", "context_nesting": "*", "opt_in_method": "*", "source_scheme": "*", "subresource": {"blockable": ["websocket-request"], "optionally-blockable": []}}, {"origin": "*", "name": "TODO-opt-in-method-img-cross-origin", "redirection": "*", "expectation": "*", "expansion": "*", "context_nesting": "*", "opt_in_method": "img-crossorigin", "source_scheme": "*", "subresource": {"blockable": "*", "optionally-blockable": "*"}}, {"origin": "*", "name": "Skip-redundant-for-opt-in-method", "redirection": ["keep-scheme-redirect", "swap-scheme-redirect"], "expectation": "*", "expansion": "*", "context_nesting": "*", "opt_in_method": ["meta-csp", "img-crossorigin"], "source_scheme": "*", "subresource": {"blockable": "*", "optionally-blockable": "*"}}]};
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..99c2795 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-animation-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..ea193ea --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-animation-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..f410e1c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-animation-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..cfda98f7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-animation-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..a85242a8 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-animation-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..48d74bc --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-animation-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..7d0cdae6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-animation-data-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..94f9785 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-animation-data-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..1a895d0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-animation-data-import + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..ab90656 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-animation-data-import + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..1134603 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-animation-data-import + expectation: allowed"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..a636eef --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-animation-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..8aa7d05 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-animation-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..5ef502f0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-animation-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..34b6be4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-animation-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..1586df9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-animation-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..73f621e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-animation-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..2b32f59 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-animation-data-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..35995bb9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-animation-data-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-animation-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..c858da0c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-animation-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..0387b16 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-animation-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..34a4e1e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-animation-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..b683d82 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-animation-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..56555106 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-animation-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..0ccf4bc4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-animation-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..7c54048 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-animation-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..2d3eb78 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-animation-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..989f1ad --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-animation-top-level + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..46bca306 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-animation-top-level + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..313f775 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-animation-top-level + expectation: allowed"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..033b1d9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-animation-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..c4d4629 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-animation-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..90ad600 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-animation-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..5111667 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-animation-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..7d54c015 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-animation-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..e1a0ac5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-animation-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..812cec20 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-animation-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..a361197 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-animation-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-animation-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-animation-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..81e57b1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-audio-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..ec537f5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-audio-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..0b8ddb9c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-audio-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..d2ab9e1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-audio-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..e3b0cb81 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-audio-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..063c7b77 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-audio-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..802b84c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-audio-data-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..7e40482 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-audio-data-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..1c77b65 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-audio-data-import + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..c5ec8343 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-audio-data-import + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..918aec3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-audio-data-import + expectation: allowed"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..b801db0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-audio-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..65d7c00 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-audio-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..bd3afe9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-audio-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..45759c1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-audio-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..5d2f67b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-audio-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..fbf57e8b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-audio-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..e297efb --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-audio-data-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..6e1e6cb --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-audio-data-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-audio-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..68329ff5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-audio-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..862abf01 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-audio-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..9e8ca3cd5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-audio-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..341e9584 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-audio-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..0bf45c0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-audio-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..017a388 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-audio-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..c7f37de --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-audio-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..84c5ae0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-audio-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..b7f5cdc9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-audio-top-level + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..adb418f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-audio-top-level + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..ce31e04 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-audio-top-level + expectation: allowed"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..8197d981 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-audio-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..60a5b9e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-audio-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..035fe3b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-audio-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..56c5e14 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-audio-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..f1e134ad --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-audio-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..ce5d3e1c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-audio-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..5c123ed6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-audio-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..06aadc3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-audio-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-audio-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-audio-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..bcc60543 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-layout-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..e56443cb --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-layout-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..40569b71 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-layout-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..17226d6 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-layout-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..034c2f7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-layout-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..1ecd9d9 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-layout-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..a60c79d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-layout-data-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..88efeaf0 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-layout-data-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..2e33579e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-layout-data-import + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..7f1353c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-layout-data-import + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..5cc77dd --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-layout-data-import + expectation: allowed"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..6af86dd --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-layout-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..e6a9c4c4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-layout-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..4006220 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-layout-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..b4be536 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-layout-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..0d7b721 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-layout-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..708c0a5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-layout-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..2414d5f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-layout-data-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..f0fa9aa --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-layout-data-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-layout-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..440630b5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-layout-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..51cf26bc --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-layout-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..d38c0259 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-layout-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..f32666f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-layout-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..016ea765 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-layout-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..47ba0d80 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-layout-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..6b33951 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-layout-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..349d1ae --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-layout-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..ba7834d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-layout-top-level + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..d151432 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-layout-top-level + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..42b9de5 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-layout-top-level + expectation: allowed"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..3a03aea --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-layout-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..c087917e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-layout-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..f4192c2 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-layout-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..82713253 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-layout-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..35ad440 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-layout-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..58227b98 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-layout-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..e43a2542 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-layout-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..4e0db8f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-layout-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-layout-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-layout-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..84345fb --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-paint-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..52595a63b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-paint-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..0844824 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-paint-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..8b5df2c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-paint-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..b03a99c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-paint-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..7180a72 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-paint-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..f228ae5d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-paint-data-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..ca0a9f47 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-paint-data-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..7d38ae9f --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-paint-data-import + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..c8bb005 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-paint-data-import + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..e97507d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-paint-data-import + expectation: allowed"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..a9b350b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-paint-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..81db7898 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-paint-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..999411c --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-paint-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..de2d0031 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-paint-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..453c5cb --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-paint-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..fbf3629 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-paint-data-import + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..a34698e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-paint-data-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..bbd268a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-data-import/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-paint-data-import + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-paint-data-import", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..4547296 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-paint-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..6d519a3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-paint-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..2a317be --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-paint-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/cross-origin-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..44d4b3d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-paint-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/keep-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..f1af455 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-paint-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..6eb6e95 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-paint-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-http/top-level/swap-scheme-redirect/blockable/opt-in-blocks.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..9b5656b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-paint-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..4fbf140e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: http-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-paint-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "http-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers new file mode 100644 index 0000000..46e2255e --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/http-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html.headers
@@ -0,0 +1 @@ +Content-Security-Policy: block-all-mixed-content
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..d1b9d5d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/cross-origin-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-paint-top-level + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html new file mode 100644 index 0000000..c328f8fe --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/same-host-http/top-level/no-redirect/blockable/opt-in-blocks.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-paint-top-level + expectation: blocked"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..dc7cd63d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/meta-csp/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,41 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: meta-csp + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-paint-top-level + expectation: allowed"> + <meta http-equiv="Content-Security-Policy" content="block-all-mixed-content"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "meta-csp", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..1c7d2983 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-paint-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..cea0a88b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-paint-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..224d7c7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/cross-origin-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: cross-origin-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-paint-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "cross-origin-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..b1432e7 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/keep-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-paint-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..ce845cb3 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/no-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-paint-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html new file mode 100644 index 0000000..1e9acdf --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-http/top-level/swap-scheme-redirect/blockable/no-opt-in-blocks.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Blockable content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of blockable content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/#category-blockable"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-http + source_scheme: https + context_nesting: top-level + redirection: swap-scheme-redirect + subresource: worklet-paint-top-level + expectation: blocked"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-http", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "swap-scheme-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "blocked" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..0ff9576d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/keep-scheme-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: keep-scheme-redirect + subresource: worklet-paint-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "keep-scheme-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html new file mode 100644 index 0000000..d0e64b29 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/mixed-content/worklet-paint-top-level/no-opt-in/same-host-https/top-level/no-redirect/allowed/allowed.https.html
@@ -0,0 +1,40 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT! Generated by mixed-content/generic/tools/generate.py using mixed-content/generic/template/test.release.html.template. --> +<html> + <head> + <title>Mixed-Content: Allowed content</title> + <meta charset='utf-8'> + <meta name="description" content="Test behavior of allowed content."> + <link rel="author" title="Kristijan Burnik" href="burnik@chromium.org"> + <link rel="help" href="http://www.w3.org/TR/mixed-content/"> + <meta name="assert" content="opt_in_method: no-opt-in + origin: same-host-https + source_scheme: https + context_nesting: top-level + redirection: no-redirect + subresource: worklet-paint-top-level + expectation: allowed"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/mixed-content/generic/common.js"></script> + <script src="/mixed-content/generic/mixed-content-test-case.js?pipe=sub"></script> + </head> + <body> + <script> + MixedContentTestCase( + { + "opt_in_method": "no-opt-in", + "origin": "same-host-https", + "source_scheme": "https", + "context_nesting": "top-level", + "redirection": "no-redirect", + "subresource": "worklet-paint-top-level", + "expectation": "allowed" + }, + document.querySelector("meta[name=assert]").content, + new SanityChecker() + ).start(); + </script> + <div id="log"></div> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html b/third_party/WebKit/LayoutTests/external/wpt/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html new file mode 100644 index 0000000..9d65d87 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-output-channel-count.https.html
@@ -0,0 +1,82 @@ +<!DOCTYPE html> +<html> + <head> + <title> + Test the construction of AudioWorkletNode with real-time context + </title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/webaudio/resources/audit.js"></script> + </head> + <body> + <script id="layout-test-code"> + const audit = Audit.createTaskRunner(); + const context = new AudioContext(); + + (async function () { + await context.audioWorklet.addModule( + 'processors/channel-count-processor.js'); + + // Test if the output channe count dynamically changes if the input + // and output is 1. + audit.define( + {label: 'Dynamically change the channel count to if unspecified.'}, + (task, should) => { + // Use arbitrary parameters for the test. + const buffer = new AudioBuffer({ + numberOfChannels: 17, + length: 1, + sampleRate: context.sampleRate, + }); + const source = new AudioBufferSourceNode(context); + source.buffer = buffer; + + const node = new AudioWorkletNode(context, 'channel-count', { + numberOfInputs: 1, + numberOfOutputs: 1, + }); + + node.port.onmessage = (message) => { + const expected = message.data; + should(expected.outputChannel, + 'The expected output channel count').beEqualTo(17); + task.done(); + }; + + // We need to make an actual connection becasue the channel count + // change happen when the rendering starts. It is to test if the + // channel count adapts to the upstream node correctly. + source.connect(node).connect(context.destination); + source.start(); + }); + + // Test if outputChannelCount is honored as expected even if the input + // and output is 1. + audit.define( + {label: 'Givien outputChannelCount must be honored.'}, + (task, should) => { + const node = new AudioWorkletNode( + context, 'channel-count', { + numberOfInputs: 1, + numberOfOutputs: 1, + outputChannelCount: [2], + }); + + node.port.onmessage = (message) => { + const expected = message.data; + should(expected.outputChannel, + 'The expected output channel count').beEqualTo(2); + task.done(); + }; + + // We need to make an actual connection becasue the channel count + // change might happen when the rendering starts. It is to test + // if the specified channel count is kept correctly. + node.connect(context.destination); + }); + + audit.run(); + })(); + </script> + </body> +</html>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webaudio/the-audio-api/the-audioworklet-interface/processors/channel-count-processor.js b/third_party/WebKit/LayoutTests/external/wpt/webaudio/the-audio-api/the-audioworklet-interface/processors/channel-count-processor.js new file mode 100644 index 0000000..556459f4 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/webaudio/the-audio-api/the-audioworklet-interface/processors/channel-count-processor.js
@@ -0,0 +1,19 @@ +/** + * @class ChannelCountProcessor + * @extends AudioWorkletProcessor + */ +class ChannelCountProcessor extends AudioWorkletProcessor { + constructor(options) { + super(options); + } + + process(inputs, outputs) { + this.port.postMessage({ + inputChannel: inputs[0].length, + outputChannel: outputs[0].length + }); + return false; + } +} + +registerProcessor('channel-count', ChannelCountProcessor); \ No newline at end of file
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-save-to-temp-var.js b/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-save-to-temp-var.js index db6ceb0..3b9f48e4 100644 --- a/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-save-to-temp-var.js +++ b/third_party/WebKit/LayoutTests/http/tests/devtools/console/console-save-to-temp-var.js
@@ -30,7 +30,7 @@ function didEvaluate(result) { TestRunner.assertTrue(!result.exceptionDetails, 'FAIL: was thrown. Expression: ' + expression); - UI.panels.sources._saveToTempVariable(result.object); + SDK.consoleModel.saveToTempVariable(UI.context.flavor(SDK.ExecutionContext), result.object); ConsoleTestRunner.waitUntilNthMessageReceived(2, evaluateNext); }
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/elements/elements-save-to-temp-var-expected.txt b/third_party/WebKit/LayoutTests/http/tests/devtools/elements/elements-save-to-temp-var-expected.txt new file mode 100644 index 0000000..9cf60ef70 --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/devtools/elements/elements-save-to-temp-var-expected.txt
@@ -0,0 +1,6 @@ +Tests saving nodes to temporary variables. + +Message count: 2 +temp1 +<div id="node"></div> +
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/elements/elements-save-to-temp-var.js b/third_party/WebKit/LayoutTests/http/tests/devtools/elements/elements-save-to-temp-var.js new file mode 100644 index 0000000..109fdd4f --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/devtools/elements/elements-save-to-temp-var.js
@@ -0,0 +1,20 @@ +// 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. + +(async function() { + TestRunner.addResult(`Tests saving nodes to temporary variables.\n`); + await TestRunner.loadModule('console_test_runner'); + await TestRunner.loadModule('elements_test_runner'); + await TestRunner.showPanel('elements'); + await TestRunner.loadHTML(`<div id="node"></div>`); + + const node = await ElementsTestRunner.nodeWithIdPromise('node'); + ElementsTestRunner.firstElementsTreeOutline()._saveNodeToTempVariable(node); + await ConsoleTestRunner.waitForConsoleMessagesPromise(2); + const secondMessage = Console.ConsoleView.instance()._visibleViewMessages[1]; + await TestRunner.addSnifferPromise(secondMessage, '_formattedParameterAsNodeForTest'); + ConsoleTestRunner.dumpConsoleMessages(); + + TestRunner.completeTest(); +})();
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/emulate-focus-expected.txt b/third_party/WebKit/LayoutTests/http/tests/devtools/emulate-focus-expected.txt new file mode 100644 index 0000000..518c9a2c --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/devtools/emulate-focus-expected.txt
@@ -0,0 +1,10 @@ +Tests that focus emulation works. + +document.hasFocus(): false + +Emulating page focus +document.hasFocus(): true + +Disabling focus emulation +document.hasFocus(): false +
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/emulate-focus.js b/third_party/WebKit/LayoutTests/http/tests/devtools/emulate-focus.js new file mode 100644 index 0000000..a5bd78e1 --- /dev/null +++ b/third_party/WebKit/LayoutTests/http/tests/devtools/emulate-focus.js
@@ -0,0 +1,24 @@ +// 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. + +(async function() { + TestRunner.addResult(`Tests that focus emulation works.\n`); + await dumpPageFocus(); + + TestRunner.addResult('\nEmulating page focus'); + Common.settings.moduleSetting('emulatePageFocus').set(true); + await dumpPageFocus(); + + TestRunner.addResult('\nDisabling focus emulation'); + Common.settings.moduleSetting('emulatePageFocus').set(false); + await dumpPageFocus(); + + + async function dumpPageFocus() { + const pageHasFocus = await TestRunner.evaluateInPagePromise('document.hasFocus()'); + TestRunner.addResult(`document.hasFocus(): ${pageHasFocus}`); + } + + TestRunner.completeTest(); +})();
diff --git a/third_party/WebKit/LayoutTests/http/tests/devtools/sources/debugger-ui/debugger-save-to-temp-var.js b/third_party/WebKit/LayoutTests/http/tests/devtools/sources/debugger-ui/debugger-save-to-temp-var.js index 9702f80..245dc11 100644 --- a/third_party/WebKit/LayoutTests/http/tests/devtools/sources/debugger-ui/debugger-save-to-temp-var.js +++ b/third_party/WebKit/LayoutTests/http/tests/devtools/sources/debugger-ui/debugger-save-to-temp-var.js
@@ -68,7 +68,7 @@ function didEvaluate(result) { TestRunner.assertTrue(!result.exceptionDetails, 'FAIL: was thrown. Expression: ' + expression); - UI.panels.sources._saveToTempVariable(result.object); + SDK.consoleModel.saveToTempVariable(UI.context.flavor(SDK.ExecutionContext), result.object); ConsoleTestRunner.waitUntilNthMessageReceived(2, evaluateNext); }
diff --git a/third_party/WebKit/LayoutTests/http/tests/loading/bad-server-subframe-expected.txt b/third_party/WebKit/LayoutTests/http/tests/loading/bad-server-subframe-expected.txt index ac8966b2..1653bc1 100644 --- a/third_party/WebKit/LayoutTests/http/tests/loading/bad-server-subframe-expected.txt +++ b/third_party/WebKit/LayoutTests/http/tests/loading/bad-server-subframe-expected.txt
@@ -4,7 +4,6 @@ frame "f1" - didStartProvisionalLoadForFrame main frame - didReceiveTitle: main frame - didFinishDocumentLoadForFrame -frame "f1" - didFailProvisionalLoadWithError frame "f1" - didStartProvisionalLoadForFrame frame "f1" - didCommitLoadForFrame frame "f1" - didReceiveTitle: Error
diff --git a/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt b/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt index 1a2552c..62e58d2 100644 --- a/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt +++ b/third_party/WebKit/LayoutTests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
@@ -40,7 +40,7 @@ getter failureReason getter id getter onprogress - getter state + getter result getter uploadTotal getter uploaded method abort
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/debugger/debugger-pause-dedicated-worker-loop-expected.txt b/third_party/WebKit/LayoutTests/inspector-protocol/debugger/debugger-pause-dedicated-worker-loop-expected.txt index 6265038..8b5a2ad 100644 --- a/third_party/WebKit/LayoutTests/inspector-protocol/debugger/debugger-pause-dedicated-worker-loop-expected.txt +++ b/third_party/WebKit/LayoutTests/inspector-protocol/debugger/debugger-pause-dedicated-worker-loop-expected.txt
@@ -1,8 +1,9 @@ -Tests that worker can be interrupted and paused. +Tests that worker can be interrupted with Debugger.pause. Started worker Worker created didConnectToWorker Did enable debugger Did post message to worker +Paused in worker SUCCESS: evaluated, result: true
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/debugger/debugger-pause-dedicated-worker-loop.js b/third_party/WebKit/LayoutTests/inspector-protocol/debugger/debugger-pause-dedicated-worker-loop.js index 74427f6..1047ca1 100644 --- a/third_party/WebKit/LayoutTests/inspector-protocol/debugger/debugger-pause-dedicated-worker-loop.js +++ b/third_party/WebKit/LayoutTests/inspector-protocol/debugger/debugger-pause-dedicated-worker-loop.js
@@ -1,5 +1,5 @@ (async function(testRunner) { - var {page, session, dp} = await testRunner.startBlank('Tests that worker can be interrupted and paused.'); + var {page, session, dp} = await testRunner.startBlank('Tests that worker can be interrupted with Debugger.pause.'); await session.evaluate(` window.worker = new Worker('${testRunner.url('resources/dedicated-worker-loop.js')}'); @@ -24,6 +24,7 @@ var debuggerEnableRequestId = -1; var evaluateRequestId = -1; + var pauseRequestId = -1; dp.Target.onReceivedMessageFromTarget(async messageObject => { var message = JSON.parse(messageObject.params.message); @@ -33,6 +34,10 @@ await dp.Runtime.evaluate({expression: 'worker.postMessage(1)' }); testRunner.log('Did post message to worker'); } + if (message.id === pauseRequestId) { + testRunner.log('Paused in worker'); + evaluateRequestId = sendCommandToWorker('Runtime.evaluate', { 'expression': 'message_id > 1'}); + } if (message.id === evaluateRequestId) { var value = message.result.result.value; if (value === true) @@ -50,5 +55,5 @@ debuggerEnableRequestId = sendCommandToWorker('Debugger.enable', {}); await session.evaluateAsync('workerMessageReceivedPromise'); - evaluateRequestId = sendCommandToWorker('Runtime.evaluate', { 'expression': 'message_id > 1'}); + pauseRequestId = sendCommandToWorker('Debugger.pause', {}); })
diff --git a/third_party/WebKit/LayoutTests/platform/linux/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-generated-content-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-generated-content-expected.txt new file mode 100644 index 0000000..5d1a589a --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/linux/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-generated-content-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL fieldset generated content assert_equals: clientWidth expected 60 but got 48 +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/mac/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-generated-content-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-generated-content-expected.txt new file mode 100644 index 0000000..4cee4543 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/mac/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-generated-content-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL fieldset generated content assert_equals: clientWidth expected 59 but got 47 +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/platform/win/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-generated-content-expected.txt b/third_party/WebKit/LayoutTests/platform/win/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-generated-content-expected.txt new file mode 100644 index 0000000..f0c6282 --- /dev/null +++ b/third_party/WebKit/LayoutTests/platform/win/external/wpt/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-generated-content-expected.txt
@@ -0,0 +1,4 @@ +This is a testharness.js-based test. +FAIL fieldset generated content assert_equals: clientWidth expected 57 but got 46 +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt index 0d77ad6..b659027b 100644 --- a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt +++ b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-dedicated-worker-expected.txt
@@ -33,7 +33,7 @@ [Worker] getter failureReason [Worker] getter id [Worker] getter onprogress -[Worker] getter state +[Worker] getter result [Worker] getter uploadTotal [Worker] getter uploaded [Worker] method abort
diff --git a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt index 81ea00b..2da3cdb 100644 --- a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt +++ b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
@@ -435,7 +435,7 @@ getter failureReason getter id getter onprogress - getter state + getter result getter uploadTotal getter uploaded method abort
diff --git a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt index cac7e3a..2d04a4e 100644 --- a/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt +++ b/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-shared-worker-expected.txt
@@ -33,7 +33,7 @@ [Worker] getter failureReason [Worker] getter id [Worker] getter onprogress -[Worker] getter state +[Worker] getter result [Worker] getter uploadTotal [Worker] getter uploaded [Worker] method abort
diff --git a/third_party/blink/public/platform/modules/background_fetch/background_fetch.mojom b/third_party/blink/public/platform/modules/background_fetch/background_fetch.mojom index 1be4e14..36fd741 100644 --- a/third_party/blink/public/platform/modules/background_fetch/background_fetch.mojom +++ b/third_party/blink/public/platform/modules/background_fetch/background_fetch.mojom
@@ -29,8 +29,8 @@ FetchAPIResponse? response; }; -enum BackgroundFetchState { - PENDING, +enum BackgroundFetchResult { + UNSET, FAILURE, SUCCESS }; @@ -83,7 +83,7 @@ uint64 uploaded; uint64 download_total; uint64 downloaded; - BackgroundFetchState state; + BackgroundFetchResult result; BackgroundFetchFailureReason failure_reason; };
diff --git a/third_party/blink/public/platform/modules/background_fetch/web_background_fetch_registration.h b/third_party/blink/public/platform/modules/background_fetch/web_background_fetch_registration.h index f0c3bc3..8e99f30 100644 --- a/third_party/blink/public/platform/modules/background_fetch/web_background_fetch_registration.h +++ b/third_party/blink/public/platform/modules/background_fetch/web_background_fetch_registration.h
@@ -22,7 +22,7 @@ uint64_t uploaded, uint64_t download_total, uint64_t downloaded, - mojom::BackgroundFetchState state, + mojom::BackgroundFetchResult result, mojom::BackgroundFetchFailureReason failure_reason) : developer_id(developer_id), unique_id(unique_id), @@ -30,7 +30,7 @@ uploaded(uploaded), download_total(download_total), downloaded(downloaded), - state(state), + result(result), failure_reason(failure_reason) {} ~WebBackgroundFetchRegistration() = default; @@ -41,7 +41,7 @@ uint64_t uploaded; uint64_t download_total; uint64_t downloaded; - mojom::BackgroundFetchState state; + mojom::BackgroundFetchResult result; mojom::BackgroundFetchFailureReason failure_reason; };
diff --git a/third_party/blink/renderer/core/css/resolver/style_adjuster.cc b/third_party/blink/renderer/core/css/resolver/style_adjuster.cc index 8ce64b5..0c7bc45 100644 --- a/third_party/blink/renderer/core/css/resolver/style_adjuster.cc +++ b/third_party/blink/renderer/core/css/resolver/style_adjuster.cc
@@ -78,17 +78,6 @@ return touch_action; } -// Returns true for elements that are either <img> or <svg> image or <video> -// that are not in an image or media document; returns false otherwise. -bool IsImageOrVideoElement(const Element* element) { - if ((IsHTMLImageElement(element) || IsSVGImageElement(element)) && - !element->GetDocument().IsImageDocument()) - return true; - if (IsHTMLVideoElement(element) && !element->GetDocument().IsMediaDocument()) - return true; - return false; -} - bool ShouldForceLegacyLayout(const ComputedStyle& style, const ComputedStyle& layout_parent_style, const Element& element) { @@ -734,27 +723,5 @@ ShouldForceLegacyLayout(style, layout_parent_style, *element)) { style.SetForceLegacyLayout(true); } - - // If intrinsically sized images or videos are disallowed by feature policy, - // use default size (300 x 150) instead. - if (IsImageOrVideoElement(element)) { - if (RuntimeEnabledFeatures::ExperimentalProductivityFeaturesEnabled() && - element->GetDocument().GetFrame() && - (!style.Width().IsSpecified() || !style.Height().IsSpecified())) { - // This check will trigger reporting, so only do it if either width or - // height is unspecified. - if (!element->GetDocument().GetFrame()->IsFeatureEnabled( - mojom::FeaturePolicyFeature::kUnsizedMedia, - ReportOptions::kReportOnFailure)) { - if (!style.Width().IsSpecified()) { - style.SetLogicalWidth(Length(LayoutReplaced::kDefaultWidth, kFixed)); - } - if (!style.Height().IsSpecified()) { - style.SetLogicalHeight( - Length(LayoutReplaced::kDefaultHeight, kFixed)); - } - } - } - } } } // namespace blink
diff --git a/third_party/blink/renderer/core/dom/element.cc b/third_party/blink/renderer/core/dom/element.cc index 4782e2d..28ec6ac3 100644 --- a/third_party/blink/renderer/core/dom/element.cc +++ b/third_party/blink/renderer/core/dom/element.cc
@@ -2050,6 +2050,8 @@ rare_data->IntersectionObserverData()->HasObservations()) { GetDocument().EnsureIntersectionObserverController().AddTrackedTarget( *this); + if (LocalFrameView* frame_view = GetDocument().View()) + frame_view->SetIntersectionObservationState(LocalFrameView::kRequired); } } @@ -2152,6 +2154,9 @@ element_animations->CssAnimations().Cancel(); if (data->IntersectionObserverData()) { + data->IntersectionObserverData()->ComputeObservations( + IntersectionObservation::kExplicitRootObserversNeedUpdate | + IntersectionObservation::kImplicitRootObserversNeedUpdate); GetDocument().EnsureIntersectionObserverController().RemoveTrackedTarget( *this); } @@ -3651,10 +3656,9 @@ return EnsureElementRareData().EnsureIntersectionObserverData(); } -void Element::ComputeIntersectionObservations( - bool should_report_implicit_root_bounds) { +void Element::ComputeIntersectionObservations(unsigned flags) { if (ElementIntersectionObserverData* data = IntersectionObserverData()) - data->ComputeObservations(should_report_implicit_root_bounds); + data->ComputeObservations(flags); } HeapHashMap<TraceWrapperMember<ResizeObserver>, Member<ResizeObservation>>*
diff --git a/third_party/blink/renderer/core/dom/element.h b/third_party/blink/renderer/core/dom/element.h index 57ebe8c..7a07544 100644 --- a/third_party/blink/renderer/core/dom/element.h +++ b/third_party/blink/renderer/core/dom/element.h
@@ -898,7 +898,7 @@ ElementIntersectionObserverData* IntersectionObserverData() const; ElementIntersectionObserverData& EnsureIntersectionObserverData(); - void ComputeIntersectionObservations(bool); + void ComputeIntersectionObservations(unsigned flags); HeapHashMap<TraceWrapperMember<ResizeObserver>, Member<ResizeObservation>>* ResizeObserverData() const;
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.cc b/third_party/blink/renderer/core/execution_context/execution_context.cc index c552887..8a373f5 100644 --- a/third_party/blink/renderer/core/execution_context/execution_context.cc +++ b/third_party/blink/renderer/core/execution_context/execution_context.cc
@@ -39,6 +39,7 @@ #include "third_party/blink/renderer/core/probe/core_probes.h" #include "third_party/blink/renderer/core/workers/worker_global_scope.h" #include "third_party/blink/renderer/core/workers/worker_thread.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/platform/loader/fetch/memory_cache.h" #include "third_party/blink/renderer/platform/weborigin/security_policy.h" @@ -209,6 +210,12 @@ return Url().StrippedForUseAsReferrer(); } +FetchClientSettingsObjectSnapshot* +ExecutionContext::CreateFetchClientSettingsObjectSnapshot() { + return new FetchClientSettingsObjectSnapshot( + BaseURL(), GetSecurityOrigin(), GetReferrerPolicy(), OutgoingReferrer()); +} + void ExecutionContext::ParseAndSetReferrerPolicy(const String& policies, bool support_legacy_keywords) { ReferrerPolicy referrer_policy;
diff --git a/third_party/blink/renderer/core/execution_context/execution_context.h b/third_party/blink/renderer/core/execution_context/execution_context.h index aa553783..d0f26b5 100644 --- a/third_party/blink/renderer/core/execution_context/execution_context.h +++ b/third_party/blink/renderer/core/execution_context/execution_context.h
@@ -36,7 +36,6 @@ #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/dom/context_lifecycle_notifier.h" #include "third_party/blink/renderer/core/dom/context_lifecycle_observer.h" -#include "third_party/blink/renderer/core/frame/local_dom_window.h" #include "third_party/blink/renderer/platform/heap/handle.h" #include "third_party/blink/renderer/platform/loader/fetch/access_control_status.h" #include "third_party/blink/renderer/platform/loader/fetch/https_state.h" @@ -60,9 +59,11 @@ class DOMTimerCoordinator; class ErrorEvent; class EventTarget; +class FetchClientSettingsObjectSnapshot; class FrameOrWorkerScheduler; class InterfaceInvalidator; class KURL; +class LocalDOMWindow; class PausableObject; class PublicURLManager; class ResourceFetcher; @@ -224,6 +225,8 @@ // https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer virtual String OutgoingReferrer() const; + FetchClientSettingsObjectSnapshot* CreateFetchClientSettingsObjectSnapshot(); + // Parses a comma-separated list of referrer policy tokens, and sets // the context's referrer policy to the last one that is a valid // policy. Logs a message to the console if none of the policy
diff --git a/third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.cc b/third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.cc index 7a7f6e0..cba4a64 100644 --- a/third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.cc +++ b/third_party/blink/renderer/core/exported/web_dev_tools_agent_impl.cc
@@ -103,18 +103,6 @@ return frame->ViewImpl() && !frame->Parent(); } -bool ShouldInterruptForMethod(const String& method) { - // Keep in sync with DevToolsSession::ShouldSendOnIO. - // TODO(dgozman): find a way to share this. - return method == "Debugger.pause" || method == "Debugger.setBreakpoint" || - method == "Debugger.setBreakpointByUrl" || - method == "Debugger.removeBreakpoint" || - method == "Debugger.setBreakpointsActive" || - method == "Performance.getMetrics" || method == "Page.crash" || - method == "Runtime.terminateExecution" || - method == "Emulation.setScriptExecutionDisabled"; -} - } // namespace class ClientMessageLoopAdapter : public MainThreadDebugger::ClientMessageLoop { @@ -288,7 +276,7 @@ void DispatchProtocolCommand(int call_id, const String& method, const String& message) override { - DCHECK(ShouldInterruptForMethod(method)); + DCHECK(InspectorSession::ShouldInterruptForMethod(method)); // Crash renderer. if (method == "Page.crash") CHECK(false);
diff --git a/third_party/blink/renderer/core/frame/local_frame.cc b/third_party/blink/renderer/core/frame/local_frame.cc index 319be5e..6b033aa 100644 --- a/third_party/blink/renderer/core/frame/local_frame.cc +++ b/third_party/blink/renderer/core/frame/local_frame.cc
@@ -1309,7 +1309,7 @@ remote_viewport_intersection_ = viewport_intersection; occluded_or_obscured_by_ancestor_ = occluded_or_obscured; if (View()) { - View()->SetNeedsIntersectionObservation(LocalFrameView::kRequired); + View()->SetIntersectionObservationState(LocalFrameView::kRequired); View()->ScheduleAnimation(); } }
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 cb1b837..3563719c 100644 --- a/third_party/blink/renderer/core/frame/local_frame_view.cc +++ b/third_party/blink/renderer/core/frame/local_frame_view.cc
@@ -71,6 +71,7 @@ #include "third_party/blink/renderer/core/html_names.h" #include "third_party/blink/renderer/core/input/event_handler.h" #include "third_party/blink/renderer/core/inspector/inspector_trace_events.h" +#include "third_party/blink/renderer/core/intersection_observer/intersection_observation.h" #include "third_party/blink/renderer/core/intersection_observer/intersection_observer_controller.h" #include "third_party/blink/renderer/core/intersection_observer/intersection_observer_init.h" #include "third_party/blink/renderer/core/layout/adjust_for_absolute_zoom.h" @@ -213,16 +214,26 @@ display_mode_(kWebDisplayModeBrowser), can_have_scrollbars_(true), has_pending_layout_(false), + layout_scheduling_enabled_(true), in_synchronous_post_layout_(false), + layout_count_for_testing_(0), + lifecycle_update_count_for_testing_(0), + nested_layout_count_(0), post_layout_tasks_timer_(frame.GetTaskRunner(TaskType::kInternalDefault), this, &LocalFrameView::PostLayoutTimerFired), update_plugins_timer_(frame.GetTaskRunner(TaskType::kInternalDefault), this, &LocalFrameView::UpdatePluginsTimerFired), + first_layout_(true), base_background_color_(Color::kWhite), + last_zoom_factor_(1.0f), media_type_(MediaTypeNames::screen), safe_to_propagate_scroll_to_parent_(true), + visually_non_empty_character_count_(0), + visually_non_empty_pixel_count_(0), + is_visually_non_empty_(false), + fragment_anchor_(nullptr), sticky_position_object_count_(0), input_events_scale_factor_for_emulation_(1), layout_size_fixed_to_frame_size_(true), @@ -231,19 +242,30 @@ frame_timing_requests_dirty_(true), hidden_for_throttling_(false), subtree_throttled_(false), - lifecycle_updates_throttled_(false), + // The compositor throttles the main frame using deferred commits, we + // can't throttle it here or it seems the root compositor doesn't get + // setup properly. + lifecycle_updates_throttled_(!GetFrame().IsMainFrame()), current_update_lifecycle_phases_target_state_( DocumentLifecycle::kUninitialized), past_layout_lifecycle_update_(false), suppress_adjust_view_size_(false), intersection_observation_state_(kNotNeeded), + descendant_needs_intersection_observation_update_(false), needs_forced_compositing_update_(false), needs_focus_on_fragment_(false), + tracked_object_paint_invalidations_( + base::WrapUnique(g_initial_track_all_paint_invalidations + ? new Vector<ObjectPaintInvalidation> + : nullptr)), main_thread_scrolling_reasons_(0), paint_frame_count_(0), unique_id_(NewUniqueObjectId()), jank_tracker_(this) { - Init(); + // Propagate the marginwidth/height and scrolling modes to the view. + if (frame_->Owner() && + frame_->Owner()->ScrollingMode() == kScrollbarAlwaysOff) + SetCanHaveScrollbars(false); } LocalFrameView* LocalFrameView::Create(LocalFrame& frame) { @@ -283,39 +305,6 @@ visitor->Trace(print_context_); } -void LocalFrameView::Reset() { - // The compositor throttles the main frame using deferred commits, we can't - // throttle it here or it seems the root compositor doesn't get setup - // properly. - lifecycle_updates_throttled_ = !GetFrame().IsMainFrame(); - has_pending_layout_ = false; - layout_scheduling_enabled_ = true; - in_synchronous_post_layout_ = false; - layout_count_for_testing_ = 0; - lifecycle_update_count_for_testing_ = 0; - nested_layout_count_ = 0; - post_layout_tasks_timer_.Stop(); - update_plugins_timer_.Stop(); - first_layout_ = true; - safe_to_propagate_scroll_to_parent_ = true; - last_viewport_size_ = IntSize(); - last_zoom_factor_ = 1.0f; - tracked_object_paint_invalidations_ = - base::WrapUnique(g_initial_track_all_paint_invalidations - ? new Vector<ObjectPaintInvalidation> - : nullptr); - visually_non_empty_character_count_ = 0; - visually_non_empty_pixel_count_ = 0; - is_visually_non_empty_ = false; - main_thread_scrolling_reasons_ = 0; - layout_object_counter_.Reset(); - ClearFragmentAnchor(); - viewport_constrained_objects_.reset(); - layout_subtree_root_list_.Clear(); - orthogonal_writing_mode_root_list_.Clear(); - ukm_time_aggregator_.reset(); -} - template <typename Function> void LocalFrameView::ForAllChildViewsAndPlugins(const Function& function) { for (Frame* child = frame_->Tree().FirstChild(); child; @@ -358,17 +347,6 @@ } } -void LocalFrameView::Init() { - Reset(); - - size_ = LayoutSize(); - - // Propagate the marginwidth/height and scrolling modes to the view. - if (frame_->Owner() && - frame_->Owner()->ScrollingMode() == kScrollbarAlwaysOff) - SetCanHaveScrollbars(false); -} - void LocalFrameView::SetupRenderThrottling() { if (visibility_observer_) return; @@ -2417,13 +2395,15 @@ UpdateLifecyclePhasesInternal(target_state); // Update intersection observations if needed. - if (intersection_observation_state_ != kNotNeeded && + if ((intersection_observation_state_ != kNotNeeded || + descendant_needs_intersection_observation_update_) && target_state == DocumentLifecycle::kPaintClean) { TRACE_EVENT0("blink,benchmark", "LocalFrameView::UpdateViewportIntersectionsForSubtree"); SCOPED_UMA_AND_UKM_TIMER("Blink.IntersectionObservation.UpdateTime", UkmMetricNames::kIntersectionObservation); UpdateViewportIntersectionsForSubtree(); + descendant_needs_intersection_observation_update_ = false; } UpdateThrottlingStatusForSubtree(); @@ -4161,13 +4141,45 @@ parent->SetNeedsForcedCompositingUpdate(); } -void LocalFrameView::SetNeedsIntersectionObservation( +void LocalFrameView::SetIntersectionObservationState( IntersectionObservationState state) { if (intersection_observation_state_ >= state) return; intersection_observation_state_ = state; - if (LocalFrameView* parent = ParentFrameView()) - parent->SetNeedsIntersectionObservation(state); + if (LocalFrameView* root_view = GetFrame().LocalFrameRoot().View()) + root_view->SetDescendantNeedsIntersectionObservationUpdate(); +} + +unsigned LocalFrameView::GetIntersectionObservationFlags() const { + unsigned flags = 0; + + const LocalFrame& target_frame = GetFrame(); + const Frame& root_frame = target_frame.Tree().Top(); + if (&root_frame == &target_frame || + target_frame.GetSecurityContext()->GetSecurityOrigin()->CanAccess( + root_frame.GetSecurityContext()->GetSecurityOrigin())) { + flags |= IntersectionObservation::kReportImplicitRootBounds; + } + + // Observers with explicit roots only need to be checked on the same frame, + // since in this case target and root must be in the same document. + if (intersection_observation_state_ != kNotNeeded) + flags |= IntersectionObservation::kExplicitRootObserversNeedUpdate; + + // For observers with implicit roots, we need to check state on the whole + // local frame tree. + const LocalFrameView* local_root_view = target_frame.LocalFrameRoot().View(); + for (const LocalFrameView* view = this; view; + view = view->ParentFrameView()) { + if (view->intersection_observation_state_ != kNotNeeded) { + flags |= IntersectionObservation::kImplicitRootObserversNeedUpdate; + break; + } + if (view == local_root_view) + break; + } + + return flags; } bool LocalFrameView::ShouldThrottleRendering() const {
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.h b/third_party/blink/renderer/core/frame/local_frame_view.h index b8103714..e24ed79 100644 --- a/third_party/blink/renderer/core/frame/local_frame_view.h +++ b/third_party/blink/renderer/core/frame/local_frame_view.h
@@ -184,7 +184,11 @@ // Sets the internal IntersectionObservationState to the max of the // current value and the provided one. - void SetNeedsIntersectionObservation(IntersectionObservationState); + void SetIntersectionObservationState(IntersectionObservationState); + + // Get the InstersectionObservation::ComputeFlags for target elements in this + // view. + unsigned GetIntersectionObservationFlags() const; // Marks this frame, and ancestor frames, as needing a mandatory compositing // update. This overrides throttling for one frame, up to kCompositingClean. @@ -735,9 +739,6 @@ void PushPaintArtifactToCompositor( CompositorElementIdSet& composited_element_ids); - void Reset(); - void Init(); - void ClearLayoutSubtreeRootsAndMarkContainingBlocks(); void PerformPreLayoutTasks(); @@ -800,6 +801,13 @@ template <typename Function> void ForAllNonThrottledLocalFrameViews(const Function&); + // This flag is only set on the local root view, whenever any descendant in + // the frame tree has a visual change the requires IntersectionObservations + // to be recomputed. + void SetDescendantNeedsIntersectionObservationUpdate() { + descendant_needs_intersection_observation_update_ = true; + } + void UpdateViewportIntersectionsForSubtree() override; void UpdateThrottlingStatusForSubtree(); @@ -925,6 +933,7 @@ bool allows_layout_invalidation_after_layout_clean_ = true; #endif IntersectionObservationState intersection_observation_state_; + bool descendant_needs_intersection_observation_update_; bool needs_forced_compositing_update_; bool needs_focus_on_fragment_;
diff --git a/third_party/blink/renderer/core/fullscreen/fullscreen.cc b/third_party/blink/renderer/core/fullscreen/fullscreen.cc index 7d8d65b..8d0606f 100644 --- a/third_party/blink/renderer/core/fullscreen/fullscreen.cc +++ b/third_party/blink/renderer/core/fullscreen/fullscreen.cc
@@ -544,7 +544,9 @@ void Fullscreen::RequestFullscreen(Element& pending) { // TODO(foolip): Make RequestType::Unprefixed the default when the unprefixed // API is enabled. https://crbug.com/383813 - RequestFullscreen(pending, FullscreenOptions(), RequestType::kPrefixed); + FullscreenOptions options; + options.setNavigationUI("hide"); + RequestFullscreen(pending, options, RequestType::kPrefixed); } ScriptPromise Fullscreen::RequestFullscreen(Element& pending,
diff --git a/third_party/blink/renderer/core/html/html_image_element.cc b/third_party/blink/renderer/core/html/html_image_element.cc index 52c84bbb..e83a5b4 100644 --- a/third_party/blink/renderer/core/html/html_image_element.cc +++ b/third_party/blink/renderer/core/html/html_image_element.cc
@@ -105,6 +105,12 @@ sizes_set_width_(false), referrer_policy_(kReferrerPolicyDefault) { SetHasCustomStyleCallbacks(); + if (MediaElementParserHelpers::IsMediaElement(this) && + !MediaElementParserHelpers::IsUnsizedMediaEnabled(document)) { + is_default_overridden_intrinsic_size_ = true; + overridden_intrinsic_size_ = + IntSize(LayoutReplaced::kDefaultWidth, LayoutReplaced::kDefaultHeight); + } } HTMLImageElement* HTMLImageElement::Create(Document& document) { @@ -296,7 +302,8 @@ String message; bool intrinsic_size_changed = MediaElementParserHelpers::ParseIntrinsicSizeAttribute( - params.new_value, &overridden_intrinsic_size_, &message); + params.new_value, this, &overridden_intrinsic_size_, + &is_default_overridden_intrinsic_size_, &message); if (!message.IsEmpty()) { GetDocument().AddConsoleMessage(ConsoleMessage::Create( kOtherMessageSource, kWarningMessageLevel, message));
diff --git a/third_party/blink/renderer/core/html/html_image_element.h b/third_party/blink/renderer/core/html/html_image_element.h index 04401b4..d826647 100644 --- a/third_party/blink/renderer/core/html/html_image_element.h +++ b/third_party/blink/renderer/core/html/html_image_element.h
@@ -112,6 +112,9 @@ void setWidth(unsigned); IntSize GetOverriddenIntrinsicSize() const; + bool IsDefaultIntrinsicSize() const { + return is_default_overridden_intrinsic_size_; + } int x() const; int y() const; @@ -236,6 +239,7 @@ unsigned is_fallback_image_ : 1; bool should_invert_color_; bool sizes_set_width_; + bool is_default_overridden_intrinsic_size_; ReferrerPolicy referrer_policy_;
diff --git a/third_party/blink/renderer/core/html/media/html_video_element.cc b/third_party/blink/renderer/core/html/media/html_video_element.cc index 2fb38d8e..bd6bc6b 100644 --- a/third_party/blink/renderer/core/html/media/html_video_element.cc +++ b/third_party/blink/renderer/core/html/media/html_video_element.cc
@@ -88,6 +88,13 @@ custom_controls_fullscreen_detector_ = new MediaCustomControlsFullscreenDetector(*this); } + + if (MediaElementParserHelpers::IsMediaElement(this) && + !MediaElementParserHelpers::IsUnsizedMediaEnabled(document)) { + is_default_overridden_intrinsic_size_ = true; + overridden_intrinsic_size_ = + IntSize(LayoutReplaced::kDefaultWidth, LayoutReplaced::kDefaultHeight); + } } HTMLVideoElement* HTMLVideoElement::Create(Document& document) { @@ -215,7 +222,8 @@ String message; bool intrinsic_size_changed = MediaElementParserHelpers::ParseIntrinsicSizeAttribute( - params.new_value, &overridden_intrinsic_size_, &message); + params.new_value, this, &overridden_intrinsic_size_, + &is_default_overridden_intrinsic_size_, &message); if (!message.IsEmpty()) { GetDocument().AddConsoleMessage(ConsoleMessage::Create( kOtherMessageSource, kWarningMessageLevel, message));
diff --git a/third_party/blink/renderer/core/html/media/html_video_element.h b/third_party/blink/renderer/core/html/media/html_video_element.h index 5021f6cd..4b929950 100644 --- a/third_party/blink/renderer/core/html/media/html_video_element.h +++ b/third_party/blink/renderer/core/html/media/html_video_element.h
@@ -67,6 +67,9 @@ IntSize videoVisibleSize() const; IntSize GetOverriddenIntrinsicSize() const; + bool IsDefaultIntrinsicSize() const { + return is_default_overridden_intrinsic_size_; + } // Fullscreen void webkitEnterFullscreen(); @@ -251,6 +254,7 @@ bool is_effectively_fullscreen_ = false; IntSize overridden_intrinsic_size_; + bool is_default_overridden_intrinsic_size_; }; } // namespace blink
diff --git a/third_party/blink/renderer/core/html/media/media_element_parser_helpers.cc b/third_party/blink/renderer/core/html/media/media_element_parser_helpers.cc index 2c1aeef2..0bf662c 100644 --- a/third_party/blink/renderer/core/html/media/media_element_parser_helpers.cc +++ b/third_party/blink/renderer/core/html/media/media_element_parser_helpers.cc
@@ -3,7 +3,15 @@ // found in the LICENSE file. #include "third_party/blink/renderer/core/html/media/media_element_parser_helpers.h" +#include "third_party/blink/renderer/core/dom/document.h" +#include "third_party/blink/renderer/core/dom/element.h" +#include "third_party/blink/renderer/core/frame/local_frame.h" #include "third_party/blink/renderer/core/html/parser/html_parser_idioms.h" +#include "third_party/blink/renderer/core/html_element_type_helpers.h" +#include "third_party/blink/renderer/core/layout/layout_object.h" +#include "third_party/blink/renderer/core/layout/layout_replaced.h" +#include "third_party/blink/renderer/core/layout/layout_view.h" +#include "third_party/blink/renderer/core/svg_element_type_helpers.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" #include "third_party/blink/renderer/platform/wtf/vector.h" @@ -11,9 +19,29 @@ namespace MediaElementParserHelpers { +bool IsMediaElement(const Element* element) { + if ((IsHTMLImageElement(element) || IsSVGImageElement(element)) && + !element->GetDocument().IsImageDocument()) + return true; + if (IsHTMLVideoElement(element) && !element->GetDocument().IsMediaDocument()) + return true; + return false; +} + +bool IsUnsizedMediaEnabled(const Document& document) { + if (auto* frame = document.GetFrame()) + return frame->IsFeatureEnabled(mojom::FeaturePolicyFeature::kUnsizedMedia); + // Unsized media is by default enabled every where, so when the frame is not + // available return default policy (true). + return true; +} + bool ParseIntrinsicSizeAttribute(const String& value, + const Element* element, IntSize* intrinsic_size, + bool* is_default_intrinsic_size, String* message) { + *is_default_intrinsic_size = false; unsigned new_width = 0, new_height = 0; Vector<String> size; value.Split('x', size); @@ -28,6 +56,13 @@ new_width = 0; new_height = 0; } + if (new_width == 0 && new_height == 0 && IsMediaElement(element) && + !IsUnsizedMediaEnabled(element->GetDocument())) { + new_width = LayoutReplaced::kDefaultWidth; + new_height = LayoutReplaced::kDefaultHeight; + *is_default_intrinsic_size = true; + } + IntSize new_size(new_width, new_height); if (*intrinsic_size != new_size) { *intrinsic_size = new_size; @@ -36,6 +71,15 @@ return false; } +void ReportUnsizedMediaViolation(const LayoutObject* layout_object) { + const ComputedStyle& style = layout_object->StyleRef(); + if (!style.LogicalWidth().IsSpecified() && + !style.LogicalHeight().IsSpecified() && layout_object->GetFrame()) { + layout_object->GetFrame()->ReportFeaturePolicyViolation( + mojom::FeaturePolicyFeature::kUnsizedMedia); + } +} + } // namespace MediaElementParserHelpers } // namespace blink
diff --git a/third_party/blink/renderer/core/html/media/media_element_parser_helpers.h b/third_party/blink/renderer/core/html/media/media_element_parser_helpers.h index beb7e83..b231442 100644 --- a/third_party/blink/renderer/core/html/media/media_element_parser_helpers.h +++ b/third_party/blink/renderer/core/html/media/media_element_parser_helpers.h
@@ -9,15 +9,31 @@ namespace blink { +class Element; +class Document; +class LayoutObject; + namespace MediaElementParserHelpers { // Parses the intrinsicSize attribute of HTMLImageElement, HTMLVideoElement, and // SVGImageElement. Returns true if the value is updated. // https://github.com/ojanvafai/intrinsicsize-attribute/blob/master/README.md bool ParseIntrinsicSizeAttribute(const String& value, + const Element* element, IntSize* intrinsic_size, + bool* is_default_intrinsic_size, String* message); +// Returns true for elements that are either <img>, <svg:image> or <video> that +// are not in an image or media document; returns false otherwise. +bool IsMediaElement(const Element* element); + +// Returns if the document is allowed to use +// FeaturePolicyFeature::kUnsizedMedia. +bool IsUnsizedMediaEnabled(const Document& document); + +void ReportUnsizedMediaViolation(const LayoutObject* layout_object); + } // namespace MediaElementParserHelpers } // namespace blink
diff --git a/third_party/blink/renderer/core/inspector/browser_protocol.pdl b/third_party/blink/renderer/core/inspector/browser_protocol.pdl index 6413548..2d380667 100644 --- a/third_party/blink/renderer/core/inspector/browser_protocol.pdl +++ b/third_party/blink/renderer/core/inspector/browser_protocol.pdl
@@ -2461,6 +2461,12 @@ # Requests that page scale factor is reset to initial values. experimental command resetPageScaleFactor + # Enables or disables simulating a focused and active page. + experimental command setFocusEmulationEnabled + parameters + # Whether to enable to disable focus emulation. + boolean enabled + # Enables CPU throttling to emulate slow CPUs. experimental command setCPUThrottlingRate parameters
diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc index 4843946ec..8d73a38 100644 --- a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc +++ b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
@@ -14,6 +14,7 @@ #include "third_party/blink/renderer/core/frame/web_local_frame_impl.h" #include "third_party/blink/renderer/core/inspector/dev_tools_emulator.h" #include "third_party/blink/renderer/core/inspector/protocol/DOM.h" +#include "third_party/blink/renderer/core/page/focus_controller.h" #include "third_party/blink/renderer/core/page/page.h" #include "third_party/blink/renderer/platform/geometry/double_rect.h" #include "third_party/blink/renderer/platform/graphics/color.h" @@ -48,7 +49,8 @@ virtual_time_offset_(&agent_state_, /*default_value=*/0.0), virtual_time_policy_(&agent_state_, /*default_value=*/WTF::String()), virtual_time_task_starvation_count_(&agent_state_, /*default_value=*/0), - wait_for_navigation_(&agent_state_, /*default_value=*/false) {} + wait_for_navigation_(&agent_state_, /*default_value=*/false), + emulate_focus_(&agent_state_, /*default_value=*/false) {} InspectorEmulationAgent::~InspectorEmulationAgent() = default; @@ -85,6 +87,7 @@ } } } + setFocusEmulationEnabled(emulate_focus_.Get()); if (virtual_time_policy_.Get().IsNull()) return; @@ -131,6 +134,7 @@ setTouchEmulationEnabled(false, Maybe<int>()); setEmulatedMedia(String()); setCPUThrottlingRate(1); + setFocusEmulationEnabled(false); setDefaultBackgroundColorOverride(Maybe<protocol::DOM::RGBA>()); if (virtual_time_setup_) { DCHECK(web_local_frame_); @@ -227,6 +231,16 @@ return response; } +Response InspectorEmulationAgent::setFocusEmulationEnabled(bool enabled) { + Response response = AssertPage(); + if (!response.isSuccess()) + return response; + emulate_focus_.Set(enabled); + GetWebViewImpl()->GetPage()->GetFocusController().SetFocusEmulationEnabled( + enabled); + return response; +} + Response InspectorEmulationAgent::setVirtualTimePolicy( const String& policy, Maybe<double> virtual_time_budget_ms,
diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.h b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.h index 256d89af..f28aac7 100644 --- a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.h +++ b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.h
@@ -49,6 +49,7 @@ protocol::Maybe<int> max_touch_points) override; protocol::Response setEmulatedMedia(const String&) override; protocol::Response setCPUThrottlingRate(double) override; + protocol::Response setFocusEmulationEnabled(bool) override; protocol::Response setVirtualTimePolicy( const String& policy, protocol::Maybe<double> virtual_time_budget_ms, @@ -139,6 +140,7 @@ InspectorAgentState::String virtual_time_policy_; InspectorAgentState::Integer virtual_time_task_starvation_count_; InspectorAgentState::Boolean wait_for_navigation_; + InspectorAgentState::Boolean emulate_focus_; DISALLOW_COPY_AND_ASSIGN(InspectorEmulationAgent); };
diff --git a/third_party/blink/renderer/core/inspector/inspector_protocol_config.json b/third_party/blink/renderer/core/inspector/inspector_protocol_config.json index dd2d0b2..4b76bfd 100644 --- a/third_party/blink/renderer/core/inspector/inspector_protocol_config.json +++ b/third_party/blink/renderer/core/inspector/inspector_protocol_config.json
@@ -85,7 +85,7 @@ "domain": "Emulation", "include": ["forceViewport", "resetViewport", "resetPageScaleFactor", "setPageScaleFactor", "setScriptExecutionDisabled", "setTouchEmulationEnabled", "setEmulatedMedia", "setCPUThrottlingRate", "setVirtualTimePolicy", "setNavigatorOverrides", "setDefaultBackgroundColorOverride", "setDeviceMetricsOverride", "clearDeviceMetricsOverride", - "setUserAgentOverride", "setScrollbarsHidden", "setDocumentCookieDisabled"], + "setUserAgentOverride", "setScrollbarsHidden", "setDocumentCookieDisabled", "setFocusEmulationEnabled"], "include_events": ["virtualTimeBudgetExpired", "virtualTimeAdvanced", "virtualTimePaused"] }, {
diff --git a/third_party/blink/renderer/core/inspector/inspector_session.cc b/third_party/blink/renderer/core/inspector/inspector_session.cc index caa6c8bb..1defb5c0 100644 --- a/third_party/blink/renderer/core/inspector/inspector_session.cc +++ b/third_party/blink/renderer/core/inspector/inspector_session.cc
@@ -19,6 +19,19 @@ const char kV8StateKey[] = "v8"; } +// static +bool InspectorSession::ShouldInterruptForMethod(const String& method) { + // Keep in sync with DevToolsSession::ShouldSendOnIO. + // TODO(dgozman): find a way to share this. + return method == "Debugger.pause" || method == "Debugger.setBreakpoint" || + method == "Debugger.setBreakpointByUrl" || + method == "Debugger.removeBreakpoint" || + method == "Debugger.setBreakpointsActive" || + method == "Performance.getMetrics" || method == "Page.crash" || + method == "Runtime.terminateExecution" || + method == "Emulation.setScriptExecutionDisabled"; +} + InspectorSession::InspectorSession( Client* client, CoreProbeSink* instrumenting_agents,
diff --git a/third_party/blink/renderer/core/inspector/inspector_session.h b/third_party/blink/renderer/core/inspector/inspector_session.h index 1f913f21..8474140 100644 --- a/third_party/blink/renderer/core/inspector/inspector_session.h +++ b/third_party/blink/renderer/core/inspector/inspector_session.h
@@ -66,6 +66,8 @@ void Trace(blink::Visitor*); + static bool ShouldInterruptForMethod(const String& method); + private: // protocol::FrontendChannel implementation. void sendProtocolResponse(
diff --git a/third_party/blink/renderer/core/inspector/worker_inspector_controller.cc b/third_party/blink/renderer/core/inspector/worker_inspector_controller.cc index 6197024e..e5975084 100644 --- a/third_party/blink/renderer/core/inspector/worker_inspector_controller.cc +++ b/third_party/blink/renderer/core/inspector/worker_inspector_controller.cc
@@ -69,6 +69,7 @@ } void WorkerInspectorController::ConnectFrontend(int session_id) { + WorkerThread::ScopedDebuggerTask debugger_task(thread_); if (sessions_.find(session_id) != sessions_.end()) return; @@ -94,6 +95,7 @@ } void WorkerInspectorController::DisconnectFrontend(int session_id) { + WorkerThread::ScopedDebuggerTask debugger_task(thread_); auto it = sessions_.find(session_id); if (it == sessions_.end()) return; @@ -106,6 +108,7 @@ void WorkerInspectorController::DispatchMessageFromFrontend( int session_id, const String& message) { + WorkerThread::ScopedDebuggerTask debugger_task(thread_); auto it = sessions_.find(session_id); if (it == sessions_.end()) return;
diff --git a/third_party/blink/renderer/core/inspector/worker_thread_debugger.cc b/third_party/blink/renderer/core/inspector/worker_thread_debugger.cc index 3ce0118..0b75896 100644 --- a/third_party/blink/renderer/core/inspector/worker_thread_debugger.cc +++ b/third_party/blink/renderer/core/inspector/worker_thread_debugger.cc
@@ -39,6 +39,7 @@ #include "third_party/blink/renderer/core/inspector/console_message_storage.h" #include "third_party/blink/renderer/core/inspector/identifiers_factory.h" #include "third_party/blink/renderer/core/inspector/v8_inspector_string.h" +#include "third_party/blink/renderer/core/inspector/worker_inspector_controller.h" #include "third_party/blink/renderer/core/workers/threaded_worklet_global_scope.h" #include "third_party/blink/renderer/core/workers/worker_global_scope.h" #include "third_party/blink/renderer/core/workers/worker_reporting_proxy.h" @@ -98,13 +99,18 @@ int worker_context_group_id = ContextGroupId(worker_thread); DCHECK(worker_threads_.Contains(worker_context_group_id)); worker_threads_.erase(worker_context_group_id); + if (worker_context_group_id == paused_context_group_id_) { + paused_context_group_id_ = kInvalidContextGroupId; + nested_runner_->QuitNow(); + } } void WorkerThreadDebugger::ContextCreated(WorkerThread* worker_thread, const KURL& url_for_debugger, v8::Local<v8::Context> context) { int worker_context_group_id = ContextGroupId(worker_thread); - DCHECK(worker_threads_.Contains(worker_context_group_id)); + if (!worker_threads_.Contains(worker_context_group_id)) + return; v8_inspector::V8ContextInfo context_info(context, worker_context_group_id, v8_inspector::StringView()); String origin = url_for_debugger; @@ -115,8 +121,7 @@ void WorkerThreadDebugger::ContextWillBeDestroyed( WorkerThread* worker_thread, v8::Local<v8::Context> context) { - int worker_context_group_id = ContextGroupId(worker_thread); - DCHECK(worker_threads_.Contains(worker_context_group_id)); + // Note that we might have already got WorkerThreadDestroyed by this point. GetV8Inspector()->contextDestroyed(context); } @@ -149,33 +154,50 @@ return ContextGroupId(ToWorkerOrWorkletGlobalScope(context)->GetThread()); } +void WorkerThreadDebugger::PauseWorkerOnStart(WorkerThread* worker_thread) { + DCHECK(!worker_thread->GlobalScope()->IsClosing()); + if (paused_context_group_id_ == kInvalidContextGroupId) + runMessageLoopOnPause(ContextGroupId(worker_thread)); +} + void WorkerThreadDebugger::runMessageLoopOnPause(int context_group_id) { + if (!worker_threads_.Contains(context_group_id)) + return; + DCHECK_EQ(kInvalidContextGroupId, paused_context_group_id_); - DCHECK(worker_threads_.Contains(context_group_id)); paused_context_group_id_ = context_group_id; - worker_threads_.at(context_group_id) - ->StartRunningDebuggerTasksOnPauseOnWorkerThread(); + + WorkerThread* thread = worker_threads_.at(context_group_id); + DCHECK(!thread->GlobalScope()->IsClosing()); + thread->GetWorkerInspectorController()->FlushProtocolNotifications(); + thread->GlobalScope()->PauseScheduledTasks(); + if (!nested_runner_) + nested_runner_ = Platform::Current()->CreateNestedMessageLoopRunner(); + nested_runner_->Run(); } void WorkerThreadDebugger::quitMessageLoopOnPause() { DCHECK_NE(kInvalidContextGroupId, paused_context_group_id_); DCHECK(worker_threads_.Contains(paused_context_group_id_)); - worker_threads_.at(paused_context_group_id_) - ->StopRunningDebuggerTasksOnPauseOnWorkerThread(); + + WorkerThread* thread = worker_threads_.at(paused_context_group_id_); paused_context_group_id_ = kInvalidContextGroupId; + DCHECK(!thread->GlobalScope()->IsClosing()); + + nested_runner_->QuitNow(); + thread->GlobalScope()->UnpauseScheduledTasks(); } void WorkerThreadDebugger::muteMetrics(int context_group_id) { - DCHECK(worker_threads_.Contains(context_group_id)); } void WorkerThreadDebugger::unmuteMetrics(int context_group_id) { - DCHECK(worker_threads_.Contains(context_group_id)); } v8::Local<v8::Context> WorkerThreadDebugger::ensureDefaultContextInGroup( int context_group_id) { - DCHECK(worker_threads_.Contains(context_group_id)); + if (!worker_threads_.Contains(context_group_id)) + return v8::Local<v8::Context>(); ScriptState* script_state = worker_threads_.at(context_group_id) ->GlobalScope() ->ScriptController() @@ -184,22 +206,18 @@ } void WorkerThreadDebugger::beginEnsureAllContextsInGroup(int context_group_id) { - DCHECK(worker_threads_.Contains(context_group_id)); } void WorkerThreadDebugger::endEnsureAllContextsInGroup(int context_group_id) { - DCHECK(worker_threads_.Contains(context_group_id)); } bool WorkerThreadDebugger::canExecuteScripts(int context_group_id) { - DCHECK(worker_threads_.Contains(context_group_id)); return true; } void WorkerThreadDebugger::runIfWaitingForDebugger(int context_group_id) { - DCHECK(worker_threads_.Contains(context_group_id)); - worker_threads_.at(context_group_id) - ->StopRunningDebuggerTasksOnPauseOnWorkerThread(); + if (paused_context_group_id_ == context_group_id) + quitMessageLoopOnPause(); } void WorkerThreadDebugger::consoleAPIMessage( @@ -210,7 +228,8 @@ unsigned line_number, unsigned column_number, v8_inspector::V8StackTrace* stack_trace) { - DCHECK(worker_threads_.Contains(context_group_id)); + if (!worker_threads_.Contains(context_group_id)) + return; WorkerThread* worker_thread = worker_threads_.at(context_group_id); std::unique_ptr<SourceLocation> location = SourceLocation::Create(ToCoreString(url), line_number, column_number, @@ -221,7 +240,8 @@ } void WorkerThreadDebugger::consoleClear(int context_group_id) { - DCHECK(worker_threads_.Contains(context_group_id)); + if (!worker_threads_.Contains(context_group_id)) + return; WorkerThread* worker_thread = worker_threads_.at(context_group_id); worker_thread->GetConsoleMessageStorage()->Clear(); }
diff --git a/third_party/blink/renderer/core/inspector/worker_thread_debugger.h b/third_party/blink/renderer/core/inspector/worker_thread_debugger.h index eeb8c8f..94ea18b 100644 --- a/third_party/blink/renderer/core/inspector/worker_thread_debugger.h +++ b/third_party/blink/renderer/core/inspector/worker_thread_debugger.h
@@ -32,6 +32,7 @@ #define THIRD_PARTY_BLINK_RENDERER_CORE_INSPECTOR_WORKER_THREAD_DEBUGGER_H_ #include "base/macros.h" +#include "third_party/blink/public/platform/platform.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/inspector/thread_debugger.h" @@ -57,6 +58,7 @@ v8::Local<v8::Context>); void ContextWillBeDestroyed(WorkerThread*, v8::Local<v8::Context>); void ExceptionThrown(WorkerThread*, ErrorEvent*); + void PauseWorkerOnStart(WorkerThread*); private: int ContextGroupId(ExecutionContext*) override; @@ -90,6 +92,8 @@ int paused_context_group_id_; WTF::HashMap<int, WorkerThread*> worker_threads_; + std::unique_ptr<Platform::NestedMessageLoopRunner> nested_runner_; + DISALLOW_COPY_AND_ASSIGN(WorkerThreadDebugger); };
diff --git a/third_party/blink/renderer/core/intersection_observer/element_intersection_observer_data.cc b/third_party/blink/renderer/core/intersection_observer/element_intersection_observer_data.cc index d0d0456..9cac7f96 100644 --- a/third_party/blink/renderer/core/intersection_observer/element_intersection_observer_data.cc +++ b/third_party/blink/renderer/core/intersection_observer/element_intersection_observer_data.cc
@@ -32,10 +32,9 @@ intersection_observations_.erase(&observer); } -void ElementIntersectionObserverData::ComputeObservations( - bool should_report_implicit_root_bounds) { +void ElementIntersectionObserverData::ComputeObservations(unsigned flags) { for (auto& observation : intersection_observations_) - observation.value->Compute(should_report_implicit_root_bounds); + observation.value->Compute(flags); } void ElementIntersectionObserverData::Trace(blink::Visitor* visitor) {
diff --git a/third_party/blink/renderer/core/intersection_observer/element_intersection_observer_data.h b/third_party/blink/renderer/core/intersection_observer/element_intersection_observer_data.h index a55f293..342af25 100644 --- a/third_party/blink/renderer/core/intersection_observer/element_intersection_observer_data.h +++ b/third_party/blink/renderer/core/intersection_observer/element_intersection_observer_data.h
@@ -25,7 +25,7 @@ void AddObservation(IntersectionObservation&); void RemoveObservation(IntersectionObserver&); bool HasObservations() const { return !intersection_observations_.IsEmpty(); } - void ComputeObservations(bool); + void ComputeObservations(unsigned flags); void Trace(blink::Visitor*); const char* NameInHeapSnapshot() const override {
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observation.cc b/third_party/blink/renderer/core/intersection_observer/intersection_observation.cc index 6af9b46..9cff404e 100644 --- a/third_party/blink/renderer/core/intersection_observer/intersection_observation.cc +++ b/third_party/blink/renderer/core/intersection_observer/intersection_observation.cc
@@ -50,10 +50,15 @@ // different sentinel value. last_threshold_index_(kMaxThresholdIndex - 1) {} -void IntersectionObservation::Compute(bool should_report_implicit_root_bounds) { +void IntersectionObservation::Compute(unsigned flags) { DCHECK(Observer()); if (!target_ || !observer_->RootIsValid() | !observer_->GetExecutionContext()) return; + bool needs_update = + flags & (observer_->RootIsImplicit() ? kImplicitRootObserversNeedUpdate + : kExplicitRootObserversNeedUpdate); + if (!needs_update) + return; DOMHighResTimeStamp timestamp = observer_->GetTimeStamp(); if (timestamp == -1) return; @@ -67,10 +72,10 @@ root_margin[1] = observer_->RightMargin(); root_margin[2] = observer_->BottomMargin(); root_margin[3] = observer_->LeftMargin(); - bool should_report_root_bounds = - should_report_implicit_root_bounds || !observer_->RootIsImplicit(); + bool report_root_bounds = + (flags & kReportImplicitRootBounds) || !observer_->RootIsImplicit(); IntersectionGeometry geometry(observer_->root(), *Target(), root_margin, - should_report_root_bounds); + report_root_bounds); geometry.ComputeGeometry(); // Some corner cases for threshold index: @@ -120,7 +125,7 @@ last_is_visible_ != is_visible) { FloatRect snapped_root_bounds(geometry.RootRect()); FloatRect* root_bounds_pointer = - should_report_root_bounds ? &snapped_root_bounds : nullptr; + report_root_bounds ? &snapped_root_bounds : nullptr; IntersectionObserverEntry* new_entry = new IntersectionObserverEntry( timestamp, new_visible_ratio, FloatRect(geometry.TargetRect()), root_bounds_pointer, FloatRect(geometry.IntersectionRect()),
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observation.h b/third_party/blink/renderer/core/intersection_observer/intersection_observation.h index a47c705..c1e6e3d 100644 --- a/third_party/blink/renderer/core/intersection_observer/intersection_observation.h +++ b/third_party/blink/renderer/core/intersection_observer/intersection_observation.h
@@ -1,4 +1,4 @@ -// 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. @@ -21,6 +21,21 @@ class IntersectionObservation final : public GarbageCollected<IntersectionObservation> { public: + // Flags that drive the behavior of the Compute() methods. For an explanation + // of implicit vs. explicit root, see intersection_observer.h. + enum ComputeFlags { + // If this bit is set, and observer_->RootIsImplicit() is true, then the + // root bounds (i.e., size of the top document's viewport) should be + // included in any IntersectionObserverEntry objects created by Compute(). + kReportImplicitRootBounds = 1 << 0, + // If this bit is set, and observer_->RootIsImplicit() is false, then + // Compute() should update the observation. + kExplicitRootObserversNeedUpdate = 1 << 1, + // If this bit is set, and observer_->RootIsImplicit() is true, then + // Compute() should update the observation. + kImplicitRootObserversNeedUpdate = 1 << 2, + }; + IntersectionObservation(IntersectionObserver&, Element&); IntersectionObserver* Observer() const { return observer_.Get(); } @@ -28,7 +43,7 @@ unsigned LastThresholdIndex() const { return last_threshold_index_; } // If the parameter is true and the observer doesn't have an explicit root, // then any notifications generated will contain root bounds geometry. - void Compute(bool should_report_implicit_root_bounds); + void Compute(unsigned flags); void TakeRecords(HeapVector<Member<IntersectionObserverEntry>>&); void Disconnect();
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observer.cc b/third_party/blink/renderer/core/intersection_observer/intersection_observer.cc index 4ddb64c..9024617 100644 --- a/third_party/blink/renderer/core/intersection_observer/intersection_observer.cc +++ b/third_party/blink/renderer/core/intersection_observer/intersection_observer.cc
@@ -264,13 +264,15 @@ if (LocalFrameView* frame_view = target_frame->View()) { // The IntersectionObsever spec requires that at least one observation // be recorded after observe() is called, even if the frame is throttled. - frame_view->SetNeedsIntersectionObservation(LocalFrameView::kRequired); + frame_view->SetIntersectionObservationState(LocalFrameView::kRequired); frame_view->ScheduleAnimation(); } } else { // The IntersectionObsever spec requires that at least one observation // be recorded after observe() is called, even if the target is detached. - observation->Compute(false); + observation->Compute( + IntersectionObservation::kImplicitRootObserversNeedUpdate | + IntersectionObservation::kExplicitRootObserversNeedUpdate); } }
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observer.h b/third_party/blink/renderer/core/intersection_observer/intersection_observer.h index 1e1f23ae..0ced0a9 100644 --- a/third_party/blink/renderer/core/intersection_observer/intersection_observer.h +++ b/third_party/blink/renderer/core/intersection_observer/intersection_observer.h
@@ -68,9 +68,9 @@ // An observer can either track intersections with an explicit root Element, // or with the the top-level frame's viewport (the "implicit root"). When - // tracking the implicit root, m_root will be null, but because m_root is a + // tracking the implicit root, root_ will be null, but because root_ is a // weak pointer, we cannot surmise that this observer tracks the implicit - // root just because m_root is null. Hence m_rootIsImplicit. + // root just because root_ is null. Hence root_is_implicit_. bool RootIsImplicit() const { return root_is_implicit_; } DOMHighResTimeStamp GetTimeStamp() const;
diff --git a/third_party/blink/renderer/core/intersection_observer/intersection_observer_controller.cc b/third_party/blink/renderer/core/intersection_observer/intersection_observer_controller.cc index ced7095..623ac029 100644 --- a/third_party/blink/renderer/core/intersection_observer/intersection_observer_controller.cc +++ b/third_party/blink/renderer/core/intersection_observer/intersection_observer_controller.cc
@@ -7,7 +7,9 @@ #include "third_party/blink/public/platform/task_type.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/dom/element.h" +#include "third_party/blink/renderer/core/frame/local_dom_window.h" #include "third_party/blink/renderer/core/frame/local_frame.h" +#include "third_party/blink/renderer/core/intersection_observer/intersection_observation.h" #include "third_party/blink/renderer/core/timing/dom_window_performance.h" #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h" @@ -80,21 +82,11 @@ TRACE_EVENT0("blink", "IntersectionObserverController::" "computeTrackedIntersectionObservations"); - bool should_report_implicit_root_bounds = false; - if (LocalFrame* target_frame = document->GetFrame()) { - Frame& root_frame = target_frame->Tree().Top(); - if (&root_frame == target_frame) { - should_report_implicit_root_bounds = true; - } else { - should_report_implicit_root_bounds = - target_frame->GetSecurityContext()->GetSecurityOrigin()->CanAccess( - root_frame.GetSecurityContext()->GetSecurityOrigin()); - } - } - for (auto& element : tracked_observation_targets_) { - element->ComputeIntersectionObservations( - should_report_implicit_root_bounds); - } + unsigned flags; + if (LocalFrameView* target_view = document->View()) + flags = target_view->GetIntersectionObservationFlags(); + for (auto& element : tracked_observation_targets_) + element->ComputeIntersectionObservations(flags); } }
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 e2fb6de..50be27d 100644 --- a/third_party/blink/renderer/core/layout/layout_block_flow.cc +++ b/third_party/blink/renderer/core/layout/layout_block_flow.cc
@@ -2532,13 +2532,14 @@ return nullptr; } -scoped_refptr<NGLayoutResult> LayoutBlockFlow::CachedLayoutResultForTesting() { +scoped_refptr<const NGLayoutResult> +LayoutBlockFlow::CachedLayoutResultForTesting() { return nullptr; } void LayoutBlockFlow::SetCachedLayoutResult(const NGConstraintSpace&, - NGBreakToken*, - scoped_refptr<NGLayoutResult>) {} + const NGBreakToken*, + const NGLayoutResult&) {} void LayoutBlockFlow::SetPaintFragment(const NGBreakToken*, scoped_refptr<const NGPhysicalFragment>,
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 93e35d4..32b78902 100644 --- a/third_party/blink/renderer/core/layout/layout_block_flow.h +++ b/third_party/blink/renderer/core/layout/layout_block_flow.h
@@ -455,10 +455,10 @@ virtual scoped_refptr<NGLayoutResult> CachedLayoutResult( const NGConstraintSpace&, NGBreakToken*) const; - virtual scoped_refptr<NGLayoutResult> CachedLayoutResultForTesting(); + virtual scoped_refptr<const NGLayoutResult> CachedLayoutResultForTesting(); virtual void SetCachedLayoutResult(const NGConstraintSpace&, - NGBreakToken*, - scoped_refptr<NGLayoutResult>); + const NGBreakToken*, + const NGLayoutResult&); virtual void WillCollectInlines() {} virtual void SetPaintFragment(const NGBreakToken*, scoped_refptr<const NGPhysicalFragment>,
diff --git a/third_party/blink/renderer/core/layout/layout_image.cc b/third_party/blink/renderer/core/layout/layout_image.cc index a9ebc90..261befb 100644 --- a/third_party/blink/renderer/core/layout/layout_image.cc +++ b/third_party/blink/renderer/core/layout/layout_image.cc
@@ -34,6 +34,7 @@ #include "third_party/blink/renderer/core/frame/use_counter.h" #include "third_party/blink/renderer/core/html/html_area_element.h" #include "third_party/blink/renderer/core/html/html_image_element.h" +#include "third_party/blink/renderer/core/html/media/media_element_parser_helpers.h" #include "third_party/blink/renderer/core/html_names.h" #include "third_party/blink/renderer/core/layout/hit_test_result.h" #include "third_party/blink/renderer/core/layout/intrinsic_sizing_info.h" @@ -497,13 +498,21 @@ void LayoutImage::UpdateAfterLayout() { LayoutBox::UpdateAfterLayout(); Node* node = GetNode(); - // Check for optimized image policies. - if (IsHTMLImageElement(node) && View() && View()->GetFrameView()) { - bool old_flag = ShouldInvertColor(); - is_downscaled_image_ = CheckForMaxDownscalingImagePolicy( - View()->GetFrameView()->GetFrame(), ToHTMLImageElement(node), this); - if (old_flag != ShouldInvertColor()) - UpdateShouldInvertColor(); + if (auto* image_element = ToHTMLImageElementOrNull(node)) { + if (View() && View()->GetFrameView()) { + const LocalFrame& frame = View()->GetFrameView()->GetFrame(); + + // Check for optimized image policies. + bool old_flag = ShouldInvertColor(); + is_downscaled_image_ = + CheckForMaxDownscalingImagePolicy(frame, image_element, this); + if (old_flag != ShouldInvertColor()) + UpdateShouldInvertColor(); + } + + // Report violation of unsized-media policy. + if (image_element->IsDefaultIntrinsicSize()) + MediaElementParserHelpers::ReportUnsizedMediaViolation(this); } }
diff --git a/third_party/blink/renderer/core/layout/layout_object.cc b/third_party/blink/renderer/core/layout/layout_object.cc index a109af8..a5c042d 100644 --- a/third_party/blink/renderer/core/layout/layout_object.cc +++ b/third_party/blink/renderer/core/layout/layout_object.cc
@@ -3192,7 +3192,7 @@ LayoutObject* ancestor = ParentCrossingFrames(); - GetFrameView()->SetNeedsIntersectionObservation(LocalFrameView::kDesired); + GetFrameView()->SetIntersectionObservationState(LocalFrameView::kDesired); while (ancestor && !ancestor->DescendantNeedsPaintPropertyUpdate()) { ancestor->bitfields_.SetDescendantNeedsPaintPropertyUpdate(true);
diff --git a/third_party/blink/renderer/core/layout/layout_video.cc b/third_party/blink/renderer/core/layout/layout_video.cc index 3c3cb42..83ba2b6 100644 --- a/third_party/blink/renderer/core/layout/layout_video.cc +++ b/third_party/blink/renderer/core/layout/layout_video.cc
@@ -28,6 +28,7 @@ #include "third_party/blink/public/platform/web_size.h" #include "third_party/blink/renderer/core/dom/document.h" #include "third_party/blink/renderer/core/html/media/html_video_element.h" +#include "third_party/blink/renderer/core/html/media/media_element_parser_helpers.h" #include "third_party/blink/renderer/core/paint/video_painter.h" namespace blink { @@ -198,4 +199,13 @@ return CompositingReason::kNone; } +void LayoutVideo::UpdateAfterLayout() { + LayoutBox::UpdateAfterLayout(); + // Report violation of unsized-media policy. + if (auto* video_element = ToHTMLVideoElementOrNull(GetNode())) { + if (video_element->IsDefaultIntrinsicSize()) + MediaElementParserHelpers::ReportUnsizedMediaViolation(this); + } +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/layout/layout_video.h b/third_party/blink/renderer/core/layout/layout_video.h index 41b297b4..68af6a5 100644 --- a/third_party/blink/renderer/core/layout/layout_video.h +++ b/third_party/blink/renderer/core/layout/layout_video.h
@@ -50,6 +50,8 @@ void IntrinsicSizeChanged() override; + void UpdateAfterLayout() override; + private: void UpdateFromElement() override;
diff --git a/third_party/blink/renderer/core/layout/line/inline_flow_box.cc b/third_party/blink/renderer/core/layout/line/inline_flow_box.cc index ddb0ad2..b1ac299 100644 --- a/third_party/blink/renderer/core/layout/line/inline_flow_box.cc +++ b/third_party/blink/renderer/core/layout/line/inline_flow_box.cc
@@ -1628,63 +1628,6 @@ return result; } -void InlineFlowBox::CollectLeafBoxesInLogicalOrder( - Vector<InlineBox*>& leaf_boxes_in_logical_order, - CustomInlineBoxRangeReverse custom_reverse_implementation) const { - InlineBox* leaf = FirstLeafChild(); - - // FIXME: The reordering code is a copy of parts from BidiResolver:: - // createBidiRunsForLine, operating directly on InlineBoxes, instead of - // BidiRuns. Investigate on how this code could possibly be shared. - unsigned char min_level = 128; - unsigned char max_level = 0; - - // First find highest and lowest levels, and initialize - // leafBoxesInLogicalOrder with the leaf boxes in visual order. - for (; leaf; leaf = leaf->NextLeafChild()) { - min_level = std::min(min_level, leaf->BidiLevel()); - max_level = std::max(max_level, leaf->BidiLevel()); - leaf_boxes_in_logical_order.push_back(leaf); - } - - if (GetLineLayoutItem().StyleRef().RtlOrdering() == EOrder::kVisual) - return; - - // Reverse of reordering of the line (L2 according to Bidi spec): - // L2. From the highest level found in the text to the lowest odd level on - // each line, reverse any contiguous sequence of characters that are at that - // level or higher. - - // Reversing the reordering of the line is only done up to the lowest odd - // level. - if (!(min_level % 2)) - ++min_level; - - Vector<InlineBox*>::iterator end = leaf_boxes_in_logical_order.end(); - while (min_level <= max_level) { - Vector<InlineBox*>::iterator it = leaf_boxes_in_logical_order.begin(); - while (it != end) { - while (it != end) { - if ((*it)->BidiLevel() >= min_level) - break; - ++it; - } - Vector<InlineBox*>::iterator first = it; - while (it != end) { - if ((*it)->BidiLevel() < min_level) - break; - ++it; - } - Vector<InlineBox*>::iterator last = it; - if (custom_reverse_implementation) - (*custom_reverse_implementation)(first, last); - else - std::reverse(first, last); - } - ++min_level; - } -} - const char* InlineFlowBox::BoxName() const { return "InlineFlowBox"; }
diff --git a/third_party/blink/renderer/core/layout/line/inline_flow_box.h b/third_party/blink/renderer/core/layout/line/inline_flow_box.h index d04be47..0aa0f64 100644 --- a/third_party/blink/renderer/core/layout/line/inline_flow_box.h +++ b/third_party/blink/renderer/core/layout/line/inline_flow_box.h
@@ -105,14 +105,6 @@ InlineBox* FirstLeafChild() const; InlineBox* LastLeafChild() const; - typedef void (*CustomInlineBoxRangeReverse)( - Vector<InlineBox*>::iterator first, - Vector<InlineBox*>::iterator last); - void CollectLeafBoxesInLogicalOrder( - Vector<InlineBox*>&, - CustomInlineBoxRangeReverse custom_reverse_implementation = - nullptr) const; - DISABLE_CFI_PERF void SetConstructed() final { InlineBox::SetConstructed();
diff --git a/third_party/blink/renderer/core/layout/line/root_inline_box.cc b/third_party/blink/renderer/core/layout/line/root_inline_box.cc index 0167a842..f7e51aa 100644 --- a/third_party/blink/renderer/core/layout/line/root_inline_box.cc +++ b/third_party/blink/renderer/core/layout/line/root_inline_box.cc
@@ -748,6 +748,63 @@ (box->GetLineLayoutItem().IsText() && !box->IsText())); } +void RootInlineBox::CollectLeafBoxesInLogicalOrder( + Vector<InlineBox*>& leaf_boxes_in_logical_order, + CustomInlineBoxRangeReverse custom_reverse_implementation) const { + InlineBox* leaf = FirstLeafChild(); + + // FIXME: The reordering code is a copy of parts from BidiResolver:: + // createBidiRunsForLine, operating directly on InlineBoxes, instead of + // BidiRuns. Investigate on how this code could possibly be shared. + unsigned char min_level = 128; + unsigned char max_level = 0; + + // First find highest and lowest levels, and initialize + // leafBoxesInLogicalOrder with the leaf boxes in visual order. + for (; leaf; leaf = leaf->NextLeafChild()) { + min_level = std::min(min_level, leaf->BidiLevel()); + max_level = std::max(max_level, leaf->BidiLevel()); + leaf_boxes_in_logical_order.push_back(leaf); + } + + if (GetLineLayoutItem().StyleRef().RtlOrdering() == EOrder::kVisual) + return; + + // Reverse of reordering of the line (L2 according to Bidi spec): + // L2. From the highest level found in the text to the lowest odd level on + // each line, reverse any contiguous sequence of characters that are at that + // level or higher. + + // Reversing the reordering of the line is only done up to the lowest odd + // level. + if (!(min_level % 2)) + ++min_level; + + Vector<InlineBox*>::iterator end = leaf_boxes_in_logical_order.end(); + while (min_level <= max_level) { + Vector<InlineBox*>::iterator it = leaf_boxes_in_logical_order.begin(); + while (it != end) { + while (it != end) { + if ((*it)->BidiLevel() >= min_level) + break; + ++it; + } + Vector<InlineBox*>::iterator first = it; + while (it != end) { + if ((*it)->BidiLevel() < min_level) + break; + ++it; + } + Vector<InlineBox*>::iterator last = it; + if (custom_reverse_implementation) + (*custom_reverse_implementation)(first, last); + else + std::reverse(first, last); + } + ++min_level; + } +} + const InlineBox* RootInlineBox::GetLogicalStartNonPseudoBox() const { Vector<InlineBox*> leaf_boxes_in_logical_order; CollectLeafBoxesInLogicalOrder(leaf_boxes_in_logical_order);
diff --git a/third_party/blink/renderer/core/layout/line/root_inline_box.h b/third_party/blink/renderer/core/layout/line/root_inline_box.h index 3f2ee123a..9540008 100644 --- a/third_party/blink/renderer/core/layout/line/root_inline_box.h +++ b/third_party/blink/renderer/core/layout/line/root_inline_box.h
@@ -204,6 +204,14 @@ return InlineFlowBox::LogicalBottomLayoutOverflow(LineBottom()); } + typedef void (*CustomInlineBoxRangeReverse)( + Vector<InlineBox*>::iterator first, + Vector<InlineBox*>::iterator last); + void CollectLeafBoxesInLogicalOrder( + Vector<InlineBox*>&, + CustomInlineBoxRangeReverse custom_reverse_implementation = + nullptr) const; + const InlineBox* GetLogicalStartNonPseudoBox() const; const InlineBox* GetLogicalEndNonPseudoBox() const;
diff --git a/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc index e39c773..2758c8ef 100644 --- a/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc +++ b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc
@@ -178,6 +178,21 @@ other.derived_geometry_ = nullptr; } +NGExclusionSpace::NGExclusionSpace(NGExclusionSpace&& other) + : exclusions_(std::move(other.exclusions_)), + num_exclusions_(other.num_exclusions_), + both_clear_offset_(other.both_clear_offset_), + derived_geometry_(std::move(other.derived_geometry_)) {} + +NGExclusionSpace& NGExclusionSpace::operator=(const NGExclusionSpace& other) { + exclusions_ = other.exclusions_; + num_exclusions_ = other.num_exclusions_; + both_clear_offset_ = other.both_clear_offset_; + derived_geometry_ = std::move(other.derived_geometry_); + other.derived_geometry_ = nullptr; + return *this; +} + NGExclusionSpace::DerivedGeometry::DerivedGeometry() : last_float_block_start_(LayoutUnit::Min()), left_float_clear_offset_(LayoutUnit::Min()),
diff --git a/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h index 265124d..bba16ba 100644 --- a/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h +++ b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h
@@ -12,6 +12,7 @@ #include "third_party/blink/renderer/core/layout/ng/geometry/ng_bfc_rect.h" #include "third_party/blink/renderer/core/style/computed_style_constants.h" #include "third_party/blink/renderer/platform/layout_unit.h" +#include "third_party/blink/renderer/platform/wtf/allocator.h" #include "third_party/blink/renderer/platform/wtf/ref_vector.h" #include "third_party/blink/renderer/platform/wtf/vector.h" @@ -30,6 +31,8 @@ public: NGExclusionSpace(); NGExclusionSpace(const NGExclusionSpace&); + NGExclusionSpace(NGExclusionSpace&&) noexcept; + NGExclusionSpace& operator=(const NGExclusionSpace&); ~NGExclusionSpace(){}; void Add(scoped_refptr<const NGExclusion> exclusion); @@ -143,6 +146,26 @@ base::AdoptRef(new NGShapeExclusions(*other.shape_exclusions))), has_shape_exclusions(other.has_shape_exclusions) {} + NGShelf(NGShelf&& other) noexcept + : block_offset(other.block_offset), + line_left(other.line_left), + line_right(other.line_right), + line_left_edges(std::move(other.line_left_edges)), + line_right_edges(std::move(other.line_right_edges)), + shape_exclusions(std::move(other.shape_exclusions)), + has_shape_exclusions(other.has_shape_exclusions) {} + + NGShelf& operator=(NGShelf&& other) noexcept { + block_offset = other.block_offset; + line_left = other.line_left; + line_right = other.line_right; + line_left_edges = std::move(other.line_left_edges); + line_right_edges = std::move(other.line_right_edges); + shape_exclusions = std::move(other.shape_exclusions); + has_shape_exclusions = other.has_shape_exclusions; + return *this; + } + LayoutUnit block_offset; LayoutUnit line_left; LayoutUnit line_right; @@ -192,6 +215,12 @@ // derived_geometry_ data-structure. struct DerivedGeometry { DerivedGeometry(); + DerivedGeometry(DerivedGeometry&& o) noexcept + : shelves_(std::move(o.shelves_)), + opportunities_(std::move(o.opportunities_)), + last_float_block_start_(o.last_float_block_start_), + left_float_clear_offset_(o.left_float_clear_offset_), + right_float_clear_offset_(o.right_float_clear_offset_) {} void Add(const NGExclusion& exclusion);
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 ceb128c..a0b663d 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
@@ -232,9 +232,9 @@ template <typename Base> void LayoutNGMixin<Base>::SetCachedLayoutResult( const NGConstraintSpace& constraint_space, - NGBreakToken* break_token, - scoped_refptr<NGLayoutResult> layout_result) { - if (break_token || layout_result->Status() != NGLayoutResult::kSuccess) { + const NGBreakToken* break_token, + const NGLayoutResult& layout_result) { + if (break_token || layout_result.Status() != NGLayoutResult::kSuccess) { // We can't cache these yet return; } @@ -242,11 +242,11 @@ return; Base::cached_constraint_space_ = &constraint_space; - cached_result_ = layout_result; + cached_result_ = &layout_result; } template <typename Base> -scoped_refptr<NGLayoutResult> +scoped_refptr<const NGLayoutResult> LayoutNGMixin<Base>::CachedLayoutResultForTesting() { return cached_result_; }
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 abc162b..3783f98 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
@@ -62,10 +62,10 @@ NGBreakToken*) const override; void SetCachedLayoutResult(const NGConstraintSpace&, - NGBreakToken*, - scoped_refptr<NGLayoutResult>) override; + const NGBreakToken*, + const NGLayoutResult&) override; // For testing only. - scoped_refptr<NGLayoutResult> CachedLayoutResultForTesting() override; + scoped_refptr<const NGLayoutResult> CachedLayoutResultForTesting() override; NGPaintFragment* PaintFragment() const override { return paint_fragment_.get(); @@ -100,7 +100,7 @@ std::unique_ptr<NGInlineNodeData> ng_inline_node_data_; - scoped_refptr<NGLayoutResult> cached_result_; + scoped_refptr<const NGLayoutResult> cached_result_; scoped_refptr<NGPaintFragment> paint_fragment_; friend class NGBaseLayoutAlgorithmTest;
diff --git a/third_party/blink/renderer/core/layout/ng/ng_block_node.cc b/third_party/blink/renderer/core/layout/ng/ng_block_node.cc index 1257581c..d13b22c24 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_block_node.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
@@ -176,7 +176,7 @@ // In particular, that fragment would have an incorrect offset if we // don't re-set the result here. ToLayoutBlockFlow(box_)->SetCachedLayoutResult( - constraint_space, break_token, layout_result); + constraint_space, break_token, *layout_result); if (!constraint_space.IsIntermediateLayout() && first_child && first_child.IsInline()) { block_flow->UpdatePaintFragmentFromCachedLayoutResult( @@ -256,7 +256,7 @@ if (box_->IsLayoutNGMixin()) { LayoutBlockFlow* block_flow = ToLayoutBlockFlow(box_); block_flow->SetCachedLayoutResult(constraint_space, break_token, - layout_result); + *layout_result); NGLayoutInputNode first_child = FirstChild(); if (first_child && first_child.IsInline()) { CopyFragmentDataToLayoutBoxForInlineChildren(
diff --git a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part_test.cc b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part_test.cc index 1fcbcd9..6709b00 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part_test.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part_test.cc
@@ -60,7 +60,7 @@ LayoutBlockFlow* block_flow = ToLayoutBlockFlow(rel->GetLayoutObject()); scoped_refptr<NGConstraintSpace> space = NGConstraintSpace::CreateFromLayoutObject(*block_flow); - scoped_refptr<NGLayoutResult> result = + scoped_refptr<const NGLayoutResult> result = block_flow->CachedLayoutResultForTesting(); EXPECT_TRUE(result); EXPECT_EQ(result->OutOfFlowPositionedDescendants().size(), (size_t)2);
diff --git a/third_party/blink/renderer/core/layout/svg/layout_svg_image.cc b/third_party/blink/renderer/core/layout/svg/layout_svg_image.cc index dd341274..9b9cb77 100644 --- a/third_party/blink/renderer/core/layout/svg/layout_svg_image.cc +++ b/third_party/blink/renderer/core/layout/svg/layout_svg_image.cc
@@ -25,6 +25,7 @@ #include "third_party/blink/renderer/core/layout/svg/layout_svg_image.h" +#include "third_party/blink/renderer/core/html/media/media_element_parser_helpers.h" #include "third_party/blink/renderer/core/layout/hit_test_result.h" #include "third_party/blink/renderer/core/layout/layout_analyzer.h" #include "third_party/blink/renderer/core/layout/layout_image_resource.h" @@ -152,6 +153,11 @@ DCHECK(!needs_boundaries_update_); DCHECK(!needs_transform_update_); + + if (auto* svg_image_element = ToSVGImageElementOrNull(GetElement())) { + if (svg_image_element->IsDefaultIntrinsicSize()) + MediaElementParserHelpers::ReportUnsizedMediaViolation(this); + } ClearNeedsLayout(); }
diff --git a/third_party/blink/renderer/core/loader/base_fetch_context.h b/third_party/blink/renderer/core/loader/base_fetch_context.h index 9aea189..0c0b268 100644 --- a/third_party/blink/renderer/core/loader/base_fetch_context.h +++ b/third_party/blink/renderer/core/loader/base_fetch_context.h
@@ -11,8 +11,8 @@ #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/frame/csp/content_security_policy.h" #include "third_party/blink/renderer/core/frame/web_feature_forward.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object.h" #include "third_party/blink/renderer/platform/heap/handle.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object.h" #include "third_party/blink/renderer/platform/loader/fetch/fetch_context.h" #include "third_party/blink/renderer/platform/loader/fetch/resource_request.h" #include "third_party/blink/renderer/platform/weborigin/referrer_policy.h"
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc index 7800c3f..ad294172 100644 --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -593,7 +593,8 @@ request_.SetURL(blocked_url); redirect_chain_.pop_back(); AppendRedirect(blocked_url); - response_ = ResourceResponse(blocked_url, "text/html"); + response_ = ResourceResponse(blocked_url); + response_.SetMimeType("text/html"); FinishedLoading(CurrentTimeTicks()); return; @@ -895,7 +896,8 @@ if (request_.Url().IsEmpty() && !GetFrameLoader().StateMachine()->CreatingInitialEmptyDocument()) request_.SetURL(BlankURL()); - response_ = ResourceResponse(request_.Url(), "text/html"); + response_ = ResourceResponse(request_.Url()); + response_.SetMimeType("text/html"); response_.SetTextEncodingName("utf-8"); FinishedLoading(CurrentTimeTicks()); return true;
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/third_party/blink/renderer/core/loader/frame_fetch_context.cc index 04f6555d..dbb65a72 100644 --- a/third_party/blink/renderer/core/loader/frame_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.cc
@@ -1443,7 +1443,7 @@ GetClientHintsPreferences(), GetDevicePixelRatio(), GetUserAgent(), IsMainFrame(), IsSVGImageChromeClient()); fetch_client_settings_object_ = - new FetchClientSettingsObjectSnapshot(*document_); + document_->CreateFetchClientSettingsObjectSnapshot(); } else { // Some getters are unavailable in this case. frozen_state_ = new FrozenState(
diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.h b/third_party/blink/renderer/core/loader/frame_fetch_context.h index a3bbbf7..4ced23fd 100644 --- a/third_party/blink/renderer/core/loader/frame_fetch_context.h +++ b/third_party/blink/renderer/core/loader/frame_fetch_context.h
@@ -38,9 +38,9 @@ #include "third_party/blink/renderer/core/frame/csp/content_security_policy.h" #include "third_party/blink/renderer/core/loader/base_fetch_context.h" #include "third_party/blink/renderer/core/script/fetch_client_settings_object_impl.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/platform/heap/handle.h" #include "third_party/blink/renderer/platform/loader/fetch/client_hints_preferences.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h" #include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h" #include "third_party/blink/renderer/platform/loader/fetch/resource_request.h"
diff --git a/third_party/blink/renderer/core/loader/link_loader.cc b/third_party/blink/renderer/core/loader/link_loader.cc index 46ceb06..43a346d 100644 --- a/third_party/blink/renderer/core/loader/link_loader.cc +++ b/third_party/blink/renderer/core/loader/link_loader.cc
@@ -54,9 +54,9 @@ #include "third_party/blink/renderer/core/loader/resource/css_style_sheet_resource.h" #include "third_party/blink/renderer/core/loader/resource/link_fetch_resource.h" #include "third_party/blink/renderer/core/loader/subresource_integrity_helper.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/core/script/module_script.h" #include "third_party/blink/renderer/core/script/script_loader.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/platform/loader/fetch/fetch_initiator_type_names.h" #include "third_party/blink/renderer/platform/loader/fetch/resource_client.h" #include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h" @@ -502,7 +502,7 @@ // relevant settings object. Document* context_document = document.ContextDocument(); auto* settings_object = - new FetchClientSettingsObjectSnapshot(*context_document); + context_document->CreateFetchClientSettingsObjectSnapshot(); Modulator* modulator = Modulator::From(ToScriptStateForMainWorld(context_document->GetFrame()));
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc b/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc index 9ba4cfc..8dced17 100644 --- a/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc +++ b/third_party/blink/renderer/core/loader/modulescript/module_script_loader.cc
@@ -9,10 +9,10 @@ #include "third_party/blink/renderer/core/loader/modulescript/module_script_fetcher.h" #include "third_party/blink/renderer/core/loader/modulescript/module_script_loader_client.h" #include "third_party/blink/renderer/core/loader/modulescript/module_script_loader_registry.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/core/script/modulator.h" #include "third_party/blink/renderer/core/script/module_script.h" #include "third_party/blink/renderer/core/workers/main_thread_worklet_global_scope.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/platform/loader/fetch/resource.h" #include "third_party/blink/renderer/platform/loader/fetch/resource_loader_options.h" #include "third_party/blink/renderer/platform/loader/fetch/resource_loading_log.h"
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc index a89913c..546a991 100644 --- a/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc +++ b/third_party/blink/renderer/core/loader/modulescript/module_script_loader_test.cc
@@ -17,7 +17,6 @@ #include "third_party/blink/renderer/core/loader/modulescript/module_script_loader_registry.h" #include "third_party/blink/renderer/core/loader/modulescript/worklet_module_script_fetcher.h" #include "third_party/blink/renderer/core/origin_trials/origin_trial_context.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/core/script/modulator.h" #include "third_party/blink/renderer/core/script/module_script.h" #include "third_party/blink/renderer/core/script/script.h" @@ -28,6 +27,7 @@ #include "third_party/blink/renderer/core/workers/main_thread_worklet_reporting_proxy.h" #include "third_party/blink/renderer/core/workers/worklet_module_responses_map.h" #include "third_party/blink/renderer/platform/heap/handle.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h" #include "third_party/blink/renderer/platform/loader/testing/fetch_testing_platform_support.h" #include "third_party/blink/renderer/platform/loader/testing/mock_fetch_context.h" @@ -206,7 +206,7 @@ ModuleScriptLoaderRegistry* registry = ModuleScriptLoaderRegistry::Create(); KURL url("data:text/javascript,export default 'grapes';"); auto* fetch_client_settings_object = - new FetchClientSettingsObjectSnapshot(GetDocument()); + GetDocument().CreateFetchClientSettingsObjectSnapshot(); ModuleScriptLoader::Fetch( ModuleScriptFetchRequest::CreateForTest(url), fetch_client_settings_object, ModuleGraphLevel::kTopLevelModuleFetch, @@ -260,7 +260,7 @@ ModuleScriptLoaderRegistry* registry = ModuleScriptLoaderRegistry::Create(); KURL url("data:text/javascript,import 'invalid';export default 'grapes';"); auto* fetch_client_settings_object = - new FetchClientSettingsObjectSnapshot(GetDocument()); + GetDocument().CreateFetchClientSettingsObjectSnapshot(); GetModulator()->SetModuleRequests({"invalid"}); ModuleScriptLoader::Fetch( ModuleScriptFetchRequest::CreateForTest(url), @@ -302,7 +302,7 @@ KURL url; EXPECT_FALSE(url.IsValid()); auto* fetch_client_settings_object = - new FetchClientSettingsObjectSnapshot(GetDocument()); + GetDocument().CreateFetchClientSettingsObjectSnapshot(); ModuleScriptLoader::Fetch( ModuleScriptFetchRequest::CreateForTest(url), fetch_client_settings_object, ModuleGraphLevel::kTopLevelModuleFetch, @@ -339,7 +339,7 @@ URLTestHelpers::RegisterMockedURLLoad( url, test::CoreTestDataPath("module.js"), "text/javascript"); auto* fetch_client_settings_object = - new FetchClientSettingsObjectSnapshot(GetDocument()); + GetDocument().CreateFetchClientSettingsObjectSnapshot(); ModuleScriptLoaderRegistry* registry = ModuleScriptLoaderRegistry::Create(); ModuleScriptLoader::Fetch(
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.h b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.h index bd67dd7..462fd5ed 100644 --- a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.h +++ b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker.h
@@ -7,10 +7,10 @@ #include "third_party/blink/public/platform/web_url_request.h" #include "third_party/blink/renderer/core/core_export.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/core/script/modulator.h" #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" #include "third_party/blink/renderer/platform/bindings/trace_wrapper_member.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h" #include "third_party/blink/renderer/platform/weborigin/kurl_hash.h" #include "third_party/blink/renderer/platform/wtf/hash_set.h"
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.cc b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.cc index 9e1ba28..b4f7075f 100644 --- a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.cc +++ b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.cc
@@ -5,7 +5,7 @@ #include "third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h" #include "third_party/blink/renderer/core/loader/modulescript/module_tree_linker.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h" #include "third_party/blink/renderer/platform/weborigin/kurl_hash.h"
diff --git a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_test.cc b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_test.cc index 3c057f5..07423a7e 100644 --- a/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_test.cc +++ b/third_party/blink/renderer/core/loader/modulescript/module_tree_linker_test.cc
@@ -13,7 +13,6 @@ #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h" #include "third_party/blink/renderer/core/loader/modulescript/module_script_fetch_request.h" #include "third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/core/script/modulator.h" #include "third_party/blink/renderer/core/script/module_script.h" #include "third_party/blink/renderer/core/testing/dummy_modulator.h" @@ -21,6 +20,7 @@ #include "third_party/blink/renderer/platform/bindings/script_state.h" #include "third_party/blink/renderer/platform/bindings/v8_throw_exception.h" #include "third_party/blink/renderer/platform/heap/handle.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/platform/testing/unit_test_helpers.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h" #include "third_party/blink/renderer/platform/wtf/text/string_builder.h" @@ -210,7 +210,7 @@ KURL url("http://example.com/root.js"); TestModuleTreeClient* client = new TestModuleTreeClient; ModuleTreeLinker::Fetch( - url, new FetchClientSettingsObjectSnapshot(GetDocument()), + url, GetDocument().CreateFetchClientSettingsObjectSnapshot(), WebURLRequest::kRequestContextScript, ScriptFetchOptions(), GetModulator(), ModuleScriptCustomFetchType::kNone, registry, client); @@ -232,7 +232,7 @@ KURL url("http://example.com/root.js"); TestModuleTreeClient* client = new TestModuleTreeClient; ModuleTreeLinker::Fetch( - url, new FetchClientSettingsObjectSnapshot(GetDocument()), + url, GetDocument().CreateFetchClientSettingsObjectSnapshot(), WebURLRequest::kRequestContextScript, ScriptFetchOptions(), GetModulator(), ModuleScriptCustomFetchType::kNone, registry, client); @@ -258,7 +258,7 @@ KURL url("http://example.com/root.js"); TestModuleTreeClient* client = new TestModuleTreeClient; ModuleTreeLinker::Fetch( - url, new FetchClientSettingsObjectSnapshot(GetDocument()), + url, GetDocument().CreateFetchClientSettingsObjectSnapshot(), WebURLRequest::kRequestContextScript, ScriptFetchOptions(), GetModulator(), ModuleScriptCustomFetchType::kNone, registry, client); @@ -285,7 +285,7 @@ KURL url("http://example.com/root.js"); TestModuleTreeClient* client = new TestModuleTreeClient; ModuleTreeLinker::Fetch( - url, new FetchClientSettingsObjectSnapshot(GetDocument()), + url, GetDocument().CreateFetchClientSettingsObjectSnapshot(), WebURLRequest::kRequestContextScript, ScriptFetchOptions(), GetModulator(), ModuleScriptCustomFetchType::kNone, registry, client); @@ -325,7 +325,7 @@ KURL url("http://example.com/root.js"); TestModuleTreeClient* client = new TestModuleTreeClient; ModuleTreeLinker::Fetch( - url, new FetchClientSettingsObjectSnapshot(GetDocument()), + url, GetDocument().CreateFetchClientSettingsObjectSnapshot(), WebURLRequest::kRequestContextScript, ScriptFetchOptions(), GetModulator(), ModuleScriptCustomFetchType::kNone, registry, client); @@ -384,7 +384,7 @@ KURL url("http://example.com/depth1.js"); TestModuleTreeClient* client = new TestModuleTreeClient; ModuleTreeLinker::Fetch( - url, new FetchClientSettingsObjectSnapshot(GetDocument()), + url, GetDocument().CreateFetchClientSettingsObjectSnapshot(), WebURLRequest::kRequestContextScript, ScriptFetchOptions(), GetModulator(), ModuleScriptCustomFetchType::kNone, registry, client); @@ -410,7 +410,7 @@ KURL url("http://example.com/a.js"); TestModuleTreeClient* client = new TestModuleTreeClient; ModuleTreeLinker::Fetch( - url, new FetchClientSettingsObjectSnapshot(GetDocument()), + url, GetDocument().CreateFetchClientSettingsObjectSnapshot(), WebURLRequest::kRequestContextScript, ScriptFetchOptions(), GetModulator(), ModuleScriptCustomFetchType::kNone, registry, client);
diff --git a/third_party/blink/renderer/core/loader/progress_tracker_test.cc b/third_party/blink/renderer/core/loader/progress_tracker_test.cc index 63bcfe8..4cbb6faa 100644 --- a/third_party/blink/renderer/core/loader/progress_tracker_test.cc +++ b/third_party/blink/renderer/core/loader/progress_tracker_test.cc
@@ -28,8 +28,10 @@ class ProgressTrackerTest : public PageTestBase { public: - ProgressTrackerTest() - : response_(KURL("http://example.com"), "text/html", 1024) {} + ProgressTrackerTest() : response_(KURL("http://example.com")) { + response_.SetMimeType("text/html"); + response_.SetExpectedContentLength(1024); + } void SetUp() override { client_ = new ProgressClient;
diff --git a/third_party/blink/renderer/core/loader/resource/css_style_sheet_resource_test.cc b/third_party/blink/renderer/core/loader/resource/css_style_sheet_resource_test.cc index aad3c09..4c2619d 100644 --- a/third_party/blink/renderer/core/loader/resource/css_style_sheet_resource_test.cc +++ b/third_party/blink/renderer/core/loader/resource/css_style_sheet_resource_test.cc
@@ -61,11 +61,12 @@ CSSStyleSheetResource* CreateAndSaveTestStyleSheetResource() { const char kUrl[] = "https://localhost/style.css"; const KURL css_url(kUrl); + ResourceResponse response(css_url); + response.SetMimeType("style/css"); CSSStyleSheetResource* css_resource = CSSStyleSheetResource::CreateForTest(css_url, UTF8Encoding()); - css_resource->ResponseReceived(ResourceResponse(css_url, "style/css"), - nullptr); + css_resource->ResponseReceived(response, nullptr); css_resource->FinishForTest(); GetMemoryCache()->Add(css_resource); return css_resource; @@ -78,6 +79,8 @@ const char kUrl[] = "https://localhost/style.css"; const KURL image_url(kUrl); const KURL css_url(kUrl); + ResourceResponse response(css_url); + response.SetMimeType("style/css"); // Emulate using <img> to do async stylesheet preloads. @@ -88,8 +91,7 @@ CSSStyleSheetResource* css_resource = CSSStyleSheetResource::CreateForTest(css_url, UTF8Encoding()); - css_resource->ResponseReceived(ResourceResponse(css_url, "style/css"), - nullptr); + css_resource->ResponseReceived(response, nullptr); css_resource->FinishForTest(); CSSParserContext* parser_context = CSSParserContext::Create(
diff --git a/third_party/blink/renderer/core/loader/resource/image_resource_test.cc b/third_party/blink/renderer/core/loader/resource/image_resource_test.cc index 590d49b..740aecd 100644 --- a/third_party/blink/renderer/core/loader/resource/image_resource_test.cc +++ b/third_party/blink/renderer/core/loader/resource/image_resource_test.cc
@@ -182,10 +182,11 @@ const AtomicString& mime_type, const char* data, size_t data_size) { - ResourceResponse response(url, mime_type); - response.SetHTTPStatusCode(200); + ResourceResponse resource_response(url); + resource_response.SetMimeType(mime_type); + resource_response.SetHTTPStatusCode(200); image_resource->NotifyStartLoad(); - image_resource->ResponseReceived(response, nullptr); + image_resource->ResponseReceived(resource_response, nullptr); image_resource->AppendData(data, data_size); image_resource->FinishForTest(); } @@ -219,8 +220,11 @@ ASSERT_NE(kImageWidth, image_width_on_image_notify_finished); // Does Reload. - image_resource->Loader()->DidReceiveResponse(WrappedResourceResponse( - ResourceResponse(test_url, "image/jpeg", kDataLength))); + ResourceResponse resource_response(test_url); + resource_response.SetMimeType("image/jpeg"); + resource_response.SetExpectedContentLength(kDataLength); + image_resource->Loader()->DidReceiveResponse( + WrappedResourceResponse(resource_response)); image_resource->Loader()->DidReceiveData(data, kDataLength); image_resource->Loader()->DidFinishLoading(TimeTicks(), kDataLength, kDataLength, kDataLength, false); @@ -265,14 +269,16 @@ EXPECT_EQ(0, observer->ImageChangedCount()); // Serves partial response that is sufficient for creating a placeholder. - ResourceResponse response(url, "image/jpeg", - kJpegImageSubrangeWithDimensionsLength); - response.SetHTTPStatusCode(206); - response.SetHTTPHeaderField( + ResourceResponse resource_response(url); + resource_response.SetMimeType("image/jpeg"); + resource_response.SetExpectedContentLength( + kJpegImageSubrangeWithDimensionsLength); + resource_response.SetHTTPStatusCode(206); + resource_response.SetHTTPHeaderField( "content-range", BuildContentRange(kJpegImageSubrangeWithDimensionsLength, sizeof(kJpegImage))); image_resource->Loader()->DidReceiveResponse( - WrappedResourceResponse(response)); + WrappedResourceResponse(resource_response)); image_resource->Loader()->DidReceiveData( reinterpret_cast<const char*>(kJpegImage), kJpegImageSubrangeWithDimensionsLength); @@ -312,8 +318,11 @@ EXPECT_EQ(0, observer->ImageChangedCount()); // Serves full response. - image_resource->Loader()->DidReceiveResponse(WrappedResourceResponse( - ResourceResponse(url, "image/jpeg", sizeof(kJpegImage)))); + ResourceResponse resource_response(url); + resource_response.SetMimeType("image/jpeg"); + resource_response.SetExpectedContentLength(sizeof(kJpegImage)); + image_resource->Loader()->DidReceiveResponse( + WrappedResourceResponse(resource_response)); image_resource->Loader()->DidReceiveData( reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage)); image_resource->Loader()->DidFinishLoading(TimeTicks(), sizeof(kJpegImage), @@ -363,7 +372,8 @@ // Send the multipart response. No image or data buffer is created. Note that // the response must be routed through ResourceLoader to ensure the load is // flagged as multipart. - ResourceResponse multipart_response(NullURL(), "multipart/x-mixed-replace"); + ResourceResponse multipart_response(NullURL()); + multipart_response.SetMimeType("multipart/x-mixed-replace"); multipart_response.SetMultipartBoundary("boundary", strlen("boundary")); image_resource->Loader()->DidReceiveResponse( WrappedResourceResponse(multipart_response), nullptr); @@ -440,7 +450,8 @@ image_resource->SetIdentifier(CreateUniqueIdentifier()); fetcher->StartLoad(image_resource); - ResourceResponse multipart_response(NullURL(), "multipart/x-mixed-replace"); + ResourceResponse multipart_response(NullURL()); + multipart_response.SetMimeType("multipart/x-mixed-replace"); multipart_response.SetMultipartBoundary("boundary", strlen("boundary")); image_resource->Loader()->DidReceiveResponse( WrappedResourceResponse(multipart_response), nullptr); @@ -535,8 +546,10 @@ finish_observer, fetcher->Context().GetLoadingTaskRunner().get()); // Send the image response. - image_resource->ResponseReceived( - ResourceResponse(NullURL(), "image/jpeg", sizeof(kJpegImage)), nullptr); + ResourceResponse resource_response(NullURL()); + resource_response.SetMimeType("image/jpeg"); + resource_response.SetExpectedContentLength(sizeof(kJpegImage)); + image_resource->ResponseReceived(resource_response, nullptr); image_resource->AppendData(reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage)); ASSERT_TRUE(image_resource->GetContent()->HasImage()); @@ -561,11 +574,13 @@ MockImageResourceObserver::Create(image_resource->GetContent()); // Send the image response. - image_resource->ResponseReceived( - ResourceResponse(NullURL(), "multipart/x-mixed-replace"), nullptr); + ResourceResponse resource_response(NullURL()); + resource_response.SetMimeType("multipart/x-mixed-replace"); + image_resource->ResponseReceived(resource_response, nullptr); - image_resource->ResponseReceived( - ResourceResponse(NullURL(), "image/jpeg", sizeof(kJpegImage)), nullptr); + resource_response.SetMimeType("image/jpeg"); + resource_response.SetExpectedContentLength(sizeof(kJpegImage)); + image_resource->ResponseReceived(resource_response, nullptr); image_resource->AppendData(reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage)); EXPECT_NE(0u, image_resource->EncodedSizeMemoryUsageForTesting()); @@ -601,8 +616,11 @@ MockImageResourceObserver::Create(image_resource->GetContent()); // Send the image response. - image_resource->ResponseReceived( - ResourceResponse(NullURL(), "image/jpeg", sizeof(kJpegImage)), nullptr); + + ResourceResponse resource_response(NullURL()); + resource_response.SetMimeType("image/jpeg"); + resource_response.SetExpectedContentLength(sizeof(kJpegImage)); + image_resource->ResponseReceived(resource_response, nullptr); image_resource->AppendData(reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage)); image_resource->FinishForTest(); @@ -639,8 +657,9 @@ ResourceFetcher* fetcher = CreateFetcher(); // Send the image response. - ResourceResponse resource_response(NullURL(), "image/jpeg", - sizeof(kJpegImage)); + ResourceResponse resource_response(NullURL()); + resource_response.SetMimeType("image/jpeg"); + resource_response.SetExpectedContentLength(sizeof(kJpegImage)); resource_response.AddHTTPHeaderField("chrome-proxy-content-transform", "empty-image"); @@ -686,8 +705,9 @@ ResourceFetcher* fetcher = CreateFetcher(); // Send the image response. - ResourceResponse resource_response(NullURL(), "image/jpeg", - sizeof(kJpegImage)); + ResourceResponse resource_response(NullURL()); + resource_response.SetMimeType("image/jpeg"); + resource_response.SetExpectedContentLength(sizeof(kJpegImage)); resource_response.AddHTTPHeaderField("chrome-proxy", "q=low"); image_resource->ResponseReceived(resource_response, nullptr); @@ -735,8 +755,10 @@ ResourceFetcher* fetcher = CreateFetcher(); // Send the image response, without any LoFi image response headers. - image_resource->ResponseReceived( - ResourceResponse(NullURL(), "image/jpeg", sizeof(kJpegImage)), nullptr); + ResourceResponse resource_response(NullURL()); + resource_response.SetMimeType("image/jpeg"); + resource_response.SetExpectedContentLength(sizeof(kJpegImage)); + image_resource->ResponseReceived(resource_response, nullptr); image_resource->AppendData(reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage)); image_resource->FinishForTest(); @@ -779,8 +801,9 @@ MockImageResourceObserver::Create(content); // Send the image response. - ResourceResponse resource_response(NullURL(), "image/jpeg", - sizeof(kJpegImage)); + ResourceResponse resource_response(NullURL()); + resource_response.SetMimeType("image/jpeg"); + resource_response.SetExpectedContentLength(sizeof(kJpegImage)); resource_response.AddHTTPHeaderField("chrome-proxy-content-transform", "empty-image"); @@ -851,8 +874,9 @@ MockImageResourceObserver::Create(image_resource->GetContent()); // Send the image response. - ResourceResponse resource_response(test_url, "image/jpeg", - sizeof(kJpegImage)); + ResourceResponse resource_response(test_url); + resource_response.SetMimeType("image/jpeg"); + resource_response.SetExpectedContentLength(sizeof(kJpegImage)); resource_response.AddHTTPHeaderField("chrome-proxy-content-transform", "empty-image"); @@ -1029,10 +1053,10 @@ image_resource->GetContent()->GetImage()->height()); image_resource->SetRevalidatingRequest(ResourceRequest(url)); - ResourceResponse response(url); - response.SetHTTPStatusCode(304); + ResourceResponse resource_response(url); + resource_response.SetHTTPStatusCode(304); - image_resource->ResponseReceived(response, nullptr); + image_resource->ResponseReceived(resource_response, nullptr); EXPECT_FALSE(image_resource->ErrorOccurred()); ASSERT_TRUE(image_resource->GetContent()->HasImage()); @@ -1064,9 +1088,9 @@ EXPECT_EQ(200, image_resource->GetContent()->GetImage()->height()); image_resource->SetRevalidatingRequest(ResourceRequest(url)); - ResourceResponse response(url); - response.SetHTTPStatusCode(304); - image_resource->ResponseReceived(response, nullptr); + ResourceResponse resource_response(url); + resource_response.SetHTTPStatusCode(304); + image_resource->ResponseReceived(resource_response, nullptr); EXPECT_FALSE(image_resource->ErrorOccurred()); ASSERT_TRUE(image_resource->GetContent()->HasImage()); @@ -1254,9 +1278,11 @@ std::unique_ptr<MockImageResourceObserver> observer = MockImageResourceObserver::Create(image_resource->GetContent()); + ResourceResponse resource_response(test_url); + resource_response.SetMimeType("image/jpeg"); + resource_response.SetExpectedContentLength(18); image_resource->Loader()->DidReceiveResponse( - WrappedResourceResponse(ResourceResponse(test_url, "image/jpeg", 18)), - nullptr); + WrappedResourceResponse(resource_response), nullptr); EXPECT_EQ(0, observer->ImageChangedCount()); @@ -1280,9 +1306,10 @@ std::unique_ptr<MockImageResourceObserver> observer = MockImageResourceObserver::Create(image_resource->GetContent()); + ResourceResponse resource_response(test_url); + resource_response.SetMimeType("image/jpeg"); image_resource->Loader()->DidReceiveResponse( - WrappedResourceResponse(ResourceResponse(test_url, "image/jpeg")), - nullptr); + WrappedResourceResponse(resource_response), nullptr); EXPECT_EQ(ResourceStatus::kPending, image_resource->GetStatus()); EXPECT_FALSE(observer->ImageNotifyFinishedCalled()); @@ -1312,8 +1339,10 @@ std::unique_ptr<MockImageResourceObserver> observer = MockImageResourceObserver::Create(image_resource->GetContent()); - ResourceResponse partial_response(test_url, "image/jpeg", - kJpegImageSubrangeWithoutDimensionsLength); + ResourceResponse partial_response(test_url); + partial_response.SetMimeType("image/jpeg"); + partial_response.SetExpectedContentLength( + kJpegImageSubrangeWithoutDimensionsLength); partial_response.SetHTTPStatusCode(206); partial_response.SetHTTPHeaderField( "content-range", @@ -1435,7 +1464,9 @@ const char kBadData[] = "notanimageresponse"; - ResourceResponse bad_response(test_url, "image/jpeg", sizeof(kBadData)); + ResourceResponse bad_response(test_url); + bad_response.SetMimeType("image/jpeg"); + bad_response.SetExpectedContentLength(sizeof(kBadData)); bad_response.SetHTTPStatusCode(206); bad_response.SetHTTPHeaderField( "content-range", BuildContentRange(sizeof(kBadData), sizeof(kJpegImage))); @@ -1477,7 +1508,9 @@ const char kBadData[] = "notanimageresponse"; - ResourceResponse bad_response(test_url, "image/jpeg", sizeof(kBadData)); + ResourceResponse bad_response(test_url); + bad_response.SetMimeType("image/jpeg"); + bad_response.SetExpectedContentLength(sizeof(kBadData)); bad_response.SetHTTPStatusCode(206); bad_response.SetHTTPHeaderField( "content-range", BuildContentRange(sizeof(kBadData), sizeof(kJpegImage))); @@ -1538,8 +1571,10 @@ // TODO(hiroshige): Make the range request header and partial content length // consistent. https://crbug.com/689760. - ResourceResponse partial_response( - test_url, "image/jpeg", kJpegImageSubrangeWithoutDimensionsLength); + ResourceResponse partial_response(test_url); + partial_response.SetMimeType("image/jpeg"); + partial_response.SetExpectedContentLength( + kJpegImageSubrangeWithoutDimensionsLength); partial_response.SetHTTPStatusCode(206); partial_response.SetHTTPHeaderField( "content-range", @@ -1686,12 +1721,14 @@ std::unique_ptr<MockImageResourceObserver> observer = MockImageResourceObserver::Create(image_resource->GetContent()); - ResourceResponse response(test_url, "image/jpeg", sizeof(kJpegImage)); - response.SetHTTPStatusCode(test.status_code); + ResourceResponse resource_response(test_url); + resource_response.SetMimeType("imapge/jpeg"); + resource_response.SetExpectedContentLength(sizeof(kJpegImage)); + resource_response.SetHTTPStatusCode(test.status_code); if (test.content_range != g_null_atom) - response.SetHTTPHeaderField("content-range", test.content_range); + resource_response.SetHTTPHeaderField("content-range", test.content_range); image_resource->Loader()->DidReceiveResponse( - WrappedResourceResponse(response)); + WrappedResourceResponse(resource_response)); image_resource->Loader()->DidReceiveData( reinterpret_cast<const char*>(kJpegImage), sizeof(kJpegImage)); image_resource->Loader()->DidFinishLoading(TimeTicks(), sizeof(kJpegImage), @@ -1745,12 +1782,14 @@ std::unique_ptr<MockImageResourceObserver> observer = MockImageResourceObserver::Create(image_resource->GetContent()); - ResourceResponse response(test_url, "image/jpeg", test.data_size); - response.SetHTTPStatusCode(test.status_code); + ResourceResponse resource_response(test_url); + resource_response.SetMimeType("image/jpeg"); + resource_response.SetExpectedContentLength(test.data_size); + resource_response.SetHTTPStatusCode(test.status_code); if (test.content_range != g_null_atom) - response.SetHTTPHeaderField("content-range", test.content_range); + resource_response.SetHTTPHeaderField("content-range", test.content_range); image_resource->Loader()->DidReceiveResponse( - WrappedResourceResponse(response)); + WrappedResourceResponse(resource_response)); image_resource->Loader()->DidReceiveData(kBadImageData, test.data_size); EXPECT_EQ(ResourceStatus::kDecodeError, image_resource->GetStatus()); @@ -1779,10 +1818,12 @@ static const char kBadImageData[] = "bad image data"; - ResourceResponse response(test_url, "image/jpeg", sizeof(kBadImageData)); - response.SetHTTPStatusCode(status_code); + ResourceResponse resource_response(test_url); + resource_response.SetMimeType("image/jpeg"); + resource_response.SetExpectedContentLength(sizeof(kBadImageData)); + resource_response.SetHTTPStatusCode(status_code); image_resource->Loader()->DidReceiveResponse( - WrappedResourceResponse(response)); + WrappedResourceResponse(resource_response)); image_resource->Loader()->DidReceiveData(kBadImageData, sizeof(kBadImageData)); @@ -1828,9 +1869,9 @@ MockImageResourceObserver::Create(image_resource->GetContent()); // Send the image response. - ResourceResponse resource_response(NullURL(), "image/jpeg", - sizeof(kJpegImage2)); - + ResourceResponse resource_response(NullURL()); + resource_response.SetMimeType("image/jpeg"); + resource_response.SetExpectedContentLength(sizeof(kJpegImage2)); image_resource->ResponseReceived(resource_response, nullptr); // This is number is sufficiently large amount of bytes necessary for the
diff --git a/third_party/blink/renderer/core/loader/resource/multipart_image_resource_parser_test.cc b/third_party/blink/renderer/core/loader/resource/multipart_image_resource_parser_test.cc index 03f2cd9..f3b1ae5 100644 --- a/third_party/blink/renderer/core/loader/resource/multipart_image_resource_parser_test.cc +++ b/third_party/blink/renderer/core/loader/resource/multipart_image_resource_parser_test.cc
@@ -80,7 +80,8 @@ } TEST(MultipartResponseTest, NoStartBoundary) { - ResourceResponse response(NullURL(), "multipart/x-mixed-replace"); + ResourceResponse response(NullURL()); + response.SetMimeType("multipart/x-mixed-replace"); response.SetHTTPHeaderField("Foo", "Bar"); response.SetHTTPHeaderField("Content-type", "text/plain"); MockClient* client = new MockClient; @@ -106,7 +107,8 @@ } TEST(MultipartResponseTest, NoEndBoundary) { - ResourceResponse response(NullURL(), "multipart/x-mixed-replace"); + ResourceResponse response(NullURL()); + response.SetMimeType("multipart/x-mixed-replace"); response.SetHTTPHeaderField("Foo", "Bar"); response.SetHTTPHeaderField("Content-type", "text/plain"); MockClient* client = new MockClient; @@ -130,7 +132,8 @@ } TEST(MultipartResponseTest, NoStartAndEndBoundary) { - ResourceResponse response(NullURL(), "multipart/x-mixed-replace"); + ResourceResponse response(NullURL()); + response.SetMimeType("multipart/x-mixed-replace"); response.SetHTTPHeaderField("Foo", "Bar"); response.SetHTTPHeaderField("Content-type", "text/plain"); MockClient* client = new MockClient; @@ -155,7 +158,8 @@ TEST(MultipartResponseTest, MalformedBoundary) { // Some servers send a boundary that is prefixed by "--". See bug 5786. - ResourceResponse response(NullURL(), "multipart/x-mixed-replace"); + ResourceResponse response(NullURL()); + response.SetMimeType("multipart/x-mixed-replace"); response.SetHTTPHeaderField("Foo", "Bar"); response.SetHTTPHeaderField("Content-type", "text/plain"); MockClient* client = new MockClient; @@ -203,7 +207,8 @@ "foofoofoofoofoo" // 86-100 "--bound--"; // 101-109 - ResourceResponse response(NullURL(), "multipart/x-mixed-replace"); + ResourceResponse response(NullURL()); + response.SetMimeType("multipart/x-mixed-replace"); MockClient* client = new MockClient; Vector<char> boundary; boundary.Append("bound", 5); @@ -305,7 +310,8 @@ } TEST(MultipartResponseTest, SmallChunk) { - ResourceResponse response(NullURL(), "multipart/x-mixed-replace"); + ResourceResponse response(NullURL()); + response.SetMimeType("multipart/x-mixed-replace"); response.SetHTTPHeaderField("Content-type", "text/plain"); MockClient* client = new MockClient; Vector<char> boundary; @@ -340,7 +346,8 @@ TEST(MultipartResponseTest, MultipleBoundaries) { // Test multiple boundaries back to back - ResourceResponse response(NullURL(), "multipart/x-mixed-replace"); + ResourceResponse response(NullURL()); + response.SetMimeType("multipart/x-mixed-replace"); MockClient* client = new MockClient; Vector<char> boundary; boundary.Append("bound", 5); @@ -357,7 +364,8 @@ } TEST(MultipartResponseTest, EatLeadingLF) { - ResourceResponse response(NullURL(), "multipart/x-mixed-replace"); + ResourceResponse response(NullURL()); + response.SetMimeType("multipart/x-mixed-replace"); MockClient* client = new MockClient; Vector<char> boundary; boundary.Append("bound", 5); @@ -386,7 +394,8 @@ } TEST(MultipartResponseTest, EatLeadingCRLF) { - ResourceResponse response(NullURL(), "multipart/x-mixed-replace"); + ResourceResponse response(NullURL()); + response.SetMimeType("multipart/x-mixed-replace"); MockClient* client = new MockClient; Vector<char> boundary; boundary.Append("bound", 5);
diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.cc b/third_party/blink/renderer/core/loader/worker_fetch_context.cc index d2bb4be..dca2eca 100644 --- a/third_party/blink/renderer/core/loader/worker_fetch_context.cc +++ b/third_party/blink/renderer/core/loader/worker_fetch_context.cc
@@ -414,6 +414,10 @@ return loading_task_runner_; } +bool WorkerFetchContext::DefersLoading() const { + return global_scope_->IsContextPaused(); +} + std::unique_ptr<blink::scheduler::WebResourceLoadingTaskRunnerHandle> WorkerFetchContext::CreateResourceLoadingTaskRunnerHandle() { return scheduler::WebResourceLoadingTaskRunnerHandle::CreateUnprioritized(
diff --git a/third_party/blink/renderer/core/loader/worker_fetch_context.h b/third_party/blink/renderer/core/loader/worker_fetch_context.h index e290130..113dd7a 100644 --- a/third_party/blink/renderer/core/loader/worker_fetch_context.h +++ b/third_party/blink/renderer/core/loader/worker_fetch_context.h
@@ -115,6 +115,7 @@ const FetchParameters::ResourceWidth&, ResourceRequest&) override; scoped_refptr<base::SingleThreadTaskRunner> GetLoadingTaskRunner() override; + bool DefersLoading() const override; std::unique_ptr<scheduler::WebResourceLoadingTaskRunnerHandle> CreateResourceLoadingTaskRunnerHandle() override;
diff --git a/third_party/blink/renderer/core/page/focus_controller.cc b/third_party/blink/renderer/core/page/focus_controller.cc index 188eae1..f2818d5 100644 --- a/third_party/blink/renderer/core/page/focus_controller.cc +++ b/third_party/blink/renderer/core/page/focus_controller.cc
@@ -764,7 +764,8 @@ : page_(page), is_active_(false), is_focused_(false), - is_changing_focused_frame_(false) {} + is_changing_focused_frame_(false), + is_emulating_focus_(false) {} FocusController* FocusController::Create(Page* page) { return new FocusController(page); @@ -887,18 +888,14 @@ focused_frame_->Tree().IsDescendantOf(document.GetFrame()); } -void FocusController::SetFocused(bool focused) { - if (IsFocused() == focused) - return; - - is_focused_ = focused; - - if (!is_focused_ && FocusedOrMainFrame()->IsLocalFrame()) +void FocusController::FocusHasChanged() { + bool focused = IsFocused(); + if (!focused && FocusedOrMainFrame()->IsLocalFrame()) ToLocalFrame(FocusedOrMainFrame())->GetEventHandler().StopAutoscroll(); // Do not set a focused frame when being unfocused. This might reset // m_isFocused to true. - if (!focused_frame_ && is_focused_) + if (!focused_frame_ && focused) SetFocusedFrame(page_->MainFrame()); // setFocusedFrame above might reject to update m_focusedFrame, or @@ -913,6 +910,26 @@ NotifyFocusChangedObservers(); } +void FocusController::SetFocused(bool focused) { + if (is_focused_ == focused) + return; + is_focused_ = focused; + if (!is_emulating_focus_) + FocusHasChanged(); +} + +void FocusController::SetFocusEmulationEnabled(bool emulate_focus) { + if (emulate_focus == is_emulating_focus_) + return; + bool active = IsActive(); + bool focused = IsFocused(); + is_emulating_focus_ = emulate_focus; + if (active != IsActive()) + ActiveHasChanged(); + if (focused != IsFocused()) + FocusHasChanged(); +} + bool FocusController::SetInitialFocus(WebFocusType type) { bool did_advance_focus = AdvanceFocus(type, true); @@ -1229,12 +1246,7 @@ return true; } -void FocusController::SetActive(bool active) { - if (is_active_ == active) - return; - - is_active_ = active; - +void FocusController::ActiveHasChanged() { Frame* frame = FocusedOrMainFrame(); if (frame->IsLocalFrame()) { Document* const document = @@ -1251,6 +1263,15 @@ } } +void FocusController::SetActive(bool active) { + if (is_active_ == active) + return; + + is_active_ = active; + if (!is_emulating_focus_) + ActiveHasChanged(); +} + static void UpdateFocusCandidateIfNeeded(WebFocusType direction, const FocusCandidate& current, FocusCandidate& candidate,
diff --git a/third_party/blink/renderer/core/page/focus_controller.h b/third_party/blink/renderer/core/page/focus_controller.h index 2b1194e..840b3d21 100644 --- a/third_party/blink/renderer/core/page/focus_controller.h +++ b/third_party/blink/renderer/core/page/focus_controller.h
@@ -91,10 +91,12 @@ bool SetFocusedElement(Element*, Frame*); void SetActive(bool); - bool IsActive() const { return is_active_; } + bool IsActive() const { return is_active_ || is_emulating_focus_; } void SetFocused(bool); - bool IsFocused() const { return is_focused_; } + bool IsFocused() const { return is_focused_ || is_emulating_focus_; } + + void SetFocusEmulationEnabled(bool); void RegisterFocusChangedObserver(FocusChangedObserver*); @@ -130,11 +132,15 @@ void NotifyFocusChangedObservers() const; + void ActiveHasChanged(); + void FocusHasChanged(); + Member<Page> page_; Member<Frame> focused_frame_; bool is_active_; bool is_focused_; bool is_changing_focused_frame_; + bool is_emulating_focus_; HeapHashSet<WeakMember<FocusChangedObserver>> focus_changed_observers_; DISALLOW_COPY_AND_ASSIGN(FocusController); };
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 43f1acd..e2a3288 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
@@ -2639,6 +2639,8 @@ [is_fixed_container, resized_by_url_bar](GraphicsLayer* layer) { layer->SetIsContainerForFixedPositionLayers(is_fixed_container); layer->SetIsResizedByBrowserControls(resized_by_url_bar); + // TODO(pdr): This prevents clipping and should not be needed, but + // CaptureScreenshotTest.CaptureScreenshotArea depends on this. if (resized_by_url_bar) layer->SetMasksToBounds(false); },
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 2c974bb..6a852b5 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
@@ -217,10 +217,6 @@ reasons |= CompositingReason::kActiveFilterAnimation; if (RequiresCompositingForBackdropFilterAnimation(style)) reasons |= CompositingReason::kActiveBackdropFilterAnimation; - // TODO(crbug.com/754471): remove the next two lines when the experiment is - // completed. - if (!style.ShouldCompositeForCurrentAnimations()) - reasons = CompositingReason::kNone; return reasons; }
diff --git a/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc b/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc index 9c192c4a..dbbbeb7 100644 --- a/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc +++ b/third_party/blink/renderer/core/paint/paint_property_tree_builder.cc
@@ -1860,7 +1860,7 @@ fragment_data_.SetPaintOffset(context_.current.paint_offset); fragment_data_.InvalidateClipPathCache(); - object_.GetFrameView()->SetNeedsIntersectionObservation( + object_.GetFrameView()->SetIntersectionObservationState( LocalFrameView::kDesired); }
diff --git a/third_party/blink/renderer/core/scheduler/frame_throttling_test.cc b/third_party/blink/renderer/core/scheduler/frame_throttling_test.cc index dd9ee9b..e2322a1 100644 --- a/third_party/blink/renderer/core/scheduler/frame_throttling_test.cc +++ b/third_party/blink/renderer/core/scheduler/frame_throttling_test.cc
@@ -191,7 +191,7 @@ EXPECT_TRUE(inner_frame_document->View()->ShouldThrottleRendering()); // An intersection observation overrides... - inner_frame_document->View()->SetNeedsIntersectionObservation( + inner_frame_document->View()->SetIntersectionObservationState( LocalFrameView::kRequired); EXPECT_FALSE(inner_frame_document->View()->ShouldThrottleRendering()); inner_frame_document->View()->ScheduleAnimation();
diff --git a/third_party/blink/renderer/core/script/BUILD.gn b/third_party/blink/renderer/core/script/BUILD.gn index cd40d44..ff592b2 100644 --- a/third_party/blink/renderer/core/script/BUILD.gn +++ b/third_party/blink/renderer/core/script/BUILD.gn
@@ -18,11 +18,8 @@ "document_write_intervention.h", "dynamic_module_resolver.cc", "dynamic_module_resolver.h", - "fetch_client_settings_object.h", "fetch_client_settings_object_impl.cc", "fetch_client_settings_object_impl.h", - "fetch_client_settings_object_snapshot.cc", - "fetch_client_settings_object_snapshot.h", "html_parser_script_runner.cc", "html_parser_script_runner.h", "html_parser_script_runner_host.h",
diff --git a/third_party/blink/renderer/core/script/dynamic_module_resolver.cc b/third_party/blink/renderer/core/script/dynamic_module_resolver.cc index 6a1f828..ade05ba 100644 --- a/third_party/blink/renderer/core/script/dynamic_module_resolver.cc +++ b/third_party/blink/renderer/core/script/dynamic_module_resolver.cc
@@ -8,11 +8,11 @@ #include "third_party/blink/renderer/bindings/core/v8/referrer_script_info.h" #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/core/loader/modulescript/module_script_fetch_request.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/core/script/modulator.h" #include "third_party/blink/renderer/core/script/module_script.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/bindings/v8_throw_exception.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" #include "v8/include/v8.h" namespace blink { @@ -220,7 +220,7 @@ auto* execution_context = ExecutionContext::From(modulator_->GetScriptState()); modulator_->FetchTree( - url, new FetchClientSettingsObjectSnapshot(*execution_context), + url, execution_context->CreateFetchClientSettingsObjectSnapshot(), WebURLRequest::kRequestContextScript, options, ModuleScriptCustomFetchType::kNone, tree_client);
diff --git a/third_party/blink/renderer/core/script/fetch_client_settings_object_impl.h b/third_party/blink/renderer/core/script/fetch_client_settings_object_impl.h index e6f284b..9ba47f0 100644 --- a/third_party/blink/renderer/core/script/fetch_client_settings_object_impl.h +++ b/third_party/blink/renderer/core/script/fetch_client_settings_object_impl.h
@@ -6,9 +6,9 @@ #define THIRD_PARTY_BLINK_RENDERER_CORE_SCRIPT_FETCH_CLIENT_SETTINGS_OBJECT_IMPL_H_ #include "third_party/blink/renderer/core/core_export.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object.h" #include "third_party/blink/renderer/platform/cross_thread_copier.h" #include "third_party/blink/renderer/platform/heap/member.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object.h" #include "third_party/blink/renderer/platform/loader/fetch/https_state.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h" #include "third_party/blink/renderer/platform/weborigin/referrer_policy.h"
diff --git a/third_party/blink/renderer/core/script/modulator_impl_base.cc b/third_party/blink/renderer/core/script/modulator_impl_base.cc index f3f3203f..5b9a6627 100644 --- a/third_party/blink/renderer/core/script/modulator_impl_base.cc +++ b/third_party/blink/renderer/core/script/modulator_impl_base.cc
@@ -11,12 +11,12 @@ #include "third_party/blink/renderer/core/loader/modulescript/module_tree_linker.h" #include "third_party/blink/renderer/core/loader/modulescript/module_tree_linker_registry.h" #include "third_party/blink/renderer/core/script/dynamic_module_resolver.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/core/script/layered_api.h" #include "third_party/blink/renderer/core/script/module_map.h" #include "third_party/blink/renderer/core/script/module_script.h" #include "third_party/blink/renderer/core/script/script_module_resolver_impl.h" #include "third_party/blink/renderer/platform/bindings/v8_throw_exception.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" namespace blink {
diff --git a/third_party/blink/renderer/core/script/module_map_test.cc b/third_party/blink/renderer/core/script/module_map_test.cc index 9926a08..4391d56f 100644 --- a/third_party/blink/renderer/core/script/module_map_test.cc +++ b/third_party/blink/renderer/core/script/module_map_test.cc
@@ -11,7 +11,6 @@ #include "third_party/blink/renderer/core/loader/modulescript/module_script_fetch_request.h" #include "third_party/blink/renderer/core/loader/modulescript/module_script_fetcher.h" #include "third_party/blink/renderer/core/loader/modulescript/module_script_loader_client.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/core/script/modulator.h" #include "third_party/blink/renderer/core/script/module_script.h" #include "third_party/blink/renderer/core/script/script_module_resolver.h" @@ -19,6 +18,7 @@ #include "third_party/blink/renderer/core/testing/dummy_page_holder.h" #include "third_party/blink/renderer/core/testing/page_test_base.h" #include "third_party/blink/renderer/platform/heap/handle.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/platform/testing/testing_platform_support_with_mock_scheduler.h" namespace blink { @@ -209,7 +209,8 @@ platform->AdvanceClockSeconds(1.); // For non-zero DocumentParserTimings KURL url(NullURL(), "https://example.com/foo.js"); - auto* settings_object = new FetchClientSettingsObjectSnapshot(GetDocument()); + auto* settings_object = + GetDocument().CreateFetchClientSettingsObjectSnapshot(); // First request TestSingleModuleClient* client = new TestSingleModuleClient; @@ -255,7 +256,8 @@ platform->AdvanceClockSeconds(1.); // For non-zero DocumentParserTimings KURL url(NullURL(), "https://example.com/foo.js"); - auto* settings_object = new FetchClientSettingsObjectSnapshot(GetDocument()); + auto* settings_object = + GetDocument().CreateFetchClientSettingsObjectSnapshot(); // First request TestSingleModuleClient* client = new TestSingleModuleClient;
diff --git a/third_party/blink/renderer/core/script/script_loader.cc b/third_party/blink/renderer/core/script/script_loader.cc index abd35d7..a97042b4 100644 --- a/third_party/blink/renderer/core/script/script_loader.cc +++ b/third_party/blink/renderer/core/script/script_loader.cc
@@ -40,7 +40,6 @@ #include "third_party/blink/renderer/core/loader/subresource_integrity_helper.h" #include "third_party/blink/renderer/core/script/classic_pending_script.h" #include "third_party/blink/renderer/core/script/classic_script.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/core/script/modulator.h" #include "third_party/blink/renderer/core/script/module_pending_script.h" #include "third_party/blink/renderer/core/script/script.h" @@ -51,6 +50,7 @@ #include "third_party/blink/renderer/platform/feature_policy/feature_policy.h" #include "third_party/blink/renderer/platform/histogram.h" #include "third_party/blink/renderer/platform/loader/fetch/access_control_status.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/platform/loader/fetch/fetch_parameters.h" #include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h" #include "third_party/blink/renderer/platform/loader/subresource_integrity.h" @@ -417,7 +417,7 @@ // // Note: We use |element_document| as "settings object" in the steps below. auto* settings_object = - new FetchClientSettingsObjectSnapshot(element_document); + element_document.CreateFetchClientSettingsObjectSnapshot(); // <spec step="24">If the element has a src content attribute, then:</spec> if (element_->HasSourceAttribute()) {
diff --git a/third_party/blink/renderer/core/svg/svg_image_element.cc b/third_party/blink/renderer/core/svg/svg_image_element.cc index 4cb775d..74bf3da 100644 --- a/third_party/blink/renderer/core/svg/svg_image_element.cc +++ b/third_party/blink/renderer/core/svg/svg_image_element.cc
@@ -27,6 +27,7 @@ #include "third_party/blink/renderer/core/html/media/media_element_parser_helpers.h" #include "third_party/blink/renderer/core/inspector/console_message.h" #include "third_party/blink/renderer/core/layout/layout_image_resource.h" +#include "third_party/blink/renderer/core/layout/layout_replaced.h" #include "third_party/blink/renderer/core/layout/svg/layout_svg_image.h" #include "third_party/blink/renderer/core/svg_names.h" @@ -35,6 +36,7 @@ inline SVGImageElement::SVGImageElement(Document& document) : SVGGraphicsElement(SVGNames::imageTag, document), SVGURIReference(this), + is_default_overridden_intrinsic_size_(false), x_(SVGAnimatedLength::Create(this, SVGNames::xAttr, SVGLengthMode::kWidth, @@ -64,6 +66,13 @@ AddToPropertyMap(width_); AddToPropertyMap(height_); AddToPropertyMap(preserve_aspect_ratio_); + + if (MediaElementParserHelpers::IsMediaElement(this) && + !MediaElementParserHelpers::IsUnsizedMediaEnabled(document)) { + is_default_overridden_intrinsic_size_ = true; + overridden_intrinsic_size_ = + IntSize(LayoutReplaced::kDefaultWidth, LayoutReplaced::kDefaultHeight); + } } DEFINE_NODE_FACTORY(SVGImageElement) @@ -168,7 +177,8 @@ String message; bool intrinsic_size_changed = MediaElementParserHelpers::ParseIntrinsicSizeAttribute( - params.new_value, &overridden_intrinsic_size_, &message); + params.new_value, this, &overridden_intrinsic_size_, + &is_default_overridden_intrinsic_size_, &message); if (!message.IsEmpty()) { GetDocument().AddConsoleMessage(ConsoleMessage::Create( kOtherMessageSource, kWarningMessageLevel, message));
diff --git a/third_party/blink/renderer/core/svg/svg_image_element.h b/third_party/blink/renderer/core/svg/svg_image_element.h index be1c547..711256c 100644 --- a/third_party/blink/renderer/core/svg/svg_image_element.h +++ b/third_party/blink/renderer/core/svg/svg_image_element.h
@@ -69,6 +69,10 @@ return GetImageLoader().GetContent(); } + bool IsDefaultIntrinsicSize() const { + return is_default_overridden_intrinsic_size_; + } + private: explicit SVGImageElement(Document&); @@ -98,6 +102,7 @@ SVGImageLoader& GetImageLoader() const override { return *image_loader_; } IntSize overridden_intrinsic_size_; + bool is_default_overridden_intrinsic_size_; Member<SVGAnimatedLength> x_; Member<SVGAnimatedLength> y_;
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker.cc b/third_party/blink/renderer/core/workers/dedicated_worker.cc index 4cfac17..5d6f2c2 100644 --- a/third_party/blink/renderer/core/workers/dedicated_worker.cc +++ b/third_party/blink/renderer/core/workers/dedicated_worker.cc
@@ -24,7 +24,6 @@ #include "third_party/blink/renderer/core/origin_trials/origin_trial_context.h" #include "third_party/blink/renderer/core/page/page.h" #include "third_party/blink/renderer/core/probe/core_probes.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/core/script/script.h" #include "third_party/blink/renderer/core/workers/dedicated_worker_messaging_proxy.h" #include "third_party/blink/renderer/core/workers/worker_classic_script_loader.h" @@ -33,6 +32,7 @@ #include "third_party/blink/renderer/core/workers/worker_global_scope.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/bindings/script_state.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/platform/weborigin/security_policy.h" namespace blink { @@ -192,7 +192,7 @@ // the worker thread as opposed to classic scripts that are fetched on the // main thread. auto* outside_settings_object = - new FetchClientSettingsObjectSnapshot(*GetExecutionContext()); + GetExecutionContext()->CreateFetchClientSettingsObjectSnapshot(); context_proxy_->StartWorkerGlobalScope( CreateGlobalScopeCreationParams(script_request_url_), options_, script_request_url_, outside_settings_object, stack_id, @@ -299,7 +299,7 @@ CreateGlobalScopeCreationParams(script_response_url); creation_params->referrer_policy = referrer_policy; auto* outside_settings_object = - new FetchClientSettingsObjectSnapshot(*GetExecutionContext()); + GetExecutionContext()->CreateFetchClientSettingsObjectSnapshot(); context_proxy_->StartWorkerGlobalScope( std::move(creation_params), options_, script_response_url, outside_settings_object, stack_id,
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc index ec38d83..adf6ee9 100644 --- a/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc +++ b/third_party/blink/renderer/core/workers/dedicated_worker_global_scope.cc
@@ -39,7 +39,6 @@ #include "third_party/blink/renderer/core/inspector/thread_debugger.h" #include "third_party/blink/renderer/core/messaging/post_message_options.h" #include "third_party/blink/renderer/core/origin_trials/origin_trial_context.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/core/script/modulator.h" #include "third_party/blink/renderer/core/workers/dedicated_worker_object_proxy.h" #include "third_party/blink/renderer/core/workers/dedicated_worker_thread.h" @@ -48,6 +47,7 @@ #include "third_party/blink/renderer/core/workers/worker_module_tree_client.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/bindings/script_state.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" namespace blink {
diff --git a/third_party/blink/renderer/core/workers/dedicated_worker_object_proxy.cc b/third_party/blink/renderer/core/workers/dedicated_worker_object_proxy.cc index ef290620..88aa262c 100644 --- a/third_party/blink/renderer/core/workers/dedicated_worker_object_proxy.cc +++ b/third_party/blink/renderer/core/workers/dedicated_worker_object_proxy.cc
@@ -43,7 +43,6 @@ #include "third_party/blink/renderer/core/execution_context/execution_context.h" #include "third_party/blink/renderer/core/frame/user_activation.h" #include "third_party/blink/renderer/core/inspector/console_message.h" -#include "third_party/blink/renderer/core/inspector/thread_debugger.h" #include "third_party/blink/renderer/core/workers/dedicated_worker_messaging_proxy.h" #include "third_party/blink/renderer/core/workers/parent_execution_context_task_runners.h" #include "third_party/blink/renderer/core/workers/worker_global_scope.h" @@ -77,22 +76,8 @@ void DedicatedWorkerObjectProxy::ProcessMessageFromWorkerObject( BlinkTransferableMessage message, WorkerThread* worker_thread) { - WorkerGlobalScope* global_scope = - ToWorkerGlobalScope(worker_thread->GlobalScope()); - MessagePortArray* ports = - MessagePort::EntanglePorts(*global_scope, std::move(message.ports)); - - ThreadDebugger* debugger = ThreadDebugger::From(worker_thread->GetIsolate()); - debugger->ExternalAsyncTaskStarted(message.sender_stack_trace_id); - UserActivation* user_activation = nullptr; - if (message.user_activation) { - user_activation = - new UserActivation(message.user_activation->has_been_active, - message.user_activation->was_active); - } - global_scope->DispatchEvent(*MessageEvent::Create( - ports, std::move(message.message), user_activation)); - debugger->ExternalAsyncTaskFinished(message.sender_stack_trace_id); + ToWorkerGlobalScope(worker_thread->GlobalScope()) + ->ReceiveMessagePausable(std::move(message)); } void DedicatedWorkerObjectProxy::ProcessUnhandledException(
diff --git a/third_party/blink/renderer/core/workers/experimental/thread_pool.cc b/third_party/blink/renderer/core/workers/experimental/thread_pool.cc index d5dd2640..7800019 100644 --- a/third_party/blink/renderer/core/workers/experimental/thread_pool.cc +++ b/third_party/blink/renderer/core/workers/experimental/thread_pool.cc
@@ -14,7 +14,6 @@ #include "third_party/blink/renderer/core/inspector/main_thread_debugger.h" #include "third_party/blink/renderer/core/origin_trials/origin_trial_context.h" #include "third_party/blink/renderer/core/probe/core_probes.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/core/workers/dedicated_worker_messaging_proxy.h" #include "third_party/blink/renderer/core/workers/threaded_messaging_proxy_base.h" #include "third_party/blink/renderer/core/workers/threaded_object_proxy_base.h" @@ -23,6 +22,7 @@ #include "third_party/blink/renderer/core/workers/worker_options.h" #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/cross_thread_functional.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.h" namespace blink {
diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.cc b/third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.cc index 0d8d478a..28ceb5f 100644 --- a/third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.cc +++ b/third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.cc
@@ -14,7 +14,6 @@ #include "third_party/blink/renderer/core/inspector/thread_debugger.h" #include "third_party/blink/renderer/core/loader/worker_fetch_context.h" #include "third_party/blink/renderer/core/origin_trials/origin_trial_context.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/core/script/script.h" #include "third_party/blink/renderer/core/workers/global_scope_creation_params.h" #include "third_party/blink/renderer/core/workers/threaded_worklet_object_proxy.h" @@ -25,6 +24,7 @@ #include "third_party/blink/renderer/core/workers/worklet_module_responses_map.h" #include "third_party/blink/renderer/core/workers/worklet_pending_tasks.h" #include "third_party/blink/renderer/platform/cross_thread_functional.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/platform/web_task_runner.h" namespace blink {
diff --git a/third_party/blink/renderer/core/workers/threaded_worklet_object_proxy.cc b/third_party/blink/renderer/core/workers/threaded_worklet_object_proxy.cc index cd380d7..7dbe518 100644 --- a/third_party/blink/renderer/core/workers/threaded_worklet_object_proxy.cc +++ b/third_party/blink/renderer/core/workers/threaded_worklet_object_proxy.cc
@@ -8,10 +8,10 @@ #include <utility> #include "base/memory/ptr_util.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/core/workers/threaded_worklet_global_scope.h" #include "third_party/blink/renderer/core/workers/threaded_worklet_messaging_proxy.h" #include "third_party/blink/renderer/core/workers/worker_thread.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" namespace blink {
diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.cc b/third_party/blink/renderer/core/workers/worker_global_scope.cc index 93f1dd6d..398301b 100644 --- a/third_party/blink/renderer/core/workers/worker_global_scope.cc +++ b/third_party/blink/renderer/core/workers/worker_global_scope.cc
@@ -39,12 +39,15 @@ #include "third_party/blink/renderer/core/dom/events/event.h" #include "third_party/blink/renderer/core/dom/pausable_object.h" #include "third_party/blink/renderer/core/events/error_event.h" +#include "third_party/blink/renderer/core/events/message_event.h" #include "third_party/blink/renderer/core/frame/dom_timer_coordinator.h" +#include "third_party/blink/renderer/core/frame/user_activation.h" #include "third_party/blink/renderer/core/inspector/console_message.h" #include "third_party/blink/renderer/core/inspector/console_message_storage.h" #include "third_party/blink/renderer/core/inspector/worker_inspector_controller.h" #include "third_party/blink/renderer/core/inspector/worker_thread_debugger.h" #include "third_party/blink/renderer/core/loader/threadable_loader.h" +#include "third_party/blink/renderer/core/messaging/message_port.h" #include "third_party/blink/renderer/core/origin_trials/origin_trial_context.h" #include "third_party/blink/renderer/core/probe/core_probes.h" #include "third_party/blink/renderer/core/workers/global_scope_creation_params.h" @@ -57,6 +60,7 @@ #include "third_party/blink/renderer/platform/bindings/exception_state.h" #include "third_party/blink/renderer/platform/cross_thread_functional.h" #include "third_party/blink/renderer/platform/instance_counters.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/platform/loader/fetch/memory_cache.h" #include "third_party/blink/renderer/platform/network/content_security_policy_parsers.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" @@ -96,6 +100,7 @@ void WorkerGlobalScope::Dispose() { DCHECK(IsContextThread()); closing_ = true; + paused_calls_.clear(); WorkerOrWorkletGlobalScope::Dispose(); } @@ -307,6 +312,74 @@ return const_cast<WorkerGlobalScope*>(this); } +void WorkerGlobalScope::TasksWereUnpaused() { + WorkerOrWorkletGlobalScope::TasksWereUnpaused(); + Vector<base::OnceClosure> calls; + paused_calls_.swap(calls); + for (auto& call : calls) + std::move(call).Run(); +} + +void WorkerGlobalScope::EvaluateClassicScriptPausable( + const KURL& script_url, + String source_code, + std::unique_ptr<Vector<char>> cached_meta_data, + const v8_inspector::V8StackTraceId& stack_id) { + if (IsContextPaused()) { + paused_calls_.push_back( + WTF::Bind(&WorkerGlobalScope::EvaluateClassicScriptPausable, + WrapWeakPersistent(this), script_url, source_code, + WTF::Passed(std::move(cached_meta_data)), stack_id)); + return; + } + ThreadDebugger* debugger = ThreadDebugger::From(GetThread()->GetIsolate()); + if (debugger) + debugger->ExternalAsyncTaskStarted(stack_id); + EvaluateClassicScript(script_url, source_code, std::move(cached_meta_data)); + if (debugger) + debugger->ExternalAsyncTaskFinished(stack_id); +} + +void WorkerGlobalScope::ImportModuleScriptPausable( + const KURL& module_url_record, + FetchClientSettingsObjectSnapshot* outside_settings_object, + network::mojom::FetchCredentialsMode mode) { + if (IsContextPaused()) { + paused_calls_.push_back( + WTF::Bind(&WorkerGlobalScope::ImportModuleScriptPausable, + WrapWeakPersistent(this), module_url_record, + WrapPersistent(outside_settings_object), mode)); + return; + } + ImportModuleScript(module_url_record, outside_settings_object, mode); +} + +void WorkerGlobalScope::ReceiveMessagePausable( + BlinkTransferableMessage message) { + if (IsContextPaused()) { + paused_calls_.push_back( + WTF::Bind(&WorkerGlobalScope::ReceiveMessagePausable, + WrapWeakPersistent(this), std::move(message))); + return; + } + + MessagePortArray* ports = + MessagePort::EntanglePorts(*this, std::move(message.ports)); + ThreadDebugger* debugger = ThreadDebugger::From(GetThread()->GetIsolate()); + if (debugger) + debugger->ExternalAsyncTaskStarted(message.sender_stack_trace_id); + UserActivation* user_activation = nullptr; + if (message.user_activation) { + user_activation = + new UserActivation(message.user_activation->has_been_active, + message.user_activation->was_active); + } + DispatchEvent(*MessageEvent::Create(ports, std::move(message.message), + user_activation)); + if (debugger) + debugger->ExternalAsyncTaskFinished(message.sender_stack_trace_id); +} + void WorkerGlobalScope::EvaluateClassicScript( const KURL& script_url, String source_code,
diff --git a/third_party/blink/renderer/core/workers/worker_global_scope.h b/third_party/blink/renderer/core/workers/worker_global_scope.h index 7f9a88f..982fd28 100644 --- a/third_party/blink/renderer/core/workers/worker_global_scope.h +++ b/third_party/blink/renderer/core/workers/worker_global_scope.h
@@ -39,6 +39,7 @@ #include "third_party/blink/renderer/core/frame/csp/content_security_policy.h" #include "third_party/blink/renderer/core/frame/dom_timer_coordinator.h" #include "third_party/blink/renderer/core/frame/dom_window_base64.h" +#include "third_party/blink/renderer/core/messaging/blink_transferable_message.h" #include "third_party/blink/renderer/core/script/script.h" #include "third_party/blink/renderer/core/workers/worker_animation_frame_provider.h" #include "third_party/blink/renderer/core/workers/worker_or_worklet_global_scope.h" @@ -133,17 +134,18 @@ // EventTarget ExecutionContext* GetExecutionContext() const final; - // Evaluates the given top-level classic script. - virtual void EvaluateClassicScript( + // The following methods implement PausbaleObject semantic + // so that WorkerGlobalScope can be paused. + void EvaluateClassicScriptPausable( const KURL& script_url, String source_code, - std::unique_ptr<Vector<char>> cached_meta_data); - - // Imports the top-level module script for |module_url_record|. - virtual void ImportModuleScript( + std::unique_ptr<Vector<char>> cached_meta_data, + const v8_inspector::V8StackTraceId& stack_id); + void ImportModuleScriptPausable( const KURL& module_url_record, FetchClientSettingsObjectSnapshot* outside_settings_object, - network::mojom::FetchCredentialsMode) = 0; + network::mojom::FetchCredentialsMode); + void ReceiveMessagePausable(BlinkTransferableMessage); base::TimeTicks TimeOrigin() const { return time_origin_; } WorkerSettings* GetWorkerSettings() const { return worker_settings_.get(); } @@ -172,6 +174,18 @@ void ExceptionThrown(ErrorEvent*) override; void RemoveURLFromMemoryCache(const KURL&) final; + // Evaluates the given top-level classic script. + virtual void EvaluateClassicScript( + const KURL& script_url, + String source_code, + std::unique_ptr<Vector<char>> cached_meta_data); + + // Imports the top-level module script for |module_url_record|. + virtual void ImportModuleScript( + const KURL& module_url_record, + FetchClientSettingsObjectSnapshot* outside_settings_object, + network::mojom::FetchCredentialsMode) = 0; + private: void SetWorkerSettings(std::unique_ptr<WorkerSettings>); @@ -204,6 +218,7 @@ // ExecutionContext EventTarget* ErrorEventTarget() final { return this; } + void TasksWereUnpaused() override; const KURL url_; const ScriptType script_type_; @@ -234,6 +249,8 @@ const base::UnguessableToken agent_cluster_id_; HttpsState https_state_; + + Vector<base::OnceClosure> paused_calls_; }; DEFINE_TYPE_CASTS(WorkerGlobalScope,
diff --git a/third_party/blink/renderer/core/workers/worker_inspector_proxy.cc b/third_party/blink/renderer/core/workers/worker_inspector_proxy.cc index 307b971c..c06bfa4 100644 --- a/third_party/blink/renderer/core/workers/worker_inspector_proxy.cc +++ b/third_party/blink/renderer/core/workers/worker_inspector_proxy.cc
@@ -16,6 +16,7 @@ #include "third_party/blink/renderer/core/workers/worker_thread.h" #include "third_party/blink/renderer/platform/cross_thread_functional.h" #include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h" +#include "third_party/blink/renderer/platform/web_task_runner.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h" namespace blink { @@ -97,7 +98,8 @@ return; DCHECK(page_inspectors_.find(session_id) == page_inspectors_.end()); page_inspectors_.insert(session_id, page_inspector); - worker_thread_->AppendDebuggerTask( + PostCrossThreadTask( + *worker_thread_->GetTaskRunner(TaskType::kInternalInspector), FROM_HERE, CrossThreadBind(ConnectToWorkerGlobalScopeInspectorTask, CrossThreadUnretained(worker_thread_), session_id)); } @@ -117,7 +119,8 @@ DCHECK(page_inspectors_.at(session_id) == page_inspector); page_inspectors_.erase(session_id); if (worker_thread_) { - worker_thread_->AppendDebuggerTask( + PostCrossThreadTask( + *worker_thread_->GetTaskRunner(TaskType::kInternalInspector), FROM_HERE, CrossThreadBind(DisconnectFromWorkerGlobalScopeInspectorTask, CrossThreadUnretained(worker_thread_), session_id)); } @@ -134,8 +137,21 @@ void WorkerInspectorProxy::SendMessageToInspector(int session_id, const String& message) { - if (worker_thread_) { - worker_thread_->AppendDebuggerTask( + if (!worker_thread_) + return; + + String method; + protocol::UberDispatcher dispatcher(nullptr); + dispatcher.parseCommand(protocol::StringUtil::parseJSON(message).get(), + nullptr, &method); + + if (InspectorSession::ShouldInterruptForMethod(method)) { + worker_thread_->GetInspectorTaskRunner()->AppendTask( + CrossThreadBind(DispatchOnInspectorBackendTask, session_id, message, + CrossThreadUnretained(worker_thread_))); + } else { + PostCrossThreadTask( + *worker_thread_->GetTaskRunner(TaskType::kInternalInspector), FROM_HERE, CrossThreadBind(DispatchOnInspectorBackendTask, session_id, message, CrossThreadUnretained(worker_thread_))); }
diff --git a/third_party/blink/renderer/core/workers/worker_or_worklet_global_scope.cc b/third_party/blink/renderer/core/workers/worker_or_worklet_global_scope.cc index 8ca15fa5..fe305c6 100644 --- a/third_party/blink/renderer/core/workers/worker_or_worklet_global_scope.cc +++ b/third_party/blink/renderer/core/workers/worker_or_worklet_global_scope.cc
@@ -100,9 +100,12 @@ return resource_fetcher_; WorkerFetchContext* fetch_context = WorkerFetchContext::Create(*this); resource_fetcher_ = ResourceFetcher::Create(fetch_context); + if (IsContextPaused()) + resource_fetcher_->SetDefersLoading(true); DCHECK(resource_fetcher_); return resource_fetcher_; } + ResourceFetcher* WorkerOrWorkletGlobalScope::Fetcher() const { DCHECK(IsContextThread()); DCHECK(resource_fetcher_); @@ -198,6 +201,18 @@ destination, options, custom_fetch_type, client); } +void WorkerOrWorkletGlobalScope::TasksWerePaused() { + ExecutionContext::TasksWerePaused(); + if (resource_fetcher_) + resource_fetcher_->SetDefersLoading(true); +} + +void WorkerOrWorkletGlobalScope::TasksWereUnpaused() { + ExecutionContext::TasksWereUnpaused(); + if (resource_fetcher_) + resource_fetcher_->SetDefersLoading(false); +} + void WorkerOrWorkletGlobalScope::Trace(blink::Visitor* visitor) { visitor->Trace(resource_fetcher_); visitor->Trace(script_controller_);
diff --git a/third_party/blink/renderer/core/workers/worker_or_worklet_global_scope.h b/third_party/blink/renderer/core/workers/worker_or_worklet_global_scope.h index c99979d..c4d55d0 100644 --- a/third_party/blink/renderer/core/workers/worker_or_worklet_global_scope.h +++ b/third_party/blink/renderer/core/workers/worker_or_worklet_global_scope.h
@@ -114,6 +114,9 @@ ModuleScriptCustomFetchType, ModuleTreeClient*); + void TasksWerePaused() override; + void TasksWereUnpaused() override; + private: CrossThreadPersistent<WorkerClients> worker_clients_; Member<ResourceFetcher> resource_fetcher_;
diff --git a/third_party/blink/renderer/core/workers/worker_thread.cc b/third_party/blink/renderer/core/workers/worker_thread.cc index 8d208f7..36ee681 100644 --- a/third_party/blink/renderer/core/workers/worker_thread.cc +++ b/third_party/blink/renderer/core/workers/worker_thread.cc
@@ -39,7 +39,6 @@ #include "third_party/blink/renderer/core/inspector/worker_inspector_controller.h" #include "third_party/blink/renderer/core/inspector/worker_thread_debugger.h" #include "third_party/blink/renderer/core/probe/core_probes.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/core/workers/global_scope_creation_params.h" #include "third_party/blink/renderer/core/workers/threaded_worklet_global_scope.h" #include "third_party/blink/renderer/core/workers/worker_backing_thread.h" @@ -50,6 +49,7 @@ #include "third_party/blink/renderer/platform/cross_thread_functional.h" #include "third_party/blink/renderer/platform/heap/thread_state.h" #include "third_party/blink/renderer/platform/histogram.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/platform/runtime_enabled_features.h" #include "third_party/blink/renderer/platform/scheduler/child/webthread_impl_for_worker_scheduler.h" #include "third_party/blink/renderer/platform/scheduler/public/worker_scheduler.h" @@ -108,6 +108,19 @@ DISALLOW_COPY_AND_ASSIGN(RefCountedWaitableEvent); }; +WorkerThread::ScopedDebuggerTask::ScopedDebuggerTask(WorkerThread* thread) + : thread_(thread) { + MutexLocker lock(thread_->mutex_); + DCHECK(thread_->IsCurrentThread()); + thread_->debugger_task_counter_++; +} + +WorkerThread::ScopedDebuggerTask::~ScopedDebuggerTask() { + MutexLocker lock(thread_->mutex_); + DCHECK(thread_->IsCurrentThread()); + thread_->debugger_task_counter_--; +} + WorkerThread::~WorkerThread() { MutexLocker lock(ThreadSetMutex()); DCHECK(WorkerThreads().Contains(this)); @@ -261,26 +274,9 @@ return GetWorkerBackingThread().BackingThread().IsCurrentThread(); } -void WorkerThread::AppendDebuggerTask(CrossThreadClosure task) { +InspectorTaskRunner* WorkerThread::GetInspectorTaskRunner() { DCHECK_CALLED_ON_VALID_THREAD(parent_thread_checker_); - inspector_task_runner_->AppendTask(std::move(task)); -} - -void WorkerThread::StartRunningDebuggerTasksOnPauseOnWorkerThread() { - DCHECK(IsCurrentThread()); - if (worker_inspector_controller_) - worker_inspector_controller_->FlushProtocolNotifications(); - paused_in_debugger_ = true; - do { - if (!inspector_task_runner_->WaitForAndRunSingleTask()) - break; - // Keep waiting until execution is resumed. - } while (paused_in_debugger_); -} - -void WorkerThread::StopRunningDebuggerTasksOnPauseOnWorkerThread() { - DCHECK(IsCurrentThread()); - paused_in_debugger_ = false; + return inspector_task_runner_.get(); } WorkerOrWorkletGlobalScope* WorkerThread::GlobalScope() { @@ -394,7 +390,7 @@ // Terminating during debugger task may lead to crash due to heavy use // of v8 api in debugger. Any debugger task is guaranteed to finish, so // we can wait for the completion. - return !inspector_task_runner_->IsRunningTask(); + return !debugger_task_counter_; case ThreadState::kReadyToShutdown: // Shutdown sequence will surely start soon. Don't have to schedule a // termination task. @@ -478,20 +474,23 @@ SetThreadState(ThreadState::kRunning); } + if (CheckRequestedToTerminate()) { + // Stop further worker tasks from running after this point. WorkerThread + // was requested to terminate before initialization. + // PerformShutdownOnWorkerThread() will be called soon. + PrepareForShutdownOnWorkerThread(); + return; + } + // It is important that no code is run on the Isolate between // initializing InspectorTaskRunner and pausing on start. // Otherwise, InspectorTaskRunner might interrupt isolate execution // from another thread and try to resume "pause on start" before // we even paused. - if (pause_on_start == WorkerInspectorProxy::PauseOnWorkerStart::kPause) - StartRunningDebuggerTasksOnPauseOnWorkerThread(); - - if (CheckRequestedToTerminate()) { - // Stop further worker tasks from running after this point. WorkerThread - // was requested to terminate before initialization or during running - // debugger tasks. PerformShutdownOnWorkerThread() will be called soon. - PrepareForShutdownOnWorkerThread(); - return; + if (pause_on_start == WorkerInspectorProxy::PauseOnWorkerStart::kPause) { + WorkerThreadDebugger* debugger = WorkerThreadDebugger::From(GetIsolate()); + if (debugger) + debugger->PauseWorkerOnStart(this); } } @@ -500,12 +499,9 @@ String source_code, std::unique_ptr<Vector<char>> cached_meta_data, const v8_inspector::V8StackTraceId& stack_id) { - WorkerThreadDebugger* debugger = WorkerThreadDebugger::From(GetIsolate()); - debugger->ExternalAsyncTaskStarted(stack_id); ToWorkerGlobalScope(GlobalScope()) - ->EvaluateClassicScript(script_url, std::move(source_code), - std::move(cached_meta_data)); - debugger->ExternalAsyncTaskFinished(stack_id); + ->EvaluateClassicScriptPausable(script_url, std::move(source_code), + std::move(cached_meta_data), stack_id); } void WorkerThread::ImportModuleScriptOnWorkerThread( @@ -517,10 +513,10 @@ // TODO(nhiroki): Consider excluding this code path from WorkerThread like // Worklets. ToWorkerGlobalScope(GlobalScope()) - ->ImportModuleScript(script_url, - new FetchClientSettingsObjectSnapshot( - std::move(outside_settings_object)), - credentials_mode); + ->ImportModuleScriptPausable(script_url, + new FetchClientSettingsObjectSnapshot( + std::move(outside_settings_object)), + credentials_mode); } void WorkerThread::PrepareForShutdownOnWorkerThread() { @@ -534,6 +530,9 @@ SetExitCode(ExitCode::kGracefullyTerminated); } + if (WorkerThreadDebugger* debugger = WorkerThreadDebugger::From(GetIsolate())) + debugger->WorkerThreadDestroyed(this); + GetWorkerReportingProxy().WillDestroyWorkerGlobalScope(); probe::AllAsyncTasksCanceled(GlobalScope()); @@ -573,9 +572,6 @@ GlobalScope()->Dispose(); global_scope_ = nullptr; - if (WorkerThreadDebugger* debugger = WorkerThreadDebugger::From(GetIsolate())) - debugger->WorkerThreadDestroyed(this); - console_message_storage_.Clear(); if (IsOwningBackingThread())
diff --git a/third_party/blink/renderer/core/workers/worker_thread.h b/third_party/blink/renderer/core/workers/worker_thread.h index 693d615..c3ae979 100644 --- a/third_party/blink/renderer/core/workers/worker_thread.h +++ b/third_party/blink/renderer/core/workers/worker_thread.h
@@ -45,6 +45,7 @@ #include "third_party/blink/renderer/core/workers/worker_inspector_proxy.h" #include "third_party/blink/renderer/platform/scheduler/public/worker_scheduler.h" #include "third_party/blink/renderer/platform/web_task_runner.h" +#include "third_party/blink/renderer/platform/wtf/allocator.h" #include "third_party/blink/renderer/platform/wtf/forward.h" #include "third_party/blink/renderer/platform/wtf/functional.h" #include "v8/include/v8.h" @@ -152,18 +153,25 @@ return worker_reporting_proxy_; } - // Only callable on the main thread. - void AppendDebuggerTask(CrossThreadClosure); + // Only constructible on the main thread. + class CORE_EXPORT ScopedDebuggerTask { + STACK_ALLOCATED(); + + public: + explicit ScopedDebuggerTask(WorkerThread*); + ~ScopedDebuggerTask(); + + private: + WorkerThread* thread_; + DISALLOW_COPY_AND_ASSIGN(ScopedDebuggerTask); + }; + InspectorTaskRunner* GetInspectorTaskRunner(); // Callable on both the main thread and the worker thread. const base::UnguessableToken& GetDevToolsWorkerToken() const { return devtools_worker_token_; } - // Runs only debugger tasks while paused in debugger. - void StartRunningDebuggerTasksOnPauseOnWorkerThread(); - void StopRunningDebuggerTasksOnPauseOnWorkerThread(); - // Can be called only on the worker thread, WorkerOrWorkletGlobalScope // and WorkerInspectorController are not thread safe. WorkerOrWorkletGlobalScope* GlobalScope(); @@ -297,9 +305,6 @@ // Set on the main thread. bool requested_to_terminate_ GUARDED_BY(mutex_) = false; - // Accessed only on the worker thread. - bool paused_in_debugger_ = false; - ThreadState thread_state_ GUARDED_BY(mutex_) = ThreadState::kNotStarted; ExitCode exit_code_ GUARDED_BY(mutex_) = ExitCode::kNotTerminated; @@ -307,6 +312,7 @@ scoped_refptr<InspectorTaskRunner> inspector_task_runner_; const base::UnguessableToken devtools_worker_token_; + int debugger_task_counter_ GUARDED_BY(mutex_) = 0; WorkerReportingProxy& worker_reporting_proxy_;
diff --git a/third_party/blink/renderer/core/workers/worker_thread_test.cc b/third_party/blink/renderer/core/workers/worker_thread_test.cc index 5477003e..4c9c29a 100644 --- a/third_party/blink/renderer/core/workers/worker_thread_test.cc +++ b/third_party/blink/renderer/core/workers/worker_thread_test.cc
@@ -65,6 +65,7 @@ *worker_thread->GetParentExecutionContextTaskRunners()->Get( TaskType::kInternalTest), FROM_HERE, CrossThreadBind(&test::ExitRunLoop)); + WorkerThread::ScopedDebuggerTask debugger_task(worker_thread); waitable_event->Wait(); } @@ -389,9 +390,9 @@ KURL("http://fake.url/"), ScriptType::kClassic, "fake user agent", headers, kReferrerPolicyDefault, security_origin_.get(), false /* starter_secure_context */, - CalculateHttpsState(security_origin_.get()), - nullptr /* workerClients */, mojom::IPAddressSpace::kLocal, - nullptr /* originTrialToken */, base::UnguessableToken::Create(), + CalculateHttpsState(security_origin_.get()), WorkerClients::Create(), + mojom::IPAddressSpace::kLocal, nullptr /* originTrialToken */, + base::UnguessableToken::Create(), std::make_unique<WorkerSettings>(Settings::Create().get()), kV8CacheOptionsDefault, nullptr /* worklet_module_responses_map */); @@ -405,13 +406,18 @@ // Used to wait for worker thread termination in a debugger task on the // worker thread. WaitableEvent waitable_event; - worker_thread_->AppendDebuggerTask(CrossThreadBind( - &WaitForSignalTask, CrossThreadUnretained(worker_thread_.get()), - CrossThreadUnretained(&waitable_event))); + PostCrossThreadTask( + *worker_thread_->GetTaskRunner(TaskType::kInternalInspector), FROM_HERE, + CrossThreadBind(&WaitForSignalTask, + CrossThreadUnretained(worker_thread_.get()), + CrossThreadUnretained(&waitable_event))); // Wait for the debugger task. test::EnterRunLoop(); - EXPECT_TRUE(worker_thread_->inspector_task_runner_->IsRunningTask()); + { + MutexLocker lock(worker_thread_->mutex_); + EXPECT_EQ(1, worker_thread_->debugger_task_counter_); + } // Terminate() schedules a forcible termination task. worker_thread_->Terminate(); @@ -447,13 +453,18 @@ // Used to wait for worker thread termination in a debugger task on the // worker thread. WaitableEvent waitable_event; - worker_thread_->AppendDebuggerTask(CrossThreadBind( - &WaitForSignalTask, CrossThreadUnretained(worker_thread_.get()), - CrossThreadUnretained(&waitable_event))); + PostCrossThreadTask( + *worker_thread_->GetTaskRunner(TaskType::kInternalInspector), FROM_HERE, + CrossThreadBind(&WaitForSignalTask, + CrossThreadUnretained(worker_thread_.get()), + CrossThreadUnretained(&waitable_event))); // Wait for the debugger task. test::EnterRunLoop(); - EXPECT_TRUE(worker_thread_->inspector_task_runner_->IsRunningTask()); + { + MutexLocker lock(worker_thread_->mutex_); + EXPECT_EQ(1, worker_thread_->debugger_task_counter_); + } // Terminate() schedules a forcible termination task. worker_thread_->Terminate();
diff --git a/third_party/blink/renderer/core/workers/worklet.cc b/third_party/blink/renderer/core/workers/worklet.cc index 6a78f29..0e19991 100644 --- a/third_party/blink/renderer/core/workers/worklet.cc +++ b/third_party/blink/renderer/core/workers/worklet.cc
@@ -14,8 +14,8 @@ #include "third_party/blink/renderer/core/dom/dom_exception.h" #include "third_party/blink/renderer/core/fetch/request.h" #include "third_party/blink/renderer/core/frame/use_counter.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/core/workers/worklet_pending_tasks.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/platform/wtf/wtf.h" namespace blink { @@ -122,7 +122,7 @@ // Step 7: "Let outsideSettings be the relevant settings object of this." auto* outside_settings_object = - new FetchClientSettingsObjectSnapshot(*GetExecutionContext()); + GetExecutionContext()->CreateFetchClientSettingsObjectSnapshot(); // Specify TaskType::kInternalLoading because it's commonly used for module // loading. scoped_refptr<base::SingleThreadTaskRunner> outside_settings_task_runner =
diff --git a/third_party/blink/renderer/core/workers/worklet_global_scope.cc b/third_party/blink/renderer/core/workers/worklet_global_scope.cc index 3b05b17..9242e8b3 100644 --- a/third_party/blink/renderer/core/workers/worklet_global_scope.cc +++ b/third_party/blink/renderer/core/workers/worklet_global_scope.cc
@@ -12,7 +12,6 @@ #include "third_party/blink/renderer/core/inspector/main_thread_debugger.h" #include "third_party/blink/renderer/core/origin_trials/origin_trial_context.h" #include "third_party/blink/renderer/core/probe/core_probes.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h" #include "third_party/blink/renderer/core/script/modulator.h" #include "third_party/blink/renderer/core/workers/global_scope_creation_params.h" #include "third_party/blink/renderer/core/workers/worker_reporting_proxy.h" @@ -20,6 +19,7 @@ #include "third_party/blink/renderer/core/workers/worklet_module_tree_client.h" #include "third_party/blink/renderer/core/workers/worklet_pending_tasks.h" #include "third_party/blink/renderer/platform/bindings/trace_wrapper_member.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" namespace blink {
diff --git a/third_party/blink/renderer/devtools/front_end/elements/ElementsTreeOutline.js b/third_party/blink/renderer/devtools/front_end/elements/ElementsTreeOutline.js index 8cc0dcd2..d2ccaca 100644 --- a/third_party/blink/renderer/devtools/front_end/elements/ElementsTreeOutline.js +++ b/third_party/blink/renderer/devtools/front_end/elements/ElementsTreeOutline.js
@@ -758,6 +758,8 @@ if (textNode && textNode.classList.contains('bogus')) textNode = null; const commentNode = event.target.enclosingNodeOrSelfWithClass('webkit-html-comment'); + contextMenu.saveSection().appendItem( + ls`Store as global variable`, this._saveNodeToTempVariable.bind(this, treeElement.node())); if (textNode) treeElement.populateTextContextMenu(contextMenu, textNode); else if (isTag) @@ -771,6 +773,14 @@ contextMenu.show(); } + /** + * @param {!SDK.DOMNode} node + */ + async _saveNodeToTempVariable(node) { + const remoteObjectForConsole = await node.resolveToObject(); + await SDK.consoleModel.saveToTempVariable(UI.context.flavor(SDK.ExecutionContext), remoteObjectForConsole); + } + runPendingUpdates() { this._updateModifiedNodes(); }
diff --git a/third_party/blink/renderer/devtools/front_end/elements_test_runner/ElementsTestRunner.js b/third_party/blink/renderer/devtools/front_end/elements_test_runner/ElementsTestRunner.js index d84c10f..762563e 100644 --- a/third_party/blink/renderer/devtools/front_end/elements_test_runner/ElementsTestRunner.js +++ b/third_party/blink/renderer/devtools/front_end/elements_test_runner/ElementsTestRunner.js
@@ -36,6 +36,14 @@ }; /** + * @param {string} idValue + * @param {!Function} callback + */ +ElementsTestRunner.nodeWithIdPromise = function(idValue) { + return new Promise(resolve => ElementsTestRunner.findNode(node => node.getAttribute('id') === idValue, resolve)); +}; + +/** * @param {function(!Element): boolean} matchFunction * @param {!Function} callback */
diff --git a/third_party/blink/renderer/devtools/front_end/inspector_main/InspectorMain.js b/third_party/blink/renderer/devtools/front_end/inspector_main/InspectorMain.js index f7cbe53..4666c81 100644 --- a/third_party/blink/renderer/devtools/front_end/inspector_main/InspectorMain.js +++ b/third_party/blink/renderer/devtools/front_end/inspector_main/InspectorMain.js
@@ -208,6 +208,9 @@ this._adBlockEnabledSetting = Common.settings.moduleSetting('network.adBlockingEnabled'); this._adBlockEnabledSetting.addChangeListener(this._update, this); + this._emulatePageFocusSetting = Common.settings.moduleSetting('emulatePageFocus'); + this._emulatePageFocusSetting.addChangeListener(this._update, this); + SDK.targetManager.observeTargets(this, SDK.Target.Capability.Browser); } @@ -215,8 +218,10 @@ * @param {!SDK.Target} target */ _updateTarget(target) { - if (!target.parentTarget()) - target.pageAgent().setAdBlockingEnabled(this._adBlockEnabledSetting.get()); + if (target.parentTarget()) + return; + target.pageAgent().setAdBlockingEnabled(this._adBlockEnabledSetting.get()); + target.emulationAgent().setFocusEmulationEnabled(this._emulatePageFocusSetting.get()); } _updateAutoAttach() {
diff --git a/third_party/blink/renderer/devtools/front_end/inspector_main/module.json b/third_party/blink/renderer/devtools/front_end/inspector_main/module.json index 99baa98..35ad608 100644 --- a/third_party/blink/renderer/devtools/front_end/inspector_main/module.json +++ b/third_party/blink/renderer/devtools/front_end/inspector_main/module.json
@@ -85,6 +85,26 @@ }, { "type": "setting", + "category": "DevTools", + "title": "Emulate a focused page", + "settingName": "emulatePageFocus", + "settingType": "boolean", + "storageType": "session", + "order": 2, + "defaultValue": false, + "options": [ + { + "value": true, + "title": "Emulate a focused page" + }, + { + "value": false, + "title": "Do not emulate a focused page" + } + ] + }, + { + "type": "setting", "category": "Appearance", "title": "Don't show Chrome Data Saver warning", "settingName": "disableDataSaverInfobar",
diff --git a/third_party/blink/renderer/devtools/front_end/network/NetworkDataGridNode.js b/third_party/blink/renderer/devtools/front_end/network/NetworkDataGridNode.js index 5f3e5040..5ad5178 100644 --- a/third_party/blink/renderer/devtools/front_end/network/NetworkDataGridNode.js +++ b/third_party/blink/renderer/devtools/front_end/network/NetworkDataGridNode.js
@@ -951,17 +951,17 @@ * @param {!Element} cell */ _renderSizeCell(cell) { - if (this._request.fetchedViaServiceWorker) { + if (this._request.cachedInMemory()) { + this._setTextAndTitle(cell, Common.UIString('(from memory cache)')); + cell.classList.add('network-dim-cell'); + } else if (this._request.fetchedViaServiceWorker) { this._setTextAndTitle(cell, Common.UIString('(from ServiceWorker)')); cell.classList.add('network-dim-cell'); } else if (this._request.redirectSource() && this._request.redirectSource().signedExchangeInfo()) { this._setTextAndTitle(cell, Common.UIString('(from signed-exchange)')); cell.classList.add('network-dim-cell'); } else if (this._request.cached()) { - if (this._request.cachedInMemory()) - this._setTextAndTitle(cell, Common.UIString('(from memory cache)')); - else - this._setTextAndTitle(cell, Common.UIString('(from disk cache)')); + this._setTextAndTitle(cell, Common.UIString('(from disk cache)')); cell.classList.add('network-dim-cell'); } else { const resourceSize = Number.bytesToString(this._request.resourceSize);
diff --git a/third_party/blink/renderer/devtools/front_end/network/RequestHeadersView.js b/third_party/blink/renderer/devtools/front_end/network/RequestHeadersView.js index 5c5b4de9..520161f9 100644 --- a/third_party/blink/renderer/devtools/front_end/network/RequestHeadersView.js +++ b/third_party/blink/renderer/devtools/front_end/network/RequestHeadersView.js
@@ -393,17 +393,17 @@ const statusTextElement = statusCodeFragment.createChild('div', 'header-value source-code'); let statusText = this._request.statusCode + ' ' + this._request.statusText; - if (this._request.fetchedViaServiceWorker) { + if (this._request.cachedInMemory()) { + statusText += ' ' + Common.UIString('(from memory cache)'); + statusTextElement.classList.add('status-from-cache'); + } else if (this._request.fetchedViaServiceWorker) { statusText += ' ' + Common.UIString('(from ServiceWorker)'); statusTextElement.classList.add('status-from-cache'); } else if (this._request.redirectSource() && this._request.redirectSource().signedExchangeInfo()) { statusText += ' ' + Common.UIString('(from signed-exchange)'); statusTextElement.classList.add('status-from-cache'); } else if (this._request.cached()) { - if (this._request.cachedInMemory()) - statusText += ' ' + Common.UIString('(from memory cache)'); - else - statusText += ' ' + Common.UIString('(from disk cache)'); + statusText += ' ' + Common.UIString('(from disk cache)'); statusTextElement.classList.add('status-from-cache'); } statusTextElement.textContent = statusText;
diff --git a/third_party/blink/renderer/devtools/front_end/resources/DOMStorageItemsView.js b/third_party/blink/renderer/devtools/front_end/resources/DOMStorageItemsView.js index 004e709..c6e5ca2 100644 --- a/third_party/blink/renderer/devtools/front_end/resources/DOMStorageItemsView.js +++ b/third_party/blink/renderer/devtools/front_end/resources/DOMStorageItemsView.js
@@ -53,7 +53,9 @@ this._previewPanel = new UI.VBox(); const resizer = this._previewPanel.element.createChild('div', 'preview-panel-resizer'); - this._splitWidget.setMainWidget(this._dataGrid.asWidget()); + const dataGridWidget = this._dataGrid.asWidget(); + dataGridWidget.setMinimumSize(0, 50); + this._splitWidget.setMainWidget(dataGridWidget); this._splitWidget.setSidebarWidget(this._previewPanel); this._splitWidget.installResizer(resizer);
diff --git a/third_party/blink/renderer/devtools/front_end/sdk/ConsoleModel.js b/third_party/blink/renderer/devtools/front_end/sdk/ConsoleModel.js index 0edbf4303..037ebc2 100644 --- a/third_party/blink/renderer/devtools/front_end/sdk/ConsoleModel.js +++ b/third_party/blink/renderer/devtools/front_end/sdk/ConsoleModel.js
@@ -356,6 +356,63 @@ warnings() { return this._warnings; } + + /** + * @param {?SDK.ExecutionContext} currentExecutionContext + * @param {?SDK.RemoteObject} remoteObject + */ + async saveToTempVariable(currentExecutionContext, remoteObject) { + if (!remoteObject || !currentExecutionContext) { + failedToSave(null); + return; + } + const executionContext = /** @type {!SDK.ExecutionContext} */ (currentExecutionContext); + + const result = await executionContext.globalObject(/* objectGroup */ '', /* generatePreview */ false); + if (!!result.exceptionDetails || !result.object) { + failedToSave(result.object || null); + return; + } + + const globalObject = result.object; + const callFunctionResult = + await globalObject.callFunctionPromise(saveVariable, [SDK.RemoteObject.toCallArgument(remoteObject)]); + globalObject.release(); + if (callFunctionResult.wasThrown || !callFunctionResult.object || callFunctionResult.object.type !== 'string') { + failedToSave(callFunctionResult.object || null); + } else { + const text = /** @type {string} */ (callFunctionResult.object.value); + const message = this.addCommandMessage(executionContext, text); + this.evaluateCommandInConsole( + executionContext, message, text, /* useCommandLineAPI */ false, /* awaitPromise */ false); + } + if (callFunctionResult.object) + callFunctionResult.object.release(); + + /** + * @suppressReceiverCheck + * @this {Window} + */ + function saveVariable(value) { + const prefix = 'temp'; + let index = 1; + while ((prefix + index) in this) + ++index; + const name = prefix + index; + this[name] = value; + return name; + } + + /** + * @param {?SDK.RemoteObject} result + */ + function failedToSave(result) { + let message = Common.UIString('Failed to save to temp variable.'); + if (result) + message += ' ' + result.description; + Common.console.error(message); + } + } }; /** @enum {symbol} */
diff --git a/third_party/blink/renderer/devtools/front_end/sources/SourcesPanel.js b/third_party/blink/renderer/devtools/front_end/sources/SourcesPanel.js index bf86dd9..c704d76 100644 --- a/third_party/blink/renderer/devtools/front_end/sources/SourcesPanel.js +++ b/third_party/blink/renderer/devtools/front_end/sources/SourcesPanel.js
@@ -811,11 +811,12 @@ if (!(target instanceof SDK.RemoteObject)) return; const remoteObject = /** @type {!SDK.RemoteObject} */ (target); + const executionContext = UI.context.flavor(SDK.ExecutionContext); contextMenu.debugSection().appendItem( - Common.UIString('Store as global variable'), this._saveToTempVariable.bind(this, remoteObject)); + ls`Store as global variable`, () => SDK.consoleModel.saveToTempVariable(executionContext, remoteObject)); if (remoteObject.type === 'function') { contextMenu.debugSection().appendItem( - Common.UIString('Show function definition'), this._showFunctionDefinition.bind(this, remoteObject)); + ls`Show function definition`, this._showFunctionDefinition.bind(this, remoteObject)); } } @@ -837,63 +838,6 @@ /** * @param {!SDK.RemoteObject} remoteObject */ - async _saveToTempVariable(remoteObject) { - const currentExecutionContext = UI.context.flavor(SDK.ExecutionContext); - if (!currentExecutionContext) - return; - - const result = await currentExecutionContext.globalObject(/* objectGroup */ '', /* generatePreview */ false); - if (!!result.exceptionDetails || !result.object) { - failedToSave(result.object || null); - return; - } - - const globalObject = result.object; - const callFunctionResult = - await globalObject.callFunctionPromise(saveVariable, [SDK.RemoteObject.toCallArgument(remoteObject)]); - globalObject.release(); - if (callFunctionResult.wasThrown || !callFunctionResult.object || callFunctionResult.object.type !== 'string') { - failedToSave(callFunctionResult.object || null); - } else { - const executionContext = /** @type {!SDK.ExecutionContext} */ (currentExecutionContext); - let text = /** @type {string} */ (callFunctionResult.object.value); - const message = SDK.consoleModel.addCommandMessage(executionContext, text); - text = ObjectUI.JavaScriptREPL.wrapObjectLiteral(text); - SDK.consoleModel.evaluateCommandInConsole( - executionContext, message, text, - /* useCommandLineAPI */ false, /* awaitPromise */ false); - } - if (callFunctionResult.object) - callFunctionResult.object.release(); - - /** - * @suppressReceiverCheck - * @this {Window} - */ - function saveVariable(value) { - const prefix = 'temp'; - let index = 1; - while ((prefix + index) in this) - ++index; - const name = prefix + index; - this[name] = value; - return name; - } - - /** - * @param {?SDK.RemoteObject} result - */ - function failedToSave(result) { - let message = Common.UIString('Failed to save to temp variable.'); - if (result) - message += ' ' + result.description; - Common.console.error(message); - } - } - - /** - * @param {!SDK.RemoteObject} remoteObject - */ _showFunctionDefinition(remoteObject) { remoteObject.debuggerModel().functionDetailsPromise(remoteObject).then(this._didGetFunctionDetails.bind(this)); }
diff --git a/third_party/blink/renderer/devtools/front_end/ui/GlassPane.js b/third_party/blink/renderer/devtools/front_end/ui/GlassPane.js index 8cd1925..f6b61de 100644 --- a/third_party/blink/renderer/devtools/front_end/ui/GlassPane.js +++ b/third_party/blink/renderer/devtools/front_end/ui/GlassPane.js
@@ -192,12 +192,11 @@ } if (this._sizeBehavior === UI.GlassPane.SizeBehavior.MeasureContent) { - const measuredWidth = this.contentElement.offsetWidth; - const measuredHeight = this.contentElement.offsetHeight; - const widthOverflow = height < measuredHeight ? scrollbarSize : 0; - const heightOverflow = width < measuredWidth ? scrollbarSize : 0; - width = Math.min(width, measuredWidth + widthOverflow); - height = Math.min(height, measuredHeight + heightOverflow); + const measuredRect = this.contentElement.getBoundingClientRect(); + const widthOverflow = height < measuredRect.height ? scrollbarSize : 0; + const heightOverflow = width < measuredRect.width ? scrollbarSize : 0; + width = Math.min(width, measuredRect.width + widthOverflow); + height = Math.min(height, measuredRect.height + heightOverflow); } if (this._anchorBox) {
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_bridge.cc b/third_party/blink/renderer/modules/background_fetch/background_fetch_bridge.cc index ac3e0575..022104ce 100644 --- a/third_party/blink/renderer/modules/background_fetch/background_fetch_bridge.cc +++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_bridge.cc
@@ -113,7 +113,7 @@ if (registration) { DCHECK_EQ(error, mojom::blink::BackgroundFetchError::NONE); - DCHECK_EQ(registration->state(), "pending"); + DCHECK_EQ(registration->result(), ""); registration->Initialize(GetSupplementable()); }
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc index 83e1471..e71ce84 100644 --- a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc +++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.cc
@@ -170,11 +170,25 @@ "the ServiceWorkerRegistration.")); } - Vector<WebServiceWorkerRequest> web_requests = - CreateWebRequestVector(script_state, requests, exception_state); + bool has_requests_with_body; + Vector<WebServiceWorkerRequest> web_requests = CreateWebRequestVector( + script_state, requests, exception_state, &has_requests_with_body); if (exception_state.HadException()) return ScriptPromise(); + // Record whether any requests had a body. If there were, reject the promise. + UMA_HISTOGRAM_BOOLEAN("BackgroundFetch.HasRequestsWithBody", + has_requests_with_body); + + // TODO(crbug.com/789854): Stop bailing here once we support uploads. + if (has_requests_with_body) { + return ScriptPromise::Reject( + script_state, V8ThrowException::CreateTypeError( + script_state->GetIsolate(), + "Requests with a body are not yet supported. " + "For updates check http://crbug.com/774054")); + } + ExecutionContext* execution_context = ExecutionContext::From(script_state); // A HashSet to find whether there are any duplicate requests within the @@ -383,8 +397,12 @@ Vector<WebServiceWorkerRequest> BackgroundFetchManager::CreateWebRequestVector( ScriptState* script_state, const RequestOrUSVStringOrRequestOrUSVStringSequence& requests, - ExceptionState& exception_state) { + ExceptionState& exception_state, + bool* has_requests_with_body) { + DCHECK(has_requests_with_body); + Vector<WebServiceWorkerRequest> web_requests; + *has_requests_with_body = false; if (requests.IsRequestOrUSVStringSequence()) { HeapVector<RequestOrUSVString> request_vector = @@ -415,16 +433,21 @@ } DCHECK(request); + *has_requests_with_body |= request->HasBody(); // TODO(crbug.com/774054): Set blob data handle when adding support for // requests with body. request->PopulateWebServiceWorkerRequest(web_requests[i]); } } else if (requests.IsRequest()) { - DCHECK(requests.GetAsRequest()); + auto* request = requests.GetAsRequest(); + DCHECK(request); + // TODO(crbug.com/774054): Set blob data handle when adding support for // requests with body. + + *has_requests_with_body = request->HasBody(); web_requests.resize(1); - requests.GetAsRequest()->PopulateWebServiceWorkerRequest(web_requests[0]); + request->PopulateWebServiceWorkerRequest(web_requests[0]); } else if (requests.IsUSVString()) { Request* request = Request::Create(script_state, requests.GetAsUSVString(), exception_state); @@ -432,6 +455,7 @@ return Vector<WebServiceWorkerRequest>(); DCHECK(request); + *has_requests_with_body = request->HasBody(); web_requests.resize(1); request->PopulateWebServiceWorkerRequest(web_requests[0]); } else {
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.h b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.h index 52ecb35..10234ab 100644 --- a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.h +++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager.h
@@ -67,10 +67,12 @@ // Creates a vector of WebServiceWorkerRequest objects for the given set of // |requests|, which can be either Request objects or URL strings. + // |has_requests_with_body| will be set if any of the |requests| has a body. static Vector<WebServiceWorkerRequest> CreateWebRequestVector( ScriptState* script_state, const RequestOrUSVStringOrRequestOrUSVStringSequence& requests, - ExceptionState& exception_state); + ExceptionState& exception_state, + bool* has_requests_with_body); void DidLoadIcons(const String& id, Vector<WebServiceWorkerRequest> web_requests,
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager_test.cc b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager_test.cc index c962f63..688658b 100644 --- a/third_party/blink/renderer/modules/background_fetch/background_fetch_manager_test.cc +++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_manager_test.cc
@@ -25,8 +25,10 @@ Vector<WebServiceWorkerRequest> CreateWebRequestVector( V8TestingScope& scope, const RequestOrUSVStringOrRequestOrUSVStringSequence& requests) { + bool has_requests_with_body; return BackgroundFetchManager::CreateWebRequestVector( - scope.GetScriptState(), requests, scope.GetExceptionState()); + scope.GetScriptState(), requests, scope.GetExceptionState(), + &has_requests_with_body); } };
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.cc b/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.cc index bf5b6d9..42ea62a 100644 --- a/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.cc +++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.cc
@@ -30,7 +30,7 @@ unsigned long long uploaded, unsigned long long download_total, unsigned long long downloaded, - mojom::BackgroundFetchState state, + mojom::BackgroundFetchResult result, mojom::BackgroundFetchFailureReason failure_reason) : developer_id_(developer_id), unique_id_(unique_id), @@ -38,7 +38,7 @@ uploaded_(uploaded), download_total_(download_total), downloaded_(downloaded), - state_(state), + result_(result), failure_reason_(failure_reason), observer_binding_(this) {} @@ -51,7 +51,7 @@ uploaded_(web_registration.uploaded), download_total_(web_registration.download_total), downloaded_(web_registration.downloaded), - state_(web_registration.state), + result_(web_registration.result), failure_reason_(web_registration.failure_reason), observer_binding_(this) { DCHECK(registration); @@ -254,14 +254,14 @@ NOTREACHED(); } -const String BackgroundFetchRegistration::state() const { - switch (state_) { - case mojom::BackgroundFetchState::SUCCESS: +const String BackgroundFetchRegistration::result() const { + switch (result_) { + case mojom::BackgroundFetchResult::SUCCESS: return "success"; - case mojom::BackgroundFetchState::FAILURE: + case mojom::BackgroundFetchResult::FAILURE: return "failure"; - case mojom::BackgroundFetchState::PENDING: - return "pending"; + case mojom::BackgroundFetchResult::UNSET: + return ""; } NOTREACHED(); }
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.h b/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.h index 4d94efe..446b057 100644 --- a/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.h +++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.h
@@ -39,7 +39,7 @@ unsigned long long uploaded, unsigned long long download_total, unsigned long long downloaded, - mojom::BackgroundFetchState state, + mojom::BackgroundFetchResult result, mojom::BackgroundFetchFailureReason failure_reason); BackgroundFetchRegistration( @@ -77,7 +77,7 @@ unsigned long long uploaded() const; unsigned long long downloadTotal() const; unsigned long long downloaded() const; - const String state() const; + const String result() const; const String failureReason() const; const String& unique_id() const { return unique_id_; } @@ -122,7 +122,7 @@ unsigned long long uploaded_; unsigned long long download_total_; unsigned long long downloaded_; - mojom::BackgroundFetchState state_; + mojom::BackgroundFetchResult result_; mojom::BackgroundFetchFailureReason failure_reason_; mojo::Binding<blink::mojom::blink::BackgroundFetchRegistrationObserver>
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.idl b/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.idl index bb5a4c5..522b487c 100644 --- a/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.idl +++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_registration.idl
@@ -3,8 +3,6 @@ // found in the LICENSE file. // https://wicg.github.io/background-fetch/#background-fetch-registration -enum BackgroundFetchState { "pending", "success", "failure" }; - enum BackgroundFetchFailureReason { "", // The operation was aborted by the user, or abort() was called. @@ -20,6 +18,8 @@ "total-download-exceeded" }; +enum BackgroundFetchResult { "", "success", "failure" }; + [ Exposed=(Window,Worker), RuntimeEnabled=BackgroundFetch @@ -29,7 +29,7 @@ readonly attribute unsigned long long uploaded; readonly attribute unsigned long long downloadTotal; readonly attribute unsigned long long downloaded; - readonly attribute BackgroundFetchState state; + readonly attribute BackgroundFetchResult result; readonly attribute BackgroundFetchFailureReason failureReason; attribute EventHandler onprogress;
diff --git a/third_party/blink/renderer/modules/background_fetch/background_fetch_type_converters.cc b/third_party/blink/renderer/modules/background_fetch/background_fetch_type_converters.cc index 92b011d..385b64a 100644 --- a/third_party/blink/renderer/modules/background_fetch/background_fetch_type_converters.cc +++ b/third_party/blink/renderer/modules/background_fetch/background_fetch_type_converters.cc
@@ -23,7 +23,7 @@ mojo_registration->developer_id, mojo_registration->unique_id, mojo_registration->upload_total, mojo_registration->uploaded, mojo_registration->download_total, mojo_registration->downloaded, - mojo_registration->state, mojo_registration->failure_reason); + mojo_registration->result, mojo_registration->failure_reason); } blink::mojom::blink::BackgroundFetchOptionsPtr TypeConverter<
diff --git a/third_party/blink/renderer/modules/filesystem/BUILD.gn b/third_party/blink/renderer/modules/filesystem/BUILD.gn index 2e158d696..a3e16f7b 100644 --- a/third_party/blink/renderer/modules/filesystem/BUILD.gn +++ b/third_party/blink/renderer/modules/filesystem/BUILD.gn
@@ -49,6 +49,8 @@ "file_system_client.h", "file_system_directory_handle.cc", "file_system_directory_handle.h", + "file_system_directory_iterator.cc", + "file_system_directory_iterator.h", "file_system_file_handle.cc", "file_system_file_handle.h", "file_system_writer.cc",
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.cc b/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.cc index 5734bba1..38882bd 100644 --- a/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.cc +++ b/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.cc
@@ -7,6 +7,7 @@ #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" #include "third_party/blink/renderer/modules/filesystem/dom_file_system_base.h" #include "third_party/blink/renderer/modules/filesystem/file_system_callbacks.h" +#include "third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.h" #include "third_party/blink/renderer/modules/filesystem/local_file_system.h" namespace blink { @@ -16,23 +17,30 @@ const String& full_path) : FileSystemBaseHandle(file_system, full_path) {} -ScriptPromise FileSystemDirectoryHandle::getFile(ScriptState* script_state, - const String& name) { +ScriptPromise FileSystemDirectoryHandle::getFile( + ScriptState* script_state, + const String& name, + const FileSystemGetFileOptions& options) { + FileSystemFlags flags; + flags.setCreateFlag(options.create()); auto* resolver = ScriptPromiseResolver::Create(script_state); ScriptPromise result = resolver->Promise(); - filesystem()->GetFile(this, name, FileSystemFlags(), + filesystem()->GetFile(this, name, flags, new EntryCallbacks::OnDidGetEntryPromiseImpl(resolver), new PromiseErrorCallback(resolver)); return result; } -ScriptPromise FileSystemDirectoryHandle::getDirectory(ScriptState* script_state, - const String& name) { +ScriptPromise FileSystemDirectoryHandle::getDirectory( + ScriptState* script_state, + const String& name, + const FileSystemGetDirectoryOptions& options) { + FileSystemFlags flags; + flags.setCreateFlag(options.create()); auto* resolver = ScriptPromiseResolver::Create(script_state); ScriptPromise result = resolver->Promise(); filesystem()->GetDirectory( - this, name, FileSystemFlags(), - new EntryCallbacks::OnDidGetEntryPromiseImpl(resolver), + this, name, flags, new EntryCallbacks::OnDidGetEntryPromiseImpl(resolver), new PromiseErrorCallback(resolver)); return result; } @@ -55,4 +63,28 @@ return result; } +namespace { + +void ReturnDataFunction(const v8::FunctionCallbackInfo<v8::Value>& info) { + V8SetReturnValue(info, info.Data()); +} + +} // namespace + +ScriptValue FileSystemDirectoryHandle::getEntries(ScriptState* script_state) { + auto* iterator = new FileSystemDirectoryIterator(filesystem(), fullPath()); + auto* isolate = script_state->GetIsolate(); + auto context = script_state->GetContext(); + v8::Local<v8::Object> result = v8::Object::New(isolate); + if (!result + ->Set(context, v8::Symbol::GetAsyncIterator(isolate), + v8::Function::New(context, &ReturnDataFunction, + ToV8(iterator, script_state)) + .ToLocalChecked()) + .FromMaybe(false)) { + return ScriptValue(); + } + return ScriptValue(script_state, result); +} + } // namespace blink
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.h b/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.h index 4adadcf89..7f9c7e2 100644 --- a/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.h +++ b/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.h
@@ -5,7 +5,10 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_FILESYSTEM_FILE_SYSTEM_DIRECTORY_HANDLE_H_ #define THIRD_PARTY_BLINK_RENDERER_MODULES_FILESYSTEM_FILE_SYSTEM_DIRECTORY_HANDLE_H_ +#include "third_party/blink/renderer/bindings/core/v8/script_value.h" #include "third_party/blink/renderer/modules/filesystem/file_system_base_handle.h" +#include "third_party/blink/renderer/modules/filesystem/file_system_get_directory_options.h" +#include "third_party/blink/renderer/modules/filesystem/file_system_get_file_options.h" #include "third_party/blink/renderer/modules/filesystem/get_system_directory_options.h" namespace blink { @@ -17,8 +20,13 @@ FileSystemDirectoryHandle(DOMFileSystemBase*, const String& full_path); bool isDirectory() const override { return true; } - ScriptPromise getFile(ScriptState*, const String& name); - ScriptPromise getDirectory(ScriptState*, const String& name); + ScriptPromise getFile(ScriptState*, + const String& name, + const FileSystemGetFileOptions&); + ScriptPromise getDirectory(ScriptState*, + const String& name, + const FileSystemGetDirectoryOptions&); + ScriptValue getEntries(ScriptState*); static ScriptPromise getSystemDirectory( ScriptState*,
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.idl b/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.idl index 9bebd83..d850338 100644 --- a/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.idl +++ b/third_party/blink/renderer/modules/filesystem/file_system_directory_handle.idl
@@ -6,9 +6,9 @@ [ RuntimeEnabled=WritableFiles ] interface FileSystemDirectoryHandle : FileSystemBaseHandle { - [CallWith=ScriptState] Promise<FileSystemFileHandle> getFile(USVString name); - [CallWith=ScriptState] Promise<FileSystemDirectoryHandle> getDirectory(USVString name); - // TODO(mek): Other methods such as getEntries etc. + [CallWith=ScriptState] Promise<FileSystemFileHandle> getFile(USVString name, optional FileSystemGetFileOptions options); + [CallWith=ScriptState] Promise<FileSystemDirectoryHandle> getDirectory(USVString name, optional FileSystemGetDirectoryOptions options); + [CallWith=ScriptState] object getEntries(); [CallWith=ScriptState] static Promise<FileSystemDirectoryHandle> getSystemDirectory(GetSystemDirectoryOptions options);
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.cc b/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.cc new file mode 100644 index 0000000..ef145fd --- /dev/null +++ b/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.cc
@@ -0,0 +1,109 @@ +// 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/modules/filesystem/file_system_directory_iterator.h" + +#include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h" +#include "third_party/blink/renderer/core/dom/dom_exception.h" +#include "third_party/blink/renderer/modules/filesystem/entry.h" +#include "third_party/blink/renderer/modules/filesystem/file_system_base_handle.h" +#include "third_party/blink/renderer/modules/filesystem/file_system_directory_iterator_entry.h" + +namespace blink { + +class FileSystemDirectoryIterator::EntriesCallbackHelper + : public EntriesCallbacks::OnDidGetEntriesCallback { + public: + explicit EntriesCallbackHelper(FileSystemDirectoryIterator* reader) + : reader_(reader) {} + + void Trace(Visitor* visitor) override { + EntriesCallbacks::OnDidGetEntriesCallback::Trace(visitor); + visitor->Trace(reader_); + } + + void OnSuccess(EntryHeapVector* entries) override { + reader_->AddEntries(*entries); + } + + private: + // TODO(https://crbug.com/350285): This Member keeps the reader alive until + // all of the readDirectory results are received. + Member<FileSystemDirectoryIterator> reader_; +}; + +class FileSystemDirectoryIterator::ErrorCallbackHelper final + : public ErrorCallbackBase { + public: + explicit ErrorCallbackHelper(FileSystemDirectoryIterator* reader) + : reader_(reader) {} + + void Invoke(FileError::ErrorCode error) override { reader_->OnError(error); } + + void Trace(Visitor* visitor) override { + ErrorCallbackBase::Trace(visitor); + visitor->Trace(reader_); + } + + private: + Member<FileSystemDirectoryIterator> reader_; +}; + +FileSystemDirectoryIterator::FileSystemDirectoryIterator( + DOMFileSystemBase* file_system, + const String& full_path) + : DirectoryReaderBase(file_system, full_path) { + Filesystem()->ReadDirectory(this, full_path_, new EntriesCallbackHelper(this), + new ErrorCallbackHelper(this)); +} + +ScriptPromise FileSystemDirectoryIterator::next(ScriptState* script_state) { + if (error_ != FileError::kOK) { + return ScriptPromise::RejectWithDOMException( + script_state, FileError::CreateDOMException(error_)); + } + + if (!entries_.IsEmpty()) { + FileSystemDirectoryIteratorEntry result; + result.setValue(entries_.TakeFirst()->asFileSystemHandle()); + return ScriptPromise::Cast(script_state, ToV8(result, script_state)); + } + + if (has_more_entries_) { + DCHECK(!pending_next_); + pending_next_ = ScriptPromiseResolver::Create(script_state); + return pending_next_->Promise(); + } + + FileSystemDirectoryIteratorEntry result; + result.setDone(true); + return ScriptPromise::Cast(script_state, ToV8(result, script_state)); +} + +void FileSystemDirectoryIterator::Trace(Visitor* visitor) { + DirectoryReaderBase::Trace(visitor); + visitor->Trace(entries_); + visitor->Trace(pending_next_); +} + +void FileSystemDirectoryIterator::AddEntries(const EntryHeapVector& entries) { + for (const auto& e : entries) + entries_.emplace_back(e); + if (pending_next_) { + ScriptState::Scope scope(pending_next_->GetScriptState()); + pending_next_->Resolve( + next(pending_next_->GetScriptState()).GetScriptValue()); + pending_next_ = nullptr; + } +} + +void FileSystemDirectoryIterator::OnError(FileError::ErrorCode error) { + error_ = error; + if (pending_next_) { + pending_next_->Reject(FileError::CreateDOMException(error)); + pending_next_ = nullptr; + } +} + +} // namespace blink
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.h b/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.h new file mode 100644 index 0000000..3a24e64 --- /dev/null +++ b/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.h
@@ -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. + +#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_FILESYSTEM_FILE_SYSTEM_DIRECTORY_ITERATOR_H_ +#define THIRD_PARTY_BLINK_RENDERER_MODULES_FILESYSTEM_FILE_SYSTEM_DIRECTORY_ITERATOR_H_ + +#include "third_party/blink/renderer/core/fileapi/file_error.h" +#include "third_party/blink/renderer/modules/filesystem/directory_reader_base.h" +#include "third_party/blink/renderer/modules/filesystem/dom_file_system.h" + +namespace blink { +class ScriptPromise; +class ScriptPromiseResolver; +class ScriptState; + +class FileSystemDirectoryIterator : public DirectoryReaderBase { + DEFINE_WRAPPERTYPEINFO(); + + public: + FileSystemDirectoryIterator(DOMFileSystemBase*, const String& full_path); + + ScriptPromise next(ScriptState*); + void IteratorReturn() {} + + void Trace(Visitor*) override; + + private: + class EntriesCallbackHelper; + class ErrorCallbackHelper; + void AddEntries(const EntryHeapVector& entries); + void OnError(FileError::ErrorCode); + + FileError::ErrorCode error_ = FileError::kOK; + HeapDeque<Member<Entry>> entries_; + Member<ScriptPromiseResolver> pending_next_; +}; + +} // namespace blink + +#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_FILESYSTEM_FILE_SYSTEM_DIRECTORY_ITERATOR_H_
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.idl b/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.idl new file mode 100644 index 0000000..c0505c2 --- /dev/null +++ b/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator.idl
@@ -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. + +// Async iterator returned by FileSystemDirectoryHandle.getEntries(). +// https://github.com/WICG/writable-files/blob/master/EXPLAINER.md +[ + NoInterfaceObject, + RuntimeEnabled=WritableFiles +] interface FileSystemDirectoryIterator { + [CallWith=ScriptState] Promise next(); + [ImplementedAs=IteratorReturn] void return(); +};
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator_entry.idl b/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator_entry.idl new file mode 100644 index 0000000..b4372f8 --- /dev/null +++ b/third_party/blink/renderer/modules/filesystem/file_system_directory_iterator_entry.idl
@@ -0,0 +1,10 @@ +// 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. + +// Used by FileSystemDirectoryIterator to represents results of next() calls. +// https://github.com/WICG/writable-files/blob/master/EXPLAINER.md +dictionary FileSystemDirectoryIteratorEntry { + FileSystemBaseHandle value; + boolean done = false; +};
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_get_directory_options.idl b/third_party/blink/renderer/modules/filesystem/file_system_get_directory_options.idl new file mode 100644 index 0000000..b430b67 --- /dev/null +++ b/third_party/blink/renderer/modules/filesystem/file_system_get_directory_options.idl
@@ -0,0 +1,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. + +// https://github.com/WICG/writable-files/blob/master/EXPLAINER.md +dictionary FileSystemGetDirectoryOptions { + boolean create = false; +};
diff --git a/third_party/blink/renderer/modules/filesystem/file_system_get_file_options.idl b/third_party/blink/renderer/modules/filesystem/file_system_get_file_options.idl new file mode 100644 index 0000000..ec0f2d24 --- /dev/null +++ b/third_party/blink/renderer/modules/filesystem/file_system_get_file_options.idl
@@ -0,0 +1,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. + +// https://github.com/WICG/writable-files/blob/master/EXPLAINER.md +dictionary FileSystemGetFileOptions { + boolean create = false; +};
diff --git a/third_party/blink/renderer/modules/modules_idl_files.gni b/third_party/blink/renderer/modules/modules_idl_files.gni index fae5d71..7c9be41 100644 --- a/third_party/blink/renderer/modules/modules_idl_files.gni +++ b/third_party/blink/renderer/modules/modules_idl_files.gni
@@ -140,6 +140,7 @@ "filesystem/file_entry_sync.idl", "filesystem/file_system_base_handle.idl", "filesystem/file_system_directory_handle.idl", + "filesystem/file_system_directory_iterator.idl", "filesystem/file_system_file_handle.idl", "filesystem/file_system_callback.idl", "filesystem/file_system_writer.idl", @@ -519,7 +520,10 @@ "encryptedmedia/media_key_system_configuration.idl", "encryptedmedia/media_key_system_media_capability.idl", "eventsource/event_source_init.idl", + "filesystem/file_system_directory_iterator_entry.idl", "filesystem/file_system_flags.idl", + "filesystem/file_system_get_directory_options.idl", + "filesystem/file_system_get_file_options.idl", "filesystem/get_system_directory_options.idl", "gamepad/gamepad_effect_parameters.idl", "gamepad/gamepad_event_init.idl",
diff --git a/third_party/blink/renderer/modules/vr/navigator_vr.cc b/third_party/blink/renderer/modules/vr/navigator_vr.cc index ad15980..8eec6dee 100644 --- a/third_party/blink/renderer/modules/vr/navigator_vr.cc +++ b/third_party/blink/renderer/modules/vr/navigator_vr.cc
@@ -144,7 +144,8 @@ script_state, DOMException::Create(DOMExceptionCode::kInvalidStateError, kNotAssociatedWithDocumentMessage)); } - if (!frame->IsFeatureEnabled(mojom::FeaturePolicyFeature::kWebVr)) { + if (!frame->IsFeatureEnabled(mojom::FeaturePolicyFeature::kWebVr, + ReportOptions::kReportOnFailure)) { return ScriptPromise::RejectWithDOMException( script_state, DOMException::Create(DOMExceptionCode::kSecurityError, kFeaturePolicyBlockedMessage));
diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_node.cc b/third_party/blink/renderer/modules/webaudio/audio_worklet_node.cc index d742928..cee79bc 100644 --- a/third_party/blink/renderer/modules/webaudio/audio_worklet_node.cc +++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_node.cc
@@ -47,12 +47,15 @@ AddInput(); } - // If |options.outputChannelCount| unspecified, all outputs are mono. + if (options.hasOutputChannelCount()) { + is_output_channel_count_given_ = true; + } + for (unsigned i = 0; i < options.numberOfOutputs(); ++i) { - unsigned long channel_count = options.hasOutputChannelCount() + // If |options.outputChannelCount| unspecified, all outputs are mono. + AddOutput(is_output_channel_count_given_ ? options.outputChannelCount()[i] - : 1; - AddOutput(channel_count); + : 1); } if (Context()->GetExecutionContext()) { @@ -132,9 +135,11 @@ Context()->AssertGraphOwner(); DCHECK(input); - // Dynamic channel count only works when the node has 1 input and 1 output. - // Otherwise the channel count(s) should not be dynamically changed. - if (NumberOfInputs() == 1 && NumberOfOutputs() == 1) { + // Dynamic channel count only works when the node has 1 input, 1 output and + // |outputChannelCount| is not given. Otherwise the channel count(s) should + // not be dynamically changed. + if (NumberOfInputs() == 1 && NumberOfOutputs() == 1 && + !is_output_channel_count_given_) { DCHECK_EQ(input, &this->Input(0)); unsigned number_of_input_channels = Input(0).NumberOfChannels(); if (number_of_input_channels != Output(0).NumberOfChannels()) {
diff --git a/third_party/blink/renderer/modules/webaudio/audio_worklet_node.h b/third_party/blink/renderer/modules/webaudio/audio_worklet_node.h index be38e86..058202c2 100644 --- a/third_party/blink/renderer/modules/webaudio/audio_worklet_node.h +++ b/third_party/blink/renderer/modules/webaudio/audio_worklet_node.h
@@ -85,6 +85,9 @@ bool RequiresTailProcessing() const override { return true; } scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_; + + // Used only if number of inputs and outputs are 1. + bool is_output_channel_count_given_ = false; }; class AudioWorkletNode final : public AudioNode,
diff --git a/third_party/blink/renderer/modules/xr/xr.cc b/third_party/blink/renderer/modules/xr/xr.cc index 94d75fb3..287e88c0 100644 --- a/third_party/blink/renderer/modules/xr/xr.cc +++ b/third_party/blink/renderer/modules/xr/xr.cc
@@ -73,7 +73,8 @@ did_log_requestDevice_ = true; } - if (!frame->IsFeatureEnabled(mojom::FeaturePolicyFeature::kWebVr)) { + if (!frame->IsFeatureEnabled(mojom::FeaturePolicyFeature::kWebVr, + ReportOptions::kReportOnFailure)) { // Only allow the call to be made if the appropraite feature policy is in // place. return ScriptPromise::RejectWithDOMException(
diff --git a/third_party/blink/renderer/platform/loader/BUILD.gn b/third_party/blink/renderer/platform/loader/BUILD.gn index 89cb07a..2dfb18d 100644 --- a/third_party/blink/renderer/platform/loader/BUILD.gn +++ b/third_party/blink/renderer/platform/loader/BUILD.gn
@@ -26,6 +26,9 @@ "fetch/cached_metadata_handler.h", "fetch/client_hints_preferences.cc", "fetch/client_hints_preferences.h", + "fetch/fetch_client_settings_object.h", + "fetch/fetch_client_settings_object_snapshot.cc", + "fetch/fetch_client_settings_object_snapshot.h", "fetch/fetch_context.cc", "fetch/fetch_context.h", "fetch/fetch_initiator_info.h",
diff --git a/third_party/blink/renderer/core/script/fetch_client_settings_object.h b/third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object.h similarity index 85% rename from third_party/blink/renderer/core/script/fetch_client_settings_object.h rename to third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object.h index 7bd4406..cfabe9a 100644 --- a/third_party/blink/renderer/core/script/fetch_client_settings_object.h +++ b/third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object.h
@@ -2,13 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_SCRIPT_FETCH_CLIENT_SETTINGS_OBJECT_H_ -#define THIRD_PARTY_BLINK_RENDERER_CORE_SCRIPT_FETCH_CLIENT_SETTINGS_OBJECT_H_ +#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_FETCH_CLIENT_SETTINGS_OBJECT_H_ +#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_FETCH_CLIENT_SETTINGS_OBJECT_H_ -#include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/platform/cross_thread_copier.h" #include "third_party/blink/renderer/platform/heap/garbage_collected.h" #include "third_party/blink/renderer/platform/heap/heap.h" +#include "third_party/blink/renderer/platform/platform_export.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h" #include "third_party/blink/renderer/platform/weborigin/referrer_policy.h" #include "third_party/blink/renderer/platform/weborigin/security_origin.h" @@ -24,7 +24,7 @@ // currently implemented by ResourceFetcher and FetchContext, and this class is // used together with them. // https://html.spec.whatwg.org/multipage/webappapis.html#fetch-a-module-worker-script-tree -class CORE_EXPORT FetchClientSettingsObject +class PLATFORM_EXPORT FetchClientSettingsObject : public GarbageCollectedFinalized<FetchClientSettingsObject> { public: virtual ~FetchClientSettingsObject() = default; @@ -52,4 +52,4 @@ } // namespace blink -#endif // THIRD_PARTY_BLINK_RENDERER_CORE_SCRIPT_FETCH_CLIENT_SETTINGS_OBJECT_H_ +#endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_FETCH_CLIENT_SETTINGS_OBJECT_H_
diff --git a/third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.cc b/third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.cc similarity index 62% rename from third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.cc rename to third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.cc index 707dde6..40d15d1 100644 --- a/third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.cc +++ b/third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.cc
@@ -2,20 +2,13 @@ // 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/script/fetch_client_settings_object_snapshot.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h" -#include "third_party/blink/renderer/core/execution_context/execution_context.h" +#include "third_party/blink/renderer/platform/heap/trace_traits.h" namespace blink { FetchClientSettingsObjectSnapshot::FetchClientSettingsObjectSnapshot( - ExecutionContext& execution_context) - : FetchClientSettingsObjectSnapshot(execution_context.BaseURL(), - execution_context.GetSecurityOrigin(), - execution_context.GetReferrerPolicy(), - execution_context.OutgoingReferrer()) {} - -FetchClientSettingsObjectSnapshot::FetchClientSettingsObjectSnapshot( std::unique_ptr<CrossThreadFetchClientSettingsObjectData> data) : FetchClientSettingsObjectSnapshot(data->base_url, data->security_origin,
diff --git a/third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h b/third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h similarity index 86% rename from third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h rename to third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h index a38cfd7..4a5ec35 100644 --- a/third_party/blink/renderer/core/script/fetch_client_settings_object_snapshot.h +++ b/third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object_snapshot.h
@@ -2,20 +2,18 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_SCRIPT_FETCH_CLIENT_SETTINGS_OBJECT_SNAPSHOT_H_ -#define THIRD_PARTY_BLINK_RENDERER_CORE_SCRIPT_FETCH_CLIENT_SETTINGS_OBJECT_SNAPSHOT_H_ +#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_FETCH_CLIENT_SETTINGS_OBJECT_SNAPSHOT_H_ +#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_FETCH_CLIENT_SETTINGS_OBJECT_SNAPSHOT_H_ -#include "third_party/blink/renderer/core/core_export.h" -#include "third_party/blink/renderer/core/script/fetch_client_settings_object.h" #include "third_party/blink/renderer/platform/cross_thread_copier.h" +#include "third_party/blink/renderer/platform/loader/fetch/fetch_client_settings_object.h" +#include "third_party/blink/renderer/platform/platform_export.h" #include "third_party/blink/renderer/platform/weborigin/kurl.h" #include "third_party/blink/renderer/platform/weborigin/referrer_policy.h" #include "third_party/blink/renderer/platform/weborigin/security_origin.h" namespace blink { -class ExecutionContext; - // This class is needed to copy a FetchClientSettingsObjectSnapshot across // threads, because it has some members which cannot be transferred across // threads (AtomicString for example). @@ -55,10 +53,9 @@ // This class should be used only for main worker (worklet) script loading. For // other resources, FetchClientSettingsObjectImpl should be used. See the class // level comments on that class. -class CORE_EXPORT FetchClientSettingsObjectSnapshot final +class PLATFORM_EXPORT FetchClientSettingsObjectSnapshot final : public FetchClientSettingsObject { public: - explicit FetchClientSettingsObjectSnapshot(ExecutionContext&); explicit FetchClientSettingsObjectSnapshot( std::unique_ptr<CrossThreadFetchClientSettingsObjectData>); FetchClientSettingsObjectSnapshot( @@ -94,4 +91,4 @@ } // namespace blink -#endif // THIRD_PARTY_BLINK_RENDERER_CORE_SCRIPT_FETCH_CLIENT_SETTINGS_OBJECT_SNAPSHOT_H_ +#endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_FETCH_FETCH_CLIENT_SETTINGS_OBJECT_SNAPSHOT_H_
diff --git a/third_party/blink/renderer/platform/loader/fetch/memory_cache_correctness_test.cc b/third_party/blink/renderer/platform/loader/fetch/memory_cache_correctness_test.cc index 56f751b6..d75c0c0 100644 --- a/third_party/blink/renderer/platform/loader/fetch/memory_cache_correctness_test.cc +++ b/third_party/blink/renderer/platform/loader/fetch/memory_cache_correctness_test.cc
@@ -74,7 +74,9 @@ request.SetFetchCredentialsMode( network::mojom::FetchCredentialsMode::kOmit); MockResource* resource = MockResource::Create(request); - resource->SetResponse(ResourceResponse(KURL(kResourceURL), "text/html")); + ResourceResponse response(KURL{kResourceURL}); + response.SetMimeType("text/html"); + resource->SetResponse(response); resource->FinishForTest(); AddResourceToMemoryCache(resource);
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_response.cc b/third_party/blink/renderer/platform/loader/fetch/resource_response.cc index 59398825..5405a2e 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_response.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource_response.cc
@@ -77,18 +77,10 @@ signature_data_.IsolatedCopy()); } -ResourceResponse::ResourceResponse() - : expected_content_length_(0), is_null_(true) {} +ResourceResponse::ResourceResponse() : is_null_(true) {} -ResourceResponse::ResourceResponse(const KURL& url, - const AtomicString& mime_type, - long long expected_length, - const AtomicString& text_encoding_name) - : url_(url), - mime_type_(mime_type), - expected_content_length_(expected_length), - text_encoding_name_(text_encoding_name), - is_null_(false) {} +ResourceResponse::ResourceResponse(const KURL& url) + : url_(url), is_null_(false) {} ResourceResponse::ResourceResponse(const ResourceResponse&) = default; ResourceResponse& ResourceResponse::operator=(const ResourceResponse&) =
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource_response.h b/third_party/blink/renderer/platform/loader/fetch/resource_response.h index a5b681d..eb219c3a 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource_response.h +++ b/third_party/blink/renderer/platform/loader/fetch/resource_response.h
@@ -144,11 +144,7 @@ }; ResourceResponse(); - explicit ResourceResponse( - const KURL&, - const AtomicString& mime_type = g_null_atom, - long long expected_length = 0, - const AtomicString& text_encoding_name = g_null_atom); + explicit ResourceResponse(const KURL&); ResourceResponse(const ResourceResponse&); ResourceResponse& operator=(const ResourceResponse&); @@ -433,7 +429,7 @@ KURL url_; AtomicString mime_type_; - long long expected_content_length_; + long long expected_content_length_ = 0; AtomicString text_encoding_name_; unsigned connection_id_ = 0;
diff --git a/third_party/closure_compiler/README.chromium b/third_party/closure_compiler/README.chromium index 157ac77..698729d2 100644 --- a/third_party/closure_compiler/README.chromium +++ b/third_party/closure_compiler/README.chromium
@@ -1,9 +1,8 @@ Name: Closure compiler Short Name: closure-compiler URL: http://github.com/google/closure-compiler -Version: v20180725-137c24759 -Date: 2018/07/27 19:34 -Revision: 137c2475944651f45433965afa9f1cddf7d1966b +Version: v20180805 +Date: 2018/09/08 01:00 License: Apache 2.0 License File: LICENSE Security Critical: no
diff --git a/third_party/closure_compiler/compiler/compiler.jar b/third_party/closure_compiler/compiler/compiler.jar index 8be50731..3b312d2 100644 --- a/third_party/closure_compiler/compiler/compiler.jar +++ b/third_party/closure_compiler/compiler/compiler.jar Binary files differ
diff --git a/third_party/closure_compiler/externs/chrome_extensions.js b/third_party/closure_compiler/externs/chrome_extensions.js index 8a3a553f..512b8a7 100644 --- a/third_party/closure_compiler/externs/chrome_extensions.js +++ b/third_party/closure_compiler/externs/chrome_extensions.js
@@ -6249,6 +6249,16 @@ /** + * @typedef {!{ + * manufacturerId: string, + * productId: string, + * yearOfManufacture: number, + * }} + */ +chrome.system.display.Edid; + + +/** * An undocumented type that defines the objects passed to getInfo()'s callback. * @constructor */ @@ -6263,6 +6273,10 @@ chrome.system.display.DisplayUnitInfo.prototype.name; +/** @type {!chrome.system.display.Edid|undefined} */ +chrome.system.display.DisplayUnitInfo.prototype.edid; + + /** @type {string} */ chrome.system.display.DisplayUnitInfo.prototype.mirroringSourceId;
diff --git a/third_party/closure_compiler/externs/pending.js b/third_party/closure_compiler/externs/pending.js index 0f0e2f3b..feded98 100644 --- a/third_party/closure_compiler/externs/pending.js +++ b/third_party/closure_compiler/externs/pending.js
@@ -71,3 +71,14 @@ /** @param {Element} target */ unobserve(target) {} } + +/** + * @see + * https://www.polymer-project.org/2.0/docs/api/namespaces/Polymer.RenderStatus + * Queue a function call to be run before the next render. + * @param {!Element} element The element on which the function call is made. + * @param {!function()} fn The function called on next render. + * @param {...*} args The function arguments. + * TODO(rbpotter): Remove this once it is added to Closure Compiler itself. + */ +Polymer.RenderStatus.beforeNextRender = function(element, fn, args) {}
diff --git a/third_party/closure_compiler/externs/polymer-1.0.js b/third_party/closure_compiler/externs/polymer-1.0.js index b87c1841..7fc515c 100644 --- a/third_party/closure_compiler/externs/polymer-1.0.js +++ b/third_party/closure_compiler/externs/polymer-1.0.js
@@ -1368,6 +1368,23 @@ DomRepeatElement.prototype.renderedItemCount; +/** + * Event object for an event handler on a child of a dom-repeat template. + * @see https://www.polymer-project.org/1.0/docs/devguide/templates#handling-events + * @extends {CustomEvent} + * @constructor + * @template T + */ +var DomRepeatEvent = function() {}; + +/** + * @type {{ + * index: number, + * item: T + * }} + */ +DomRepeatEvent.prototype.model; + /** * @see https://github.com/Polymer/polymer/blob/master/src/lib/template/array-selector.html
diff --git a/third_party/closure_compiler/roll_closure_compiler b/third_party/closure_compiler/roll_closure_compiler index 1341a36..8bd84d57 100755 --- a/third_party/closure_compiler/roll_closure_compiler +++ b/third_party/closure_compiler/roll_closure_compiler
@@ -3,16 +3,12 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # -# Download the newest version of Closure Compiler, build it and put into Chrome -# source tree. Also update externs/chrome_extensions.js. -# -# TODO(dbeam): we don't really need to build the compiler any more. We used to -# need to because we built a custom runner. We could probably just curl -# https://dl.google.com/closure-compiler/compiler-latest.zip and unzip. And get -# the externs from rawgit.com. +# Download the newest version of Closure Compiler (pre-compiled), and put into +# Chrome source tree. Also download latest versions of various externs files. readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" readonly TEMP_DIR=$(mktemp -d) +readonly EXTERNS_DIR_URL="https://raw.githubusercontent.com/google/closure-compiler/master/contrib/externs" readonly EXTERNS_DIR="${SCRIPT_DIR}/externs" readonly README="${SCRIPT_DIR}/README.chromium" @@ -26,65 +22,25 @@ trap cleanup SIGINT SIGHUP SIGTERM -old_head=$(egrep -o "^Revision: [0-9a-f]{5,40}$" "${README}" | cut -d" " -f2) old_chrome_sha1=$(get_sha1 "${EXTERNS_DIR}/chrome.js") old_extensions_sha1=$(get_sha1 "${EXTERNS_DIR}/chrome_extensions.js") old_polymer_sha1=$(get_sha1 "${EXTERNS_DIR}/polymer-1.0.js") cd "${TEMP_DIR}" -echo "Cloning Closure Compiler repo" -git clone --depth 1 https://github.com/google/closure-compiler.git +echo "Downloading Closure Compiler latest..." +wget https://dl.google.com/closure-compiler/compiler-latest.zip +unzip compiler-latest.zip -cd closure-compiler - -new_head="$(git rev-parse HEAD)" -new_version="$(git log HEAD -n1 --date=format:%Y%m%d --pretty=format:v%cd-%h)" +jar_file=$(basename $(find . -name '*.jar')) +new_version=$(basename $(echo ${jar_file} | cut -f3 -d-) .jar) new_date="$(date --utc '+%Y/%m/%d %H:%M')" -if [[ "${new_head}" == "${old_head}" ]]; then - echo "No closure-compiler changes since last roll. Nothing to do." - cleanup - exit 0 -else - head_range=$(cat <<EOT -Change log: -https://github.com/google/closure-compiler/compare/${old_head}...${new_head} -EOT -) -fi +cp "${jar_file}" "${SCRIPT_DIR}/compiler/compiler.jar" -check_jdk_version() { - # Pretty contrived checks modeling how we write Maven XML files. - if [ ! -r "$2" ]; then - echo "Could not find $2" >&2 - exit 1 - elif ! fgrep -q '<jdk.version>'$1'</jdk.version>' "$2"; then - echo "JDK version $1 must be specified in $2" >&2 - exit 1 - elif ! fgrep -q '<source>${jdk.version}</source>' "$2"; then - echo "Java source must be specified to be \${jdk.version} in $2" >&2 - exit 1 - elif ! fgrep -q '<target>${jdk.version}</target>' "$2"; then - echo "Java target must be specified to be \${jdk.version} in $2" >&2 - exit 1 - fi -} - -echo "Checking JDK Version Used to Build" -check_jdk_version 1.8 pom.xml - -echo "Building Closure Compiler" -mvn clean install -DskipTests=true --projects com.google.javascript:closure-compiler,com.google.javascript:closure-compiler-externs - -if [[ "$?" -ne 0 ]]; then - echo "Failed to build jar, copying nothing" >&2 - cleanup - exit 1 -fi - -# TODO(dbeam): the Maven-built jar seems a little bigger than the ant version. -cp target/closure-compiler-1.0-SNAPSHOT.jar "${SCRIPT_DIR}/compiler/compiler.jar" +wget ${EXTERNS_DIR_URL}/chrome.js +wget ${EXTERNS_DIR_URL}/chrome_extensions.js +wget ${EXTERNS_DIR_URL}/polymer-1.0.js readonly WARNING="$(cat <<EOT // SSSSSSSSSSSSSSS TTTTTTTTTTTTTTTTTTTTTTT OOOOOOOOO PPPPPPPPPPPPPPPPP @@ -106,9 +62,9 @@ EOT )" -(echo "${WARNING}" && cat contrib/externs/chrome.js) > "${EXTERNS_DIR}/chrome.js" -(echo "${WARNING}" && cat contrib/externs/chrome_extensions.js) > "${EXTERNS_DIR}/chrome_extensions.js" -(echo "${WARNING}" && cat contrib/externs/polymer-1.0.js) > "${EXTERNS_DIR}/polymer-1.0.js" +(echo "${WARNING}" && cat chrome.js) > "${EXTERNS_DIR}/chrome.js" +(echo "${WARNING}" && cat chrome_extensions.js) > "${EXTERNS_DIR}/chrome_extensions.js" +(echo "${WARNING}" && cat polymer-1.0.js) > "${EXTERNS_DIR}/polymer-1.0.js" new_chrome_sha1=$(get_sha1 "${EXTERNS_DIR}/chrome.js") if [[ "${new_chrome_sha1}" != "${old_chrome_sha1}" ]]; then @@ -130,9 +86,9 @@ echo "@" echo "@ ROLL RESULTS:" echo "@" -echo "@ closure-compiler.git HEAD:" -echo "@ Old: ${old_head}" -echo "@ New: ${new_head}" +echo "@ closure-compiler-latest.zip version:" +echo "@ Old: ${old_version}" +echo "@ New: ${new_version}" echo "@" echo "@ externs/chrome.js SHA1:" echo "@ Old: ${old_chrome_sha1}" @@ -149,11 +105,11 @@ echo "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" echo -sed -i "s/^Revision: ${old_head}$/Revision: ${new_head}/; s,^Date: .*,Date: ${new_date},; s,^Version: .*,Version: ${new_version}," "${README}" +sed -i "s,^Date: .*,Date: ${new_date},; s,^Version: .*,Version: ${new_version}," "${README}" echo "git commit -a -m 'Roll closure compiler" echo -echo "${head_range}" + if [[ ! -z "${chrome_range}" ]]; then echo "${chrome_range}"; fi if [[ ! -z "${extensions_range}" ]]; then echo "${extensions_range}"; fi if [[ ! -z "${polymer_range}" ]]; then echo "${polymer_range}"; fi
diff --git a/third_party/leveldatabase/BUILD.gn b/third_party/leveldatabase/BUILD.gn index f33dc15..3fbf1c3b 100644 --- a/third_party/leveldatabase/BUILD.gn +++ b/third_party/leveldatabase/BUILD.gn
@@ -22,10 +22,6 @@ # Define the macro everywhere, to avoid reasoning about which headers bring # windows.h in. defines += [ "DeleteFile=DeleteFileW" ] - - # OS_WIN is defined in base_export.h, but needs to be defined earlier for - # leveldb to use it. - defines += [ "OS_WIN" ] } }
diff --git a/third_party/leveldatabase/README.chromium b/third_party/leveldatabase/README.chromium index d1a8926..06f2ffec 100644 --- a/third_party/leveldatabase/README.chromium +++ b/third_party/leveldatabase/README.chromium
@@ -1,7 +1,7 @@ Name: LevelDB: A Fast Persistent Key-Value Store Short Name: leveldb URL: https://github.com/google/leveldb.git -Version: 1.20.git.41172a24016bc29fc795ed504737392587f54e3d +Version: 1.20.git.7b945f200339aa47c24788d3ee9910c09c513843 License: New BSD License File: src/LICENSE Security Critical: yes @@ -28,4 +28,4 @@ * db_bench is built as leveldb_db_bench in Chromium. * leveldb_chrome::NewMemEnv() to create memory Env instances that are tracked to know if a database open request is in-memory. These memory Env instances report - memory usage to memory-infra. \ No newline at end of file + memory usage to memory-infra.
diff --git a/third_party/leveldatabase/chromium_logger.h b/third_party/leveldatabase/chromium_logger.h index 47114a4..08317fe 100644 --- a/third_party/leveldatabase/chromium_logger.h +++ b/third_party/leveldatabase/chromium_logger.h
@@ -5,79 +5,102 @@ #ifndef THIRD_PARTY_LEVELDATABASE_CHROMIUM_LOGGER_H_ #define THIRD_PARTY_LEVELDATABASE_CHROMIUM_LOGGER_H_ -#include <stdint.h> - +#include <cstdarg> #include <utility> #include "base/files/file.h" #include "base/format_macros.h" +#include "base/strings/string_util.h" +#include "base/threading/platform_thread.h" #include "base/time/time.h" namespace leveldb { class ChromiumLogger : public Logger { public: - explicit ChromiumLogger(base::File f) : file_(std::move(f)) {} - virtual ~ChromiumLogger() {} - virtual void Logv(const char* format, va_list ap) { + explicit ChromiumLogger(base::File file) : file_(std::move(file)) {} + + ~ChromiumLogger() override = default; + + void Logv(const char* format, va_list arguments) override { + // Record the time as close to the Logv() call as possible. + base::Time::Exploded now_exploded; + base::Time::Now().LocalExplode(&now_exploded); + const base::PlatformThreadId thread_id = base::PlatformThread::CurrentId(); - // We try twice: the first time with a fixed-size stack allocated buffer, - // and the second time with a much larger dynamically allocated buffer. - char buffer[500]; - for (int iter = 0; iter < 2; iter++) { - char* base; - int bufsize; - if (iter == 0) { - bufsize = sizeof(buffer); - base = buffer; - } else { - bufsize = 30000; - base = new char[bufsize]; - } - char* p = base; - char* limit = base + bufsize; + // We first attempt to print into a stack-allocated buffer. If this attempt + // fails, we make a second attempt with a dynamically allocated buffer. + constexpr const int kStackBufferSize = 512; + char stack_buffer[kStackBufferSize]; + static_assert(sizeof(stack_buffer) == static_cast<size_t>(kStackBufferSize), + "sizeof(char) is expected to be 1 in C++"); - base::Time::Exploded t; - base::Time::Now().LocalExplode(&t); + int dynamic_buffer_size = 0; // Computed in the first iteration. + for (int iteration = 0; iteration < 2; ++iteration) { + const int buffer_size = + (iteration == 0) ? kStackBufferSize : dynamic_buffer_size; + char* const buffer = + (iteration == 0) ? stack_buffer : new char[dynamic_buffer_size]; - p += base::snprintf(p, limit - p, - "%04d/%02d/%02d-%02d:%02d:%02d.%03d %" PRIu64 " ", - t.year, - t.month, - t.day_of_month, - t.hour, - t.minute, - t.second, - t.millisecond, - static_cast<uint64_t>(thread_id)); + // Print the header into the buffer. + int buffer_offset = base::snprintf( + buffer, buffer_size, + "%04d/%02d/%02d-%02d:%02d:%02d.%03d %" PRIx64 " ", + now_exploded.year, + now_exploded.month, + now_exploded.day_of_month, + now_exploded.hour, + now_exploded.minute, + now_exploded.second, + now_exploded.millisecond, + static_cast<uint64_t>(thread_id)); - // Print the message - if (p < limit) { - va_list backup_ap; - va_copy(backup_ap, ap); - p += vsnprintf(p, limit - p, format, backup_ap); - va_end(backup_ap); - } + // The header can be at most 45 characters (10 date + 12 time + 3 spacing + // + 20 thread ID), which should fit comfortably into the static buffer. + DCHECK_LE(buffer_offset, 45); + static_assert(45 < kStackBufferSize, + "stack-allocated buffer may not fit the message header"); + DCHECK_LT(buffer_offset, buffer_size); - // Truncate to available space if necessary - if (p >= limit) { - if (iter == 0) { - continue; // Try again with larger buffer - } else { - p = limit - 1; + // Print the message into the buffer. + std::va_list arguments_copy; + va_copy(arguments_copy, arguments); + buffer_offset += std::vsnprintf(buffer + buffer_offset, + buffer_size - buffer_offset, format, + arguments_copy); + va_end(arguments_copy); + + // The code below may append a newline at the end of the buffer, which + // requires an extra character. + if (buffer_offset >= buffer_size - 1) { + // The message did not fit into the buffer. + if (iteration == 0) { + // Re-run the loop and use a dynamically-allocated buffer. The buffer + // will be large enough for the log message, an extra newline and a + // null terminator. + dynamic_buffer_size = buffer_offset + 2; + continue; } + + // The dynamically-allocated buffer was incorrectly sized. This should + // not happen, assuming a correct implementation of (v)snprintf. Fail + // in tests, recover by truncating the log message in production. + NOTREACHED(); + buffer_offset = buffer_size - 1; } - // Add newline if necessary - if (p == base || p[-1] != '\n') { - *p++ = '\n'; + // Add a newline if necessary. + if (buffer[buffer_offset - 1] != '\n') { + buffer[buffer_offset] = '\n'; + ++buffer_offset; } - assert(p <= limit); - file_.WriteAtCurrentPos(base, p - base); - if (base != buffer) { - delete[] base; + DCHECK_LE(buffer_offset, buffer_size); + file_.WriteAtCurrentPos(buffer, buffer_offset); + + if (iteration != 0) { + delete[] buffer; } break; }
diff --git a/third_party/leveldatabase/port/port_chromium.cc b/third_party/leveldatabase/port/port_chromium.cc index 858a4e38..aa431cd 100644 --- a/third_party/leveldatabase/port/port_chromium.cc +++ b/third_party/leveldatabase/port/port_chromium.cc
@@ -14,11 +14,9 @@ namespace leveldb { namespace port { -Mutex::Mutex() { -} +Mutex::Mutex() = default; -Mutex::~Mutex() { -} +Mutex::~Mutex() = default; void Mutex::Lock() { mu_.Acquire(); @@ -36,7 +34,7 @@ : cv_(&mu->mu_) { } -CondVar::~CondVar() { } +CondVar::~CondVar() = default; void CondVar::Wait() { cv_.Wait();
diff --git a/third_party/leveldatabase/port/port_chromium.h b/third_party/leveldatabase/port/port_chromium.h index a7c449eb..2428826c 100644 --- a/third_party/leveldatabase/port/port_chromium.h +++ b/third_party/leveldatabase/port/port_chromium.h
@@ -25,10 +25,6 @@ # include <linux/unistd.h> #endif -#if defined(OS_WIN) -typedef SSIZE_T ssize_t; -#endif - namespace leveldb { namespace port { @@ -65,12 +61,12 @@ }; class AtomicPointer { - private: - typedef base::subtle::AtomicWord Rep; - Rep rep_; public: - AtomicPointer() { } + AtomicPointer() = default; + ~AtomicPointer() = default; + explicit AtomicPointer(void* p) : rep_(reinterpret_cast<Rep>(p)) {} + inline void* Acquire_Load() const { return reinterpret_cast<void*>(base::subtle::Acquire_Load(&rep_)); } @@ -83,6 +79,10 @@ inline void NoBarrier_Store(void* v) { base::subtle::NoBarrier_Store(&rep_, reinterpret_cast<Rep>(v)); } + + private: + using Rep = base::subtle::AtomicWord; + Rep rep_; }; // Implementation of OnceType and InitOnce() pair, this is equivalent to
diff --git a/third_party/libaom/README.chromium b/third_party/libaom/README.chromium index 216a2664..36d9de6 100644 --- a/third_party/libaom/README.chromium +++ b/third_party/libaom/README.chromium
@@ -2,9 +2,9 @@ Short Name: libaom URL: https://aomedia.googlesource.com/aom/ Version: 0 -Date: Wednesday August 29 2018 +Date: Tuesday September 11 2018 Branch: master -Commit: 75b9859caeeb9004374ee0547c062a1ed4979652 +Commit: 7d447f5b0021abd363dd64912c59196393e9b159 License: BSD License File: source/libaom/LICENSE Security Critical: yes
diff --git a/third_party/libaom/libaom_srcs.gni b/third_party/libaom/libaom_srcs.gni index 515bf9c..9a67956f7 100644 --- a/third_party/libaom/libaom_srcs.gni +++ b/third_party/libaom/libaom_srcs.gni
@@ -392,6 +392,7 @@ "//third_party/libaom/source/libaom/aom_dsp/x86/mem_sse2.h", "//third_party/libaom/source/libaom/aom_dsp/x86/transpose_sse2.h", "//third_party/libaom/source/libaom/aom_dsp/x86/txfm_common_sse2.h", + "//third_party/libaom/source/libaom/aom_dsp/x86/sum_squares_sse2.h", ] aom_dsp_common_intrin_sse4_1 = [
diff --git a/third_party/libaom/source/config/config/aom_version.h b/third_party/libaom/source/config/config/aom_version.h index 6a847e0..cb2f632 100644 --- a/third_party/libaom/source/config/config/aom_version.h +++ b/third_party/libaom/source/config/config/aom_version.h
@@ -12,8 +12,8 @@ #define VERSION_MAJOR 1 #define VERSION_MINOR 0 #define VERSION_PATCH 0 -#define VERSION_EXTRA "455-g75b9859cae" +#define VERSION_EXTRA "541-g7d447f5b0" #define VERSION_PACKED \ ((VERSION_MAJOR << 16) | (VERSION_MINOR << 8) | (VERSION_PATCH)) -#define VERSION_STRING_NOSP "1.0.0-455-g75b9859cae" -#define VERSION_STRING " 1.0.0-455-g75b9859cae" +#define VERSION_STRING_NOSP "1.0.0-541-g7d447f5b0" +#define VERSION_STRING " 1.0.0-541-g7d447f5b0"
diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_dsp_rtcd.h b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_dsp_rtcd.h index ba1cecd..f1e8d1c 100644 --- a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_dsp_rtcd.h +++ b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_dsp_rtcd.h
@@ -3463,7 +3463,7 @@ #ifdef RTCD_C #include "aom_ports/arm.h" static void setup_rtcd_internal(void) { - int flags = arm_cpu_caps(); + int flags = aom_arm_cpu_caps(); (void)flags;
diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_scale_rtcd.h b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_scale_rtcd.h index ce01c830..ac22c47 100644 --- a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_scale_rtcd.h +++ b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/aom_scale_rtcd.h
@@ -123,7 +123,7 @@ #ifdef RTCD_C #include "aom_ports/arm.h" static void setup_rtcd_internal(void) { - int flags = arm_cpu_caps(); + int flags = aom_arm_cpu_caps(); (void)flags; }
diff --git a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/av1_rtcd.h b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/av1_rtcd.h index 0383950..7ad23d63 100644 --- a/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/av1_rtcd.h +++ b/third_party/libaom/source/config/linux/arm-neon-cpu-detect/config/av1_rtcd.h
@@ -1228,7 +1228,7 @@ #ifdef RTCD_C #include "aom_ports/arm.h" static void setup_rtcd_internal(void) { - int flags = arm_cpu_caps(); + int flags = aom_arm_cpu_caps(); (void)flags;
diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_dsp_rtcd.h b/third_party/libaom/source/config/linux/arm-neon/config/aom_dsp_rtcd.h index 653d49e..8acb85d 100644 --- a/third_party/libaom/source/config/linux/arm-neon/config/aom_dsp_rtcd.h +++ b/third_party/libaom/source/config/linux/arm-neon/config/aom_dsp_rtcd.h
@@ -3311,7 +3311,7 @@ #ifdef RTCD_C #include "aom_ports/arm.h" static void setup_rtcd_internal(void) { - int flags = arm_cpu_caps(); + int flags = aom_arm_cpu_caps(); (void)flags; }
diff --git a/third_party/libaom/source/config/linux/arm-neon/config/aom_scale_rtcd.h b/third_party/libaom/source/config/linux/arm-neon/config/aom_scale_rtcd.h index ce01c830..ac22c47 100644 --- a/third_party/libaom/source/config/linux/arm-neon/config/aom_scale_rtcd.h +++ b/third_party/libaom/source/config/linux/arm-neon/config/aom_scale_rtcd.h
@@ -123,7 +123,7 @@ #ifdef RTCD_C #include "aom_ports/arm.h" static void setup_rtcd_internal(void) { - int flags = arm_cpu_caps(); + int flags = aom_arm_cpu_caps(); (void)flags; }
diff --git a/third_party/libaom/source/config/linux/arm-neon/config/av1_rtcd.h b/third_party/libaom/source/config/linux/arm-neon/config/av1_rtcd.h index efe44ff..18c2386 100644 --- a/third_party/libaom/source/config/linux/arm-neon/config/av1_rtcd.h +++ b/third_party/libaom/source/config/linux/arm-neon/config/av1_rtcd.h
@@ -1053,7 +1053,7 @@ #ifdef RTCD_C #include "aom_ports/arm.h" static void setup_rtcd_internal(void) { - int flags = arm_cpu_caps(); + int flags = aom_arm_cpu_caps(); (void)flags; }
diff --git a/third_party/libaom/source/config/linux/arm/config/aom_dsp_rtcd.h b/third_party/libaom/source/config/linux/arm/config/aom_dsp_rtcd.h index 5a51059..90e6c9da 100644 --- a/third_party/libaom/source/config/linux/arm/config/aom_dsp_rtcd.h +++ b/third_party/libaom/source/config/linux/arm/config/aom_dsp_rtcd.h
@@ -3118,7 +3118,7 @@ #ifdef RTCD_C #include "aom_ports/arm.h" static void setup_rtcd_internal(void) { - int flags = arm_cpu_caps(); + int flags = aom_arm_cpu_caps(); (void)flags; }
diff --git a/third_party/libaom/source/config/linux/arm/config/aom_scale_rtcd.h b/third_party/libaom/source/config/linux/arm/config/aom_scale_rtcd.h index ce01c830..ac22c47 100644 --- a/third_party/libaom/source/config/linux/arm/config/aom_scale_rtcd.h +++ b/third_party/libaom/source/config/linux/arm/config/aom_scale_rtcd.h
@@ -123,7 +123,7 @@ #ifdef RTCD_C #include "aom_ports/arm.h" static void setup_rtcd_internal(void) { - int flags = arm_cpu_caps(); + int flags = aom_arm_cpu_caps(); (void)flags; }
diff --git a/third_party/libaom/source/config/linux/arm/config/av1_rtcd.h b/third_party/libaom/source/config/linux/arm/config/av1_rtcd.h index 088a39ab..c01c44b 100644 --- a/third_party/libaom/source/config/linux/arm/config/av1_rtcd.h +++ b/third_party/libaom/source/config/linux/arm/config/av1_rtcd.h
@@ -864,7 +864,7 @@ #ifdef RTCD_C #include "aom_ports/arm.h" static void setup_rtcd_internal(void) { - int flags = arm_cpu_caps(); + int flags = aom_arm_cpu_caps(); (void)flags; }
diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_dsp_rtcd.h b/third_party/libaom/source/config/linux/arm64/config/aom_dsp_rtcd.h index 653d49e..8acb85d 100644 --- a/third_party/libaom/source/config/linux/arm64/config/aom_dsp_rtcd.h +++ b/third_party/libaom/source/config/linux/arm64/config/aom_dsp_rtcd.h
@@ -3311,7 +3311,7 @@ #ifdef RTCD_C #include "aom_ports/arm.h" static void setup_rtcd_internal(void) { - int flags = arm_cpu_caps(); + int flags = aom_arm_cpu_caps(); (void)flags; }
diff --git a/third_party/libaom/source/config/linux/arm64/config/aom_scale_rtcd.h b/third_party/libaom/source/config/linux/arm64/config/aom_scale_rtcd.h index ce01c830..ac22c47 100644 --- a/third_party/libaom/source/config/linux/arm64/config/aom_scale_rtcd.h +++ b/third_party/libaom/source/config/linux/arm64/config/aom_scale_rtcd.h
@@ -123,7 +123,7 @@ #ifdef RTCD_C #include "aom_ports/arm.h" static void setup_rtcd_internal(void) { - int flags = arm_cpu_caps(); + int flags = aom_arm_cpu_caps(); (void)flags; }
diff --git a/third_party/libaom/source/config/linux/arm64/config/av1_rtcd.h b/third_party/libaom/source/config/linux/arm64/config/av1_rtcd.h index efe44ff..18c2386 100644 --- a/third_party/libaom/source/config/linux/arm64/config/av1_rtcd.h +++ b/third_party/libaom/source/config/linux/arm64/config/av1_rtcd.h
@@ -1053,7 +1053,7 @@ #ifdef RTCD_C #include "aom_ports/arm.h" static void setup_rtcd_internal(void) { - int flags = arm_cpu_caps(); + int flags = aom_arm_cpu_caps(); (void)flags; }
diff --git a/third_party/libaom/source/config/linux/ia32/config/aom_config.c b/third_party/libaom/source/config/linux/ia32/config/aom_config.c index 0b18488..64458d8 100644 --- a/third_party/libaom/source/config/linux/ia32/config/aom_config.c +++ b/third_party/libaom/source/config/linux/ia32/config/aom_config.c
@@ -9,5 +9,5 @@ * PATENTS file, you can obtain it at www.aomedia.org/license/patent. */ #include "aom/aom_codec.h" -static const char* const cfg = "cmake ../source/libaom -G \"Unix Makefiles\" -DCMAKE_TOOLCHAIN_FILE=\"../source/libaom/build/cmake/toolchains/x86-linux.cmake\" -DCONFIG_AV1_ENCODER=0 -DCONFIG_LOWBITDEPTH=1 -DCONFIG_MAX_DECODE_PROFILE=0 -DCONFIG_NORMAL_TILE_MODE=1 -DCONFIG_SIZE_LIMIT=1 -DDECODE_HEIGHT_LIMIT=16384 -DDECODE_WIDTH_LIMIT=16384 -DAOM_RTCD_FLAGS=--require-mmx;--require-sse;--require-sse2"; +static const char* const cfg = "cmake ../source/libaom -G \"Unix Makefiles\" -DCMAKE_TOOLCHAIN_FILE=\"../source/libaom/build/cmake/toolchains/x86-linux.cmake\" -DAOM_RTCD_FLAGS=--require-mmx;--require-sse;--require-sse2 -DCONFIG_AV1_ENCODER=0 -DCONFIG_LOWBITDEPTH=1 -DCONFIG_MAX_DECODE_PROFILE=0 -DCONFIG_NORMAL_TILE_MODE=1 -DCONFIG_SIZE_LIMIT=1 -DDECODE_HEIGHT_LIMIT=16384 -DDECODE_WIDTH_LIMIT=16384"; const char *aom_codec_build_config(void) {return cfg;}
diff --git a/third_party/libaom/source/config/linux/ia32/config/av1_rtcd.h b/third_party/libaom/source/config/linux/ia32/config/av1_rtcd.h index 22a51f1..a1a5fae 100644 --- a/third_party/libaom/source/config/linux/ia32/config/av1_rtcd.h +++ b/third_party/libaom/source/config/linux/ia32/config/av1_rtcd.h
@@ -1350,16 +1350,7 @@ int stride, TX_TYPE tx_type, int bd); -void av1_inv_txfm2d_add_32x32_avx2(const int32_t* input, - uint16_t* output, - int stride, - TX_TYPE tx_type, - int bd); -RTCD_EXTERN void (*av1_inv_txfm2d_add_32x32)(const int32_t* input, - uint16_t* output, - int stride, - TX_TYPE tx_type, - int bd); +#define av1_inv_txfm2d_add_32x32 av1_inv_txfm2d_add_32x32_c void av1_inv_txfm2d_add_32x64_c(const int32_t* input, uint16_t* output, @@ -2169,9 +2160,6 @@ if (flags & HAS_AVX2) av1_highbd_wiener_convolve_add_src = av1_highbd_wiener_convolve_add_src_avx2; - av1_inv_txfm2d_add_32x32 = av1_inv_txfm2d_add_32x32_c; - if (flags & HAS_AVX2) - av1_inv_txfm2d_add_32x32 = av1_inv_txfm2d_add_32x32_avx2; av1_inv_txfm2d_add_4x4 = av1_inv_txfm2d_add_4x4_c; if (flags & HAS_SSE4_1) av1_inv_txfm2d_add_4x4 = av1_inv_txfm2d_add_4x4_sse4_1;
diff --git a/third_party/libaom/source/config/linux/x64/config/av1_rtcd.h b/third_party/libaom/source/config/linux/x64/config/av1_rtcd.h index 8118ab8..e6e4c68 100644 --- a/third_party/libaom/source/config/linux/x64/config/av1_rtcd.h +++ b/third_party/libaom/source/config/linux/x64/config/av1_rtcd.h
@@ -1383,16 +1383,7 @@ int stride, TX_TYPE tx_type, int bd); -void av1_inv_txfm2d_add_32x32_avx2(const int32_t* input, - uint16_t* output, - int stride, - TX_TYPE tx_type, - int bd); -RTCD_EXTERN void (*av1_inv_txfm2d_add_32x32)(const int32_t* input, - uint16_t* output, - int stride, - TX_TYPE tx_type, - int bd); +#define av1_inv_txfm2d_add_32x32 av1_inv_txfm2d_add_32x32_c void av1_inv_txfm2d_add_32x64_c(const int32_t* input, uint16_t* output, @@ -2202,9 +2193,6 @@ if (flags & HAS_AVX2) av1_highbd_wiener_convolve_add_src = av1_highbd_wiener_convolve_add_src_avx2; - av1_inv_txfm2d_add_32x32 = av1_inv_txfm2d_add_32x32_c; - if (flags & HAS_AVX2) - av1_inv_txfm2d_add_32x32 = av1_inv_txfm2d_add_32x32_avx2; av1_inv_txfm2d_add_4x4 = av1_inv_txfm2d_add_4x4_c; if (flags & HAS_SSE4_1) av1_inv_txfm2d_add_4x4 = av1_inv_txfm2d_add_4x4_sse4_1;
diff --git a/third_party/libaom/source/config/win/ia32/config/aom_config.c b/third_party/libaom/source/config/win/ia32/config/aom_config.c index 0b18488..64458d8 100644 --- a/third_party/libaom/source/config/win/ia32/config/aom_config.c +++ b/third_party/libaom/source/config/win/ia32/config/aom_config.c
@@ -9,5 +9,5 @@ * PATENTS file, you can obtain it at www.aomedia.org/license/patent. */ #include "aom/aom_codec.h" -static const char* const cfg = "cmake ../source/libaom -G \"Unix Makefiles\" -DCMAKE_TOOLCHAIN_FILE=\"../source/libaom/build/cmake/toolchains/x86-linux.cmake\" -DCONFIG_AV1_ENCODER=0 -DCONFIG_LOWBITDEPTH=1 -DCONFIG_MAX_DECODE_PROFILE=0 -DCONFIG_NORMAL_TILE_MODE=1 -DCONFIG_SIZE_LIMIT=1 -DDECODE_HEIGHT_LIMIT=16384 -DDECODE_WIDTH_LIMIT=16384 -DAOM_RTCD_FLAGS=--require-mmx;--require-sse;--require-sse2"; +static const char* const cfg = "cmake ../source/libaom -G \"Unix Makefiles\" -DCMAKE_TOOLCHAIN_FILE=\"../source/libaom/build/cmake/toolchains/x86-linux.cmake\" -DAOM_RTCD_FLAGS=--require-mmx;--require-sse;--require-sse2 -DCONFIG_AV1_ENCODER=0 -DCONFIG_LOWBITDEPTH=1 -DCONFIG_MAX_DECODE_PROFILE=0 -DCONFIG_NORMAL_TILE_MODE=1 -DCONFIG_SIZE_LIMIT=1 -DDECODE_HEIGHT_LIMIT=16384 -DDECODE_WIDTH_LIMIT=16384"; const char *aom_codec_build_config(void) {return cfg;}
diff --git a/third_party/libaom/source/config/win/ia32/config/av1_rtcd.h b/third_party/libaom/source/config/win/ia32/config/av1_rtcd.h index 22a51f1..a1a5fae 100644 --- a/third_party/libaom/source/config/win/ia32/config/av1_rtcd.h +++ b/third_party/libaom/source/config/win/ia32/config/av1_rtcd.h
@@ -1350,16 +1350,7 @@ int stride, TX_TYPE tx_type, int bd); -void av1_inv_txfm2d_add_32x32_avx2(const int32_t* input, - uint16_t* output, - int stride, - TX_TYPE tx_type, - int bd); -RTCD_EXTERN void (*av1_inv_txfm2d_add_32x32)(const int32_t* input, - uint16_t* output, - int stride, - TX_TYPE tx_type, - int bd); +#define av1_inv_txfm2d_add_32x32 av1_inv_txfm2d_add_32x32_c void av1_inv_txfm2d_add_32x64_c(const int32_t* input, uint16_t* output, @@ -2169,9 +2160,6 @@ if (flags & HAS_AVX2) av1_highbd_wiener_convolve_add_src = av1_highbd_wiener_convolve_add_src_avx2; - av1_inv_txfm2d_add_32x32 = av1_inv_txfm2d_add_32x32_c; - if (flags & HAS_AVX2) - av1_inv_txfm2d_add_32x32 = av1_inv_txfm2d_add_32x32_avx2; av1_inv_txfm2d_add_4x4 = av1_inv_txfm2d_add_4x4_c; if (flags & HAS_SSE4_1) av1_inv_txfm2d_add_4x4 = av1_inv_txfm2d_add_4x4_sse4_1;
diff --git a/third_party/libaom/source/config/win/x64/config/av1_rtcd.h b/third_party/libaom/source/config/win/x64/config/av1_rtcd.h index 8118ab8..e6e4c68 100644 --- a/third_party/libaom/source/config/win/x64/config/av1_rtcd.h +++ b/third_party/libaom/source/config/win/x64/config/av1_rtcd.h
@@ -1383,16 +1383,7 @@ int stride, TX_TYPE tx_type, int bd); -void av1_inv_txfm2d_add_32x32_avx2(const int32_t* input, - uint16_t* output, - int stride, - TX_TYPE tx_type, - int bd); -RTCD_EXTERN void (*av1_inv_txfm2d_add_32x32)(const int32_t* input, - uint16_t* output, - int stride, - TX_TYPE tx_type, - int bd); +#define av1_inv_txfm2d_add_32x32 av1_inv_txfm2d_add_32x32_c void av1_inv_txfm2d_add_32x64_c(const int32_t* input, uint16_t* output, @@ -2202,9 +2193,6 @@ if (flags & HAS_AVX2) av1_highbd_wiener_convolve_add_src = av1_highbd_wiener_convolve_add_src_avx2; - av1_inv_txfm2d_add_32x32 = av1_inv_txfm2d_add_32x32_c; - if (flags & HAS_AVX2) - av1_inv_txfm2d_add_32x32 = av1_inv_txfm2d_add_32x32_avx2; av1_inv_txfm2d_add_4x4 = av1_inv_txfm2d_add_4x4_c; if (flags & HAS_SSE4_1) av1_inv_txfm2d_add_4x4 = av1_inv_txfm2d_add_4x4_sse4_1;
diff --git a/third_party/libvpx/README.chromium b/third_party/libvpx/README.chromium index 3fd171bf..e8d05c5e 100644 --- a/third_party/libvpx/README.chromium +++ b/third_party/libvpx/README.chromium
@@ -5,9 +5,9 @@ License File: source/libvpx/LICENSE Security Critical: yes -Date: Thursday August 30 2018 +Date: Saturday September 08 2018 Branch: master -Commit: 753fd86e86ac727dccac88376260b8f54502f2a3 +Commit: 96e1c6b7ce910ed4b7c79069a9d55307bd6dd257 Description: Contains the sources used to compile libvpx binaries used by Google Chrome and
diff --git a/third_party/libvpx/libvpx_srcs.gni b/third_party/libvpx/libvpx_srcs.gni index 29f2983..cf7e7d1 100644 --- a/third_party/libvpx/libvpx_srcs.gni +++ b/third_party/libvpx/libvpx_srcs.gni
@@ -234,6 +234,7 @@ "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", @@ -707,6 +708,7 @@ "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", @@ -1181,6 +1183,7 @@ "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", @@ -1550,6 +1553,7 @@ "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", @@ -1945,6 +1949,7 @@ "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", @@ -2395,6 +2400,7 @@ "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", @@ -2773,6 +2779,7 @@ "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", @@ -3112,6 +3119,7 @@ "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c", @@ -3450,6 +3458,7 @@ "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_multi_thread.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_noise_estimate.h", + "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_partition_models.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.c", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_picklpf.h", "//third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c",
diff --git a/third_party/libvpx/source/config/ios/arm-neon/vpx_config.asm b/third_party/libvpx/source/config/ios/arm-neon/vpx_config.asm index 3a2f5e2..4fa2dcc4 100644 --- a/third_party/libvpx/source/config/ios/arm-neon/vpx_config.asm +++ b/third_party/libvpx/source/config/ios/arm-neon/vpx_config.asm
@@ -88,5 +88,6 @@ .set CONFIG_ALWAYS_ADJUST_BPM , 0 .set CONFIG_FP_MB_STATS , 0 .set CONFIG_EMULATE_HARDWARE , 0 +.set CONFIG_NON_GREEDY_MV , 0 .set DECODE_WIDTH_LIMIT , 16384 .set DECODE_HEIGHT_LIMIT , 16384
diff --git a/third_party/libvpx/source/config/ios/arm-neon/vpx_config.h b/third_party/libvpx/source/config/ios/arm-neon/vpx_config.h index 365206f..c19d1d9 100644 --- a/third_party/libvpx/source/config/ios/arm-neon/vpx_config.h +++ b/third_party/libvpx/source/config/ios/arm-neon/vpx_config.h
@@ -93,6 +93,7 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/ios/arm64/vpx_config.asm b/third_party/libvpx/source/config/ios/arm64/vpx_config.asm index 42f5b41..9fee00ef 100644 --- a/third_party/libvpx/source/config/ios/arm64/vpx_config.asm +++ b/third_party/libvpx/source/config/ios/arm64/vpx_config.asm
@@ -88,5 +88,6 @@ .set CONFIG_ALWAYS_ADJUST_BPM , 0 .set CONFIG_FP_MB_STATS , 0 .set CONFIG_EMULATE_HARDWARE , 0 +.set CONFIG_NON_GREEDY_MV , 0 .set DECODE_WIDTH_LIMIT , 16384 .set DECODE_HEIGHT_LIMIT , 16384
diff --git a/third_party/libvpx/source/config/ios/arm64/vpx_config.h b/third_party/libvpx/source/config/ios/arm64/vpx_config.h index 13e7637..e4de0be 100644 --- a/third_party/libvpx/source/config/ios/arm64/vpx_config.h +++ b/third_party/libvpx/source/config/ios/arm64/vpx_config.h
@@ -93,6 +93,7 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.asm b/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.asm index 3e38effd..89967fe 100644 --- a/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.asm +++ b/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.asm
@@ -85,6 +85,7 @@ .equ CONFIG_ALWAYS_ADJUST_BPM , 0 .equ CONFIG_FP_MB_STATS , 0 .equ CONFIG_EMULATE_HARDWARE , 0 +.equ CONFIG_NON_GREEDY_MV , 0 .equ DECODE_WIDTH_LIMIT , 16384 .equ DECODE_HEIGHT_LIMIT , 16384 .section .note.GNU-stack,"",%progbits
diff --git a/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.h b/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.h index 5b8efae..58b42323 100644 --- a/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.h +++ b/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.h
@@ -93,6 +93,7 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm b/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm index 3c20871..f495ef9 100644 --- a/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm +++ b/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm
@@ -85,6 +85,7 @@ .equ CONFIG_ALWAYS_ADJUST_BPM , 0 .equ CONFIG_FP_MB_STATS , 0 .equ CONFIG_EMULATE_HARDWARE , 0 +.equ CONFIG_NON_GREEDY_MV , 0 .equ DECODE_WIDTH_LIMIT , 16384 .equ DECODE_HEIGHT_LIMIT , 16384 .section .note.GNU-stack,"",%progbits
diff --git a/third_party/libvpx/source/config/linux/arm-neon/vpx_config.h b/third_party/libvpx/source/config/linux/arm-neon/vpx_config.h index 365206f..c19d1d9 100644 --- a/third_party/libvpx/source/config/linux/arm-neon/vpx_config.h +++ b/third_party/libvpx/source/config/linux/arm-neon/vpx_config.h
@@ -93,6 +93,7 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/linux/arm/vpx_config.asm b/third_party/libvpx/source/config/linux/arm/vpx_config.asm index 3d626673..8f0a17c 100644 --- a/third_party/libvpx/source/config/linux/arm/vpx_config.asm +++ b/third_party/libvpx/source/config/linux/arm/vpx_config.asm
@@ -85,6 +85,7 @@ .equ CONFIG_ALWAYS_ADJUST_BPM , 0 .equ CONFIG_FP_MB_STATS , 0 .equ CONFIG_EMULATE_HARDWARE , 0 +.equ CONFIG_NON_GREEDY_MV , 0 .equ DECODE_WIDTH_LIMIT , 16384 .equ DECODE_HEIGHT_LIMIT , 16384 .section .note.GNU-stack,"",%progbits
diff --git a/third_party/libvpx/source/config/linux/arm/vpx_config.h b/third_party/libvpx/source/config/linux/arm/vpx_config.h index fc57694..acc4935 100644 --- a/third_party/libvpx/source/config/linux/arm/vpx_config.h +++ b/third_party/libvpx/source/config/linux/arm/vpx_config.h
@@ -93,6 +93,7 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/linux/arm64/vpx_config.asm b/third_party/libvpx/source/config/linux/arm64/vpx_config.asm index 02e9e46..c7343fe 100644 --- a/third_party/libvpx/source/config/linux/arm64/vpx_config.asm +++ b/third_party/libvpx/source/config/linux/arm64/vpx_config.asm
@@ -85,6 +85,7 @@ .equ CONFIG_ALWAYS_ADJUST_BPM , 0 .equ CONFIG_FP_MB_STATS , 0 .equ CONFIG_EMULATE_HARDWARE , 0 +.equ CONFIG_NON_GREEDY_MV , 0 .equ DECODE_WIDTH_LIMIT , 16384 .equ DECODE_HEIGHT_LIMIT , 16384 .section .note.GNU-stack,"",%progbits
diff --git a/third_party/libvpx/source/config/linux/arm64/vpx_config.h b/third_party/libvpx/source/config/linux/arm64/vpx_config.h index 13e7637..e4de0be 100644 --- a/third_party/libvpx/source/config/linux/arm64/vpx_config.h +++ b/third_party/libvpx/source/config/linux/arm64/vpx_config.h
@@ -93,6 +93,7 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/linux/generic/vpx_config.asm b/third_party/libvpx/source/config/linux/generic/vpx_config.asm index d24146a..ae4cf6e 100644 --- a/third_party/libvpx/source/config/linux/generic/vpx_config.asm +++ b/third_party/libvpx/source/config/linux/generic/vpx_config.asm
@@ -85,6 +85,7 @@ .equ CONFIG_ALWAYS_ADJUST_BPM , 0 .equ CONFIG_FP_MB_STATS , 0 .equ CONFIG_EMULATE_HARDWARE , 0 +.equ CONFIG_NON_GREEDY_MV , 0 .equ DECODE_WIDTH_LIMIT , 16384 .equ DECODE_HEIGHT_LIMIT , 16384 .section .note.GNU-stack,"",%progbits
diff --git a/third_party/libvpx/source/config/linux/generic/vpx_config.h b/third_party/libvpx/source/config/linux/generic/vpx_config.h index df5f6f8..abc94bfc 100644 --- a/third_party/libvpx/source/config/linux/generic/vpx_config.h +++ b/third_party/libvpx/source/config/linux/generic/vpx_config.h
@@ -93,6 +93,7 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/linux/ia32/vpx_config.asm b/third_party/libvpx/source/config/linux/ia32/vpx_config.asm index 6aa13d7..5569f05 100644 --- a/third_party/libvpx/source/config/linux/ia32/vpx_config.asm +++ b/third_party/libvpx/source/config/linux/ia32/vpx_config.asm
@@ -81,5 +81,6 @@ %define CONFIG_ALWAYS_ADJUST_BPM 0 %define CONFIG_FP_MB_STATS 0 %define CONFIG_EMULATE_HARDWARE 0 +%define CONFIG_NON_GREEDY_MV 0 %define DECODE_WIDTH_LIMIT 16384 %define DECODE_HEIGHT_LIMIT 16384
diff --git a/third_party/libvpx/source/config/linux/ia32/vpx_config.h b/third_party/libvpx/source/config/linux/ia32/vpx_config.h index 7749f38..fff9290 100644 --- a/third_party/libvpx/source/config/linux/ia32/vpx_config.h +++ b/third_party/libvpx/source/config/linux/ia32/vpx_config.h
@@ -93,6 +93,7 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/linux/mips64el/vpx_config.h b/third_party/libvpx/source/config/linux/mips64el/vpx_config.h index 98374b1..7941761 100644 --- a/third_party/libvpx/source/config/linux/mips64el/vpx_config.h +++ b/third_party/libvpx/source/config/linux/mips64el/vpx_config.h
@@ -93,6 +93,7 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/linux/mipsel/vpx_config.h b/third_party/libvpx/source/config/linux/mipsel/vpx_config.h index 1a8a71b..38c667e 100644 --- a/third_party/libvpx/source/config/linux/mipsel/vpx_config.h +++ b/third_party/libvpx/source/config/linux/mipsel/vpx_config.h
@@ -93,6 +93,7 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/linux/x64/vpx_config.asm b/third_party/libvpx/source/config/linux/x64/vpx_config.asm index ffaf2d9..613735d8 100644 --- a/third_party/libvpx/source/config/linux/x64/vpx_config.asm +++ b/third_party/libvpx/source/config/linux/x64/vpx_config.asm
@@ -81,5 +81,6 @@ %define CONFIG_ALWAYS_ADJUST_BPM 0 %define CONFIG_FP_MB_STATS 0 %define CONFIG_EMULATE_HARDWARE 0 +%define CONFIG_NON_GREEDY_MV 0 %define DECODE_WIDTH_LIMIT 16384 %define DECODE_HEIGHT_LIMIT 16384
diff --git a/third_party/libvpx/source/config/linux/x64/vpx_config.h b/third_party/libvpx/source/config/linux/x64/vpx_config.h index c6e9e82..677a9fc 100644 --- a/third_party/libvpx/source/config/linux/x64/vpx_config.h +++ b/third_party/libvpx/source/config/linux/x64/vpx_config.h
@@ -93,6 +93,7 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/mac/ia32/vpx_config.asm b/third_party/libvpx/source/config/mac/ia32/vpx_config.asm index 6aa13d7..5569f05 100644 --- a/third_party/libvpx/source/config/mac/ia32/vpx_config.asm +++ b/third_party/libvpx/source/config/mac/ia32/vpx_config.asm
@@ -81,5 +81,6 @@ %define CONFIG_ALWAYS_ADJUST_BPM 0 %define CONFIG_FP_MB_STATS 0 %define CONFIG_EMULATE_HARDWARE 0 +%define CONFIG_NON_GREEDY_MV 0 %define DECODE_WIDTH_LIMIT 16384 %define DECODE_HEIGHT_LIMIT 16384
diff --git a/third_party/libvpx/source/config/mac/ia32/vpx_config.h b/third_party/libvpx/source/config/mac/ia32/vpx_config.h index 7749f38..fff9290 100644 --- a/third_party/libvpx/source/config/mac/ia32/vpx_config.h +++ b/third_party/libvpx/source/config/mac/ia32/vpx_config.h
@@ -93,6 +93,7 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/mac/x64/vpx_config.asm b/third_party/libvpx/source/config/mac/x64/vpx_config.asm index ffaf2d9..613735d8 100644 --- a/third_party/libvpx/source/config/mac/x64/vpx_config.asm +++ b/third_party/libvpx/source/config/mac/x64/vpx_config.asm
@@ -81,5 +81,6 @@ %define CONFIG_ALWAYS_ADJUST_BPM 0 %define CONFIG_FP_MB_STATS 0 %define CONFIG_EMULATE_HARDWARE 0 +%define CONFIG_NON_GREEDY_MV 0 %define DECODE_WIDTH_LIMIT 16384 %define DECODE_HEIGHT_LIMIT 16384
diff --git a/third_party/libvpx/source/config/mac/x64/vpx_config.h b/third_party/libvpx/source/config/mac/x64/vpx_config.h index c6e9e82..677a9fc 100644 --- a/third_party/libvpx/source/config/mac/x64/vpx_config.h +++ b/third_party/libvpx/source/config/mac/x64/vpx_config.h
@@ -93,6 +93,7 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/nacl/vpx_config.h b/third_party/libvpx/source/config/nacl/vpx_config.h index df5f6f8..abc94bfc 100644 --- a/third_party/libvpx/source/config/nacl/vpx_config.h +++ b/third_party/libvpx/source/config/nacl/vpx_config.h
@@ -93,6 +93,7 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/vpx_version.h b/third_party/libvpx/source/config/vpx_version.h index 812b751..dec21a0f 100644 --- a/third_party/libvpx/source/config/vpx_version.h +++ b/third_party/libvpx/source/config/vpx_version.h
@@ -2,7 +2,7 @@ #define VERSION_MAJOR 1 #define VERSION_MINOR 7 #define VERSION_PATCH 0 -#define VERSION_EXTRA "902-g753fd86e8" +#define VERSION_EXTRA "958-g96e1c6b7c" #define VERSION_PACKED ((VERSION_MAJOR<<16)|(VERSION_MINOR<<8)|(VERSION_PATCH)) -#define VERSION_STRING_NOSP "v1.7.0-902-g753fd86e8" -#define VERSION_STRING " v1.7.0-902-g753fd86e8" +#define VERSION_STRING_NOSP "v1.7.0-958-g96e1c6b7c" +#define VERSION_STRING " v1.7.0-958-g96e1c6b7c"
diff --git a/third_party/libvpx/source/config/win/ia32/vpx_config.asm b/third_party/libvpx/source/config/win/ia32/vpx_config.asm index 4e7f686..6c3ef6c 100644 --- a/third_party/libvpx/source/config/win/ia32/vpx_config.asm +++ b/third_party/libvpx/source/config/win/ia32/vpx_config.asm
@@ -81,5 +81,6 @@ %define CONFIG_ALWAYS_ADJUST_BPM 0 %define CONFIG_FP_MB_STATS 0 %define CONFIG_EMULATE_HARDWARE 0 +%define CONFIG_NON_GREEDY_MV 0 %define DECODE_WIDTH_LIMIT 16384 %define DECODE_HEIGHT_LIMIT 16384
diff --git a/third_party/libvpx/source/config/win/ia32/vpx_config.h b/third_party/libvpx/source/config/win/ia32/vpx_config.h index 2cf19145..2d967a0 100644 --- a/third_party/libvpx/source/config/win/ia32/vpx_config.h +++ b/third_party/libvpx/source/config/win/ia32/vpx_config.h
@@ -93,6 +93,7 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */
diff --git a/third_party/libvpx/source/config/win/x64/vpx_config.asm b/third_party/libvpx/source/config/win/x64/vpx_config.asm index ef886a3..d104fd3f 100644 --- a/third_party/libvpx/source/config/win/x64/vpx_config.asm +++ b/third_party/libvpx/source/config/win/x64/vpx_config.asm
@@ -81,5 +81,6 @@ %define CONFIG_ALWAYS_ADJUST_BPM 0 %define CONFIG_FP_MB_STATS 0 %define CONFIG_EMULATE_HARDWARE 0 +%define CONFIG_NON_GREEDY_MV 0 %define DECODE_WIDTH_LIMIT 16384 %define DECODE_HEIGHT_LIMIT 16384
diff --git a/third_party/libvpx/source/config/win/x64/vpx_config.h b/third_party/libvpx/source/config/win/x64/vpx_config.h index 6d53949..8a07c942 100644 --- a/third_party/libvpx/source/config/win/x64/vpx_config.h +++ b/third_party/libvpx/source/config/win/x64/vpx_config.h
@@ -93,6 +93,7 @@ #define CONFIG_ALWAYS_ADJUST_BPM 0 #define CONFIG_FP_MB_STATS 0 #define CONFIG_EMULATE_HARDWARE 0 +#define CONFIG_NON_GREEDY_MV 0 #define DECODE_WIDTH_LIMIT 16384 #define DECODE_HEIGHT_LIMIT 16384 #endif /* VPX_CONFIG_H */
diff --git a/tools/clang/scripts/package.py b/tools/clang/scripts/package.py index 1ef0833..6010097 100755 --- a/tools/clang/scripts/package.py +++ b/tools/clang/scripts/package.py
@@ -282,6 +282,12 @@ 'lib/clang/*/lib/windows/clang_rt.ubsan*.lib', ]) + if sys.platform in ('linux2', 'darwin'): + # Include libclang_rt.builtins.a for Fuchsia targets. + want.extend(['lib/clang/*/aarch64-fuchsia/lib/libclang_rt.builtins.a', + 'lib/clang/*/x86_64-fuchsia/lib/libclang_rt.builtins.a', + ]) + for root, dirs, files in os.walk(LLVM_RELEASE_DIR): # root: third_party/llvm-build/Release+Asserts/lib/..., rel_root: lib/... rel_root = root[len(LLVM_RELEASE_DIR)+1:]
diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py index 63434e3..1b8d38e 100755 --- a/tools/clang/scripts/update.py +++ b/tools/clang/scripts/update.py
@@ -35,7 +35,7 @@ CLANG_REVISION = 'HEAD' # This is incremented when pushing a new build of Clang at the same revision. -CLANG_SUB_REVISION=1 +CLANG_SUB_REVISION=2 PACKAGE_VERSION = "%s-%s" % (CLANG_REVISION, CLANG_SUB_REVISION) @@ -71,6 +71,8 @@ VERSION = '8.0.0' ANDROID_NDK_DIR = os.path.join( CHROMIUM_DIR, 'third_party', 'android_ndk') +FUCHSIA_SDK_DIR = os.path.join(CHROMIUM_DIR, 'third_party', 'fuchsia-sdk', + 'sdk') # URL for pre-built binaries. CDS_URL = os.environ.get('CDS_CLANG_BUCKET_OVERRIDE', @@ -483,6 +485,16 @@ print 'for how to install the NDK, or pass --without-android.' return 1 + if args.with_fuchsia and not os.path.exists(FUCHSIA_SDK_DIR): + print 'Fuchsia SDK not found at ' + FUCHSIA_SDK_DIR + print 'The Fuchsia SDK is needed to build libclang_rt for Fuchsia.' + print 'Install the Fuchsia SDK by adding fuchsia to the ' + print 'target_os section in your .gclient and running hooks, ' + print 'or pass --without-fuchsia.' + print 'https://chromium.googlesource.com/chromium/src/+/master/docs/fuchsia_build_instructions.md' + print 'for general Fuchsia build instructions.' + return 1 + print 'Locally building Clang %s...' % PACKAGE_VERSION AddCMakeToPath(args) @@ -816,6 +828,57 @@ if os.path.exists(lib_path): shutil.copy(lib_path, rt_lib_dst_dir) + if args.with_fuchsia: + # Fuchsia links against libclang_rt.builtins-<arch>.a instead of libgcc.a. + for target_arch in ['aarch64', 'x86_64']: + fuchsia_arch_name = {'aarch64': 'arm64', 'x86_64': 'x64'}[target_arch] + toolchain_dir = os.path.join( + FUCHSIA_SDK_DIR, 'arch', fuchsia_arch_name, 'sysroot') + # Build clang_rt runtime for Fuchsia in a separate build tree. + build_dir = os.path.join(LLVM_BUILD_DIR, 'fuchsia-' + target_arch) + if not os.path.exists(build_dir): + os.mkdir(os.path.join(build_dir)) + os.chdir(build_dir) + target_spec = target_arch + '-fuchsia' + # TODO(thakis): Might have to pass -B here once sysroot contains + # binaries (e.g. gas for arm64?) + fuchsia_args = base_cmake_args + [ + '-DLLVM_ENABLE_THREADS=OFF', + '-DCMAKE_C_COMPILER=' + os.path.join(LLVM_BUILD_DIR, 'bin/clang'), + '-DCMAKE_CXX_COMPILER=' + os.path.join(LLVM_BUILD_DIR, 'bin/clang++'), + '-DCMAKE_LINKER=' + os.path.join(LLVM_BUILD_DIR, 'bin/clang'), + '-DCMAKE_AR=' + os.path.join(LLVM_BUILD_DIR, 'bin/llvm-ar'), + '-DLLVM_CONFIG_PATH=' + os.path.join(LLVM_BUILD_DIR, 'bin/llvm-config'), + '-DCMAKE_SYSTEM_NAME=Fuchsia', + '-DCMAKE_C_COMPILER_TARGET=%s-fuchsia' % target_arch, + '-DCMAKE_ASM_COMPILER_TARGET=%s-fuchsia' % target_arch, + '-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON', + '-DCMAKE_SYSROOT=%s' % toolchain_dir, + # TODO(thakis|scottmg): Use PER_TARGET_RUNTIME_DIR for all platforms. + # https://crbug.com/882485. + '-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON', + + # These are necessary because otherwise CMake tries to build an + # executable to test to see if the compiler is working, but in doing so, + # it links against the builtins.a that we're about to build. + '-DCMAKE_C_COMPILER_WORKS=ON', + '-DCMAKE_ASM_COMPILER_WORKS=ON', + ] + RmCmakeCache('.') + RunCommand(['cmake'] + + fuchsia_args + + [os.path.join(COMPILER_RT_DIR, 'lib', 'builtins')]) + builtins_a = 'libclang_rt.builtins.a' + RunCommand(['ninja', builtins_a]) + + # And copy it into the main build tree. + fuchsia_lib_dst_dir = os.path.join(LLVM_BUILD_DIR, 'lib', 'clang', + VERSION, target_spec, 'lib') + if not os.path.exists(fuchsia_lib_dst_dir): + os.makedirs(fuchsia_lib_dst_dir) + CopyFile(os.path.join(build_dir, target_spec, 'lib', builtins_a), + fuchsia_lib_dst_dir) + # Run tests. if args.run_tests or use_head_revision: os.chdir(LLVM_BUILD_DIR) @@ -869,6 +932,10 @@ help='don\'t build Android ASan runtime (linux only)', dest='with_android', default=sys.platform.startswith('linux')) + parser.add_argument('--without-fuchsia', action='store_false', + help='don\'t build Fuchsia clang_rt runtime (linux/mac)', + dest='with_fuchsia', + default=sys.platform in ('linux2', 'darwin')) args = parser.parse_args() if args.lto_lld and not args.bootstrap: @@ -921,6 +988,8 @@ if 'OS=android' not in os.environ.get('GYP_DEFINES', ''): # Only build the Android ASan rt on ToT bots when targetting Android. args.with_android = False + # Don't build fuchsia runtime on ToT bots at all. + args.with_fuchsia = False return UpdateClang(args)
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 23500f7..bd9112d 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -7688,6 +7688,13 @@ </int> </enum> +<enum name="ContextMenuIOSGetImageDataByJsResult"> + <int value="0" label="Canvas succeed"/> + <int value="1" label="XMLHttpRequest succeed"/> + <int value="2" label="Fail"/> + <int value="3" label="Timeout"/> +</enum> + <enum name="ContextMenuOption"> <summary>The item selected from a context menu</summary> <int value="0" label="Open in new tab"/> @@ -29735,6 +29742,7 @@ <int value="1098823967" label="ash-enable-window-cycle-ui"/> <int value="1104948452" label="manual-enhanced-bookmarks-optout"/> <int value="1105439588" label="enable-swipe-selection"/> + <int value="1106307305" label="AutofillPrimaryInfoStyleExperiment:enabled"/> <int value="1107543566" label="enable-one-copy"/> <int value="1108663108" label="disable-device-discovery-notifications"/> <int value="1111871757" label="ForceUnifiedConsentBump:enabled"/> @@ -29995,6 +30003,7 @@ <int value="1594664550" label="NTPModernLayout:enabled"/> <int value="1600926040" label="TranslateCompactUI:enabled"/> <int value="1605611615" label="enable-webrtc-srtp-aes-gcm"/> + <int value="1611522475" label="AutofillPrimaryInfoStyleExperiment:disabled"/> <int value="1612446645" label="enable-weak-memorycache"/> <int value="1612871297" label="WebPayments:disabled"/> <int value="1612974229" label="allow-insecure-localhost"/> @@ -49464,6 +49473,7 @@ <int value="3" label="Requests not allowed: EULA not accepted"/> <int value="4" label="Requests not allowed: network down"/> <int value="5" label="Requests not allowed: disabled by command line"/> + <int value="6" label="Waiting for network status"/> </enum> <enum name="VariationsSeedDateChange">
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index b0769546..985416a 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -89,6 +89,15 @@ </summary> </histogram> +<histogram name="Accessibility.CrosChromeVoxAfterSwitchAccess" + enum="BooleanEnabled"> + <owner>zhelfins@chromium.org</owner> + <owner>dtseng@chromium.org</owner> + <summary> + When ChromeVox is enabled, true if Switch Access was previously enabled. + </summary> +</histogram> + <histogram name="Accessibility.CrosChromeVoxNext" enum="BooleanEnabled"> <owner>dmazzoni@chromium.org</owner> <summary> @@ -260,6 +269,15 @@ </summary> </histogram> +<histogram name="Accessibility.CrosSwitchAccessAfterChromeVox" + enum="BooleanEnabled"> + <owner>zhelfins@chromium.org</owner> + <owner>dtseng@chromium.org</owner> + <summary> + When Switch Access is enabled, true if ChromeVox was previously enabled. + </summary> +</histogram> + <histogram name="Accessibility.CrosVirtualKeyboard" enum="BooleanEnabled"> <owner>dmazzoni@chromium.org</owner> <owner>kenjibaheux@google.com</owner> @@ -624,6 +642,47 @@ </summary> </histogram> +<histogram name="Ads.ResourceUsage.Size.Mainframe.AdResource" units="KB" + expires_after="2019-09-05"> + <owner>jkarlin@chromium.org</owner> + <owner>johnidel@chromium.org</owner> + <summary> + For a given ad resource in the main frame, logs the network bytes received + for the resource, even if the resource request was canceled or incomplete. + </summary> +</histogram> + +<histogram name="Ads.ResourceUsage.Size.Mainframe.VanillaResource" units="KB" + expires_after="2019-09-05"> + <owner>jkarlin@chromium.org</owner> + <owner>johnidel@chromium.org</owner> + <summary> + For a given non-ad resource in the main frame, logs the network bytes + received for the resource, even if the resource request was canceled or + incomplete. + </summary> +</histogram> + +<histogram name="Ads.ResourceUsage.Size.Subframe.AdResource" units="KB" + expires_after="2019-09-05"> + <owner>jkarlin@chromium.org</owner> + <owner>johnidel@chromium.org</owner> + <summary> + For a given ad resource in a subframe, logs the network bytes received for + the resource, even if the resource request was canceled or incomplete. + </summary> +</histogram> + +<histogram name="Ads.ResourceUsage.Size.Subframe.VanillaResource" units="KB" + expires_after="2019-09-05"> + <owner>jkarlin@chromium.org</owner> + <owner>johnidel@chromium.org</owner> + <summary> + For a given non-ad resource in a subframe, logs the network bytes received + for the resource, even if the resource request was canceled or incomplete. + </summary> +</histogram> + <histogram name="AnchorElementMetrics.Clicked.AreaRank" units="rank"> <owner>chelu@chromium.org</owner> <owner>tbansal@chromium.org</owner> @@ -7758,6 +7817,16 @@ </summary> </histogram> +<histogram name="BackgroundFetch.HasRequestsWithBody" enum="Boolean"> + <owner>nator@chromium.org</owner> + <owner>rayankans@chromium.org</owner> + <owner>peter@chromium.org</owner> + <summary> + Records whether the background fetch contains any requests with a body. + Called before the fetch is started. + </summary> +</histogram> + <histogram name="BackgroundFetch.IncompleteFetchesOnStartup"> <owner>rayankans@chromium.org</owner> <summary> @@ -13743,6 +13812,10 @@ </histogram> <histogram name="Compositing.SurfaceInvariantsViolations" units="violations"> + <obsolete> + Deprecated as of 2018/09/10 in favor of + Compositing.CompositorFrameSinkSupport.SubmitResult. + </obsolete> <owner>fsamuel@chromium.org</owner> <summary> The number of times a renderer in this browser session has violated a @@ -14493,6 +14566,16 @@ </summary> </histogram> +<histogram name="ContextMenu.iOS.GetImageDataByJsResult" + enum="ContextMenuIOSGetImageDataByJsResult" expires_after="2019-12-11"> + <owner>mrsuyi@chromium.org</owner> + <summary> + Result of getting image data by JavaScript for CopyImage, SaveImage and + SearchByImage from iOS context menu. Recorded when the JavaScript returns, + or fails for timeout. + </summary> +</histogram> + <histogram name="ContextMenu.SaveLinkType" enum="ContextMenuSaveLinkType"> <owner>qinmin@chromium.org</owner> <summary> @@ -28299,7 +28382,10 @@ <histogram name="Extensions.ChromeExtensionsClientInitTime" units="ms" expires_after="2019-12-01"> - <owner>rdevlin.cronin@chromium.org</owner> + <obsolete> + Replaced by Extensions.ChromeExtensionsClientInitTime2. + </obsolete> + <owner>dbertoni@chromium.org</owner> <owner>extensions-core@chromium.org</owner> <summary> The amount of elapsed time taken to initialize the ChromeExtensionsClient. @@ -28308,6 +28394,17 @@ </summary> </histogram> +<histogram name="Extensions.ChromeExtensionsClientInitTime2" + units="microseconds" expires_after="2019-12-01"> + <owner>dbertoni@chromium.org</owner> + <owner>extensions-core@chromium.org</owner> + <summary> + The amount of elapsed time taken to initialize the ChromeExtensionsClient. + Recorded once per client initialization, which happens once per instance of + Chrome. This is a new stat that has microsecond resolution. + </summary> +</histogram> + <histogram name="Extensions.ContentVerification.ComputedHashesInitTime" units="ms" expires_after="2019-11-30"> <owner>lazyboy@chromium.org</owner> @@ -29818,6 +29915,15 @@ <summary>Installs grouped by Extension::HistogramType.</summary> </histogram> +<histogram name="Extensions.InstanceID.GetToken.OptionsCount" units="options" + expires_after="2019-01-30"> + <owner>peter@chromium.org</owner> + <summary> + The number of options provided to the GetToken request. Recorded when the + extension has made a call to chrome.instanceID.getToken(). + </summary> +</histogram> + <histogram name="Extensions.LoadAll"> <owner>rdevlin.cronin@chromium.org</owner> <summary>The number of extensions and themes loaded at profile open.</summary> @@ -34768,6 +34874,19 @@ </summary> </histogram> +<histogram name="GraphicsPipeline.SubmitCompositorFrameAfterBeginFrame" + units="microseconds"> + <owner>yiyix@chromium.org</owner> + <owner>chrome-gpu-metrics@google.com</owner> + <summary> + How long the client takes to prepare a compositor frame after receiving a + BeginFrameArgs. + + Note that this is only recorded on clients on which a high-resolution clock + is available. + </summary> +</histogram> + <histogram name="Hardware.Display.Count.OnChange"> <owner>erikchen@chromium.org</owner> <summary> @@ -37198,6 +37317,15 @@ </summary> </histogram> +<histogram name="InstanceID.GetToken.OptionsCount" units="options" + expires_after="2019-01-30"> + <owner>peter@chromium.org</owner> + <summary> + The number of options provided to the GetToken request. Recorded when the + request has been received by the InstanceID instance. + </summary> +</histogram> + <histogram name="InstanceID.GetToken.RequestStatus" enum="GCMRegistrationRequestStatus"> <owner>juyik@chromium.org</owner> @@ -60262,6 +60390,16 @@ </summary> </histogram> +<histogram name="Network.Shill.SandboxingEnabled" enum="Boolean"> + <owner>mortonm@chromium.org</owner> + <summary> + Chrome OS metric signifying whether a system is running shill in a sandbox + or not. This is controlled through a VariationsService flag, but requires + 1-2 reboots to take affect. This metric will help us ensure that shill is + being run with sandboxing enabled/disabled at the proportion that we expect. + </summary> +</histogram> + <histogram name="Network.Shill.ServiceErrors" enum="NetworkServiceError"> <owner>benchan@chromium.org</owner> <summary>Chrome OS connection manager service errors seen.</summary> @@ -69036,6 +69174,49 @@ </summary> </histogram> +<histogram name="PageLoad.Clients.Ads.Resources.Bytes.Ads" units="KB" + expires_after="2019-09-05"> + <owner>jkarlin@chromium.org</owner> + <owner>johnidel@chromium.org</owner> + <summary> + Total number of bytes that went towards loading ad resources for a single + page over it's entire lifetime. This includes resources that did not finish + or were canceled. + </summary> +</histogram> + +<histogram name="PageLoad.Clients.Ads.Resources.Bytes.TopLevelAds" units="KB" + expires_after="2019-09-05"> + <owner>jkarlin@chromium.org</owner> + <owner>johnidel@chromium.org</owner> + <summary> + Total number of network bytes that were used to load top-level ad resources + on the page. This includes resources that did not finish or were canceled. + </summary> +</histogram> + +<histogram name="PageLoad.Clients.Ads.Resources.Bytes.Total" units="KB" + expires_after="2019-09-05"> + <owner>jkarlin@chromium.org</owner> + <owner>johnidel@chromium.org</owner> + <summary> + Total number of bytes that were used to load resources on the page. This + includes resources that did not finish loading or were canceled. + </summary> +</histogram> + +<histogram name="PageLoad.Clients.Ads.Resources.Bytes.Unfinished" units="KB" + expires_after="2019-09-05"> + <owner>jkarlin@chromium.org</owner> + <owner>johnidel@chromium.org</owner> + <summary> + Total number of bytes that were used to load resources that did not finish + loading on the page (e.g. ongoing video). This includes resource loads that + were canceled or resource loads that were ongoing when the page was + destroyed. + </summary> +</histogram> + <histogram name="PageLoad.Clients.AMP.SameDocumentView" enum="PageLoadMetricsAMPViewType"> <owner>bmcquade@chromium.org</owner> @@ -84818,6 +84999,30 @@ </summary> </histogram> +<histogram name="ResourceLoadingHints.PageHints.TotalReceived" + units="total page hints count"> + <owner>tbansal@chromium.org</owner> + <summary> + The total count of page hints received by the browser from the component + updater. Only the page hints that have at least one resource loading hint + are counted. One sample is recorded every time optimization guide service + processes the optimization hints provided by the component updater. The + count of hints loaded to memory may be lower than this. + </summary> +</histogram> + +<histogram name="ResourceLoadingHints.ResourceHints.TotalReceived" + units="total resource loading hints count"> + <owner>tbansal@chromium.org</owner> + <summary> + The total count of resource loading hints across all page hints received by + the browser from the component updater. One sample is recorded every time + optimization guide service processes the optimization hints provided by the + component updater. The count of hints loaded to memory may be lower than + this. + </summary> +</histogram> + <histogram name="ResourceLoadingHints.ResourceLoadingBlocked" units="loading blocked"> <owner>tbansal@chromium.org</owner> @@ -91323,6 +91528,44 @@ </summary> </histogram> +<histogram name="Search.ContextualSearch.UnifiedConsent.PreviouslyUndecided" + enum="Boolean" expires_after="2019-01-30"> + <owner>donnd@chromium.org</owner> + <owner>twellington@chromium.org</owner> + <summary> + Records the previous state of the user's enabled preference to indicate + whether they were decided or undecided about fully enabling this feature. + Recorded during the rollout of Unified Consent when the Contextual Search + preference is changed. Implemented for Android. + </summary> +</histogram> + +<histogram name="Search.ContextualSearch.UnifiedConsent.ThrottledRequests" + enum="Boolean" expires_after="2019-01-30"> + <owner>donnd@chromium.org</owner> + <owner>twellington@chromium.org</owner> + <summary> + Records whether throttling for Unified Consent was done for all requests. + Recorded when the user taps on text and the system would like the server to + suggest what to search for using page context, regardless of feature-enabled + state. Recorded multiple times for each request. Supports the rollout of + Unified Consent for Contextual Search. Implemented for Android. + </summary> +</histogram> + +<histogram name="Search.ContextualSearch.UnifiedConsent.ThrottleEligible" + enum="Boolean" expires_after="2019-01-30"> + <owner>donnd@chromium.org</owner> + <owner>twellington@chromium.org</owner> + <summary> + Records whether this user had a request throttled or not when needed. + Recorded when the user taps on text and the system would like the server to + suggest what to search for using page context, and throttling is in effect + for this user. Supports the rollout of Unified Consent for Contextual + Search. Implemented for Android. + </summary> +</histogram> + <histogram name="Search.ContextualSearchAllCapsResultsSeen" enum="ContextualSearchResultsSeen"> <obsolete> @@ -96242,7 +96485,8 @@ </summary> </histogram> -<histogram name="Signin.AccountTracker.CountOfLoadedAccounts" units="Accounts"> +<histogram name="Signin.AccountTracker.CountOfLoadedAccounts" units="Accounts" + expires_after="M76"> <owner>msarda@chromium.org</owner> <owner>sdefresne@chromium.org</owner> <summary> @@ -96254,7 +96498,7 @@ </histogram> <histogram name="Signin.AccountTracker.DeprecatedServiceFlagDeleted" - enum="BooleanDeletedOrNot"> + enum="BooleanDeletedOrNot" expires_after="M76"> <owner>msarda@chromium.org</owner> <owner>sdefresne@chromium.org</owner> <summary> @@ -96271,7 +96515,7 @@ </histogram> <histogram name="Signin.AccountTracker.GaiaIdMigrationState" - enum="OAuth2LoginAccountRevokedMigrationState"> + enum="OAuth2LoginAccountRevokedMigrationState" expires_after="M76"> <owner>msarda@chromium.org</owner> <owner>sdefresne@chromium.org</owner> <summary> @@ -103026,6 +103270,26 @@ <summary>Tracks success of failure of sync directory initialization.</summary> </histogram> +<histogram base="true" name="Sync.DuplicateClientTagHashInApplyPendingUpdates" + enum="BooleanPresent" expires_after="2019-03-31"> + <owner>treib@chromium.org</owner> + <summary> + Whether ModelTypeWorker received any duplicate client tag hashes within a + full GetUpdates cycle (which, in the case of pagination, might consist of + multiple individual GetUpdates responses). + </summary> +</histogram> + +<histogram base="true" name="Sync.DuplicateClientTagHashInGetUpdatesResponse" + enum="BooleanPresent" expires_after="2019-03-31"> + <owner>treib@chromium.org</owner> + <summary> + Whether ModelTypeWorker received any duplicate client tag hashes within a + single GetUpdates response (which, in the case of pagination, might be only + part of a full GetUpdates cycle). + </summary> +</histogram> + <histogram name="Sync.EncryptAllData"> <obsolete> Deprecated as of m26. @@ -107153,6 +107417,9 @@ </histogram> <histogram name="ThirdPartyModules.ShellExtensionsCount2" units="counts"> + <obsolete> + Deprecated on 30/08/2018 now that the enumeration removes duplicate entries. + </obsolete> <owner>pmonette@chromium.org</owner> <summary> The number of registered shell extensions found on the user's machine. This @@ -107161,6 +107428,15 @@ </summary> </histogram> +<histogram name="ThirdPartyModules.ShellExtensionsCount3" units="counts"> + <owner>pmonette@chromium.org</owner> + <summary> + The number of registered shell extensions found on the user's machine. This + is emitted shortly after startup when the shell extensions enumeration is + done. Doesn't count duplicates. + </summary> +</histogram> + <histogram name="ThirdPartyModules.TimeDateStampObtained" enum="BooleanSuccess"> <owner>pmonette@chromium.org</owner> <summary> @@ -122509,6 +122785,8 @@ <suffix name="Browser" label="for browser process."/> <suffix name="Renderer" label="for renderer process."/> <affected-histogram name="GraphicsPipeline.ReceivedBeginFrame"/> + <affected-histogram + name="GraphicsPipeline.SubmitCompositorFrameAfterBeginFrame"/> </histogram_suffixes> <histogram_suffixes name="GWSChromeJointExperiment" separator="_"> @@ -130669,6 +130947,8 @@ <suffix name="USER_CONSENT" label="USER_CONSENT"/> <suffix name="USER_EVENT" label="USER_EVENT"/> <suffix name="WIFI_CREDENTIAL" label="WIFI_CREDENTIAL"/> + <affected-histogram name="Sync.DuplicateClientTagHashInApplyPendingUpdates"/> + <affected-histogram name="Sync.DuplicateClientTagHashInGetUpdatesResponse"/> <affected-histogram name="Sync.ModelTypeCount"> <obsolete> Deprecated 7/2018. Replaced by Sync.ModelTypeCount2.
diff --git a/tools/perf/core/perf_benchmark.py b/tools/perf/core/perf_benchmark.py index 9f46a80e..4cb9fd6 100644 --- a/tools/perf/core/perf_benchmark.py +++ b/tools/perf/core/perf_benchmark.py
@@ -108,7 +108,7 @@ # TODO(crbug.com/881469): remove this once Webview support surface # synchronization. - if options.browser_type == 'android-webview': + if 'android-webview' in options.browser_type: options.AppendExtraBrowserArgs( '--disable-features=SurfaceSynchronization') self.SetExtraBrowserOptions(options)
diff --git a/tools/perf/expectations.config b/tools/perf/expectations.config index 81b2d03..54a5428 100644 --- a/tools/perf/expectations.config +++ b/tools/perf/expectations.config
@@ -8,6 +8,14 @@ # tags: Nexus_7 Mac_10.11 Mac_10.12 Nexus6_Webview Nexus5X_Webview # tags: Pixel_2 Win_7 Win_10 +# Benchmark: blink_perf.bindings +crbug.com/882881 [ Nexus_5 ] blink_perf.bindings/structured-clone-json-deserialize.html [ Skip ] +crbug.com/882881 [ Nexus_5 ] blink_perf.bindings/structured-clone-json-serialize.html [ Skip ] +crbug.com/882882 [ Nexus_5 ] blink_perf.bindings/structured-clone-long-string-deserialize.html [ Skip ] +crbug.com/882882 [ Nexus_5 ] blink_perf.bindings/structured-clone-long-string-serialize.html [ Skip ] +crbug.com/882883 [ Nexus_5 ] blink_perf.bindings/worker-structured-clone-json-roundtrip.html [ Skip ] +crbug.com/882883 [ Nexus_5 ] blink_perf.bindings/worker-structured-clone-json-serialize.html [ Skip ] + # Benchmark: blink_perf.canvas crbug.com/593973 [ Android_Svelte ] blink_perf.canvas/* [ Skip ] crbug.com/784540 [ Nexus_5 ] blink_perf.canvas/draw-static-canvas-2d-to-hw-accelerated-canvas-2d.html [ Skip ] @@ -59,7 +67,7 @@ crbug.com/876636 [ Win_10 ] loading.desktop/TheOnion_warm [ Skip ] crbug.com/876636 [ ChromeOS ] loading.desktop/AllRecipes_warm [ Skip ] crbug.com/879833 [ Mac_10.12 ] loading.desktop/AllRecipes_cold [ Skip ] -crbug.com/879833 [ Win_10 ] loading.desktop/AllRecipes_cold [ Skip ] +crbug.com/879833 [ Win ] loading.desktop/AllRecipes_cold [ Skip ] # Benchmark: loading.mobile crbug.com/656861 [ All ] loading.mobile/G1 [ Skip ]
diff --git a/ui/accessibility/platform/ax_platform_node_auralinux.cc b/ui/accessibility/platform/ax_platform_node_auralinux.cc index 3b26168..56b3fdb 100644 --- a/ui/accessibility/platform/ax_platform_node_auralinux.cc +++ b/ui/accessibility/platform/ax_platform_node_auralinux.cc
@@ -1457,8 +1457,10 @@ static_cast<int32_t>(ax::mojom::InvalidState::kFalse)) atk_state_set_add_state(atk_state_set, ATK_STATE_INVALID_ENTRY); #if defined(ATK_216) - if (data.HasIntAttribute(ax::mojom::IntAttribute::kCheckedState)) + if (data.HasIntAttribute(ax::mojom::IntAttribute::kCheckedState) && + data.role != ax::mojom::Role::kToggleButton) { atk_state_set_add_state(atk_state_set, ATK_STATE_CHECKABLE); + } if (data.HasIntAttribute(ax::mojom::IntAttribute::kHasPopup)) atk_state_set_add_state(atk_state_set, ATK_STATE_HAS_POPUP); #endif @@ -1488,18 +1490,9 @@ // Checked state const auto checked_state = GetData().GetCheckedState(); - switch (checked_state) { - case ax::mojom::CheckedState::kMixed: - atk_state_set_add_state(atk_state_set, ATK_STATE_INDETERMINATE); - break; - case ax::mojom::CheckedState::kTrue: - atk_state_set_add_state(atk_state_set, - data.role == ax::mojom::Role::kToggleButton - ? ATK_STATE_PRESSED - : ATK_STATE_CHECKED); - break; - default: - break; + if (checked_state == ax::mojom::CheckedState::kTrue || + checked_state == ax::mojom::CheckedState::kMixed) { + atk_state_set_add_state(atk_state_set, GetAtkStateTypeForCheckableNode()); } switch (GetData().GetRestriction()) { @@ -1595,6 +1588,14 @@ return atk_object_; } +void AXPlatformNodeAuraLinux::OnCheckedStateChanged() { + DCHECK(atk_object_); + + atk_object_notify_state_change( + ATK_OBJECT(atk_object_), GetAtkStateTypeForCheckableNode(), + GetData().GetCheckedState() != ax::mojom::CheckedState::kFalse); +} + AtkObject* AXPlatformNodeAuraLinux::current_focused_ = nullptr; void AXPlatformNodeAuraLinux::OnFocused() { @@ -1664,6 +1665,9 @@ void AXPlatformNodeAuraLinux::NotifyAccessibilityEvent( ax::mojom::Event event_type) { switch (event_type) { + case ax::mojom::Event::kCheckedStateChanged: + OnCheckedStateChanged(); + break; case ax::mojom::Event::kFocus: case ax::mojom::Event::kFocusContext: OnFocused(); @@ -1776,6 +1780,14 @@ return attribute_list; } +AtkStateType AXPlatformNodeAuraLinux::GetAtkStateTypeForCheckableNode() { + if (GetData().GetCheckedState() == ax::mojom::CheckedState::kMixed) + return ATK_STATE_INDETERMINATE; + if (GetData().role == ax::mojom::Role::kToggleButton) + return ATK_STATE_PRESSED; + return ATK_STATE_CHECKED; +} + // AtkDocumentHelpers const gchar* AXPlatformNodeAuraLinux::GetDocumentAttributeValue(
diff --git a/ui/accessibility/platform/ax_platform_node_auralinux.h b/ui/accessibility/platform/ax_platform_node_auralinux.h index 607b3f38..d8d444f 100644 --- a/ui/accessibility/platform/ax_platform_node_auralinux.h +++ b/ui/accessibility/platform/ax_platform_node_auralinux.h
@@ -76,6 +76,7 @@ void GetFloatAttributeInGValue(ax::mojom::FloatAttribute attr, GValue* value); // Event helpers + void OnCheckedStateChanged(); void OnFocused(); void OnSelected(); @@ -120,6 +121,9 @@ AtkObject* CreateAtkObject(); void DestroyAtkObjects(); + // The AtkStateType for a checkable node can vary depending on the role. + AtkStateType GetAtkStateTypeForCheckableNode(); + // Keep information of latest AtkInterfaces mask to refresh atk object // interfaces accordingly if needed. int interface_mask_;
diff --git a/ui/android/BUILD.gn b/ui/android/BUILD.gn index aaad8648..bc04112d 100644 --- a/ui/android/BUILD.gn +++ b/ui/android/BUILD.gn
@@ -233,6 +233,7 @@ android_library("ui_utils_java") { java_files = [ "java/src/org/chromium/ui/ContactsPickerListener.java", + "java/src/org/chromium/ui/KeyboardVisibilityDelegate.java", "java/src/org/chromium/ui/PhotoPickerListener.java", "java/src/org/chromium/ui/UiUtils.java", ]
diff --git a/ui/android/java/src/org/chromium/ui/KeyboardVisibilityDelegate.java b/ui/android/java/src/org/chromium/ui/KeyboardVisibilityDelegate.java new file mode 100644 index 0000000..12df248f2 --- /dev/null +++ b/ui/android/java/src/org/chromium/ui/KeyboardVisibilityDelegate.java
@@ -0,0 +1,193 @@ +// 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.ui; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.graphics.Rect; +import android.os.Build; +import android.os.Handler; +import android.os.StrictMode; +import android.view.View; +import android.view.WindowInsets; +import android.view.inputmethod.InputMethodManager; + +import org.chromium.base.Log; +import org.chromium.base.VisibleForTesting; + +import java.util.concurrent.atomic.AtomicInteger; + +/** + * A delegate that can be overridden to change the methods to figure out and change the current + * state of Android's soft keyboard. + */ +public class KeyboardVisibilityDelegate { + private static final String TAG = "KeyboardVisibility"; + + /** Number of retries after a failed attempt of bringing up the keyboard. */ + private static final int KEYBOARD_RETRY_ATTEMPTS = 10; + + /** Waiting time between attempts to show the keyboard. */ + private static final long KEYBOARD_RETRY_DELAY_MS = 100; + + /** The minimum size of the bottom margin below the app to detect a keyboard. */ + private static final float KEYBOARD_DETECT_BOTTOM_THRESHOLD_DP = 100; + + /** The delegate to determine keyboard visibility. */ + private static KeyboardVisibilityDelegate sInstance = new KeyboardVisibilityDelegate(); + + /** Set this delegate to replace the keyboard in tests. */ + private static KeyboardVisibilityDelegate sTestingInstance; + + /** + * Allows setting a new strategy to override the default {@link KeyboardVisibilityDelegate}. + * Caution while using it as it will take precedence over the currently set strategy. + * If two delegates are added, the newer one will try to handle any call. If it can't an older + * one is called. New delegates can call |method| of a predecessor with {@code super.|method|}. + * @param delegate A {@link KeyboardVisibilityDelegate} instance. + */ + public static void setInstance(KeyboardVisibilityDelegate delegate) { + sInstance = delegate; + } + + /** + * Setting a test instance of the visibility delegate that won't affect the default instance. + * + * @param delegate A {@link KeyboardVisibilityDelegate} instance. + */ + @VisibleForTesting + public static void setDelegateForTesting(KeyboardVisibilityDelegate delegate) { + sTestingInstance = delegate; + } + + /** + * Clears any previously set test instance. + */ + @VisibleForTesting + public static void clearDelegateForTesting() { + sTestingInstance = null; + } + + /** + * Prefer using {@link org.chromium.ui.base.WindowAndroid#getKeyboardDelegate()} over this + * method. Both return a delegate which allows checking and influencing the keyboard state. + * @return the global {@link KeyboardVisibilityDelegate}. + */ + public static KeyboardVisibilityDelegate getInstance() { + if (sTestingInstance != null) return sTestingInstance; + return sInstance; + } + + /** + * Only classes that override the delegate may instantiate it and set it using + * {@link #setInstance(KeyboardVisibilityDelegate)}. + */ + protected KeyboardVisibilityDelegate() {} + + /** + * Tries to show the soft keyboard by using the {@link Context#INPUT_METHOD_SERVICE}. + * @param view The currently focused {@link View}, which would receive soft keyboard input. + */ + @SuppressLint("NewApi") + public void showKeyboard(View view) { + final Handler handler = new Handler(); + final AtomicInteger attempt = new AtomicInteger(); + Runnable openRunnable = new Runnable() { + @Override + public void run() { + // Not passing InputMethodManager.SHOW_IMPLICIT as it does not trigger the + // keyboard in landscape mode. + InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService( + Context.INPUT_METHOD_SERVICE); + // Third-party touches disk on showSoftInput call. + // http://crbug.com/619824, http://crbug.com/635118 + StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites(); + try { + imm.showSoftInput(view, 0); + } catch (IllegalArgumentException e) { + if (attempt.incrementAndGet() <= KEYBOARD_RETRY_ATTEMPTS) { + handler.postDelayed(this, KEYBOARD_RETRY_DELAY_MS); + } else { + Log.e(TAG, "Unable to open keyboard. Giving up.", e); + } + } finally { + StrictMode.setThreadPolicy(oldPolicy); + } + } + }; + openRunnable.run(); + } + + /** + * Hides the soft keyboard by using the {@link Context#INPUT_METHOD_SERVICE}. + * @param view The {@link View} that is currently accepting input. + * @return Whether the keyboard was visible before. + */ + public boolean hideKeyboard(View view) { + InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService( + Context.INPUT_METHOD_SERVICE); + return imm.hideSoftInputFromWindow(view.getWindowToken(), 0); + } + + /** + * Calculates the keyboard height based on the bottom margin it causes for the given + * rootView. It is used to determine whether the keyboard is visible. + * @param context A {@link Context} instance. + * @param rootView A {@link View}. + * @return The size of the bottom margin which most likely is exactly the keyboard size. + */ + public int calculateKeyboardHeight(Context context, View rootView) { + Rect appRect = new Rect(); + rootView.getWindowVisibleDisplayFrame(appRect); + + // Assume status bar is always at the top of the screen. + final int statusBarHeight = appRect.top; + + int bottomMargin = rootView.getHeight() - (appRect.height() + statusBarHeight); + + // If there is no bottom margin, the keyboard is not showing. + if (bottomMargin <= 0) return 0; + + // If the display frame width is < root view width, controls are on the side of + // the screen. The inverse is not necessarily true; i.e. if navControlsOnSide is + // false, it doesn't mean the controls are not on the side or that they _are_ at + // the bottom. It might just mean the app is not responsible for drawing their + // background. + boolean navControlsOnSide = appRect.width() != rootView.getWidth(); + + // If the Android nav controls are on the sides instead of at the bottom, its + // height is not needed. + if (!navControlsOnSide) { + // When available, get the root view insets. + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + WindowInsets insets = rootView.getRootWindowInsets(); + if (insets != null) { // Either not supported or the rootView isn't attached. + bottomMargin -= insets.getStableInsetBottom(); + } + } else { + // In the event we couldn't get the bottom nav height, use a best guess + // of the keyboard height. In certain cases this also means including + // the height of the Android navigation. + final float density = context.getResources().getDisplayMetrics().density; + bottomMargin = (int) (bottomMargin - KEYBOARD_DETECT_BOTTOM_THRESHOLD_DP * density); + } + } + // After subtracting the bottom navigation, the remaining margin represents the + // keyboard. + return bottomMargin; + } + + /** + * Detects whether or not the keyboard is showing. This is a best guess based on the height + * of the keyboard as there is no standardized/foolproof way to do this. + * @param context A {@link Context} instance. + * @param view A {@link View}. + * @return Whether or not the software keyboard is visible. + */ + public boolean isKeyboardShowing(Context context, View view) { + View rootView = view.getRootView(); + return rootView != null && calculateKeyboardHeight(context, rootView) > 0; + } +}
diff --git a/ui/android/java/src/org/chromium/ui/UiUtils.java b/ui/android/java/src/org/chromium/ui/UiUtils.java index 7019967..60d5822 100644 --- a/ui/android/java/src/org/chromium/ui/UiUtils.java +++ b/ui/android/java/src/org/chromium/ui/UiUtils.java
@@ -4,22 +4,18 @@ package org.chromium.ui; -import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; -import android.graphics.Rect; import android.graphics.Typeface; import android.os.Build; import android.os.Environment; -import android.os.Handler; import android.os.StrictMode; import android.text.TextUtils; import android.view.SurfaceView; import android.view.View; import android.view.View.MeasureSpec; import android.view.ViewGroup; -import android.view.WindowInsets; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodSubtype; @@ -37,7 +33,6 @@ import java.util.Locale; import java.util.Map; import java.util.Set; -import java.util.concurrent.atomic.AtomicInteger; /** * Utility functions for common Android UI tasks. @@ -46,9 +41,6 @@ public class UiUtils { private static final String TAG = "UiUtils"; - private static final int KEYBOARD_RETRY_ATTEMPTS = 10; - private static final long KEYBOARD_RETRY_DELAY_MS = 100; - public static final String EXTERNAL_IMAGE_FILE_PATH = "browser-images"; // Keep this variable in sync with the value defined in file_paths.xml. public static final String IMAGE_FILE_PATH = "images"; @@ -77,12 +69,6 @@ private UiUtils() { } - /** The minimum size of the bottom margin below the app to detect a keyboard. */ - private static final float KEYBOARD_DETECT_BOTTOM_THRESHOLD_DP = 100; - - /** A delegate that allows disabling keyboard visibility detection. */ - private static KeyboardShowingDelegate sKeyboardShowingDelegate; - /** A delegate for the photo picker. */ private static PhotoPickerDelegate sPhotoPickerDelegate; @@ -90,20 +76,6 @@ private static ContactsPickerDelegate sContactsPickerDelegate; /** - * A delegate that can be implemented to override whether or not keyboard detection will be - * used. - */ - public interface KeyboardShowingDelegate { - /** - * Will be called to determine whether or not to detect if the keyboard is visible. - * @param context A {@link Context} instance. - * @param view A {@link View}. - * @return Whether or not the keyboard check should be disabled. - */ - boolean disableKeyboardCheck(Context context, View view); - } - - /** * A delegate interface for the contacts picker. */ public interface ContactsPickerDelegate { @@ -224,125 +196,6 @@ sPhotoPickerDelegate.onPhotoPickerDismissed(); } - // KeyboardShowingDelegate: - - /** - * Allows setting a delegate to override the default software keyboard visibility detection. - * @param delegate A {@link KeyboardShowingDelegate} instance. - */ - public static void setKeyboardShowingDelegate(KeyboardShowingDelegate delegate) { - sKeyboardShowingDelegate = delegate; - } - - /** - * Shows the software keyboard if necessary. - * @param view The currently focused {@link View}, which would receive soft keyboard input. - */ - public static void showKeyboard(final View view) { - final Handler handler = new Handler(); - final AtomicInteger attempt = new AtomicInteger(); - Runnable openRunnable = new Runnable() { - @Override - public void run() { - // Not passing InputMethodManager.SHOW_IMPLICIT as it does not trigger the - // keyboard in landscape mode. - InputMethodManager imm = - (InputMethodManager) view.getContext().getSystemService( - Context.INPUT_METHOD_SERVICE); - // Third-party touches disk on showSoftInput call. http://crbug.com/619824, - // http://crbug.com/635118 - StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites(); - try { - imm.showSoftInput(view, 0); - } catch (IllegalArgumentException e) { - if (attempt.incrementAndGet() <= KEYBOARD_RETRY_ATTEMPTS) { - handler.postDelayed(this, KEYBOARD_RETRY_DELAY_MS); - } else { - Log.e(TAG, "Unable to open keyboard. Giving up.", e); - } - } finally { - StrictMode.setThreadPolicy(oldPolicy); - } - } - }; - openRunnable.run(); - } - - /** - * Hides the keyboard. - * @param view The {@link View} that is currently accepting input. - * @return Whether the keyboard was visible before. - */ - public static boolean hideKeyboard(View view) { - InputMethodManager imm = - (InputMethodManager) view.getContext().getSystemService( - Context.INPUT_METHOD_SERVICE); - return imm.hideSoftInputFromWindow(view.getWindowToken(), 0); - } - - /** - * Detects whether or not the keyboard is showing. This is a best guess as there is no - * standardized/foolproof way to do this. - * @param context A {@link Context} instance. - * @param view A {@link View}. - * @return Whether or not the software keyboard is visible and taking up screen space. - */ - @SuppressLint("NewApi") - public static boolean isKeyboardShowing(Context context, View view) { - if (sKeyboardShowingDelegate != null - && sKeyboardShowingDelegate.disableKeyboardCheck(context, view)) { - return false; - } - - View rootView = view.getRootView(); - return rootView != null && calculateKeyboardHeight(context, rootView) > 0; - } - - /** - * Calculates the keyboard height based on the bottom margin it causes for the given rootView. - * @param context A {@link Context} instance. - * @param rootView A {@link View}. - * @return The size of the bottom margin which most likely is exactly the keyboard size. - */ - public static int calculateKeyboardHeight(Context context, View rootView) { - Rect appRect = new Rect(); - rootView.getWindowVisibleDisplayFrame(appRect); - - // Assume status bar is always at the top of the screen. - final int statusBarHeight = appRect.top; - - int bottomMargin = rootView.getHeight() - (appRect.height() + statusBarHeight); - - // If there is no bottom margin, the keyboard is not showing. - if (bottomMargin <= 0) return 0; - - // If the display frame width is < root view width, controls are on the side of the screen. - // The inverse is not necessarily true; i.e. if navControlsOnSide is false, it doesn't mean - // the controls are not on the side or that they _are_ at the bottom. It might just mean the - // app is not responsible for drawing their background. - boolean navControlsOnSide = appRect.width() != rootView.getWidth(); - - // If the Android nav controls are on the sides instead of at the bottom, its height is not - // needed. - if (!navControlsOnSide) { - // When available, get the root view insets. - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - WindowInsets insets = rootView.getRootWindowInsets(); - if (insets != null) { // Either not supported or the rootView isn't attached. - bottomMargin -= insets.getStableInsetBottom(); - } - } else { - // In the event we couldn't get the bottom nav height, use a best guess of the - // keyboard height. In certain cases this also means including the height of the - // Android navigation. - final float density = context.getResources().getDisplayMetrics().density; - bottomMargin = (int) (bottomMargin - KEYBOARD_DETECT_BOTTOM_THRESHOLD_DP * density); - } - } - // After subtracting the bottom navigation, the remaining margin represents the keyboard. - return bottomMargin; - } - /** * Gets the set of locales supported by the current enabled Input Methods. * @param context A {@link Context} instance.
diff --git a/ui/android/java/src/org/chromium/ui/base/ActivityWindowAndroid.java b/ui/android/java/src/org/chromium/ui/base/ActivityWindowAndroid.java index 76c47651b..94d0658 100644 --- a/ui/android/java/src/org/chromium/ui/base/ActivityWindowAndroid.java +++ b/ui/android/java/src/org/chromium/ui/base/ActivityWindowAndroid.java
@@ -16,7 +16,6 @@ import org.chromium.base.ApplicationStatus; import org.chromium.base.Callback; import org.chromium.base.ContextUtils; -import org.chromium.ui.UiUtils; import java.lang.ref.WeakReference; @@ -74,7 +73,7 @@ Activity activity = getActivity().get(); if (activity == null) return; View content = activity.findViewById(android.R.id.content); - mIsKeyboardShowing = UiUtils.isKeyboardShowing(getActivity().get(), content); + mIsKeyboardShowing = getKeyboardDelegate().isKeyboardShowing(getActivity().get(), content); content.addOnLayoutChangeListener(this); } @@ -194,7 +193,8 @@ @Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { - keyboardVisibilityPossiblyChanged(UiUtils.isKeyboardShowing(getActivity().get(), v)); + keyboardVisibilityPossiblyChanged( + getKeyboardDelegate().isKeyboardShowing(getActivity().get(), v)); } private int generateNextRequestCode() {
diff --git a/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java b/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java index eea4740..d7ba5e49 100644 --- a/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java +++ b/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
@@ -35,6 +35,7 @@ import org.chromium.base.VisibleForTesting; import org.chromium.base.annotations.CalledByNative; import org.chromium.base.annotations.JNINamespace; +import org.chromium.ui.KeyboardVisibilityDelegate; import org.chromium.ui.VSyncMonitor; import org.chromium.ui.display.DisplayAndroid; import org.chromium.ui.widget.Toast; @@ -98,7 +99,6 @@ private HashSet<Animator> mAnimationsOverContent = new HashSet<>(); private View mAnimationPlaceholderView; - protected boolean mIsKeyboardShowing; // System accessibility service. @@ -699,7 +699,7 @@ /** * Adds a listener that is updated of keyboard visibility changes. This works as a best guess. * - * @see org.chromium.ui.UiUtils#isKeyboardShowing(Context, View) + * @see org.chromium.ui.KeyboardVisibilityDelegate#isKeyboardShowing(Context, View) */ public void addKeyboardVisibilityListener(KeyboardVisibilityListener listener) { if (mKeyboardVisibilityListeners.isEmpty()) { @@ -719,6 +719,14 @@ } /** + * The returned {@link KeyboardVisibilityDelegate} can read and influence the soft keyboard. + * @return a {@link KeyboardVisibilityDelegate} specific for this window. + */ + public KeyboardVisibilityDelegate getKeyboardDelegate() { + return KeyboardVisibilityDelegate.getInstance(); + } + + /** * Adds a listener that will be notified whenever a ContextMenu is closed. */ public void addContextMenuCloseListener(OnCloseContextMenuListener listener) {
diff --git a/ui/base/test/ui_controls_internal_win.cc b/ui/base/test/ui_controls_internal_win.cc index e588115..45e2493 100644 --- a/ui/base/test/ui_controls_internal_win.cc +++ b/ui/base/test/ui_controls_internal_win.cc
@@ -201,7 +201,8 @@ if (n_code == HC_ACTION) { DCHECK(current_dispatcher_); current_dispatcher_->DispatchedMessage( - w_param, reinterpret_cast<MOUSEHOOKSTRUCT*>(l_param)); + static_cast<UINT>(w_param), + reinterpret_cast<MOUSEHOOKSTRUCT*>(l_param)); } return CallNextHookEx(next_hook, n_code, w_param, l_param); } @@ -402,9 +403,14 @@ AppendKeyboardInput(key, true, &input); AppendAcceleratorInputs(control, shift, alt, true, &input); - if (::SendInput(input.size(), input.data(), sizeof(INPUT)) != input.size()) + if (input.size() > std::numeric_limits<UINT>::max()) return false; + if (::SendInput(static_cast<UINT>(input.size()), input.data(), + sizeof(INPUT)) != input.size()) { + return false; + } + if (dispatcher) dispatcher->AddRef(); @@ -517,9 +523,14 @@ accelerator_state & kAlt, true, &input); } - if (::SendInput(input.size(), input.data(), sizeof(INPUT)) != input.size()) + if (input.size() > std::numeric_limits<UINT>::max()) return false; + if (::SendInput(static_cast<UINT>(input.size()), input.data(), + sizeof(INPUT)) != input.size()) { + return false; + } + if (dispatcher) dispatcher->AddRef();
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ml.xtb b/ui/chromeos/translations/ui_chromeos_strings_ml.xtb index 0d34b4e6..7b7705cc8 100644 --- a/ui/chromeos/translations/ui_chromeos_strings_ml.xtb +++ b/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
@@ -101,7 +101,7 @@ <translation id="3910699493603749297">ഖമെർ കീബോർഡ്</translation> <translation id="391445228316373457">നേപ്പാളി കീബോർഡ് (സ്വരസൂചകം)</translation> <translation id="3958548648197196644">കിവി</translation> -<translation id="3995138139523574647">USB-C ഉപകരണം (വലതുവശത്ത് പിന്നിലെ പോർട്ട്)</translation> +<translation id="3995138139523574647">USB-C ഉപകരണം (വലതുവശത്തെ പിന്നിലെ പോർട്ട്)</translation> <translation id="4070370845051020638">കാന്റണീസ് ടൈപ്പുചെയ്യൽ രീതി</translation> <translation id="4072248638558688893">തമിഴ് കീബോർഡ് (സ്വരസൂചകം)</translation> <translation id="4124935795427217608">യൂണികോൺ</translation> @@ -148,7 +148,7 @@ <translation id="5257456363153333584">തുമ്പി</translation> <translation id="5319782540886810524">ലാറ്റ്വിയന് കീബോര്ഡ്</translation> <translation id="5323213332664049067">ലാറ്റിന് അമേരിക്കന്</translation> -<translation id="5331975486040154427">USB-C ഉപകരണം (പുറകിൽ ഇടതുവശത്തെ പോർട്ട്)</translation> +<translation id="5331975486040154427">USB-C ഉപകരണം (ഇടതുവശത്തെ പിന്നിലെ പോർട്ട്)</translation> <translation id="5402367795255837559">ബ്രെയ്ലി</translation> <translation id="5412637665001827670">ബള്ഗേറിയന് കീബോര്ഡ്</translation> <translation id="5418923334382419584">മ്യാൻമാർ കീബോർഡ്</translation> @@ -204,7 +204,7 @@ <translation id="6937152069980083337">Google ജാപ്പനീസ് ഇന്പുട്ട് (യുഎസ് കീബോര്ഡിന് മാത്രം)</translation> <translation id="6939777852457331078">യുഎസ് വർക്ക്മാൻ കീബോർഡ്</translation> <translation id="6970230597523682626">ബള്ഗേറിയന്</translation> -<translation id="7098389117866926363">USB-C ഉപകരണം (പുറകിൽ ഇടതുവശത്തെ പോർട്ട്)</translation> +<translation id="7098389117866926363">USB-C ഉപകരണം (ഇടതുവശത്തെ പോർട്ട് പുറകിൽ)</translation> <translation id="714034171374937760">Chromebase</translation> <translation id="7170467426996704624">ലിപ്യന്തരണം (salam → ሰላም)</translation> <translation id="7172053773111046550">എസ്റ്റോണിയന് കീബോര്ഡ്</translation> @@ -265,7 +265,7 @@ <translation id="8900820606136623064">ഹംഗേറിയന്</translation> <translation id="8901822611024316615">ചെക്ക് QWERTY കീബോർഡ്</translation> <translation id="8919081441417203123">ഡാനിഷ്</translation> -<translation id="8938800817013097409">USB-C ഉപകരണം (പുറകിൽ വലതുവശത്തെ പോർട്ട്)</translation> +<translation id="8938800817013097409">USB-C ഉപകരണം (വലതുവശത്തെ പോർട്ട് പുറകിൽ)</translation> <translation id="8960999352790021682">ബംഗാളി കീബോർഡ് (സ്വരസൂചകം)</translation> <translation id="9017798300203431059">റഷ്യൻ സ്വരസൂചകം</translation> <translation id="913758436357682283">മ്യാൻമാർ മ്യാൻസൻ കീബോർഡ്</translation>
diff --git a/ui/login/display_manager.js b/ui/login/display_manager.js index 8c9668bb9..bcaf53054 100644 --- a/ui/login/display_manager.js +++ b/ui/login/display_manager.js
@@ -726,6 +726,19 @@ if (this.currentScreen.id == SCREEN_DEVICE_DISABLED) return; + // Prevent initial GAIA signin load from interrupting the kiosk splash + // screen. + // TODO: remove this special case when a better fix is found for the race + // condition. This if statement was introduced to fix http://b/113786350. + if ((this.currentScreen.id == SCREEN_APP_LAUNCH_SPLASH || + this.currentScreen.id == SCREEN_ARC_KIOSK_SPLASH) && + screen.id == SCREEN_GAIA_SIGNIN) { + console.log( + this.currentScreen.id + + ' screen showing. Ignoring switch to Gaia screen.'); + return; + } + var screenId = screen.id; if (screenId == SCREEN_ACCOUNT_PICKER && this.showingViewsLogin) { chrome.send('hideOobeDialog');
diff --git a/ui/strings/translations/ui_strings_am.xtb b/ui/strings/translations/ui_strings_am.xtb index e42bc43..654af291 100644 --- a/ui/strings/translations/ui_strings_am.xtb +++ b/ui/strings/translations/ui_strings_am.xtb
@@ -149,6 +149,8 @@ <translation id="7814458197256864873">&ቅዳ</translation> <translation id="7879499977785298635">አታግድ</translation> <translation id="7907591526440419938">ፋይል ክፈት</translation> +<translation id="7969046989155602842">ትእዛዝ</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" />+<ph name="KEY_COMBO_NAME" /></translation> <translation id="8106081041558092062">{HOURS,plural, =1{1 ሰዓት በፊት}one{# ሰዓቶች በፊት}other{# ሰዓቶች በፊት}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{1 ሰከንድ ቀርቷል}one{# ሰከንዶች ቀርቷል}other{# ሰከንዶች ቀርተዋል}}</translation> <translation id="815598010540052116">ወደ ታች ሸብልል</translation>
diff --git a/ui/strings/translations/ui_strings_ar.xtb b/ui/strings/translations/ui_strings_ar.xtb index 9eadb7b9..67236cd 100644 --- a/ui/strings/translations/ui_strings_ar.xtb +++ b/ui/strings/translations/ui_strings_ar.xtb
@@ -65,7 +65,7 @@ <translation id="3660179305079774227">مفتاح سهم إلى أعلى</translation> <translation id="3740362395218339114"><ph name="QUANTITY" /> غيغابايت/ثانية</translation> <translation id="3757388668994797779"><ph name="QUANTITY" /> غيغابايت</translation> -<translation id="3842239759367498783">تابع القراءة من جهازك الجوّال <ph name="TITLE" /></translation> +<translation id="3842239759367498783">متابعة القراءة من جهازك الجوّال <ph name="TITLE" /></translation> <translation id="385051799172605136">الرجوع إلى الوراء</translation> <translation id="3889424535448813030">مفتاح سهم إلى اليمين</translation> <translation id="3892641579809465218">العرض الداخلي</translation> @@ -149,6 +149,8 @@ <translation id="7814458197256864873">&نسخ</translation> <translation id="7879499977785298635">عدم الحظر</translation> <translation id="7907591526440419938">فتح ملف</translation> +<translation id="7969046989155602842">Command</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" /> بالإضافة إلى <ph name="KEY_COMBO_NAME" /></translation> <translation id="8106081041558092062">{HOURS,plural, =1{قبل ساعة واحدة}zero{قبل # من الساعات}two{قبل ساعتين (#)}few{قبل # ساعات}many{قبل # ساعة}other{قبل # من الساعات}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{يتبقى ثانية واحدة}zero{يتبقى # من الثواني}two{يتبقى ثانيتان (#)}few{يتبقى # ثوانٍ}many{يتبقى # ثانية}other{يتبقى # من الثواني}}</translation> <translation id="815598010540052116">التمرير إلى أسفل</translation>
diff --git a/ui/strings/translations/ui_strings_es-419.xtb b/ui/strings/translations/ui_strings_es-419.xtb index 28da68d..a79ce7b 100644 --- a/ui/strings/translations/ui_strings_es-419.xtb +++ b/ui/strings/translations/ui_strings_es-419.xtb
@@ -65,7 +65,7 @@ <translation id="3660179305079774227">Flecha arriba</translation> <translation id="3740362395218339114"><ph name="QUANTITY" /> GB/s</translation> <translation id="3757388668994797779"><ph name="QUANTITY" /> GB</translation> -<translation id="3842239759367498783">Sigue leyendo desde tu dispositivo móvil <ph name="TITLE" /></translation> +<translation id="3842239759367498783">Sigue leyendo desde tu dispositivo móvil (<ph name="TITLE" />)</translation> <translation id="385051799172605136">Atrás</translation> <translation id="3889424535448813030">Flecha derecha</translation> <translation id="3892641579809465218">Pantalla interna</translation>
diff --git a/ui/strings/translations/ui_strings_et.xtb b/ui/strings/translations/ui_strings_et.xtb index c2fbec2..7eac371 100644 --- a/ui/strings/translations/ui_strings_et.xtb +++ b/ui/strings/translations/ui_strings_et.xtb
@@ -149,6 +149,8 @@ <translation id="7814458197256864873">&Kopeeri</translation> <translation id="7879499977785298635">Ära blokeeri</translation> <translation id="7907591526440419938">Faili avamine</translation> +<translation id="7969046989155602842">Käsuklahv</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" /> + <ph name="KEY_COMBO_NAME" /></translation> <translation id="8106081041558092062">{HOURS,plural, =1{1 tund tagasi}other{# tundi tagasi}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{1 s on jäänud}other{# s on jäänud}}</translation> <translation id="815598010540052116">Keri alla</translation>
diff --git a/ui/strings/translations/ui_strings_fa.xtb b/ui/strings/translations/ui_strings_fa.xtb index 8d27b72..513e146 100644 --- a/ui/strings/translations/ui_strings_fa.xtb +++ b/ui/strings/translations/ui_strings_fa.xtb
@@ -149,6 +149,8 @@ <translation id="7814458197256864873">&کپی</translation> <translation id="7879499977785298635">مسدود نکنید</translation> <translation id="7907591526440419938">باز کردن فایل</translation> +<translation id="7969046989155602842">فرمان</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" />+<ph name="KEY_COMBO_NAME" /></translation> <translation id="8106081041558092062">{HOURS,plural, =1{۱ ساعت قبل}one{# ساعت قبل}other{# ساعت قبل}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{۱ ثانیه باقی مانده است}one{# ثانیه باقی مانده است}other{# ثانیه باقی مانده است}}</translation> <translation id="815598010540052116">پیمایش به پایین</translation>
diff --git a/ui/strings/translations/ui_strings_fil.xtb b/ui/strings/translations/ui_strings_fil.xtb index cb5b518..33f399a 100644 --- a/ui/strings/translations/ui_strings_fil.xtb +++ b/ui/strings/translations/ui_strings_fil.xtb
@@ -149,6 +149,8 @@ <translation id="7814458197256864873">&Kopyahin</translation> <translation id="7879499977785298635">Huwag i-block</translation> <translation id="7907591526440419938">Buksan ang File</translation> +<translation id="7969046989155602842">Command</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" />+<ph name="KEY_COMBO_NAME" /></translation> <translation id="8106081041558092062">{HOURS,plural, =1{1 oras ang nakalipas}one{# oras ang nakalipas}other{# na oras ang nakalipas}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{1 segundo na lang ang natitira}one{# segundo na lang ang natitira}other{# na segundo na lang ang natitira}}</translation> <translation id="815598010540052116">Mag-scroll Pababa</translation>
diff --git a/ui/strings/translations/ui_strings_hr.xtb b/ui/strings/translations/ui_strings_hr.xtb index 172f324..53be996b 100644 --- a/ui/strings/translations/ui_strings_hr.xtb +++ b/ui/strings/translations/ui_strings_hr.xtb
@@ -149,6 +149,8 @@ <translation id="7814458197256864873">&Kopiraj</translation> <translation id="7879499977785298635">Ne blokiraj</translation> <translation id="7907591526440419938">Otvori datoteku</translation> +<translation id="7969046989155602842">Tipka Command</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" /> + <ph name="KEY_COMBO_NAME" /></translation> <translation id="8106081041558092062">{HOURS,plural, =1{Prije 1 sat}one{Prije # sat}few{Prije # sata}other{Prije # sati}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{Još 1 s}one{Još # s}few{Još # s}other{Još # s}}</translation> <translation id="815598010540052116">Pomakni se dolje</translation>
diff --git a/ui/strings/translations/ui_strings_hu.xtb b/ui/strings/translations/ui_strings_hu.xtb index ee1cdcb..37d3461 100644 --- a/ui/strings/translations/ui_strings_hu.xtb +++ b/ui/strings/translations/ui_strings_hu.xtb
@@ -149,6 +149,8 @@ <translation id="7814458197256864873">&Másolás</translation> <translation id="7879499977785298635">Nincs tiltás</translation> <translation id="7907591526440419938">Fájl megnyitása</translation> +<translation id="7969046989155602842">Command</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" />+<ph name="KEY_COMBO_NAME" /></translation> <translation id="8106081041558092062">{HOURS,plural, =1{1 órája}other{# órája}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{1 mp van hátra}other{# mp van hátra}}</translation> <translation id="815598010540052116">Görgetés lefelé</translation>
diff --git a/ui/strings/translations/ui_strings_id.xtb b/ui/strings/translations/ui_strings_id.xtb index 0bb689be..6c09f8dd 100644 --- a/ui/strings/translations/ui_strings_id.xtb +++ b/ui/strings/translations/ui_strings_id.xtb
@@ -149,6 +149,8 @@ <translation id="7814458197256864873">&Salin</translation> <translation id="7879499977785298635">Jangan diblokir</translation> <translation id="7907591526440419938">Buka File</translation> +<translation id="7969046989155602842">Perintah</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" />+<ph name="KEY_COMBO_NAME" /></translation> <translation id="8106081041558092062">{HOURS,plural, =1{1 jam yang lalu}other{# jam yang lalu}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{1 dtk lagi}other{# dtk lagi}}</translation> <translation id="815598010540052116">Gulir ke Bawah</translation>
diff --git a/ui/strings/translations/ui_strings_it.xtb b/ui/strings/translations/ui_strings_it.xtb index dffa76c..dfdeddd62 100644 --- a/ui/strings/translations/ui_strings_it.xtb +++ b/ui/strings/translations/ui_strings_it.xtb
@@ -149,6 +149,8 @@ <translation id="7814458197256864873">&Copia</translation> <translation id="7879499977785298635">Non bloccare</translation> <translation id="7907591526440419938">Apri file</translation> +<translation id="7969046989155602842">Comando</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" /> + <ph name="KEY_COMBO_NAME" /></translation> <translation id="8106081041558092062">{HOURS,plural, =1{1 ora fa}other{# ore fa}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{1 sec rimanente}other{# sec rimanenti}}</translation> <translation id="815598010540052116">Scorri verso il basso</translation>
diff --git a/ui/strings/translations/ui_strings_ja.xtb b/ui/strings/translations/ui_strings_ja.xtb index 64e3f226..c459dac1d 100644 --- a/ui/strings/translations/ui_strings_ja.xtb +++ b/ui/strings/translations/ui_strings_ja.xtb
@@ -149,6 +149,8 @@ <translation id="7814458197256864873">コピー(&C)</translation> <translation id="7879499977785298635">ブロックしない</translation> <translation id="7907591526440419938">ファイルを開く</translation> +<translation id="7969046989155602842">コマンド</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" />+<ph name="KEY_COMBO_NAME" /></translation> <translation id="8106081041558092062">{HOURS,plural, =1{1 時間前}other{# 時間前}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{残り 1 秒}other{残り # 秒}}</translation> <translation id="815598010540052116">下にスクロール</translation>
diff --git a/ui/strings/translations/ui_strings_lt.xtb b/ui/strings/translations/ui_strings_lt.xtb index d251920..5d1dc643 100644 --- a/ui/strings/translations/ui_strings_lt.xtb +++ b/ui/strings/translations/ui_strings_lt.xtb
@@ -149,6 +149,8 @@ <translation id="7814458197256864873">&Kopijuoti</translation> <translation id="7879499977785298635">Neblokuoti</translation> <translation id="7907591526440419938">Atidaryti failą</translation> +<translation id="7969046989155602842">Komanda</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" /> + „<ph name="KEY_COMBO_NAME" />“</translation> <translation id="8106081041558092062">{HOURS,plural, =1{Prieš 1 valandą}one{Prieš # valandą}few{Prieš # valandas}many{Prieš # valandos}other{Prieš # valandų}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{Liko 1 sek.}one{Liko # sek.}few{Liko # sek.}many{Liko # sek.}other{Liko # sek.}}</translation> <translation id="815598010540052116">Slinkti žemyn</translation>
diff --git a/ui/strings/translations/ui_strings_ms.xtb b/ui/strings/translations/ui_strings_ms.xtb index f221821..ddf56c5d 100644 --- a/ui/strings/translations/ui_strings_ms.xtb +++ b/ui/strings/translations/ui_strings_ms.xtb
@@ -149,6 +149,8 @@ <translation id="7814458197256864873">&Salin</translation> <translation id="7879499977785298635">Jangan sekat</translation> <translation id="7907591526440419938">Buka Fail</translation> +<translation id="7969046989155602842">Perintah</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" />+<ph name="KEY_COMBO_NAME" /></translation> <translation id="8106081041558092062">{HOURS,plural, =1{1 jam yang lalu}other{# jam yang lalu}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{1 saat lagi}other{# saat lagi}}</translation> <translation id="815598010540052116">Tatal Ke Bawah</translation>
diff --git a/ui/strings/translations/ui_strings_pl.xtb b/ui/strings/translations/ui_strings_pl.xtb index 84a8870..d4f9cb40 100644 --- a/ui/strings/translations/ui_strings_pl.xtb +++ b/ui/strings/translations/ui_strings_pl.xtb
@@ -149,6 +149,8 @@ <translation id="7814458197256864873">&Kopiuj</translation> <translation id="7879499977785298635">Nie blokuj</translation> <translation id="7907591526440419938">Otwórz plik</translation> +<translation id="7969046989155602842">Command</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" />+<ph name="KEY_COMBO_NAME" /></translation> <translation id="8106081041558092062">{HOURS,plural, =1{1 godzinę temu}few{# godziny temu}many{# godzin temu}other{# godziny temu}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{Pozostała 1 s}few{Pozostały # s}many{Pozostało # s}other{Pozostało # s}}</translation> <translation id="815598010540052116">Przewiń w dół</translation>
diff --git a/ui/strings/translations/ui_strings_pt-BR.xtb b/ui/strings/translations/ui_strings_pt-BR.xtb index 65c884f..0d337cb 100644 --- a/ui/strings/translations/ui_strings_pt-BR.xtb +++ b/ui/strings/translations/ui_strings_pt-BR.xtb
@@ -149,6 +149,8 @@ <translation id="7814458197256864873">Co&piar</translation> <translation id="7879499977785298635">Não bloquear</translation> <translation id="7907591526440419938">Abrir arquivo</translation> +<translation id="7969046989155602842">Comando</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" />+<ph name="KEY_COMBO_NAME" /></translation> <translation id="8106081041558092062">{HOURS,plural, =1{Uma hora atrás}one{# horas atrás}other{# horas atrás}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{1 segundo restante}one{# segundos restantes}other{# segundos restantes}}</translation> <translation id="815598010540052116">Percorrer para baixo</translation>
diff --git a/ui/strings/translations/ui_strings_sk.xtb b/ui/strings/translations/ui_strings_sk.xtb index e8c5b5d2..3688bce2 100644 --- a/ui/strings/translations/ui_strings_sk.xtb +++ b/ui/strings/translations/ui_strings_sk.xtb
@@ -149,6 +149,8 @@ <translation id="7814458197256864873">&Kopírovať</translation> <translation id="7879499977785298635">Neblokovať</translation> <translation id="7907591526440419938">Otvoriť súbor</translation> +<translation id="7969046989155602842">Príkaz</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" /> + <ph name="KEY_COMBO_NAME" /></translation> <translation id="8106081041558092062">{HOURS,plural, =1{Pred 1 hodinou}few{Pred # hodinami}many{Pred # hodinou}other{Pred # hodinami}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{Zostáva 1 s}few{Zostávajú # s}many{Zostáva # s}other{Zostáva # s}}</translation> <translation id="815598010540052116">Rolovať nadol</translation>
diff --git a/ui/strings/translations/ui_strings_sw.xtb b/ui/strings/translations/ui_strings_sw.xtb index 970247d9..d840c0c 100644 --- a/ui/strings/translations/ui_strings_sw.xtb +++ b/ui/strings/translations/ui_strings_sw.xtb
@@ -149,6 +149,8 @@ <translation id="7814458197256864873">&Nakili</translation> <translation id="7879499977785298635">Usizuie</translation> <translation id="7907591526440419938">Fungua Faili</translation> +<translation id="7969046989155602842">Amri</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" />+<ph name="KEY_COMBO_NAME" /></translation> <translation id="8106081041558092062">{HOURS,plural, =1{Saa 1 iliyopita}other{Saa # zilizopita}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{Imesalia sekunde 1}other{Zimesalia sekunde #}}</translation> <translation id="815598010540052116">Sogeza Chini</translation>
diff --git a/ui/strings/translations/ui_strings_ta.xtb b/ui/strings/translations/ui_strings_ta.xtb index f11a783..09f2c4f 100644 --- a/ui/strings/translations/ui_strings_ta.xtb +++ b/ui/strings/translations/ui_strings_ta.xtb
@@ -149,6 +149,8 @@ <translation id="7814458197256864873">&நகலெடு</translation> <translation id="7879499977785298635">தடுக்காதே</translation> <translation id="7907591526440419938">கோப்பைத் திற</translation> +<translation id="7969046989155602842">கமான்ட் விசை</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" />+<ph name="KEY_COMBO_NAME" /></translation> <translation id="8106081041558092062">{HOURS,plural, =1{1 மணிநேரம் முன்பு}other{# மணிநேரம் முன்பு}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{1 நொடி உள்ளது}other{# நொடிகள் உள்ளன}}</translation> <translation id="815598010540052116">கீழே உருட்டு</translation>
diff --git a/ui/strings/translations/ui_strings_th.xtb b/ui/strings/translations/ui_strings_th.xtb index 9d4594cc..a1e943d 100644 --- a/ui/strings/translations/ui_strings_th.xtb +++ b/ui/strings/translations/ui_strings_th.xtb
@@ -149,6 +149,8 @@ <translation id="7814458197256864873">&คัดลอก</translation> <translation id="7879499977785298635">ไม่ต้องบล็อก</translation> <translation id="7907591526440419938">เปิดไฟล์</translation> +<translation id="7969046989155602842">Command</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" />+<ph name="KEY_COMBO_NAME" /></translation> <translation id="8106081041558092062">{HOURS,plural, =1{1 ชั่วโมงที่ผ่านมา}other{# ชั่วโมงที่ผ่านมา}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{เหลือ 1 วินาที}other{เหลือ # วินาที}}</translation> <translation id="815598010540052116">เลื่อนลง</translation>
diff --git a/ui/strings/translations/ui_strings_uk.xtb b/ui/strings/translations/ui_strings_uk.xtb index 80f1ca64..11c9c1842 100644 --- a/ui/strings/translations/ui_strings_uk.xtb +++ b/ui/strings/translations/ui_strings_uk.xtb
@@ -65,7 +65,7 @@ <translation id="3660179305079774227">Курсор угору</translation> <translation id="3740362395218339114"><ph name="QUANTITY" /> ГБ/сек.</translation> <translation id="3757388668994797779"><ph name="QUANTITY" /> ГБ</translation> -<translation id="3842239759367498783">Продовжити читати "<ph name="TITLE" />" на мобільному пристрої</translation> +<translation id="3842239759367498783">Продовжити читати з мобільного пристрою <ph name="TITLE" /></translation> <translation id="385051799172605136">Назад</translation> <translation id="3889424535448813030">Курсор праворуч</translation> <translation id="3892641579809465218">Внутрішній екран</translation> @@ -149,6 +149,8 @@ <translation id="7814458197256864873">&Копіювати</translation> <translation id="7879499977785298635">Не блокувати</translation> <translation id="7907591526440419938">Відкрити файл</translation> +<translation id="7969046989155602842">Клавіша Command</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" /> + <ph name="KEY_COMBO_NAME" /></translation> <translation id="8106081041558092062">{HOURS,plural, =1{1 годину тому}one{# годину тому}few{# години тому}many{# годин тому}other{# години тому}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{Залишилась 1 с}one{Залишилася # с}few{Залишилося # с}many{Залишилося # с}other{Залишилося # с}}</translation> <translation id="815598010540052116">Прокрутка вниз</translation>
diff --git a/ui/strings/translations/ui_strings_vi.xtb b/ui/strings/translations/ui_strings_vi.xtb index 427de99c7..8cc9f58 100644 --- a/ui/strings/translations/ui_strings_vi.xtb +++ b/ui/strings/translations/ui_strings_vi.xtb
@@ -65,7 +65,7 @@ <translation id="3660179305079774227">Phím mũi tên Lên</translation> <translation id="3740362395218339114"><ph name="QUANTITY" /> GB/giây</translation> <translation id="3757388668994797779"><ph name="QUANTITY" /> GB</translation> -<translation id="3842239759367498783">Tiếp tục đọc bằng thiết bị di động <ph name="TITLE" /></translation> +<translation id="3842239759367498783">Tiếp tục đọc trên thiết bị di động <ph name="TITLE" /></translation> <translation id="385051799172605136">Quay lại</translation> <translation id="3889424535448813030">Mũi tên phải</translation> <translation id="3892641579809465218">Màn hình nội bộ</translation>
diff --git a/ui/strings/translations/ui_strings_zh-TW.xtb b/ui/strings/translations/ui_strings_zh-TW.xtb index b1723562..efc43f9 100644 --- a/ui/strings/translations/ui_strings_zh-TW.xtb +++ b/ui/strings/translations/ui_strings_zh-TW.xtb
@@ -149,6 +149,8 @@ <translation id="7814458197256864873">複製(&C)</translation> <translation id="7879499977785298635">不要封鎖</translation> <translation id="7907591526440419938">開啟檔案</translation> +<translation id="7969046989155602842">Command 鍵</translation> +<translation id="8087772101393322318"><ph name="KEY_MODIFIER_NAME" /> + <ph name="KEY_COMBO_NAME" /> 鍵</translation> <translation id="8106081041558092062">{HOURS,plural, =1{1 小時前}other{# 小時前}}</translation> <translation id="8131263257437993507">{SECONDS,plural, =1{還剩 1 秒}other{還剩 # 秒}}</translation> <translation id="815598010540052116">向下捲動</translation>
diff --git a/ui/views/accessibility/view_accessibility_utils.cc b/ui/views/accessibility/view_accessibility_utils.cc index 1074424..9663921 100644 --- a/ui/views/accessibility/view_accessibility_utils.cc +++ b/ui/views/accessibility/view_accessibility_utils.cc
@@ -37,8 +37,7 @@ // static bool ViewAccessibilityUtils::IsFocusedChildWidget(Widget* widget, const View* focused_view) { - return widget->widget_delegate()->GetModalType() == ui::MODAL_TYPE_CHILD && - widget->IsVisible() && + return widget->IsVisible() && widget->GetContentsView()->Contains(focused_view); };
diff --git a/ui/views/accessibility/view_accessibility_utils.h b/ui/views/accessibility/view_accessibility_utils.h index e08b4107..24c1a324 100644 --- a/ui/views/accessibility/view_accessibility_utils.h +++ b/ui/views/accessibility/view_accessibility_utils.h
@@ -20,8 +20,7 @@ static Widget* GetFocusedChildWidgetForAccessibility(const View* view); // Used by GetFocusedChildWidgetForAccessibility to determine if a Widget - // should be handled separately. When visible and focused, these include: - // - tab modal dialogs + // should be handled separately. static bool IsFocusedChildWidget(Widget* widget, const View* focused_view); };
diff --git a/ui/views/cocoa/bridged_native_widget.h b/ui/views/cocoa/bridged_native_widget.h index f259bb7..75efe24 100644 --- a/ui/views/cocoa/bridged_native_widget.h +++ b/ui/views/cocoa/bridged_native_widget.h
@@ -44,7 +44,6 @@ class CocoaMouseCapture; class CocoaWindowMoveLoop; class DragDropClientMac; -class NativeWidgetMac; class View; using views_bridge_mac::mojom::BridgedNativeWidgetHost; @@ -59,22 +58,22 @@ public CocoaMouseCaptureDelegate, public BridgedNativeWidgetOwner { public: - // Contains NativeViewHost->gfx::NativeView associations. - using AssociatedViews = std::map<const views::View*, NSView*>; - // Return the size that |window| will take for the given client area |size|, // based on its current style mask. static gfx::Size GetWindowSizeForClientSize(NSWindow* window, const gfx::Size& size); + // Retrieves the bridge associated with the given NSWindow. Returns null if + // the supplied handle has no associated Widget. + static BridgedNativeWidgetImpl* GetFromNativeWindow(NSWindow* window); + // Retrieve a BridgedNativeWidgetImpl* from its id. static BridgedNativeWidgetImpl* GetFromId(uint64_t bridged_native_widget_id); // Creates one side of the bridge. |host| and |parent| must not be NULL. BridgedNativeWidgetImpl(uint64_t bridged_native_widget_id, BridgedNativeWidgetHost* host, - BridgedNativeWidgetHostHelper* host_helper, - NativeWidgetMac* parent); + BridgedNativeWidgetHostHelper* host_helper); ~BridgedNativeWidgetImpl() override; // Initialize the NSWindow by taking ownership of the specified object. @@ -108,10 +107,6 @@ Widget::MoveLoopResult RunMoveLoop(const gfx::Vector2d& drag_offset); void EndMoveLoop(); - // See views::Widget. - void SetNativeWindowProperty(const char* key, void* value); - void* GetNativeWindowProperty(const char* key) const; - // Sets the cursor associated with the NSWindow. Retains |cursor|. void SetCursor(NSCursor* cursor); @@ -155,14 +150,9 @@ // Called by the window show animation when it completes and wants to destroy // itself. void OnShowAnimationComplete(); + // Sort child NSViews according to their ranking in |rank|. + void SortSubviews(std::map<NSView*, int> rank); - // Updates |associated_views_| on NativeViewHost::Attach()/Detach(). - void SetAssociationForView(const views::View* view, NSView* native_view); - void ClearAssociationForView(const views::View* view); - // Sorts child NSViews according to NativeViewHosts order in views hierarchy. - void ReorderChildViews(); - - NativeWidgetMac* native_widget_mac() { return native_widget_mac_; } BridgedContentView* ns_view() { return bridged_view_; } BridgedNativeWidgetHost* host() { return host_; } BridgedNativeWidgetHostHelper* host_helper() { return host_helper_; } @@ -285,10 +275,6 @@ void OnMouseCaptureLost() override; NSWindow* GetWindow() const override; - // Returns a properties dictionary associated with the NSWindow. - // Creates and attaches a new instance if not found. - NSMutableDictionary* GetWindowProperties() const; - // BridgedNativeWidgetOwner: NSWindow* GetNSWindow() override; gfx::Vector2d GetChildWindowOffset() const override; @@ -298,7 +284,6 @@ const uint64_t id_; BridgedNativeWidgetHost* const host_; // Weak. Owns this. BridgedNativeWidgetHostHelper* const host_helper_; // Weak, owned by |host_|. - NativeWidgetMac* const native_widget_mac_; // Weak. Owns |host_|. base::scoped_nsobject<NativeWidgetMacNSWindow> window_; base::scoped_nsobject<ViewsNSWindowDelegate> window_delegate_; base::scoped_nsobject<BridgedContentView> bridged_view_; @@ -308,6 +293,7 @@ std::unique_ptr<DragDropClientMac> drag_drop_client_; ui::ModalType modal_type_ = ui::MODAL_TYPE_NONE; bool is_translucent_window_ = false; + bool widget_is_top_level_ = false; BridgedNativeWidgetOwner* parent_ = nullptr; // Weak. If non-null, owns this. std::vector<BridgedNativeWidgetImpl*> child_windows_; @@ -357,8 +343,6 @@ // shadow needs to be invalidated when a frame is received for the new shape. bool invalidate_shadow_on_frame_swap_ = false; - AssociatedViews associated_views_; - DISALLOW_COPY_AND_ASSIGN(BridgedNativeWidgetImpl); };
diff --git a/ui/views/cocoa/bridged_native_widget.mm b/ui/views/cocoa/bridged_native_widget.mm index 14ee514..ce0aa12 100644 --- a/ui/views/cocoa/bridged_native_widget.mm +++ b/ui/views/cocoa/bridged_native_widget.mm
@@ -34,8 +34,6 @@ #import "ui/views/cocoa/native_widget_mac_nswindow.h" #import "ui/views/cocoa/views_nswindow_delegate.h" #import "ui/views/cocoa/widget_owner_nswindow_adapter.h" -#include "ui/views/widget/native_widget_mac.h" -#include "ui/views/widget/widget.h" #include "ui/views_bridge_mac/mojo/bridged_native_widget_host.mojom.h" using views_bridge_mac::mojom::WindowVisibilityState; @@ -154,8 +152,6 @@ using NSViewComparatorValue = __kindof NSView*; #endif -int kWindowPropertiesKey; - // Returns true if the content_view is reparented. bool PositionWindowInNativeViewParent(NSView* content_view) { return [[content_view window] contentView] != content_view; @@ -181,16 +177,6 @@ return gfx::Size([window contentRectForFrameRect:frame_rect].size); } -void RankNSViews(View* view, - const BridgedNativeWidgetImpl::AssociatedViews& hosts, - RankMap* rank) { - auto it = hosts.find(view); - if (it != hosts.end()) - rank->emplace(it->second, rank->size()); - for (int i = 0; i < view->child_count(); ++i) - RankNSViews(view->child_at(i), hosts, rank); -} - NSComparisonResult SubviewSorter(NSViewComparatorValue lhs, NSViewComparatorValue rhs, void* rank_as_void) { @@ -245,6 +231,16 @@ } // static +BridgedNativeWidgetImpl* BridgedNativeWidgetImpl::GetFromNativeWindow( + gfx::NativeWindow window) { + if (NativeWidgetMacNSWindow* widget_window = + base::mac::ObjCCast<NativeWidgetMacNSWindow>(window)) { + return GetFromId([widget_window bridgedNativeWidgetId]); + } + return nullptr; // Not created by NativeWidgetMac. +} + +// static BridgedNativeWidgetImpl* BridgedNativeWidgetImpl::GetFromId( uint64_t bridged_native_widget_id) { auto found = GetIdToWidgetImplMap().find(bridged_native_widget_id); @@ -256,15 +252,10 @@ BridgedNativeWidgetImpl::BridgedNativeWidgetImpl( uint64_t bridged_native_widget_id, BridgedNativeWidgetHost* host, - BridgedNativeWidgetHostHelper* host_helper, - NativeWidgetMac* parent) - : id_(bridged_native_widget_id), - host_(host), - host_helper_(host_helper), - native_widget_mac_(parent) { + BridgedNativeWidgetHostHelper* host_helper) + : id_(bridged_native_widget_id), host_(host), host_helper_(host_helper) { DCHECK(GetIdToWidgetImplMap().find(id_) == GetIdToWidgetImplMap().end()); GetIdToWidgetImplMap().insert(std::make_pair(id_, this)); - DCHECK(parent); } BridgedNativeWidgetImpl::~BridgedNativeWidgetImpl() { @@ -299,7 +290,7 @@ void BridgedNativeWidgetImpl::SetParent(NSView* new_parent) { BridgedNativeWidgetImpl* bridged_native_widget_parent = - NativeWidgetMac::GetBridgeImplForNativeWindow([new_parent window]); + BridgedNativeWidgetImpl::GetFromNativeWindow([new_parent window]); // Remove from the old parent. if (parent_) { parent_->RemoveChildWindow(this); @@ -335,6 +326,7 @@ views_bridge_mac::mojom::BridgedNativeWidgetInitParamsPtr params) { modal_type_ = params->modal_type; is_translucent_window_ = params->is_translucent; + widget_is_top_level_ = params->widget_is_top_level; // Register for application hide notifications so that visibility can be // properly tracked. This is not done in the delegate so that the lifetime is @@ -668,22 +660,6 @@ window_move_loop_.reset(); } -void BridgedNativeWidgetImpl::SetNativeWindowProperty(const char* name, - void* value) { - NSString* key = [NSString stringWithUTF8String:name]; - if (value) { - [GetWindowProperties() setObject:[NSValue valueWithPointer:value] - forKey:key]; - } else { - [GetWindowProperties() removeObjectForKey:key]; - } -} - -void* BridgedNativeWidgetImpl::GetNativeWindowProperty(const char* name) const { - NSString* key = [NSString stringWithUTF8String:name]; - return [[GetWindowProperties() objectForKey:key] pointerValue]; -} - void BridgedNativeWidgetImpl::SetCursor(NSCursor* cursor) { [window_delegate_ setCursor:cursor]; } @@ -909,28 +885,12 @@ UpdateWindowGeometry(); } -void BridgedNativeWidgetImpl::SetAssociationForView(const View* view, - NSView* native_view) { - DCHECK_EQ(0u, associated_views_.count(view)); - associated_views_[view] = native_view; - native_widget_mac_->GetWidget()->ReorderNativeViews(); -} - -void BridgedNativeWidgetImpl::ClearAssociationForView(const View* view) { - auto it = associated_views_.find(view); - DCHECK(it != associated_views_.end()); - associated_views_.erase(it); -} - -void BridgedNativeWidgetImpl::ReorderChildViews() { +void BridgedNativeWidgetImpl::SortSubviews(RankMap rank) { // Ignore layer manipulation during a Close(). This can be reached during the // orderOut: in Close(), which notifies visibility changes to Views. if (!bridged_view_) return; - RankMap rank; - Widget* widget = native_widget_mac_->GetWidget(); - RankNSViews(widget->GetRootView(), associated_views_, &rank); // Unassociated NSViews should be ordered above associated ones. The exception // is the UI compositor's superview, which should always be on the very // bottom, so give it an explicit negative rank. @@ -946,7 +906,7 @@ DCHECK(window_ && ![window_ isSheet]); BridgedNativeWidgetImpl* parent_bridge = - NativeWidgetMac::GetBridgeImplForNativeWindow([new_parent window]); + BridgedNativeWidgetImpl::GetFromNativeWindow([new_parent window]); if (native_view == bridged_view_.get() && parent_bridge != parent_) { SetParent(new_parent); @@ -957,8 +917,7 @@ [[new_parent window] addChildWindow:window_ ordered:NSWindowAbove]; } - if (!native_widget_mac_->GetWidget()->is_top_level() || - native_view != bridged_view_.get()) { + if (!widget_is_top_level_ || native_view != bridged_view_.get()) { // Make native_view be a child of new_parent by adding it as a subview. // The window_ must remain visible because it controls the bounds and // visibility of the ui::Layer. So just hide it by setting alpha value to @@ -1312,15 +1271,4 @@ contextInfo:nullptr]; } -NSMutableDictionary* BridgedNativeWidgetImpl::GetWindowProperties() const { - NSMutableDictionary* properties = objc_getAssociatedObject( - window_, &kWindowPropertiesKey); - if (!properties) { - properties = [NSMutableDictionary dictionary]; - objc_setAssociatedObject(window_, &kWindowPropertiesKey, - properties, OBJC_ASSOCIATION_RETAIN); - } - return properties; -} - } // namespace views
diff --git a/ui/views/cocoa/bridged_native_widget_host_impl.h b/ui/views/cocoa/bridged_native_widget_host_impl.h index 628da32..fa54a1b 100644 --- a/ui/views/cocoa/bridged_native_widget_host_impl.h +++ b/ui/views/cocoa/bridged_native_widget_host_impl.h
@@ -46,6 +46,11 @@ public ui::LayerOwner, public ui::AcceleratedWidgetMacNSView { public: + // Retrieves the bridge host associated with the given NSWindow. Returns null + // if the supplied handle has no associated Widget. + static BridgedNativeWidgetHostImpl* GetFromNativeWindow( + gfx::NativeWindow window); + // Unique integer id handles are used to bridge between the // BridgedNativeWidgetHostImpl in one process and the BridgedNativeWidgetHost // potentially in another. @@ -129,6 +134,17 @@ // fullscreen or transitioning between fullscreen states. gfx::Rect GetRestoredBounds() const; + // Properties set and queried by views. Not actually native. + void SetNativeWindowProperty(const char* name, void* value); + void* GetNativeWindowProperty(const char* name) const; + + // Updates |associated_views_| on NativeViewHost::Attach()/Detach(). + void SetAssociationForView(const views::View* view, NSView* native_view); + void ClearAssociationForView(const views::View* view); + + // Sorts child NSViews according to NativeViewHosts order in views hierarchy. + void ReorderChildViews(); + bool IsVisible() const { return is_visible_; } bool IsMiniaturized() const { return is_miniaturized_; } bool IsWindowKey() const { return is_window_key_; } @@ -138,6 +154,7 @@ gfx::Vector2d GetBoundsOffsetForParent() const; void UpdateCompositorProperties(); void DestroyCompositor(); + void RankNSViewsRecursive(View* view, std::map<NSView*, int>* rank) const; // BridgedNativeWidgetHostHelper: NSView* GetNativeViewAccessible() override; @@ -274,6 +291,12 @@ std::unique_ptr<ui::RecyclableCompositorMac> compositor_; + // Properties used by Set/GetNativeWindowProperty. + std::map<std::string, void*> native_window_properties_; + + // Contains NativeViewHost->gfx::NativeView associations. + std::map<const views::View*, NSView*> associated_views_; + DISALLOW_COPY_AND_ASSIGN(BridgedNativeWidgetHostImpl); };
diff --git a/ui/views/cocoa/bridged_native_widget_host_impl.mm b/ui/views/cocoa/bridged_native_widget_host_impl.mm index 578b70c..616579d 100644 --- a/ui/views/cocoa/bridged_native_widget_host_impl.mm +++ b/ui/views/cocoa/bridged_native_widget_host_impl.mm
@@ -4,6 +4,7 @@ #include "ui/views/cocoa/bridged_native_widget_host_impl.h" +#include "base/mac/foundation_util.h" #include "ui/base/hit_test.h" #include "ui/base/ime/input_method.h" #include "ui/base/ime/input_method_factory.h" @@ -12,6 +13,7 @@ #include "ui/display/screen.h" #include "ui/gfx/geometry/dip_util.h" #include "ui/views/cocoa/bridged_native_widget.h" +#include "ui/views/cocoa/native_widget_mac_nswindow.h" #include "ui/views/cocoa/tooltip_manager_mac.h" #include "ui/views/controls/menu/menu_config.h" #include "ui/views/controls/menu/menu_controller.h" @@ -52,6 +54,16 @@ } // namespace // static +BridgedNativeWidgetHostImpl* BridgedNativeWidgetHostImpl::GetFromNativeWindow( + gfx::NativeWindow window) { + if (NativeWidgetMacNSWindow* widget_window = + base::mac::ObjCCast<NativeWidgetMacNSWindow>(window)) { + return GetFromId([widget_window bridgedNativeWidgetId]); + } + return nullptr; // Not created by NativeWidgetMac. +} + +// static BridgedNativeWidgetHostImpl* BridgedNativeWidgetHostImpl::GetFromId( uint64_t bridged_native_widget_id) { auto found = GetIdToWidgetHostImplMap().find(bridged_native_widget_id); @@ -64,10 +76,11 @@ NativeWidgetMac* parent) : id_(++g_last_bridged_native_widget_id), native_widget_mac_(parent), - bridge_impl_(new BridgedNativeWidgetImpl(id_, this, this, parent)) { + bridge_impl_(new BridgedNativeWidgetImpl(id_, this, this)) { DCHECK(GetIdToWidgetHostImplMap().find(id_) == GetIdToWidgetHostImplMap().end()); GetIdToWidgetHostImplMap().insert(std::make_pair(id_, this)); + GetIdToWidgetHostImplMap().insert(std::make_pair(id_, this)); DCHECK(parent); } @@ -108,6 +121,8 @@ native_widget_mac_->GetWidget()->widget_delegate()->GetModalType(); bridge_params->is_translucent = params.opacity == Widget::InitParams::TRANSLUCENT_WINDOW; + bridge_params->widget_is_top_level = + native_widget_mac_->GetWidget()->is_top_level(); // OSX likes to put shadows on most things. However, frameless windows (with // styleMask = NSBorderlessWindowMask) default to no shadow. So change that. @@ -298,6 +313,60 @@ return window_bounds_in_screen_; } +void BridgedNativeWidgetHostImpl::SetNativeWindowProperty(const char* name, + void* value) { + if (value) + native_window_properties_[name] = value; + else + native_window_properties_.erase(name); +} + +void* BridgedNativeWidgetHostImpl::GetNativeWindowProperty( + const char* name) const { + auto found = native_window_properties_.find(name); + if (found == native_window_properties_.end()) + return nullptr; + return found->second; +} + +void BridgedNativeWidgetHostImpl::SetAssociationForView(const View* view, + NSView* native_view) { + // TODO(ccameron): For the case of out-of-process NSWindows, it will be + // necessary to: + // - migrate |native_view| to the new process (for web contents). + // - use a dummy parent window if |native_view| is perforce in this process. + if (bridge_impl_) + [bridge_impl_->ns_view() addSubview:native_view]; + + DCHECK_EQ(0u, associated_views_.count(view)); + associated_views_[view] = native_view; + native_widget_mac_->GetWidget()->ReorderNativeViews(); +} + +void BridgedNativeWidgetHostImpl::ClearAssociationForView(const View* view) { + auto it = associated_views_.find(view); + DCHECK(it != associated_views_.end()); + associated_views_.erase(it); +} + +void BridgedNativeWidgetHostImpl::ReorderChildViews() { + std::map<NSView*, int> rank; + Widget* widget = native_widget_mac_->GetWidget(); + RankNSViewsRecursive(widget->GetRootView(), &rank); + if (bridge_impl_) + bridge_impl_->SortSubviews(std::move(rank)); +} + +void BridgedNativeWidgetHostImpl::RankNSViewsRecursive( + View* view, + std::map<NSView*, int>* rank) const { + auto it = associated_views_.find(view); + if (it != associated_views_.end()) + rank->emplace(it->second, rank->size()); + for (int i = 0; i < view->child_count(); ++i) + RankNSViewsRecursive(view->child_at(i), rank); +} + //////////////////////////////////////////////////////////////////////////////// // BridgedNativeWidgetHostImpl, views::BridgedNativeWidgetHostHelper:
diff --git a/ui/views/cocoa/drag_drop_client_mac_unittest.mm b/ui/views/cocoa/drag_drop_client_mac_unittest.mm index ff1a53a..e91bb57 100644 --- a/ui/views/cocoa/drag_drop_client_mac_unittest.mm +++ b/ui/views/cocoa/drag_drop_client_mac_unittest.mm
@@ -186,9 +186,9 @@ gfx::Rect bounds(0, 0, 100, 100); widget_->SetBounds(bounds); - bridge_ = NativeWidgetMac::GetBridgeImplForNativeWindow( + bridge_ = BridgedNativeWidgetImpl::GetFromNativeWindow( widget_->GetNativeWindow()); - bridge_host_ = NativeWidgetMac::GetBridgeHostImplForNativeWindow( + bridge_host_ = BridgedNativeWidgetHostImpl::GetFromNativeWindow( widget_->GetNativeWindow()); widget_->Show();
diff --git a/ui/views/controls/native/native_view_host_mac.mm b/ui/views/controls/native/native_view_host_mac.mm index 9ff1ff4c..20a2f81 100644 --- a/ui/views/controls/native/native_view_host_mac.mm +++ b/ui/views/controls/native/native_view_host_mac.mm
@@ -9,7 +9,7 @@ #include "base/mac/foundation_util.h" #import "ui/accessibility/platform/ax_platform_node_mac.h" #import "ui/base/cocoa/accessibility_hostable.h" -#import "ui/views/cocoa/bridged_native_widget.h" +#import "ui/views/cocoa/bridged_native_widget_host_impl.h" #include "ui/views/controls/native/native_view_host.h" #include "ui/views/widget/native_widget_mac.h" #include "ui/views/widget/widget.h" @@ -93,12 +93,11 @@ } EnsureNativeViewHasNoChildWidgets(native_view_); - BridgedNativeWidgetImpl* bridge = - NativeWidgetMac::GetBridgeImplForNativeWindow( + BridgedNativeWidgetHostImpl* bridge_host = + BridgedNativeWidgetHostImpl::GetFromNativeWindow( host_->GetWidget()->GetNativeWindow()); - DCHECK(bridge); - [bridge->ns_view() addSubview:native_view_]; - bridge->SetAssociationForView(host_, native_view_); + DCHECK(bridge_host); + bridge_host->SetAssociationForView(host_, native_view_); } void NativeViewHostMac::NativeViewDetaching(bool destroyed) { @@ -127,12 +126,12 @@ } EnsureNativeViewHasNoChildWidgets(host_->native_view()); - BridgedNativeWidgetImpl* bridge = - NativeWidgetMac::GetBridgeImplForNativeWindow( + BridgedNativeWidgetHostImpl* bridge_host = + BridgedNativeWidgetHostImpl::GetFromNativeWindow( host_->GetWidget()->GetNativeWindow()); // BridgedNativeWidgetImpl can be null when Widget is closing. - if (bridge) - bridge->ClearAssociationForView(host_); + if (bridge_host) + bridge_host->ClearAssociationForView(host_); native_view_.reset(); }
diff --git a/ui/views/controls/styled_label.cc b/ui/views/controls/styled_label.cc index 2c12e6e7..9e4477f 100644 --- a/ui/views/controls/styled_label.cc +++ b/ui/views/controls/styled_label.cc
@@ -28,13 +28,6 @@ namespace { -gfx::Insets FocusBorderInsets(const Label& label) { - // StyledLabel never adds a border, so the only Insets added are for the - // possible focus ring. - DCHECK(label.View::GetInsets().IsEmpty()); - return label.GetInsets(); -} - std::unique_ptr<Label> CreateLabelRange( const base::string16& text, int text_context, @@ -216,24 +209,6 @@ return kViewClassName; } -gfx::Insets StyledLabel::GetInsets() const { - gfx::Insets insets = View::GetInsets(); - if (Link::GetDefaultFocusStyle() != Link::FocusStyle::RING) - return insets; - - // We need a focus border iff we contain a link that will have a focus border. - // That in turn will be true only if the link is non-empty. - for (StyleRanges::const_iterator i(style_ranges_.begin()); - i != style_ranges_.end(); ++i) { - if (i->style_info.IsLink() && !i->range.is_empty()) { - insets += gfx::Insets(Link::kFocusBorderPadding); - break; - } - } - - return insets; -} - void StyledLabel::GetAccessibleNodeData(ui::AXNodeData* node_data) { if (text_context_ == style::CONTEXT_DIALOG_TITLE) node_data->role = ax::mojom::Role::kTitleBar; @@ -488,26 +463,18 @@ gfx::Size view_size = child_view->GetPreferredSize(); // |offset.y()| already contains |insets.top()|. gfx::Point view_origin(insets.left() + offset.x(), offset.y()); - gfx::Insets focus_border_insets; - if (Link::GetDefaultFocusStyle() == Link::FocusStyle::RING && label) { - // Calculate the size of the optional focus border, and overlap by that - // amount. Otherwise, "<a>link</a>," will render as "link ,". - focus_border_insets = FocusBorderInsets(*label); - } - view_origin.Offset(-focus_border_insets.left(), -focus_border_insets.top()); // The custom view could be wider than the available width; clamp as needed. - if (custom_view) { - view_size.set_width(std::min( - view_size.width(), width - offset.x() + focus_border_insets.width())); - } + if (custom_view) + view_size.set_width(std::min(view_size.width(), width - offset.x())); + child_view->SetBoundsRect(gfx::Rect(view_origin, view_size)); - offset.set_x(offset.x() + view_size.width() - focus_border_insets.width()); + offset.set_x(offset.x() + view_size.width()); total_height = - std::max(total_height, child_view->bounds().bottom() + insets.bottom() - - focus_border_insets.bottom()); + std::max(total_height, std::max(child_view->bounds().bottom(), + offset.y() + default_line_height) + + insets.bottom()); used_width = std::max(used_width, offset.x()); - max_line_height = std::max( - max_line_height, view_size.height() - focus_border_insets.height()); + max_line_height = std::max(max_line_height, view_size.height()); if (!dry_run) { views_in_a_line.push_back(child_view);
diff --git a/ui/views/controls/styled_label.h b/ui/views/controls/styled_label.h index 43544ef..110007b 100644 --- a/ui/views/controls/styled_label.h +++ b/ui/views/controls/styled_label.h
@@ -140,7 +140,6 @@ // View: const char* GetClassName() const override; - gfx::Insets GetInsets() const override; void GetAccessibleNodeData(ui::AXNodeData* node_data) override; gfx::Size CalculatePreferredSize() const override; int GetHeightForWidth(int w) const override;
diff --git a/ui/views/controls/styled_label_unittest.cc b/ui/views/controls/styled_label_unittest.cc index e79faddd..1d218215 100644 --- a/ui/views/controls/styled_label_unittest.cc +++ b/ui/views/controls/styled_label_unittest.cc
@@ -513,13 +513,32 @@ } TEST_F(StyledLabelTest, LineHeight) { - const std::string text("one"); + const std::string text("one\ntwo\nthree"); InitStyledLabel(text); - int default_height = styled()->GetHeightForWidth(100); - const std::string newline_text("one\ntwo\nthree"); - InitStyledLabel(newline_text); styled()->SetLineHeight(18); - EXPECT_EQ(18 * 2 + default_height, styled()->GetHeightForWidth(100)); + EXPECT_EQ(18 * 3, styled()->GetHeightForWidth(100)); +} + +TEST_F(StyledLabelTest, LineHeightWithBorder) { + const std::string text("one\ntwo\nthree"); + InitStyledLabel(text); + styled()->SetLineHeight(18); + styled()->SetBorder(views::CreateSolidBorder(1, SK_ColorGRAY)); + EXPECT_EQ(18 * 3 + 2, styled()->GetHeightForWidth(100)); +} + +TEST_F(StyledLabelTest, LineHeightWithLink) { + const std::string text("one\ntwo\nthree"); + InitStyledLabel(text); + styled()->SetLineHeight(18); + + styled()->AddStyleRange(gfx::Range(0, 3), + StyledLabel::RangeStyleInfo::CreateForLink()); + styled()->AddStyleRange(gfx::Range(4, 7), + StyledLabel::RangeStyleInfo::CreateForLink()); + styled()->AddStyleRange(gfx::Range(8, 13), + StyledLabel::RangeStyleInfo::CreateForLink()); + EXPECT_EQ(18 * 3, styled()->GetHeightForWidth(100)); } TEST_F(StyledLabelTest, HandleEmptyLayout) {
diff --git a/ui/views/controls/textfield/textfield.cc b/ui/views/controls/textfield/textfield.cc index 35359d1b..752c642e 100644 --- a/ui/views/controls/textfield/textfield.cc +++ b/ui/views/controls/textfield/textfield.cc
@@ -662,7 +662,9 @@ (event.IsOnlyLeftMouseButton() || event.IsOnlyRightMouseButton())) { if (!had_focus) RequestFocusWithPointer(ui::EventPointerType::POINTER_TYPE_MOUSE); +#if !defined(OS_WIN) ShowVirtualKeyboardIfEnabled(); +#endif } #if defined(OS_LINUX) && !defined(OS_CHROMEOS) @@ -739,10 +741,16 @@ } void Textfield::OnGestureEvent(ui::GestureEvent* event) { + bool show_virtual_keyboard = true; +#if defined(OS_WIN) + show_virtual_keyboard = event->details().primary_pointer_type() == + ui::EventPointerType::POINTER_TYPE_TOUCH; +#endif switch (event->type()) { case ui::ET_GESTURE_TAP_DOWN: RequestFocusWithPointer(event->details().primary_pointer_type()); - ShowVirtualKeyboardIfEnabled(); + if (show_virtual_keyboard) + ShowVirtualKeyboardIfEnabled(); event->SetHandled(); break; case ui::ET_GESTURE_TAP:
diff --git a/ui/views/test/widget_test_mac.mm b/ui/views/test/widget_test_mac.mm index d818b9f9..f4f45c9 100644 --- a/ui/views/test/widget_test_mac.mm +++ b/ui/views/test/widget_test_mac.mm
@@ -82,10 +82,8 @@ // static ui::internal::InputMethodDelegate* WidgetTest::GetInputMethodDelegateForWidget( Widget* widget) { - return NativeWidgetMac::GetBridgeImplForNativeWindow( - widget->GetNativeWindow()) - ->native_widget_mac() - ->bridge_host_for_testing(); + return BridgedNativeWidgetHostImpl::GetFromNativeWindow( + widget->GetNativeWindow()); } // static
diff --git a/ui/views/widget/native_widget_mac.h b/ui/views/widget/native_widget_mac.h index bb189ce..4bc6d677 100644 --- a/ui/views/widget/native_widget_mac.h +++ b/ui/views/widget/native_widget_mac.h
@@ -36,13 +36,6 @@ explicit NativeWidgetMac(internal::NativeWidgetDelegate* delegate); ~NativeWidgetMac() override; - // Retrieves the bridge associated with the given NSWindow. Returns null if - // the supplied handle has no associated Widget. - static BridgedNativeWidgetHostImpl* GetBridgeHostImplForNativeWindow( - gfx::NativeWindow window); - static BridgedNativeWidgetImpl* GetBridgeImplForNativeWindow( - gfx::NativeWindow window); - // Informs |delegate_| that the native widget is about to be destroyed. // BridgedNativeWidgetImpl::OnWindowWillClose() invokes this early when the // NSWindowDelegate informs the bridge that the window is being closed (later,
diff --git a/ui/views/widget/native_widget_mac.mm b/ui/views/widget/native_widget_mac.mm index 964b018..db456522 100644 --- a/ui/views/widget/native_widget_mac.mm +++ b/ui/views/widget/native_widget_mac.mm
@@ -10,7 +10,6 @@ #include "base/bind.h" #include "base/lazy_instance.h" -#include "base/mac/foundation_util.h" #include "base/mac/scoped_nsobject.h" #include "base/strings/sys_string_conversions.h" #include "base/threading/thread_task_runner_handle.h" @@ -81,28 +80,6 @@ CloseNow(); } -// static -BridgedNativeWidgetImpl* NativeWidgetMac::GetBridgeImplForNativeWindow( - gfx::NativeWindow window) { - if (NativeWidgetMacNSWindow* widget_window = - base::mac::ObjCCast<NativeWidgetMacNSWindow>(window)) { - return BridgedNativeWidgetImpl::GetFromId( - [widget_window bridgedNativeWidgetId]); - } - return nullptr; // Not created by NativeWidgetMac. -} - -// static -BridgedNativeWidgetHostImpl* NativeWidgetMac::GetBridgeHostImplForNativeWindow( - gfx::NativeWindow window) { - if (NativeWidgetMacNSWindow* widget_window = - base::mac::ObjCCast<NativeWidgetMacNSWindow>(window)) { - return BridgedNativeWidgetHostImpl::GetFromId( - [widget_window bridgedNativeWidgetId]); - } - return nullptr; // Not created by NativeWidgetMac. -} - void NativeWidgetMac::WindowDestroying() { OnWindowDestroying(GetNativeWindow()); delegate_->OnNativeWidgetDestroying(); @@ -216,8 +193,8 @@ } void NativeWidgetMac::ReorderNativeViews() { - if (bridge_impl()) - bridge_impl()->ReorderChildViews(); + if (bridge_host_) + bridge_host_->ReorderChildViews(); } void NativeWidgetMac::ViewRemoved(View* view) { @@ -228,13 +205,13 @@ } void NativeWidgetMac::SetNativeWindowProperty(const char* name, void* value) { - if (bridge_impl()) - bridge_impl()->SetNativeWindowProperty(name, value); + if (bridge_host_) + bridge_host_->SetNativeWindowProperty(name, value); } void* NativeWidgetMac::GetNativeWindowProperty(const char* name) const { - if (bridge_impl()) - return bridge_impl()->GetNativeWindowProperty(name); + if (bridge_host_) + return bridge_host_->GetNativeWindowProperty(name); return nullptr; } @@ -694,7 +671,7 @@ NativeWidgetPrivate* NativeWidgetPrivate::GetNativeWidgetForNativeWindow( gfx::NativeWindow window) { if (BridgedNativeWidgetHostImpl* bridge_host_impl = - NativeWidgetMac::GetBridgeHostImplForNativeWindow(window)) { + BridgedNativeWidgetHostImpl::GetFromNativeWindow(window)) { return bridge_host_impl->native_widget_mac(); } return nullptr; // Not created by NativeWidgetMac. @@ -703,25 +680,26 @@ // static NativeWidgetPrivate* NativeWidgetPrivate::GetTopLevelNativeWidget( gfx::NativeView native_view) { - BridgedNativeWidgetImpl* bridge_impl = - NativeWidgetMac::GetBridgeImplForNativeWindow([native_view window]); - if (!bridge_impl) + BridgedNativeWidgetHostImpl* bridge_host = + BridgedNativeWidgetHostImpl::GetFromNativeWindow([native_view window]); + if (!bridge_host) return nullptr; NativeWidgetPrivate* ancestor = - bridge_impl->parent() + bridge_host->bridge_impl()->parent() ? GetTopLevelNativeWidget( - [bridge_impl->parent()->GetNSWindow() contentView]) + [bridge_host->bridge_impl()->parent()->GetNSWindow() + contentView]) : nullptr; - return ancestor ? ancestor : bridge_impl->native_widget_mac(); + return ancestor ? ancestor : bridge_host->native_widget_mac(); } // static void NativeWidgetPrivate::GetAllChildWidgets(gfx::NativeView native_view, Widget::Widgets* children) { - BridgedNativeWidgetImpl* bridge_impl = - NativeWidgetMac::GetBridgeImplForNativeWindow([native_view window]); - if (!bridge_impl) { + BridgedNativeWidgetHostImpl* bridge_host = + BridgedNativeWidgetHostImpl::GetFromNativeWindow([native_view window]); + if (!bridge_host) { // The NSWindow is not itself a views::Widget, but it may have children that // are. Support returning Widgets that are parented to the NSWindow, except: // - Ignore requests for children of an NSView that is not a contentView. @@ -744,30 +722,32 @@ // If |native_view| is a subview of the contentView, it will share an // NSWindow, but will itself be a native child of the Widget. That is, adding - // bridge_impl->..->GetWidget() to |children| would be adding the _parent_ of + // bridge_host->..->GetWidget() to |children| would be adding the _parent_ of // |native_view|, not the Widget for |native_view|. |native_view| doesn't have // a corresponding Widget of its own in this case (and so can't have Widget // children of its own on Mac). - if (bridge_impl->ns_view() != native_view) + if (bridge_host->bridge_impl()->ns_view() != native_view) return; // Code expects widget for |native_view| to be added to |children|. - if (bridge_impl->native_widget_mac()->GetWidget()) - children->insert(bridge_impl->native_widget_mac()->GetWidget()); + if (bridge_host->native_widget_mac()->GetWidget()) + children->insert(bridge_host->native_widget_mac()->GetWidget()); // When the NSWindow *is* a Widget, only consider child_windows(). I.e. do not - // look through -[NSWindow childWindows] as done for the (!bridge_impl) case + // look through -[NSWindow childWindows] as done for the (!bridge_host) case // above. -childWindows does not support hidden windows, and anything in there // which is not in child_windows() would have been added by AppKit. - for (BridgedNativeWidgetImpl* child : bridge_impl->child_windows()) + for (BridgedNativeWidgetImpl* child : + bridge_host->bridge_impl()->child_windows()) { GetAllChildWidgets(child->ns_view(), children); + } } // static void NativeWidgetPrivate::GetAllOwnedWidgets(gfx::NativeView native_view, Widget::Widgets* owned) { BridgedNativeWidgetImpl* bridge = - NativeWidgetMac::GetBridgeImplForNativeWindow([native_view window]); + BridgedNativeWidgetImpl::GetFromNativeWindow([native_view window]); if (!bridge) { GetAllChildWidgets(native_view, owned); return; @@ -788,9 +768,9 @@ } BridgedNativeWidgetImpl* bridge = - NativeWidgetMac::GetBridgeImplForNativeWindow([native_view window]); + BridgedNativeWidgetImpl::GetFromNativeWindow([native_view window]); BridgedNativeWidgetImpl* parent_bridge = - NativeWidgetMac::GetBridgeImplForNativeWindow([new_parent window]); + BridgedNativeWidgetImpl::GetFromNativeWindow([new_parent window]); DCHECK(bridge); if (Widget::GetWidgetForNativeView(native_view)->is_top_level() && bridge->parent() == parent_bridge)
diff --git a/ui/views/widget/native_widget_mac_unittest.mm b/ui/views/widget/native_widget_mac_unittest.mm index f75695b..c8293175 100644 --- a/ui/views/widget/native_widget_mac_unittest.mm +++ b/ui/views/widget/native_widget_mac_unittest.mm
@@ -97,7 +97,7 @@ class BridgedNativeWidgetTestApi { public: explicit BridgedNativeWidgetTestApi(NSWindow* window) { - bridge_ = NativeWidgetMac::GetBridgeImplForNativeWindow(window); + bridge_ = BridgedNativeWidgetImpl::GetFromNativeWindow(window); } // Simulate a frame swap from the compositor. @@ -758,7 +758,7 @@ // To verify the parent, we need to use NativeWidgetMac APIs. BridgedNativeWidgetImpl* bridged_native_widget = - NativeWidgetMac::GetBridgeImplForNativeWindow(child->GetNativeWindow()); + BridgedNativeWidgetImpl::GetFromNativeWindow(child->GetNativeWindow()); EXPECT_EQ(native_parent, bridged_native_widget->parent()->GetNSWindow()); const gfx::Rect child_bounds(50, 50, 200, 100); @@ -1547,7 +1547,7 @@ Widget* dialog = views::DialogDelegate::CreateDialogWidget( new DialogDelegateView, nullptr, [parent contentView]); BridgedNativeWidgetImpl* bridge = - NativeWidgetMac::GetBridgeImplForNativeWindow(dialog->GetNativeWindow()); + BridgedNativeWidgetImpl::GetFromNativeWindow(dialog->GetNativeWindow()); EXPECT_EQ(bridge->parent()->GetNSWindow(), parent); Widget::ReparentNativeView(dialog->GetNativeView(), [parent contentView]); @@ -1560,7 +1560,7 @@ dialog = views::DialogDelegate::CreateDialogWidget( new DialogDelegateView, nullptr, [parent contentView]); bridge = - NativeWidgetMac::GetBridgeImplForNativeWindow(dialog->GetNativeWindow()); + BridgedNativeWidgetImpl::GetFromNativeWindow(dialog->GetNativeWindow()); EXPECT_EQ(bridge->parent()->GetNSWindow(), parent); Widget::ReparentNativeView(dialog->GetNativeView(), [parent contentView]); @@ -2107,7 +2107,7 @@ NativeWidgetMacTest::SetUp(); widget_ = CreateTopLevelPlatformWidget(); - bridge_ = NativeWidgetMac::GetBridgeImplForNativeWindow( + bridge_ = BridgedNativeWidgetImpl::GetFromNativeWindow( widget_->GetNativeWindow()); fake_full_keyboard_access_ = ui::test::ScopedFakeFullKeyboardAccess::GetInstance();
diff --git a/ui/views_bridge_mac/mojo/bridged_native_widget.mojom b/ui/views_bridge_mac/mojo/bridged_native_widget.mojom index 029648e..b3859e2 100644 --- a/ui/views_bridge_mac/mojo/bridged_native_widget.mojom +++ b/ui/views_bridge_mac/mojo/bridged_native_widget.mojom
@@ -24,6 +24,8 @@ ui.mojom.ModalType modal_type; // If true, the underlying window potentially be seen through. bool is_translucent; + // True if the widget is considered top level widget. + bool widget_is_top_level; // If true, then the NSWindow is set to have a shadow using // -[NSWindow setHasShadow:YES]. bool has_window_server_shadow;
diff --git a/ui/webui/resources/cr_components/cr_components_resources.grdp b/ui/webui/resources/cr_components/cr_components_resources.grdp index c8ae514cdd9..3f601f8 100644 --- a/ui/webui/resources/cr_components/cr_components_resources.grdp +++ b/ui/webui/resources/cr_components/cr_components_resources.grdp
@@ -123,19 +123,19 @@ file="cr_components/chromeos/network/network_choose_mobile.js" type="chrome_html" compress="gzip" /> - <structure name="IDR_WEBUI_CHROMEOS__NETWORK_CONFIG_HTML" + <structure name="IDR_WEBUI_CHROMEOS_NETWORK_CONFIG_HTML" file="cr_components/chromeos/network/network_config.html" type="chrome_html" compress="gzip" /> - <structure name="IDR_WEBUI_CHROMEOS__NETWORK_CONFIG_JS" + <structure name="IDR_WEBUI_CHROMEOS_NETWORK_CONFIG_JS" file="cr_components/chromeos/network/network_config.js" type="chrome_html" compress="gzip" /> - <structure name="IDR_WEBUI_CHROMEOS__NETWORK_CONFIG_SELECT_HTML" + <structure name="IDR_WEBUI_CHROMEOS_NETWORK_CONFIG_SELECT_HTML" file="cr_components/chromeos/network/network_config_select.html" type="chrome_html" compress="gzip" /> - <structure name="IDR_WEBUI_CHROMEOS__NETWORK_CONFIG_SELECT_JS" + <structure name="IDR_WEBUI_CHROMEOS_NETWORK_CONFIG_SELECT_JS" file="cr_components/chromeos/network/network_config_select.js" type="chrome_html" compress="gzip" /> @@ -155,11 +155,11 @@ file="cr_components/chromeos/network/network_nameservers.js" type="chrome_html" compress="gzip" /> - <structure name="IDR_WEBUI_CHROMEOS__NETWORK_PASSWORD_INPUT_HTML" + <structure name="IDR_WEBUI_CHROMEOS_NETWORK_PASSWORD_INPUT_HTML" file="cr_components/chromeos/network/network_password_input.html" type="chrome_html" compress="gzip" /> - <structure name="IDR_WEBUI_CHROMEOS__NETWORK_PASSWORD_INPUT_JS" + <structure name="IDR_WEBUI_CHROMEOS_NETWORK_PASSWORD_INPUT_JS" file="cr_components/chromeos/network/network_password_input.js" type="chrome_html" compress="gzip" />
diff --git a/ui/webui/resources/cr_elements/cr_input/cr_input.js b/ui/webui/resources/cr_elements/cr_input/cr_input.js index 4f10802..8b936d9 100644 --- a/ui/webui/resources/cr_elements/cr_input/cr_input.js +++ b/ui/webui/resources/cr_elements/cr_input/cr_input.js
@@ -150,7 +150,7 @@ }, listeners: { - 'focus': 'focusInput_', + 'focus': 'onFocus_', 'pointerdown': 'onPointerDown_', }, @@ -215,9 +215,24 @@ }, /** @private */ + onFocus_: function() { + if (!this.focusInput_()) + return; + // Always select the <input> element on focus. TODO(stevenjb/scottchen): + // Native <input> elements only do this for keyboard focus, not when + // focus() is called directly. Fix this? https://crbug.com/882612. + this.inputElement.select(); + }, + + /** + * @return {boolean} Whether the <input> element was focused. + * @private + */ focusInput_: function() { - if (this.shadowRoot.activeElement != this.inputElement) - this.inputElement.focus(); + if (this.shadowRoot.activeElement == this.inputElement) + return false; + this.inputElement.focus(); + return true; }, /** @private */
diff --git a/webrunner/BUILD.gn b/webrunner/BUILD.gn index c026221..7570f00 100644 --- a/webrunner/BUILD.gn +++ b/webrunner/BUILD.gn
@@ -214,7 +214,7 @@ "fidl/context_provider.fidl", "fidl/frame.fidl", "fidl/navigation_controller.fidl", - "fidl/navigation_state_change_observer.fidl", + "fidl/navigation_event_observer.fidl", ] public_deps = [
diff --git a/webrunner/fidl/navigation_state_change_observer.fidl b/webrunner/fidl/navigation_event_observer.fidl similarity index 100% rename from webrunner/fidl/navigation_state_change_observer.fidl rename to webrunner/fidl/navigation_event_observer.fidl